@forumone/throughline 2.1.0 → 2.2.0-next-623d42c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/approvals/endpoints/action.d.ts.map +1 -1
  3. package/dist/approvals/endpoints/action.js +27 -8
  4. package/dist/approvals/endpoints/action.js.map +1 -1
  5. package/dist/approvals/tokens.d.ts +3 -0
  6. package/dist/approvals/tokens.d.ts.map +1 -1
  7. package/dist/approvals/tokens.js +1 -1
  8. package/dist/approvals/tokens.js.map +1 -1
  9. package/dist/authoring/tools.d.ts.map +1 -1
  10. package/dist/authoring/tools.js +6 -1
  11. package/dist/authoring/tools.js.map +1 -1
  12. package/dist/components/tools/validate-composition.d.ts.map +1 -1
  13. package/dist/components/tools/validate-composition.js +4 -1
  14. package/dist/components/tools/validate-composition.js.map +1 -1
  15. package/dist/components/validation/composition.d.ts +9 -1
  16. package/dist/components/validation/composition.d.ts.map +1 -1
  17. package/dist/components/validation/composition.js +9 -7
  18. package/dist/components/validation/composition.js.map +1 -1
  19. package/dist/exports/client.d.ts +3 -0
  20. package/dist/exports/client.d.ts.map +1 -1
  21. package/dist/exports/client.js +2 -0
  22. package/dist/exports/client.js.map +1 -1
  23. package/dist/fields/slug.d.ts.map +1 -1
  24. package/dist/fields/slug.js +4 -1
  25. package/dist/fields/slug.js.map +1 -1
  26. package/dist/integrations/admin/SyncButton.d.ts.map +1 -1
  27. package/dist/integrations/admin/SyncButton.js +11 -5
  28. package/dist/integrations/admin/SyncButton.js.map +1 -1
  29. package/dist/integrations/admin/sync-client.d.ts +2 -0
  30. package/dist/integrations/admin/sync-client.d.ts.map +1 -1
  31. package/dist/integrations/admin/sync-client.js +7 -1
  32. package/dist/integrations/admin/sync-client.js.map +1 -1
  33. package/dist/integrations/collection.d.ts +1 -1
  34. package/dist/integrations/collection.d.ts.map +1 -1
  35. package/dist/integrations/collection.js +11 -4
  36. package/dist/integrations/collection.js.map +1 -1
  37. package/dist/integrations/sync/status.d.ts +17 -4
  38. package/dist/integrations/sync/status.d.ts.map +1 -1
  39. package/dist/integrations/sync/status.js +37 -6
  40. package/dist/integrations/sync/status.js.map +1 -1
  41. package/dist/media/hooks.d.ts.map +1 -1
  42. package/dist/media/hooks.js +11 -9
  43. package/dist/media/hooks.js.map +1 -1
  44. package/dist/migrate/exports.json +16 -0
  45. package/dist/publishing/admin/FirstErrorProvider.d.ts +24 -0
  46. package/dist/publishing/admin/FirstErrorProvider.d.ts.map +1 -0
  47. package/dist/publishing/admin/FirstErrorProvider.js +100 -0
  48. package/dist/publishing/admin/FirstErrorProvider.js.map +1 -0
  49. package/dist/publishing/admin/PublishButton.d.ts.map +1 -1
  50. package/dist/publishing/admin/PublishButton.js +18 -3
  51. package/dist/publishing/admin/PublishButton.js.map +1 -1
  52. package/dist/publishing/admin/SchedulePublishField.d.ts.map +1 -1
  53. package/dist/publishing/admin/SchedulePublishField.js +25 -10
  54. package/dist/publishing/admin/SchedulePublishField.js.map +1 -1
  55. package/dist/publishing/admin/UnpublishButton.d.ts.map +1 -1
  56. package/dist/publishing/admin/UnpublishButton.js +9 -3
  57. package/dist/publishing/admin/UnpublishButton.js.map +1 -1
  58. package/dist/publishing/admin/first-error.d.ts +60 -0
  59. package/dist/publishing/admin/first-error.d.ts.map +1 -0
  60. package/dist/publishing/admin/first-error.js +211 -0
  61. package/dist/publishing/admin/first-error.js.map +1 -0
  62. package/dist/publishing/admin/publishing-client.d.ts +33 -4
  63. package/dist/publishing/admin/publishing-client.d.ts.map +1 -1
  64. package/dist/publishing/admin/publishing-client.js +56 -21
  65. package/dist/publishing/admin/publishing-client.js.map +1 -1
  66. package/dist/publishing/admin/schedule-state.d.ts +31 -4
  67. package/dist/publishing/admin/schedule-state.d.ts.map +1 -1
  68. package/dist/publishing/admin/schedule-state.js +26 -14
  69. package/dist/publishing/admin/schedule-state.js.map +1 -1
  70. package/dist/publishing/checks/alt-text.d.ts.map +1 -1
  71. package/dist/publishing/checks/alt-text.js +3 -1
  72. package/dist/publishing/checks/alt-text.js.map +1 -1
  73. package/dist/publishing/checks/heading-hierarchy.d.ts +9 -3
  74. package/dist/publishing/checks/heading-hierarchy.d.ts.map +1 -1
  75. package/dist/publishing/checks/heading-hierarchy.js +19 -6
  76. package/dist/publishing/checks/heading-hierarchy.js.map +1 -1
  77. package/dist/publishing/checks/link-labels.js +1 -1
  78. package/dist/publishing/checks/link-labels.js.map +1 -1
  79. package/dist/publishing/endpoints/admin.d.ts.map +1 -1
  80. package/dist/publishing/endpoints/admin.js +26 -7
  81. package/dist/publishing/endpoints/admin.js.map +1 -1
  82. package/dist/publishing/events.d.ts +15 -1
  83. package/dist/publishing/events.d.ts.map +1 -1
  84. package/dist/publishing/events.js +17 -2
  85. package/dist/publishing/events.js.map +1 -1
  86. package/dist/publishing/hooks/block-status-writes.js +5 -2
  87. package/dist/publishing/hooks/block-status-writes.js.map +1 -1
  88. package/dist/publishing/hooks/schedule-events.d.ts.map +1 -1
  89. package/dist/publishing/hooks/schedule-events.js +5 -7
  90. package/dist/publishing/hooks/schedule-events.js.map +1 -1
  91. package/dist/publishing/index.d.ts +9 -1
  92. package/dist/publishing/index.d.ts.map +1 -1
  93. package/dist/publishing/index.js +7 -0
  94. package/dist/publishing/index.js.map +1 -1
  95. package/dist/publishing/messages.d.ts +63 -0
  96. package/dist/publishing/messages.d.ts.map +1 -0
  97. package/dist/publishing/messages.js +84 -0
  98. package/dist/publishing/messages.js.map +1 -0
  99. package/dist/publishing/options.d.ts +46 -1
  100. package/dist/publishing/options.d.ts.map +1 -1
  101. package/dist/publishing/options.js +8 -0
  102. package/dist/publishing/options.js.map +1 -1
  103. package/dist/publishing/pipeline/finish.d.ts +12 -0
  104. package/dist/publishing/pipeline/finish.d.ts.map +1 -0
  105. package/dist/publishing/pipeline/finish.js +24 -0
  106. package/dist/publishing/pipeline/finish.js.map +1 -0
  107. package/dist/publishing/pipeline/index.d.ts.map +1 -1
  108. package/dist/publishing/pipeline/index.js +11 -8
  109. package/dist/publishing/pipeline/index.js.map +1 -1
  110. package/dist/publishing/pipeline/steps/accessibility.d.ts +3 -3
  111. package/dist/publishing/pipeline/steps/accessibility.d.ts.map +1 -1
  112. package/dist/publishing/pipeline/steps/accessibility.js +17 -9
  113. package/dist/publishing/pipeline/steps/accessibility.js.map +1 -1
  114. package/dist/publishing/pipeline/steps/approval.d.ts.map +1 -1
  115. package/dist/publishing/pipeline/steps/approval.js +6 -4
  116. package/dist/publishing/pipeline/steps/approval.js.map +1 -1
  117. package/dist/publishing/pipeline/steps/composition.d.ts.map +1 -1
  118. package/dist/publishing/pipeline/steps/composition.js +36 -17
  119. package/dist/publishing/pipeline/steps/composition.js.map +1 -1
  120. package/dist/publishing/pipeline/steps/embargo.d.ts +4 -0
  121. package/dist/publishing/pipeline/steps/embargo.d.ts.map +1 -1
  122. package/dist/publishing/pipeline/steps/embargo.js +13 -4
  123. package/dist/publishing/pipeline/steps/embargo.js.map +1 -1
  124. package/dist/publishing/pipeline/steps/execute.d.ts.map +1 -1
  125. package/dist/publishing/pipeline/steps/execute.js +48 -5
  126. package/dist/publishing/pipeline/steps/execute.js.map +1 -1
  127. package/dist/publishing/pipeline/steps/exist.d.ts +2 -0
  128. package/dist/publishing/pipeline/steps/exist.d.ts.map +1 -1
  129. package/dist/publishing/pipeline/steps/exist.js +5 -3
  130. package/dist/publishing/pipeline/steps/exist.js.map +1 -1
  131. package/dist/publishing/pipeline/steps/link-targets.d.ts +3 -0
  132. package/dist/publishing/pipeline/steps/link-targets.d.ts.map +1 -0
  133. package/dist/publishing/pipeline/steps/link-targets.js +293 -0
  134. package/dist/publishing/pipeline/steps/link-targets.js.map +1 -0
  135. package/dist/publishing/pipeline/steps/required-fields.d.ts.map +1 -1
  136. package/dist/publishing/pipeline/steps/required-fields.js +7 -5
  137. package/dist/publishing/pipeline/steps/required-fields.js.map +1 -1
  138. package/dist/publishing/pipeline/types.d.ts +25 -0
  139. package/dist/publishing/pipeline/types.d.ts.map +1 -1
  140. package/dist/publishing/pipeline/where.d.ts +13 -0
  141. package/dist/publishing/pipeline/where.d.ts.map +1 -0
  142. package/dist/publishing/pipeline/where.js +44 -0
  143. package/dist/publishing/pipeline/where.js.map +1 -0
  144. package/dist/publishing/plugin.d.ts.map +1 -1
  145. package/dist/publishing/plugin.js +22 -0
  146. package/dist/publishing/plugin.js.map +1 -1
  147. package/dist/publishing/service.d.ts +26 -17
  148. package/dist/publishing/service.d.ts.map +1 -1
  149. package/dist/publishing/service.js +43 -32
  150. package/dist/publishing/service.js.map +1 -1
  151. package/dist/publishing/tools/get-publish-status.d.ts.map +1 -1
  152. package/dist/publishing/tools/get-publish-status.js +4 -0
  153. package/dist/publishing/tools/get-publish-status.js.map +1 -1
  154. package/dist/publishing/tools/rollback.d.ts.map +1 -1
  155. package/dist/publishing/tools/rollback.js +1 -1
  156. package/dist/publishing/tools/rollback.js.map +1 -1
  157. package/dist/references/UsedOnPanel.d.ts.map +1 -1
  158. package/dist/references/UsedOnPanel.js +1 -1
  159. package/dist/references/UsedOnPanel.js.map +1 -1
  160. package/dist/references/find.d.ts +12 -1
  161. package/dist/references/find.d.ts.map +1 -1
  162. package/dist/references/find.js +24 -5
  163. package/dist/references/find.js.map +1 -1
  164. package/dist/references/guards.d.ts.map +1 -1
  165. package/dist/references/guards.js +9 -2
  166. package/dist/references/guards.js.map +1 -1
  167. package/dist/references/index.d.ts +4 -2
  168. package/dist/references/index.d.ts.map +1 -1
  169. package/dist/references/index.js +2 -1
  170. package/dist/references/index.js.map +1 -1
  171. package/dist/references/links.d.ts +45 -0
  172. package/dist/references/links.d.ts.map +1 -0
  173. package/dist/references/links.js +117 -0
  174. package/dist/references/links.js.map +1 -0
  175. package/dist/references/walk.d.ts +70 -0
  176. package/dist/references/walk.d.ts.map +1 -1
  177. package/dist/references/walk.js +88 -41
  178. package/dist/references/walk.js.map +1 -1
  179. package/dist/utils/field-path.d.ts +56 -0
  180. package/dist/utils/field-path.d.ts.map +1 -0
  181. package/dist/utils/field-path.js +146 -0
  182. package/dist/utils/field-path.js.map +1 -0
  183. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"block-status-writes.js","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-status-writes.js","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-events.d.ts","sourceRoot":"","sources":["../../../src/publishing/hooks/schedule-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,GAAG,yBAAyB,CA0B5B"}
1
+ {"version":3,"file":"schedule-events.d.ts","sourceRoot":"","sources":["../../../src/publishing/hooks/schedule-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,GAAG,yBAAyB,CA4B5B"}
@@ -29,19 +29,17 @@ export function createSendScheduledEventHook(args) {
29
29
  const id = doc.id;
30
30
  if (id === undefined || id === null)
31
31
  return doc;
32
- const warning = await sendEventSafely(args.inngest, {
32
+ // A failure is logged and goes no further: the schedule is saved, and only
33
+ // the on-time wake-up is lost. The daily backstop still finds the document
34
+ // once it is overdue.
35
+ await sendEventSafely(args.inngest, {
33
36
  name: 'content/page.scheduled',
34
37
  data: {
35
38
  collection: collection.slug,
36
39
  id: String(id),
37
40
  scheduledFor: new Date(next).toISOString(),
38
41
  },
39
- });
40
- if (warning) {
41
- // The schedule is saved; only the on-time wake-up is lost. The daily
42
- // backstop still finds the document once it is overdue.
43
- req.payload.logger.warn({ collection: collection.slug, id }, `[publishing] ${warning}`);
44
- }
42
+ }, req.payload.logger);
45
43
  return doc;
46
44
  };
47
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-events.js","sourceRoot":"","sources":["../../../src/publishing/hooks/schedule-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAA;IAExC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,GAAG,CAAA;QAC7B,IAAI,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;QAEtD,MAAM,EAAE,GAAI,GAAwB,CAAC,EAAE,CAAA;QACvC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,GAAG,CAAA;QAE/C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;YAClD,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE;gBACJ,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;gBACd,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;aAC3C;SACF,CAAC,CAAA;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,qEAAqE;YACrE,wDAAwD;YACxD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,gBAAgB,OAAO,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"schedule-events.js","sourceRoot":"","sources":["../../../src/publishing/hooks/schedule-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAA;IAExC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,GAAG,CAAA;QAC7B,IAAI,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;QAEtD,MAAM,EAAE,GAAI,GAAwB,CAAC,EAAE,CAAA;QACvC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,GAAG,CAAA;QAE/C,2EAA2E;QAC3E,2EAA2E;QAC3E,sBAAsB;QACtB,MAAM,eAAe,CACnB,IAAI,CAAC,OAAO,EACZ;YACE,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE;gBACJ,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;gBACd,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;aAC3C;SACF,EACD,GAAG,CAAC,OAAO,CAAC,MAAM,CACnB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AACrC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { publishingPlugin } from './plugin.js';
2
- export type { AccessibilityCheck, AccessibilityIssue, ActiveApproval, ApprovalResolver, PublishableCollection, PublishingPluginOptions, ResolvedCollection, } from './options.js';
2
+ export type { AccessibilityCheck, AccessibilityCheckContext, AccessibilityIssue, ActiveApproval, ApprovalResolver, PublishableCollection, PublishingPluginOptions, ResolvedCollection, } from './options.js';
3
3
  export type { PipelineContext, PipelineResult, PipelineStep, PipelineStepResult, } from './pipeline/index.js';
4
4
  /**
5
5
  * Server-side publishing API. Use these from host code — a custom endpoint,
@@ -38,4 +38,12 @@ export { publishAtScheduledTimeJob } from './jobs/publish-at-scheduled-time.js';
38
38
  export { createTagRevalidationHooks } from './jobs/revalidate-tag-hooks.js';
39
39
  export type { CollectionTagHookOptions, GlobalTagHookOptions, RevalidateTagFn, TagRevalidationHooks, TagRevalidationOptions, TagSelector, } from './jobs/revalidate-tag-hooks.js';
40
40
  export type { ExecuteScheduledPublishesOptions, PublishAtScheduledTimeOptions, RevalidateFn, RevalidateOnPublishOptions, RevalidatePathsInput, ScheduledCollectionConfig, ScheduledPublishRequest, ScheduledPublishResult, } from '../jobs/workflow-types.js';
41
+ /**
42
+ * Links, for the `link-targets` step: a host marks its own hand-written link
43
+ * fields with `markLinkTarget` so a link to a draft, trashed or deleted page
44
+ * is refused at publish. The fields the design-system generator builds are
45
+ * marked already.
46
+ */
47
+ export { LINK_TARGET_KEY, linkTargetsIn, markLinkTarget } from '../references/links.js';
48
+ export type { LinkTarget, LinkTargetMarker, LinkTargetsInOptions } from '../references/links.js';
41
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC3E,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GACZ,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,YAAY,EACZ,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC3E,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GACZ,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,YAAY,EACZ,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAElC;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvF,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
@@ -35,4 +35,11 @@ export { revalidateOnPublishJob } from './jobs/revalidate-on-publish.js';
35
35
  export { executeScheduledPublishesJob } from './jobs/execute-scheduled-publishes.js';
36
36
  export { publishAtScheduledTimeJob } from './jobs/publish-at-scheduled-time.js';
37
37
  export { createTagRevalidationHooks } from './jobs/revalidate-tag-hooks.js';
38
+ /**
39
+ * Links, for the `link-targets` step: a host marks its own hand-written link
40
+ * fields with `markLinkTarget` so a link to a draft, trashed or deleted page
41
+ * is refused at publish. The fields the design-system generator builds are
42
+ * marked already.
43
+ */
44
+ export { LINK_TARGET_KEY, linkTargetsIn, markLinkTarget } from '../references/links.js';
38
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAmB9C;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAerB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,uFAAuF;AACvF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAoB9C;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAerB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,uFAAuF;AACvF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAoB3E;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Words an editor reads, shared by the server that writes them and the admin
3
+ * that shows them. No imports, so the admin bundle can take it.
4
+ *
5
+ * forumone-2026#805 is the brief: say what happened in the editor's terms, say
6
+ * what to do next, name who can fix it when the editor cannot — always "a site
7
+ * administrator", because Throughline serves more than one site and none of
8
+ * them should name a team here — and print a date as a person writes one.
9
+ * Detail a developer needs goes in the log and in the result's `detail`, where
10
+ * an MCP caller still has it alongside `code`.
11
+ */
12
+ /** The one phrase for "somebody else has to fix this". */
13
+ export declare const TELL_AN_ADMINISTRATOR = "tell a site administrator";
14
+ /** "Try again; if it keeps happening, tell a site administrator." */
15
+ export declare const TRY_AGAIN = "Try again; if it keeps happening, tell a site administrator.";
16
+ /**
17
+ * A block no editor can fix: the site is set up wrongly. The setup instruction
18
+ * goes in the result's `detail` and the log, not here.
19
+ */
20
+ export declare const PUBLISHING_UNAVAILABLE = "Publishing isn't working right now. Nothing was changed. Please tell a site administrator.";
21
+ /** When the response from the publishing endpoint was not one it could read. */
22
+ export declare const UNEXPECTED_PROBLEM: (action: "publish" | "unpublish" | "schedule" | "unschedule") => string;
23
+ export interface HumanDateOptions {
24
+ /**
25
+ * An IANA zone, e.g. `America/New_York`. Omitted, the runtime's own zone —
26
+ * which in a browser is the editor's.
27
+ */
28
+ timeZone?: string | undefined;
29
+ /** Whether to name the zone after the time. Say it whenever the reader's own zone is not the one used. */
30
+ zoneName?: boolean | undefined;
31
+ }
32
+ /**
33
+ * `Tue 6 Oct 2026, 9:00 am`, or `Tue 6 Oct 2026, 1:00 pm UTC` with the zone
34
+ * named.
35
+ *
36
+ * Put together from parts rather than taken whole from `Intl`, whose `en-GB`
37
+ * output puts a comma after the weekday and whose `en-US` output puts the
38
+ * month first. The pieces are still `Intl`'s, so the zone arithmetic is too.
39
+ */
40
+ export declare function formatHumanDate(at: Date, options?: HumanDateOptions): string;
41
+ /**
42
+ * A date a message is about, in both forms: `at` for software, `text` as the
43
+ * server wrote it into the message. The admin swaps `text` for the same instant
44
+ * in the editor's own zone, which the server cannot know.
45
+ */
46
+ export interface MessageDate {
47
+ at: string;
48
+ text: string;
49
+ }
50
+ /**
51
+ * The time the server writes into a message: in the zone the site configured,
52
+ * named, because the reader may be anywhere.
53
+ */
54
+ export declare function messageDate(at: Date | number, timeZone?: string): MessageDate;
55
+ /**
56
+ * Rewrites a message's server-written date into the reader's own zone. A
57
+ * message with no date, or whose text no longer contains it, comes back as it
58
+ * was.
59
+ */
60
+ export declare function localiseMessage(message: string, date: MessageDate | undefined, options?: HumanDateOptions): string;
61
+ /** `1 block` / `3 blocks`. */
62
+ export declare function plural(count: number, singular: string, pluralForm?: string): string;
63
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/publishing/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,8BAA8B,CAAA;AAEhE,qEAAqE;AACrE,eAAO,MAAM,SAAS,iEAAgE,CAAA;AAEtF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,+FAA8F,CAAA;AAEjI,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,WACgB,CAAA;AAS9G,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAoBhF;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAM7E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAKR;AAED,8BAA8B;AAC9B,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAiB,GAAG,MAAM,CAE3F"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Words an editor reads, shared by the server that writes them and the admin
3
+ * that shows them. No imports, so the admin bundle can take it.
4
+ *
5
+ * forumone-2026#805 is the brief: say what happened in the editor's terms, say
6
+ * what to do next, name who can fix it when the editor cannot — always "a site
7
+ * administrator", because Throughline serves more than one site and none of
8
+ * them should name a team here — and print a date as a person writes one.
9
+ * Detail a developer needs goes in the log and in the result's `detail`, where
10
+ * an MCP caller still has it alongside `code`.
11
+ */
12
+ /** The one phrase for "somebody else has to fix this". */
13
+ export const TELL_AN_ADMINISTRATOR = 'tell a site administrator';
14
+ /** "Try again; if it keeps happening, tell a site administrator." */
15
+ export const TRY_AGAIN = `Try again; if it keeps happening, ${TELL_AN_ADMINISTRATOR}.`;
16
+ /**
17
+ * A block no editor can fix: the site is set up wrongly. The setup instruction
18
+ * goes in the result's `detail` and the log, not here.
19
+ */
20
+ export const PUBLISHING_UNAVAILABLE = `Publishing isn't working right now. Nothing was changed. Please ${TELL_AN_ADMINISTRATOR}.`;
21
+ /** When the response from the publishing endpoint was not one it could read. */
22
+ export const UNEXPECTED_PROBLEM = (action) => `This couldn't be ${PAST_TENSE[action]} because of an unexpected problem. Nothing was changed. ${TRY_AGAIN}`;
23
+ const PAST_TENSE = {
24
+ publish: 'published',
25
+ unpublish: 'unpublished',
26
+ schedule: 'scheduled',
27
+ unschedule: 'unscheduled',
28
+ };
29
+ /**
30
+ * `Tue 6 Oct 2026, 9:00 am`, or `Tue 6 Oct 2026, 1:00 pm UTC` with the zone
31
+ * named.
32
+ *
33
+ * Put together from parts rather than taken whole from `Intl`, whose `en-GB`
34
+ * output puts a comma after the weekday and whose `en-US` output puts the
35
+ * month first. The pieces are still `Intl`'s, so the zone arithmetic is too.
36
+ */
37
+ export function formatHumanDate(at, options = {}) {
38
+ const parts = new Intl.DateTimeFormat('en-GB', {
39
+ weekday: 'short',
40
+ day: 'numeric',
41
+ month: 'short',
42
+ year: 'numeric',
43
+ hour: 'numeric',
44
+ minute: '2-digit',
45
+ // `h12`, not `hour12: true`: some ICU builds read the latter for `en-GB` as
46
+ // `h11` and write midnight as `0:05 am`.
47
+ hourCycle: 'h12',
48
+ ...(options.timeZone ? { timeZone: options.timeZone } : {}),
49
+ ...(options.zoneName ? { timeZoneName: 'short' } : {}),
50
+ }).formatToParts(at);
51
+ const part = (type) => parts.find((p) => p.type === type)?.value ?? '';
52
+ const time = `${part('hour')}:${part('minute')} ${part('dayPeriod').toLowerCase()}`;
53
+ const zone = options.zoneName ? ` ${part('timeZoneName')}` : '';
54
+ return `${part('weekday')} ${part('day')} ${part('month')} ${part('year')}, ${time}${zone}`;
55
+ }
56
+ /**
57
+ * The time the server writes into a message: in the zone the site configured,
58
+ * named, because the reader may be anywhere.
59
+ */
60
+ export function messageDate(at, timeZone) {
61
+ const date = new Date(at);
62
+ return {
63
+ at: date.toISOString(),
64
+ text: formatHumanDate(date, { timeZone: timeZone ?? 'UTC', zoneName: true }),
65
+ };
66
+ }
67
+ /**
68
+ * Rewrites a message's server-written date into the reader's own zone. A
69
+ * message with no date, or whose text no longer contains it, comes back as it
70
+ * was.
71
+ */
72
+ export function localiseMessage(message, date, options = {}) {
73
+ if (!date || !message.includes(date.text))
74
+ return message;
75
+ const at = new Date(date.at);
76
+ if (Number.isNaN(at.getTime()))
77
+ return message;
78
+ return message.split(date.text).join(formatHumanDate(at, options));
79
+ }
80
+ /** `1 block` / `3 blocks`. */
81
+ export function plural(count, singular, pluralForm = `${singular}s`) {
82
+ return `${count} ${count === 1 ? singular : pluralForm}`;
83
+ }
84
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/publishing/messages.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,24 @@ export interface AccessibilityIssue {
27
27
  message: string;
28
28
  severity: 'error' | 'warning';
29
29
  }
30
+ /** What a check may know beyond the document. Everything in it is optional. */
31
+ export interface AccessibilityCheckContext {
32
+ /**
33
+ * The design system's components, by name, when the components plugin is
34
+ * registered — so a check can ask what a block *is* (its contract's
35
+ * `category`) rather than guess from its `blockType`.
36
+ */
37
+ components?: Readonly<Record<string, {
38
+ category?: string | undefined;
39
+ }>> | undefined;
40
+ }
30
41
  export interface AccessibilityCheck {
31
42
  name: string;
32
- run: (doc: Record<string, unknown>, collection: ResolvedCollection) => Promise<AccessibilityIssue[]> | AccessibilityIssue[];
43
+ /**
44
+ * Report each issue's `field` as a path into the document; the pipeline adds
45
+ * where that is in the editor's words, so `message` need not say it.
46
+ */
47
+ run: (doc: Record<string, unknown>, collection: ResolvedCollection, context?: AccessibilityCheckContext) => Promise<AccessibilityIssue[]> | AccessibilityIssue[];
33
48
  }
34
49
  export interface ActiveApproval {
35
50
  id: string;
@@ -67,6 +82,19 @@ export interface PublishingPluginOptions extends BaseCorePluginOptions {
67
82
  * plugin ships a fix. Switch one off here and supply your own.
68
83
  */
69
84
  disableAccessibilityChecks?: string[];
85
+ /**
86
+ * Optional: the `link-targets` step, which refuses a publish whose internal
87
+ * links go to a draft, a document in the trash, or one that has been
88
+ * deleted. On by default; `{ enabled: false }` switches it off.
89
+ *
90
+ * A link is a relationship field marked with `markLinkTarget` (every link
91
+ * the design-system generator builds already is) or an internal link in
92
+ * rich text. A target that is not published but has a scheduled publish
93
+ * time is a warning rather than a block.
94
+ */
95
+ linkTargets?: {
96
+ enabled?: boolean;
97
+ };
70
98
  /** Optional: resolver consulted when a document's policy requires approval. */
71
99
  approvalResolver?: ApprovalResolver;
72
100
  /**
@@ -90,6 +118,23 @@ export interface PublishingPluginOptions extends BaseCorePluginOptions {
90
118
  * `publishDocument`).
91
119
  */
92
120
  adminComponents?: boolean;
121
+ /**
122
+ * Whether a failed Save, Publish or Schedule takes the editor to the first
123
+ * invalid field — switching tab and opening a collapsed row if it must — by
124
+ * an admin provider this plugin registers. Default: `true` (with
125
+ * `adminComponents`). Never after an autosave.
126
+ */
127
+ goToFirstError?: boolean;
128
+ /**
129
+ * The IANA time zone a date is written in when the server writes it into a
130
+ * message — an embargo's end, an expiry: `America/New_York`. Default `UTC`.
131
+ * The zone is always named after the time.
132
+ *
133
+ * The admin shows those dates in each editor's own zone regardless, from the
134
+ * result's `when`; this is what an MCP caller, a log and an audit row read.
135
+ * Set it to the zone the site's editors work in.
136
+ */
137
+ timeZone?: string;
93
138
  /**
94
139
  * Where to put this server's MCP tools so Payload's own MCP plugin can serve
95
140
  * them.
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/publishing/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/publishing/options.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,14 @@ export function validateOptions(options) {
24
24
  if (!options.inngest) {
25
25
  throw new Error('publishingPlugin requires an Inngest client in options.inngest');
26
26
  }
27
+ if (options.timeZone !== undefined) {
28
+ try {
29
+ new Intl.DateTimeFormat('en', { timeZone: options.timeZone });
30
+ }
31
+ catch {
32
+ throw new Error(`publishingPlugin's timeZone "${options.timeZone}" is not an IANA time zone, e.g. "America/New_York".`);
33
+ }
34
+ }
27
35
  for (const collection of options.collections) {
28
36
  const result = PublishableCollectionSchema.safeParse(collection);
29
37
  if (!result.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/publishing/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA2HvB,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACxE,QAAQ,EAAE;CACd,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAgC,EAChC,IAAY;IAEZ,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,sFAAsF,CAC1G,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,QAAQ;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;QAClC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,QAAQ;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;QACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,aAAa;QAC1D,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,oBAAoB;QAC3E,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/publishing/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { PipelineContext, PipelineStepResult } from './types.js';
2
+ /**
3
+ * What every step's result goes through before anyone reads it, so no step has
4
+ * to remember either:
5
+ *
6
+ * - each issue gains `where`, its path in the editor's words;
7
+ * - a `detail` — the setup instruction behind a block no editor can fix — is
8
+ * logged, because the admin will not show it and the person who can act on
9
+ * it reads the log. It stays on the result for an MCP caller.
10
+ */
11
+ export declare function finishStep(context: PipelineContext, name: string, result: PipelineStepResult): PipelineStepResult;
12
+ //# sourceMappingURL=finish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish.d.ts","sourceRoot":"","sources":["../../../src/publishing/pipeline/finish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAGrE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAapB"}
@@ -0,0 +1,24 @@
1
+ import { fieldConfigFor, withWhere } from './where.js';
2
+ /**
3
+ * What every step's result goes through before anyone reads it, so no step has
4
+ * to remember either:
5
+ *
6
+ * - each issue gains `where`, its path in the editor's words;
7
+ * - a `detail` — the setup instruction behind a block no editor can fix — is
8
+ * logged, because the admin will not show it and the person who can act on
9
+ * it reads the log. It stays on the result for an MCP caller.
10
+ */
11
+ export function finishStep(context, name, result) {
12
+ if (result.detail) {
13
+ const logger = context.payload
14
+ .logger;
15
+ logger?.error?.(`[publishing] ${name} blocked ${context.collection.slug}/${context.documentId} (${result.code ?? 'no code'}): ${result.detail}`);
16
+ }
17
+ if (!result.issues || result.issues.length === 0)
18
+ return result;
19
+ return {
20
+ ...result,
21
+ issues: withWhere(result.issues, fieldConfigFor(context), context.document),
22
+ };
23
+ }
24
+ //# sourceMappingURL=finish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish.js","sourceRoot":"","sources":["../../../src/publishing/pipeline/finish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,OAAwB,EACxB,IAAY,EACZ,MAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,MAAM,GAAI,OAAO,CAAC,OAA8D;aACnF,MAAM,CAAA;QACT,MAAM,EAAE,KAAK,EAAE,CACb,gBAAgB,IAAI,YAAY,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,IAAI,SAAS,MAAM,MAAM,CAAC,MAAM,EAAE,CAChI,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAC/D,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;KAC5E,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/publishing/pipeline/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAA;AAoE/E;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAO1F;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAG5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAW5F;AAED,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/publishing/pipeline/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAA;AAqE/E;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAO1F;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAG5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAW5F;AAED,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
@@ -2,14 +2,18 @@ import { existStep } from './steps/exist.js';
2
2
  import { compositionStep } from './steps/composition.js';
3
3
  import { accessibilityStep } from './steps/accessibility.js';
4
4
  import { requiredFieldsStep } from './steps/required-fields.js';
5
+ import { linkTargetsStep } from './steps/link-targets.js';
5
6
  import { embargoStep } from './steps/embargo.js';
6
7
  import { approvalStep } from './steps/approval.js';
7
8
  import { executeStep } from './steps/execute.js';
9
+ import { finishStep } from './finish.js';
8
10
  const PREFLIGHT_STEPS = [
9
11
  { name: 'exist', step: existStep },
10
12
  { name: 'composition', step: compositionStep },
11
13
  { name: 'accessibility', step: accessibilityStep },
12
14
  { name: 'required-fields', step: requiredFieldsStep },
15
+ // The last content check, and the first to read other documents.
16
+ { name: 'link-targets', step: linkTargetsStep },
13
17
  { name: 'embargo', step: embargoStep },
14
18
  { name: 'approval', step: approvalStep },
15
19
  ];
@@ -29,18 +33,15 @@ const ORDERED_STEPS = [
29
33
  * differs between the two callers, and that difference is the only reason there
30
34
  * are still two.
31
35
  *
32
- * One thing worth knowing before adding a step: a warning cannot currently reach
33
- * a *failure* envelope. `execute` is the only step that warns, it runs last, and
34
- * its two failure returns carry none — so `runPublishPipeline` spreading
35
- * warnings onto a failure is unreachable today. It is kept because the moment a
36
- * step both warns and fails, or an earlier step learns to warn, dropping them
37
- * would be silent. That is also why there is no test for it: the pipeline has no
38
- * way to produce the case.
36
+ * A warning can reach a *failure* envelope: `link-targets` warns about a link
37
+ * to a scheduled page and can fail on another link in the same run, and an
38
+ * earlier step's warnings are carried past a later failure. `runPublishPipeline`
39
+ * spreads them onto the failure so neither is dropped silently.
39
40
  */
40
41
  async function runSteps(context, steps) {
41
42
  const warnings = [];
42
43
  for (const { name, step } of steps) {
43
- const result = await step(context);
44
+ const result = finishStep(context, name, await step(context));
44
45
  if (result.warnings)
45
46
  warnings.push(...result.warnings);
46
47
  if (result.pass)
@@ -53,6 +54,8 @@ async function runSteps(context, steps) {
53
54
  ...(result.code ? { code: result.code } : {}),
54
55
  ...(result.issues ? { issues: result.issues } : {}),
55
56
  ...(result.suggestion ? { suggestion: result.suggestion } : {}),
57
+ ...(result.when ? { when: result.when } : {}),
58
+ ...(result.detail ? { detail: result.detail } : {}),
56
59
  },
57
60
  warnings,
58
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/publishing/pipeline/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/publishing/pipeline/index.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import type { PipelineStep } from '../types.js';
2
2
  /**
3
3
  * Runs every built-in accessibility check followed by user-supplied ones.
4
4
  * Errors block publish; warnings don't, and reach the publish result's
5
- * `warnings`, one line each, named by the check that raised them. (The
6
- * built-ins raise none; a site's own checks may.) They used to be dropped
7
- * here, so a check that warned said nothing to anybody.
5
+ * `warnings`, one line each, led by where the problem is. (The built-ins raise
6
+ * none; a site's own checks may.) They used to be dropped here, so a check
7
+ * that warned said nothing to anybody.
8
8
  *
9
9
  * Built-ins named in `disableAccessibilityChecks` are skipped, so a host
10
10
  * whose content shape trips one can replace it rather than wait for a
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAA;AAG9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAiC/B,CAAA"}
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAA;AAK9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAmC/B,CAAA"}
@@ -1,10 +1,13 @@
1
+ import { plural } from '../../messages.js';
1
2
  import { BUILT_IN_ACCESSIBILITY_CHECKS } from '../../checks/index.js';
3
+ import { COMPONENTS_MANIFEST_SYMBOL } from './composition.js';
4
+ import { fieldConfigFor, withWhere } from '../where.js';
2
5
  /**
3
6
  * Runs every built-in accessibility check followed by user-supplied ones.
4
7
  * Errors block publish; warnings don't, and reach the publish result's
5
- * `warnings`, one line each, named by the check that raised them. (The
6
- * built-ins raise none; a site's own checks may.) They used to be dropped
7
- * here, so a check that warned said nothing to anybody.
8
+ * `warnings`, one line each, led by where the problem is. (The built-ins raise
9
+ * none; a site's own checks may.) They used to be dropped here, so a check
10
+ * that warned said nothing to anybody.
8
11
  *
9
12
  * Built-ins named in `disableAccessibilityChecks` are skipped, so a host
10
13
  * whose content shape trips one can replace it rather than wait for a
@@ -16,28 +19,33 @@ export const accessibilityStep = async (ctx) => {
16
19
  ...BUILT_IN_ACCESSIBILITY_CHECKS.filter((check) => !disabled.has(check.name)),
17
20
  ...(ctx.options.accessibilityChecks ?? []),
18
21
  ];
22
+ const context = await checkContext(ctx.payload);
19
23
  const allIssues = [];
20
24
  for (const check of checks) {
21
- const issues = await check.run(ctx.document, ctx.collection);
25
+ const issues = await check.run(ctx.document, ctx.collection, context);
22
26
  for (const issue of issues) {
23
27
  allIssues.push({ ...issue, rule: check.name });
24
28
  }
25
29
  }
26
30
  const errors = allIssues.filter((i) => i.severity === 'error');
27
- const warnings = allIssues
28
- .filter((i) => i.severity === 'warning')
29
- .map((i) => `${i.rule}: ${i.message}${i.field ? ` (${i.field})` : ''}`);
31
+ const warnings = withWhere(allIssues.filter((i) => i.severity === 'warning'), fieldConfigFor(ctx), ctx.document).map((i) => `${i.where ? `${i.where}: ` : ''}${i.message}`);
30
32
  const carried = warnings.length ? { warnings } : {};
31
33
  if (errors.length > 0) {
32
34
  return {
33
35
  ...carried,
34
36
  pass: false,
35
37
  code: 'accessibility-errors',
36
- reason: `${errors.length} accessibility issue${errors.length === 1 ? '' : 's'}`,
38
+ // No suggestion: each issue already says what to do about itself.
39
+ reason: `${plural(errors.length, 'thing')} to fix so everyone can use this page.`,
37
40
  issues: errors,
38
- suggestion: 'Every image needs alt text. Every link needs a label. Heading levels must not skip. Fix these before publishing.',
39
41
  };
40
42
  }
41
43
  return { pass: true, ...carried };
42
44
  };
45
+ async function checkContext(payload) {
46
+ const manifest = payload[COMPONENTS_MANIFEST_SYMBOL];
47
+ if (!manifest)
48
+ return {};
49
+ return { components: (await manifest()).components };
50
+ }
43
51
  //# sourceMappingURL=accessibility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAErE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAiB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG;QACb,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;KAC3C,CAAA;IAED,MAAM,SAAS,GAAoB,EAAE,CAAA;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,SAAS;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,OAAO;YACV,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,uBAAuB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,UAAU,EACR,kHAAkH;SACrH,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAiB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG;QACb,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;KAC3C,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAoB,EAAE,CAAA;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,SAAS,CACxB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EACjD,cAAc,CAAC,GAAG,CAAC,EACnB,GAAG,CAAC,QAAQ,CACb,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,OAAO;YACV,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,sBAAsB;YAC5B,kEAAkE;YAClE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wCAAwC;YACjF,MAAM,EAAE,MAAM;SACf,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;AACnC,CAAC,CAAA;AAED,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,MAAM,QAAQ,GAAI,OAAmC,CAAC,0BAA0B,CAEnE,CAAA;IACb,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAA;AACtD,CAAC"}