@riverbankcms/sdk 0.147.0 → 0.149.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DtpB3_sS.mjs → PreviewEditorSidebar-DBKln68M.mjs} +301 -205
  4. package/dist/{PreviewEditorUI-DxTLgaHo.mjs → PreviewEditorUI-DpRX4Mum.mjs} +68 -63
  5. package/dist/{PreviewQueryProvider-Dd4dxOiU.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
  6. package/dist/{SdkPreviewModeRuntime-DMMNCngt.mjs → SdkPreviewModeRuntime-DJPmPY-r.mjs} +1247 -541
  7. package/dist/{SiteChromeCustomizeContext-DQXZXiqS.mjs → SiteChromeCustomizeContext-JYA0cJ_Z.mjs} +209720 -204978
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +0 -33
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +0 -3
  10. package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
  11. package/dist/_dts/api/src/accountApi.d.ts +1 -1
  12. package/dist/_dts/api/src/admin.d.ts +22 -22
  13. package/dist/_dts/api/src/aiPatch.d.ts +2 -2
  14. package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
  15. package/dist/_dts/api/src/analytics.d.ts +2 -2
  16. package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
  17. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  18. package/dist/_dts/api/src/auth.d.ts +10 -10
  19. package/dist/_dts/api/src/availability.d.ts +6 -6
  20. package/dist/_dts/api/src/billing.d.ts +42 -15
  21. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
  22. package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
  23. package/dist/_dts/api/src/blocks.d.ts +15 -14
  24. package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
  25. package/dist/_dts/api/src/bookingConfig.d.ts +33 -50
  26. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
  27. package/dist/_dts/api/src/bookingOperations.d.ts +9 -11
  28. package/dist/_dts/api/src/bookingRecords.d.ts +16 -11
  29. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
  30. package/dist/_dts/api/src/bookings.d.ts +7 -7
  31. package/dist/_dts/api/src/calendar.d.ts +9 -9
  32. package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
  33. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -8
  34. package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
  35. package/dist/_dts/api/src/common/envelope.d.ts +2 -2
  36. package/dist/_dts/api/src/content-editor.d.ts +2 -2
  37. package/dist/_dts/api/src/contentEntries.d.ts +17 -48
  38. package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
  39. package/dist/_dts/api/src/contentTypes.d.ts +11 -11
  40. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
  41. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
  42. package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
  43. package/dist/_dts/api/src/domains.d.ts +16 -16
  44. package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
  45. package/dist/_dts/api/src/emailSettings.d.ts +4 -4
  46. package/dist/_dts/api/src/endpoints.d.ts +135 -51
  47. package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
  48. package/dist/_dts/api/src/eventManagementContracts.d.ts +29 -7
  49. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +0 -8
  50. package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
  51. package/dist/_dts/api/src/footerSettings.d.ts +6 -6
  52. package/dist/_dts/api/src/index.d.ts +8 -7
  53. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  54. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  55. package/dist/_dts/api/src/navigation.d.ts +5 -5
  56. package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
  57. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
  58. package/dist/_dts/api/src/pages.d.ts +7 -7
  59. package/dist/_dts/api/src/performance.d.ts +1 -1
  60. package/dist/_dts/api/src/public/index.d.ts +1 -1
  61. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +4 -2
  62. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +6 -29
  63. package/dist/_dts/api/src/redirects.d.ts +3 -3
  64. package/dist/_dts/api/src/request.d.ts +11 -2
  65. package/dist/_dts/api/src/resources.d.ts +4 -4
  66. package/dist/_dts/api/src/routes.d.ts +8 -3
  67. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -2
  68. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
  69. package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
  70. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
  71. package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
  72. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
  73. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +9 -2
  74. package/dist/_dts/api/src/seo.d.ts +4 -4
  75. package/dist/_dts/api/src/services.d.ts +4 -4
  76. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -8
  77. package/dist/_dts/api/src/siteMembers.d.ts +10 -10
  78. package/dist/_dts/api/src/siteOnboarding.d.ts +14 -0
  79. package/dist/_dts/api/src/siteOperations.d.ts +6 -2
  80. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
  81. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
  82. package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
  83. package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
  84. package/dist/_dts/billing/src/components/index.d.ts +25 -40
  85. package/dist/_dts/billing/src/membership/index.d.ts +1 -3
  86. package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
  87. package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
  88. package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
  89. package/dist/_dts/billing/src/plans/types.d.ts +5 -15
  90. package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
  91. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
  92. package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
  93. package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
  94. package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
  95. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
  96. package/dist/_dts/blocks/src/client/events.d.ts +3 -0
  97. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  98. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
  99. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +54 -14
  100. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +4 -13
  101. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
  102. package/dist/_dts/blocks/src/portal/types.d.ts +9 -8
  103. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
  104. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
  105. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +28 -28
  106. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  107. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
  108. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  109. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
  110. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
  111. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  112. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -2
  113. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
  114. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +6 -0
  115. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
  116. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
  117. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
  118. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +72 -12
  119. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +36 -6
  120. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
  121. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +3 -0
  122. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
  123. package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
  124. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +3 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +9 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
  129. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +17 -2
  130. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +1 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
  134. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
  136. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  137. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -1
  140. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -0
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -5
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -5
  145. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
  146. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
  147. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
  148. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
  149. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -29
  151. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
  152. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
  153. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +54 -6
  154. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
  155. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
  156. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
  157. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  158. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
  159. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
  160. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
  161. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
  162. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  163. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
  164. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
  165. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +2 -2
  166. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
  167. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  168. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -3
  169. package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
  170. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
  171. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
  172. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
  173. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +3 -1
  174. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
  175. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
  176. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
  177. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
  178. package/dist/_dts/commerce/src/purchase/types.d.ts +2 -1
  179. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
  180. package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
  181. package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
  182. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
  183. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
  184. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
  185. package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
  186. package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
  187. package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
  188. package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
  189. package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
  190. package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
  191. package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
  192. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
  193. package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
  194. package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
  195. package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
  196. package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
  197. package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
  198. package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
  199. package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
  200. package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
  201. package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
  202. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
  203. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
  204. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
  205. package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
  206. package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
  207. package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
  208. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
  209. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
  210. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
  211. package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
  212. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
  213. package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
  214. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
  215. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
  216. package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
  217. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
  218. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
  219. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
  220. package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
  221. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
  222. package/dist/_dts/content-editor/src/index.d.ts +26 -7
  223. package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
  224. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
  225. package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
  226. package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
  227. package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
  228. package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
  229. package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
  230. package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
  231. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
  232. package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
  233. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
  234. package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
  235. package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
  236. package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
  237. package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
  238. package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
  239. package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
  240. package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
  241. package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
  242. package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
  243. package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
  244. package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
  245. package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
  246. package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
  247. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
  248. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
  249. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
  250. package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
  251. package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
  252. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
  253. package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
  254. package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
  255. package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
  256. package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
  257. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
  258. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
  259. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
  260. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
  261. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
  262. package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
  263. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  264. package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
  265. package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
  266. package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
  267. package/dist/_dts/content-model/src/types.d.ts +0 -1
  268. package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
  269. package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
  270. package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
  271. package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
  272. package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
  273. package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
  274. package/dist/_dts/core/src/branded.d.ts +15 -0
  275. package/dist/_dts/core/src/currency-format.d.ts +8 -2
  276. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
  277. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
  278. package/dist/_dts/core/src/edit-lease.d.ts +60 -0
  279. package/dist/_dts/core/src/editor-state.d.ts +38 -13
  280. package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
  281. package/dist/_dts/core/src/html-entities.d.ts +6 -0
  282. package/dist/_dts/core/src/index.d.ts +7 -0
  283. package/dist/_dts/core/src/uuid.d.ts +7 -5
  284. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +456 -189
  285. package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
  286. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
  287. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
  288. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
  289. package/dist/_dts/editor/src/index.d.ts +1 -1
  290. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
  291. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
  292. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  293. package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
  294. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
  295. package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
  296. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
  297. package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
  298. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
  299. package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
  300. package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
  301. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
  302. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
  303. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
  304. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
  305. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
  306. package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
  307. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
  308. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
  309. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
  310. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
  311. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
  312. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
  313. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
  314. package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
  315. package/dist/_dts/media-editor/src/context.d.ts +1 -1
  316. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
  317. package/dist/_dts/media-editor/src/index.d.ts +2 -0
  318. package/dist/_dts/media-editor/src/provider.d.ts +3 -2
  319. package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
  320. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
  321. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
  322. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +6 -3
  323. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
  324. package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
  325. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
  326. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
  327. package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
  328. package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
  329. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  330. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  331. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  332. package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
  333. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  334. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +23 -14
  335. package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
  336. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
  337. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  338. package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
  339. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
  340. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
  341. package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
  342. package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
  343. package/dist/_dts/preview-next/src/constants.d.ts +4 -0
  344. package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
  345. package/dist/_dts/realtime/src/client.d.ts +3 -0
  346. package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
  347. package/dist/_dts/realtime/src/drafts.d.ts +210 -0
  348. package/dist/_dts/realtime/src/index.d.ts +3 -0
  349. package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
  350. package/dist/_dts/realtime/src/types.d.ts +113 -0
  351. package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
  352. package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
  353. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
  354. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  355. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +1 -0
  356. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +2 -0
  357. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
  358. package/dist/_dts/sdk/src/version.d.ts +1 -1
  359. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  360. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  361. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
  362. package/dist/_dts/ui/src/color-picker.d.ts +1 -1
  363. package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
  364. package/dist/client/{BookingMailingListNote-1n4Ch_u_.mjs → BookingMailingListNote-Cr3EeTP5.mjs} +504 -163
  365. package/dist/client/DemoBookingPortalAccess-BFGB1Fay.mjs +344 -0
  366. package/dist/client/{EventCombined.client-C0pgma9y.mjs → EventCombined.client-DKYV0_ft.mjs} +6 -6
  367. package/dist/client/{EventListing.client-4fhLOvHP.mjs → EventListing.client-B9UIcEYc.mjs} +2 -2
  368. package/dist/client/{LeafletStaticMap-DScC4F3w.mjs → LeafletStaticMap-CFLPkP0K.mjs} +1 -1
  369. package/dist/client/{TerminalPanel-B5ZUsYhe.mjs → TerminalPanel-JjmgxEsR.mjs} +1 -1
  370. package/dist/client/{ThemedButton-DoVIV1Ao.mjs → ThemedButton-CKV1Jh2m.mjs} +1 -1
  371. package/dist/client/{accordion-CoT5g7zo.mjs → accordion-DXWIfT3T.mjs} +1 -1
  372. package/dist/client/{bookingForm-BWxB46xD.mjs → bookingForm-CjZgHNvv.mjs} +216 -63
  373. package/dist/client/bookings.mjs +1187 -692
  374. package/dist/client/{carousel-DtNYWFd3.mjs → carousel-DSLikmvZ.mjs} +1 -1
  375. package/dist/client/{cart-z4qZih1Y.mjs → cart-HDjWReFt.mjs} +3 -3
  376. package/dist/client/{checkout-DpL7euFH.mjs → checkout-CUvRZA3W.mjs} +3 -3
  377. package/dist/client/{checkoutUrls-BEfR7kVu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
  378. package/dist/client/client.mjs +2711 -1684
  379. package/dist/client/{context-C8TinPJc.mjs → context-DFmaZa-Q.mjs} +4 -3
  380. package/dist/client/{dates-vwwxTeB0.mjs → dates-BBep1JnF.mjs} +56 -11
  381. package/dist/client/{eventCalendar-DIbHfJXO.mjs → eventCalendar-zEobhxo4.mjs} +9 -9
  382. package/dist/client/{eventCombined-DoGMJ6cg.mjs → eventCombined-Dp7bz5k-.mjs} +4 -4
  383. package/dist/client/{eventDetails-BjN9v6a1.mjs → eventDetails-FE-zqTt7.mjs} +4 -4
  384. package/dist/client/{eventListing-DajjWgOv.mjs → eventListing-BMt5snal.mjs} +4 -4
  385. package/dist/client/{eventRegistration-DMq9gMA-.mjs → eventRegistration-O6ZxHfOb.mjs} +422 -570
  386. package/dist/client/{form-Qf6qTbos.mjs → form-DFa1D8vt.mjs} +3 -3
  387. package/dist/client/{headerSection-D7qJrqFX.mjs → headerSection-CmjHLR-N.mjs} +3 -3
  388. package/dist/client/hooks.mjs +414 -182
  389. package/dist/client/{locationMap-CCF9-t_0.mjs → locationMap-BXKP_lGh.mjs} +3 -3
  390. package/dist/client/{media-CwBGetqC.mjs → media-Cl38iOMI.mjs} +10 -3
  391. package/dist/client/{newsletterForm-DzCLSP4S.mjs → newsletterForm-CU-HmxGx.mjs} +3 -3
  392. package/dist/client/{pricing-Cgxv2KLC.mjs → pricing-KEAEsibq.mjs} +1 -1
  393. package/dist/client/{productDetail-ru9w5GHx.mjs → productDetail-Ckp7MGnt.mjs} +3 -3
  394. package/dist/client/{productList-zaapKSl-.mjs → productList-D91V0sYa.mjs} +3 -3
  395. package/dist/client/{propsDecoder-CwvvNOHx.mjs → propsDecoder-DZd6RJeA.mjs} +244 -94
  396. package/dist/client/rendering/client.mjs +2656 -1705
  397. package/dist/client/rendering/islands.mjs +18 -18
  398. package/dist/client/rendering.mjs +3430 -2352
  399. package/dist/client/{routeIslandApiConfig-BwVFo0Y4.mjs → routeIslandApiConfig-E1EkhhYY.mjs} +1 -1
  400. package/dist/client/{shop-mktkXvbV.mjs → shop-4F2jLQPI.mjs} +131 -85
  401. package/dist/client/{shop-commerce-De7gEnkA.mjs → shop-commerce-BbfCJjB3.mjs} +25 -13
  402. package/dist/client/{shop-commerce-store-B3MCxIBW.mjs → shop-commerce-store-vicweP2K.mjs} +1 -1
  403. package/dist/client/{shopShared-TqExh235.mjs → shopShared-DlONJt0T.mjs} +4 -4
  404. package/dist/client/{useEventFilters-n_OjkIjX.mjs → useEventFilters-COYyL3m7.mjs} +32 -17
  405. package/dist/preview-next/before-render.mjs +207 -105
  406. package/dist/preview-next/client/runtime.mjs +4 -4
  407. package/dist/preview-next/constants.mjs +5 -1
  408. package/dist/preview-next/index.mjs +5 -1
  409. package/dist/preview-next/keepAlive.mjs +341 -165
  410. package/dist/preview-next/middleware.mjs +207 -105
  411. package/dist/{previewAuthStore-C_EHQ5XA.mjs → previewAuthStore-BBmV7UsW.mjs} +243 -112
  412. package/dist/{sdk-runtime-BIkJg5y1.mjs → sdk-runtime-CwvFFjB-.mjs} +2 -2
  413. package/dist/{separator-C9qDP95Z.mjs → separator-ByL72zUT.mjs} +1 -1
  414. package/dist/server/components.mjs +1839 -1475
  415. package/dist/server/config-validation.mjs +381 -166
  416. package/dist/server/config.mjs +381 -166
  417. package/dist/server/data.mjs +381 -166
  418. package/dist/server/index.mjs +214 -110
  419. package/dist/server/next.mjs +663 -351
  420. package/dist/server/page-converter.mjs +198 -79
  421. package/dist/server/prebuild.mjs +1 -1
  422. package/dist/server/rendering/server.mjs +1536 -1169
  423. package/dist/server/rendering.mjs +2432 -2068
  424. package/dist/server/routing.mjs +456 -173
  425. package/dist/server/server.mjs +447 -267
  426. package/package.json +1 -1
  427. package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
  428. package/dist/_dts/billing/src/plans/display.d.ts +0 -15
  429. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +0 -3
  430. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
  431. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
  432. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
  433. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
  434. package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
  435. package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
  436. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
  437. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
  438. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
  439. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
  440. package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
  441. package/dist/_dts/content-editor/src/types.d.ts +0 -44
  442. package/dist/client/DiscountCodeDisclosure-CKJtz0mY.mjs +0 -137
@@ -30,11 +30,6 @@ function setPreviewAuthCookies(res, { accessToken, refreshToken }, options) {
30
30
  if (refreshToken) setPreviewRefreshCookie(res, refreshToken, options);
31
31
  return res;
32
32
  }
33
- function clearPreviewCookies(res) {
34
- res.cookies.delete(PREVIEW_COOKIE_NAME);
35
- res.cookies.delete(PREVIEW_REFRESH_COOKIE_NAME);
36
- return res;
37
- }
38
33
  //#endregion
39
34
  //#region ../preview-next/src/jwt.ts
40
35
  function base64UrlDecodeToString(value) {
@@ -1641,6 +1636,7 @@ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1641
1636
  responseKind: "json",
1642
1637
  errors: [
1643
1638
  "resource:not_found",
1639
+ "validation:invalid_input",
1644
1640
  "resource:conflict",
1645
1641
  "server:internal_error"
1646
1642
  ]
@@ -2145,28 +2141,6 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2145
2141
  "resource:conflict",
2146
2142
  "server:internal_error"
2147
2143
  ]
2148
- },
2149
- /**
2150
- * The Content tab's one write: the short introduction, image and
2151
- * description of an event's page, published without its layout.
2152
- */
2153
- saveEventPageWords: {
2154
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
2155
- method: "PUT",
2156
- tags: [
2157
- TAG_TEMPLATES.siteCollection,
2158
- TAG_TEMPLATES.siteRoutableContent,
2159
- TAG_TEMPLATES.pageSurfaceById
2160
- ],
2161
- auth: "user",
2162
- responseKind: "json",
2163
- errors: [
2164
- "auth:forbidden",
2165
- "validation:invalid_input",
2166
- "resource:not_found",
2167
- "resource:conflict",
2168
- "server:internal_error"
2169
- ]
2170
2144
  }
2171
2145
  });
2172
2146
  //#endregion
@@ -2591,6 +2565,15 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2591
2565
  auth: "user",
2592
2566
  responseKind: "json"
2593
2567
  },
2568
+ /** Continue on Free from the onboarding card page; only the attempt's owner. */
2569
+ continueOnboardingOnFree: {
2570
+ path: "/onboarding/attempts/{attemptToken}/plan/free",
2571
+ method: "POST",
2572
+ tags: ["billing"],
2573
+ auth: "user",
2574
+ errors: [],
2575
+ responseKind: "json"
2576
+ },
2594
2577
  createBillingPortalSession: {
2595
2578
  path: "/billing/portal/session",
2596
2579
  method: "POST",
@@ -2600,6 +2583,161 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2600
2583
  }
2601
2584
  });
2602
2585
  //#endregion
2586
+ //#region ../api/src/editLeaseEndpoints.ts
2587
+ const path = "/sites/{siteId}/edit-leases/{nodeType}/{nodeId}";
2588
+ const lifecycleErrors = [
2589
+ "auth:lease_required",
2590
+ "auth:forbidden",
2591
+ "resource:not_found",
2592
+ "validation:invalid_input",
2593
+ "server:internal_error"
2594
+ ];
2595
+ const EDIT_LEASE_ENDPOINT_DEFINITIONS = {
2596
+ readEditLease: {
2597
+ path,
2598
+ method: "GET",
2599
+ editLease: "lifecycle",
2600
+ errors: lifecycleErrors,
2601
+ auth: "user",
2602
+ responseKind: "json"
2603
+ },
2604
+ acquireEditLease: {
2605
+ path,
2606
+ method: "POST",
2607
+ editLease: "lifecycle",
2608
+ errors: lifecycleErrors,
2609
+ auth: "user",
2610
+ responseKind: "json"
2611
+ },
2612
+ takeOverEditLease: {
2613
+ path,
2614
+ method: "PUT",
2615
+ editLease: "lifecycle",
2616
+ errors: lifecycleErrors,
2617
+ auth: "user",
2618
+ responseKind: "json"
2619
+ },
2620
+ heartbeatEditLease: {
2621
+ path,
2622
+ method: "PATCH",
2623
+ editLease: "lifecycle",
2624
+ errors: [...lifecycleErrors, "auth:lease_lost"],
2625
+ auth: "user",
2626
+ responseKind: "json"
2627
+ },
2628
+ releaseEditLease: {
2629
+ path,
2630
+ method: "DELETE",
2631
+ editLease: "lifecycle",
2632
+ errors: lifecycleErrors,
2633
+ auth: "user",
2634
+ responseKind: "json"
2635
+ }
2636
+ };
2637
+ //#endregion
2638
+ //#region ../api/src/pageSurfaceEditorEndpoints.ts
2639
+ const surfaceTags = [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById];
2640
+ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
2641
+ getPageSurfaceEditorDocument: {
2642
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
2643
+ method: "GET",
2644
+ errors: [
2645
+ "auth:forbidden",
2646
+ "validation:invalid_input",
2647
+ "resource:not_found",
2648
+ "resource:conflict",
2649
+ "server:internal_error"
2650
+ ],
2651
+ tags: surfaceTags,
2652
+ auth: "user",
2653
+ responseKind: "json"
2654
+ },
2655
+ updatePageSurfaceDraftContent: {
2656
+ editLease: "managed",
2657
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
2658
+ method: "PUT",
2659
+ errors: [
2660
+ "validation:invalid_input",
2661
+ "resource:not_found",
2662
+ "resource:conflict",
2663
+ "server:internal_error"
2664
+ ],
2665
+ tags: surfaceTags,
2666
+ auth: "user",
2667
+ responseKind: "json"
2668
+ },
2669
+ discardPageSurfaceDraftContent: {
2670
+ editLease: "managed",
2671
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
2672
+ method: "DELETE",
2673
+ errors: [
2674
+ "validation:invalid_input",
2675
+ "resource:not_found",
2676
+ "resource:conflict",
2677
+ "server:internal_error"
2678
+ ],
2679
+ tags: surfaceTags,
2680
+ auth: "user",
2681
+ responseKind: "json"
2682
+ },
2683
+ updatePageSurfaceRouteMetadata: {
2684
+ editLease: "managed",
2685
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
2686
+ method: "PATCH",
2687
+ errors: [
2688
+ "validation:invalid_input",
2689
+ "resource:not_found",
2690
+ "resource:conflict",
2691
+ "server:internal_error"
2692
+ ],
2693
+ tags: [
2694
+ TAG_TEMPLATES.siteCollection,
2695
+ TAG_TEMPLATES.siteRoutableContent,
2696
+ TAG_TEMPLATES.pageSurfaceById
2697
+ ],
2698
+ auth: "user",
2699
+ responseKind: "json"
2700
+ },
2701
+ publishPageSurface: {
2702
+ editLease: "managed",
2703
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/publication",
2704
+ method: "POST",
2705
+ errors: [
2706
+ "auth:forbidden",
2707
+ "validation:invalid_input",
2708
+ "resource:not_found",
2709
+ "resource:conflict",
2710
+ "server:internal_error"
2711
+ ],
2712
+ tags: [
2713
+ TAG_TEMPLATES.siteCollection,
2714
+ TAG_TEMPLATES.siteRoutableContent,
2715
+ TAG_TEMPLATES.pageSurfaceById
2716
+ ],
2717
+ auth: "user",
2718
+ responseKind: "json"
2719
+ },
2720
+ saveEventContentTab: {
2721
+ editLease: "managed",
2722
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/event-content",
2723
+ method: "PUT",
2724
+ errors: [
2725
+ "auth:forbidden",
2726
+ "validation:invalid_input",
2727
+ "resource:not_found",
2728
+ "resource:conflict",
2729
+ "server:internal_error"
2730
+ ],
2731
+ tags: [
2732
+ TAG_TEMPLATES.siteCollection,
2733
+ TAG_TEMPLATES.siteRoutableContent,
2734
+ TAG_TEMPLATES.pageSurfaceById
2735
+ ],
2736
+ auth: "user",
2737
+ responseKind: "json"
2738
+ }
2739
+ };
2740
+ //#endregion
2603
2741
  //#region ../api/src/bookingPeopleEndpointDefinitions.ts
2604
2742
  /**
2605
2743
  * People endpoints (#1356): the People list, its CSV export, and deleting a
@@ -2663,7 +2801,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
2663
2801
  stack: 8e3,
2664
2802
  digest: 128,
2665
2803
  componentStack: 8e3,
2666
- sourceLocation: 1024
2804
+ sourceLocation: 1024,
2805
+ navigationAgeMs: 6e4
2667
2806
  };
2668
2807
  const clientErrorEventSchema = z.enum([
2669
2808
  "dashboard:route-error",
@@ -2680,7 +2819,17 @@ z.object({
2680
2819
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
2681
2820
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
2682
2821
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
2683
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
2822
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
2823
+ navigation: z.object({
2824
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
2825
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
2826
+ type: z.enum([
2827
+ "push",
2828
+ "replace",
2829
+ "traverse"
2830
+ ]),
2831
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
2832
+ }).strict().nullable().optional()
2684
2833
  }).strict();
2685
2834
  const API_ENDPOINTS = {
2686
2835
  ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
@@ -2692,6 +2841,8 @@ const API_ENDPOINTS = {
2692
2841
  ...GIFTING_ENDPOINT_DEFINITIONS,
2693
2842
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
2694
2843
  ...BILLING_ENDPOINT_DEFINITIONS,
2844
+ ...EDIT_LEASE_ENDPOINT_DEFINITIONS,
2845
+ ...PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS,
2695
2846
  ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS,
2696
2847
  aiContentUpdateChat: {
2697
2848
  path: "/ai/content-update-chat",
@@ -2713,6 +2864,7 @@ const API_ENDPOINTS = {
2713
2864
  responseKind: "json"
2714
2865
  },
2715
2866
  aiDesignerPageOpsApply: {
2867
+ editLease: "managed",
2716
2868
  path: "/sites/{siteId}/ai/designer/page/apply",
2717
2869
  method: "POST",
2718
2870
  tags: [TAG_TEMPLATES.siteCollection],
@@ -3547,6 +3699,7 @@ const API_ENDPOINTS = {
3547
3699
  responseKind: "json"
3548
3700
  },
3549
3701
  restoreContentEntryVersion: {
3702
+ editLease: "managed",
3550
3703
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}/restore",
3551
3704
  method: "POST",
3552
3705
  errors: [
@@ -3564,6 +3717,7 @@ const API_ENDPOINTS = {
3564
3717
  responseKind: "json"
3565
3718
  },
3566
3719
  updateContentEntryContent: {
3720
+ editLease: "managed",
3567
3721
  path: "/sites/{siteId}/content/{type}/{entryId}/content",
3568
3722
  method: "PUT",
3569
3723
  tags: [
@@ -3580,67 +3734,6 @@ const API_ENDPOINTS = {
3580
3734
  ],
3581
3735
  responseKind: "json"
3582
3736
  },
3583
- updatePageSurfaceDraftContent: {
3584
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content",
3585
- method: "PUT",
3586
- errors: [
3587
- "validation:invalid_input",
3588
- "resource:not_found",
3589
- "resource:conflict",
3590
- "server:internal_error"
3591
- ],
3592
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById],
3593
- auth: "user",
3594
- responseKind: "json"
3595
- },
3596
- discardPageSurfaceDraftContent: {
3597
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/content/draft",
3598
- method: "DELETE",
3599
- errors: [
3600
- "validation:invalid_input",
3601
- "resource:not_found",
3602
- "resource:conflict",
3603
- "server:internal_error"
3604
- ],
3605
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById],
3606
- auth: "user",
3607
- responseKind: "json"
3608
- },
3609
- updatePageSurfaceRouteMetadata: {
3610
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/metadata",
3611
- method: "PATCH",
3612
- errors: [
3613
- "validation:invalid_input",
3614
- "resource:not_found",
3615
- "resource:conflict",
3616
- "server:internal_error"
3617
- ],
3618
- tags: [
3619
- TAG_TEMPLATES.siteCollection,
3620
- TAG_TEMPLATES.siteRoutableContent,
3621
- TAG_TEMPLATES.pageSurfaceById
3622
- ],
3623
- auth: "user",
3624
- responseKind: "json"
3625
- },
3626
- publishPageSurface: {
3627
- path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/publication",
3628
- method: "POST",
3629
- errors: [
3630
- "auth:forbidden",
3631
- "validation:invalid_input",
3632
- "resource:not_found",
3633
- "resource:conflict",
3634
- "server:internal_error"
3635
- ],
3636
- tags: [
3637
- TAG_TEMPLATES.siteCollection,
3638
- TAG_TEMPLATES.siteRoutableContent,
3639
- TAG_TEMPLATES.pageSurfaceById
3640
- ],
3641
- auth: "user",
3642
- responseKind: "json"
3643
- },
3644
3737
  runSdkWorkflow: {
3645
3738
  path: "/sites/{siteId}/content/{type}/{entryId}/workflows/{workflowId}/run",
3646
3739
  method: "POST",
@@ -3677,6 +3770,7 @@ const API_ENDPOINTS = {
3677
3770
  responseKind: "json"
3678
3771
  },
3679
3772
  updateRouteMetadata: {
3773
+ editLease: "managed",
3680
3774
  path: "/sites/{siteId}/routes/{routeId}/metadata",
3681
3775
  method: "PATCH",
3682
3776
  tags: [
@@ -3694,6 +3788,7 @@ const API_ENDPOINTS = {
3694
3788
  responseKind: "json"
3695
3789
  },
3696
3790
  publishContentEntry: {
3791
+ editLease: "managed",
3697
3792
  path: "/sites/{siteId}/content/{type}/{entryId}/publish",
3698
3793
  method: "POST",
3699
3794
  tags: [
@@ -3705,6 +3800,7 @@ const API_ENDPOINTS = {
3705
3800
  responseKind: "json"
3706
3801
  },
3707
3802
  scheduleContentEntry: {
3803
+ editLease: "managed",
3708
3804
  path: "/sites/{siteId}/content/{type}/{entryId}/schedule",
3709
3805
  method: "POST",
3710
3806
  tags: [
@@ -3722,6 +3818,7 @@ const API_ENDPOINTS = {
3722
3818
  responseKind: "json"
3723
3819
  },
3724
3820
  cancelScheduledContentEntry: {
3821
+ editLease: "managed",
3725
3822
  path: "/sites/{siteId}/content/{type}/{entryId}/schedule",
3726
3823
  method: "DELETE",
3727
3824
  tags: [
@@ -3739,6 +3836,7 @@ const API_ENDPOINTS = {
3739
3836
  responseKind: "json"
3740
3837
  },
3741
3838
  discardContentEntry: {
3839
+ editLease: "managed",
3742
3840
  path: "/sites/{siteId}/content/{type}/{entryId}/discard",
3743
3841
  method: "POST",
3744
3842
  tags: [
@@ -3757,6 +3855,7 @@ const API_ENDPOINTS = {
3757
3855
  responseKind: "json"
3758
3856
  },
3759
3857
  unpublishContentEntry: {
3858
+ editLease: "managed",
3760
3859
  path: "/sites/{siteId}/content/{type}/{entryId}/unpublish",
3761
3860
  method: "POST",
3762
3861
  tags: [
@@ -3798,6 +3897,7 @@ const API_ENDPOINTS = {
3798
3897
  responseKind: "json"
3799
3898
  },
3800
3899
  deleteContentEntry: {
3900
+ editLease: "managed",
3801
3901
  path: "/sites/{siteId}/content/{type}/{entryId}",
3802
3902
  method: "DELETE",
3803
3903
  tags: [
@@ -5007,6 +5107,7 @@ const API_ENDPOINTS = {
5007
5107
  responseKind: "json"
5008
5108
  },
5009
5109
  saveBlockContent: {
5110
+ editLease: "owner-derived",
5010
5111
  path: "/blocks/{blockId}/content",
5011
5112
  method: "POST",
5012
5113
  tags: [
@@ -5044,6 +5145,7 @@ const API_ENDPOINTS = {
5044
5145
  errors: ["resource:not_found", "resource:conflict"]
5045
5146
  },
5046
5147
  createEntrySlotBlock: {
5148
+ editLease: "managed",
5047
5149
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
5048
5150
  method: "POST",
5049
5151
  tags: [
@@ -5061,6 +5163,7 @@ const API_ENDPOINTS = {
5061
5163
  ]
5062
5164
  },
5063
5165
  reorderEntrySlotBlocks: {
5166
+ editLease: "managed",
5064
5167
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
5065
5168
  method: "POST",
5066
5169
  tags: [
@@ -5078,6 +5181,7 @@ const API_ENDPOINTS = {
5078
5181
  ]
5079
5182
  },
5080
5183
  deleteEntrySlotBlock: {
5184
+ editLease: "managed",
5081
5185
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
5082
5186
  method: "DELETE",
5083
5187
  tags: [
@@ -5108,6 +5212,7 @@ const API_ENDPOINTS = {
5108
5212
  ]
5109
5213
  },
5110
5214
  createPageSurfaceSlotBlock: {
5215
+ editLease: "managed",
5111
5216
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks",
5112
5217
  method: "POST",
5113
5218
  tags: [
@@ -5126,6 +5231,7 @@ const API_ENDPOINTS = {
5126
5231
  ]
5127
5232
  },
5128
5233
  reorderPageSurfaceSlotBlocks: {
5234
+ editLease: "managed",
5129
5235
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks/reorder",
5130
5236
  method: "POST",
5131
5237
  tags: [
@@ -5144,6 +5250,7 @@ const API_ENDPOINTS = {
5144
5250
  ]
5145
5251
  },
5146
5252
  deletePageSurfaceSlotBlock: {
5253
+ editLease: "managed",
5147
5254
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots/{slotKey}/blocks/{blockId}",
5148
5255
  method: "DELETE",
5149
5256
  tags: [
@@ -5161,6 +5268,7 @@ const API_ENDPOINTS = {
5161
5268
  ]
5162
5269
  },
5163
5270
  createBlock: {
5271
+ editLease: "managed",
5164
5272
  path: "/sites/{siteId}/pages/{pageId}/blocks",
5165
5273
  method: "POST",
5166
5274
  tags: [
@@ -5172,6 +5280,7 @@ const API_ENDPOINTS = {
5172
5280
  responseKind: "json"
5173
5281
  },
5174
5282
  reorderBlocks: {
5283
+ editLease: "managed",
5175
5284
  path: "/sites/{siteId}/pages/{pageId}/blocks/reorder",
5176
5285
  method: "POST",
5177
5286
  tags: [
@@ -5183,6 +5292,7 @@ const API_ENDPOINTS = {
5183
5292
  responseKind: "json"
5184
5293
  },
5185
5294
  deleteBlock: {
5295
+ editLease: "managed",
5186
5296
  path: "/sites/{siteId}/pages/{pageId}/blocks/{blockId}",
5187
5297
  method: "DELETE",
5188
5298
  tags: [
@@ -5228,6 +5338,7 @@ const API_ENDPOINTS = {
5228
5338
  responseKind: "json"
5229
5339
  },
5230
5340
  publishPageDraft: {
5341
+ editLease: "managed",
5231
5342
  path: "/sites/{siteId}/pages/{pageId}/publish",
5232
5343
  method: "POST",
5233
5344
  tags: [TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById],
@@ -5235,6 +5346,7 @@ const API_ENDPOINTS = {
5235
5346
  responseKind: "json"
5236
5347
  },
5237
5348
  discardPageDraft: {
5349
+ editLease: "managed",
5238
5350
  path: "/sites/{siteId}/pages/{pageId}/discard",
5239
5351
  method: "POST",
5240
5352
  tags: [TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById],
@@ -5250,6 +5362,7 @@ const API_ENDPOINTS = {
5250
5362
  errors: ["resource:not_found", "server:internal_error"]
5251
5363
  },
5252
5364
  savePageDesignState: {
5365
+ editLease: "managed",
5253
5366
  path: "/sites/{siteId}/pages/{pageId}/design-state",
5254
5367
  method: "POST",
5255
5368
  tags: [TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById],
@@ -5279,6 +5392,7 @@ const API_ENDPOINTS = {
5279
5392
  responseKind: "json"
5280
5393
  },
5281
5394
  restorePageVersion: {
5395
+ editLease: "managed",
5282
5396
  path: "/sites/{siteId}/pages/{pageId}/versions/{versionId}/restore",
5283
5397
  method: "POST",
5284
5398
  errors: [
@@ -5292,6 +5406,7 @@ const API_ENDPOINTS = {
5292
5406
  responseKind: "json"
5293
5407
  },
5294
5408
  applyPageDesignEditorAction: {
5409
+ editLease: "managed",
5295
5410
  path: "/sites/{siteId}/pages/{pageId}/design/actions",
5296
5411
  method: "POST",
5297
5412
  tags: [TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById],
@@ -6471,24 +6586,6 @@ const API_ENDPOINTS = {
6471
6586
  "server:internal_error"
6472
6587
  ]
6473
6588
  },
6474
- syncBookingPassWithStripe: {
6475
- path: "/sites/{siteId}/bookings/passes/{passId}/sync-stripe",
6476
- method: "POST",
6477
- tags: [
6478
- "site-{siteId}",
6479
- "passes-{siteId}",
6480
- "pass-{passId}"
6481
- ],
6482
- auth: "user",
6483
- responseKind: "json",
6484
- errors: [
6485
- "validation:invalid_input",
6486
- "auth:forbidden",
6487
- "resource:not_found",
6488
- "resource:conflict",
6489
- "server:internal_error"
6490
- ]
6491
- },
6492
6589
  refundCustomerPass: {
6493
6590
  path: "/sites/{siteId}/bookings/customer-passes/{customerPassId}/refund",
6494
6591
  method: "POST",
@@ -7952,7 +8049,7 @@ const API_ENDPOINTS = {
7952
8049
  ]
7953
8050
  },
7954
8051
  cancelFlexibleBalanceBookingDueToNonPayment: {
7955
- path: "/sites/{siteId}/shop/orders/{orderId}/items/{orderItemId}/flexible-balance/cancel-due-to-non-payment",
8052
+ path: "/sites/{siteId}/shop/orders/{orderId}/flexible-balance/cancel-due-to-non-payment",
7956
8053
  method: "POST",
7957
8054
  auth: "user",
7958
8055
  responseKind: "json",
@@ -7963,7 +8060,7 @@ const API_ENDPOINTS = {
7963
8060
  ]
7964
8061
  },
7965
8062
  reopenFlexibleBalanceBookingAfterNonPaymentCancellation: {
7966
- path: "/sites/{siteId}/shop/orders/{orderId}/items/{orderItemId}/flexible-balance/reopen",
8063
+ path: "/sites/{siteId}/shop/orders/{orderId}/flexible-balance/reopen",
7967
8064
  method: "POST",
7968
8065
  auth: "user",
7969
8066
  responseKind: "json",
@@ -8077,52 +8174,138 @@ function parsePreviewRefreshResponse(value) {
8077
8174
  }
8078
8175
  //#endregion
8079
8176
  //#region ../preview-next/src/keepAlive.ts
8080
- function shouldRefreshToken(accessToken, thresholdSeconds) {
8081
- if (!accessToken) return true;
8177
+ function inspectAccessToken(accessToken, nowSeconds) {
8178
+ if (!accessToken) return { kind: "missing" };
8082
8179
  try {
8083
8180
  const exp = decodeJwtPayload(accessToken)?.exp;
8084
- if (typeof exp !== "number") return true;
8085
- return exp - Math.floor(Date.now() / 1e3) < thresholdSeconds;
8181
+ return typeof exp === "number" ? {
8182
+ kind: "known",
8183
+ expiresInSeconds: exp - nowSeconds
8184
+ } : { kind: "unreadable" };
8086
8185
  } catch {
8087
- return true;
8186
+ return { kind: "unreadable" };
8088
8187
  }
8089
8188
  }
8189
+ function tokenTtlBucket(lifetime) {
8190
+ if (lifetime.kind !== "known") return lifetime.kind;
8191
+ if (lifetime.expiresInSeconds <= 0) return "expired";
8192
+ if (lifetime.expiresInSeconds < 300) return "under_5m";
8193
+ if (lifetime.expiresInSeconds < 900) return "under_15m";
8194
+ return "at_least_15m";
8195
+ }
8196
+ function isCurrentToken(lifetime, thresholdSeconds) {
8197
+ return lifetime.kind === "known" && lifetime.expiresInSeconds >= thresholdSeconds;
8198
+ }
8199
+ function planPreviewTokens(accessToken, refreshToken, refreshThresholdSeconds, lifetime) {
8200
+ if (!refreshToken) return accessToken && isCurrentToken(lifetime, 1) ? {
8201
+ kind: "current",
8202
+ accessToken
8203
+ } : { kind: "unavailable" };
8204
+ return accessToken && isCurrentToken(lifetime, refreshThresholdSeconds) ? {
8205
+ kind: "current",
8206
+ accessToken
8207
+ } : {
8208
+ kind: "refresh",
8209
+ refreshToken
8210
+ };
8211
+ }
8090
8212
  async function refreshAccessToken(params) {
8091
- const { refreshToken, dashboardUrl, logger, fetcher } = params;
8213
+ const { refreshToken, dashboardUrl, correlationId, fetcher } = params;
8092
8214
  try {
8093
8215
  const request = { refreshToken };
8094
8216
  const response = await fetcher(buildPreviewAuthRefreshUrl({ dashboardBaseUrl: dashboardUrl }), {
8095
8217
  method: "POST",
8096
8218
  headers: {
8097
8219
  "Content-Type": "application/json",
8098
- Accept: "application/json"
8220
+ Accept: "application/json",
8221
+ "x-correlation-id": correlationId
8099
8222
  },
8100
8223
  cache: "no-store",
8101
8224
  credentials: "omit",
8102
8225
  body: JSON.stringify(request)
8103
8226
  });
8104
- if (!response.ok) {
8105
- logger?.warn?.("preview-keepalive:refresh-failed", { status: response.status });
8106
- return null;
8107
- }
8227
+ if (!response.ok) return {
8228
+ kind: "dashboard_rejected",
8229
+ dashboardStatus: response.status
8230
+ };
8108
8231
  const envelope = await response.json().catch(() => null);
8109
8232
  const data = parsePreviewRefreshResponse(isSuccessfulResponseEnvelope(envelope) ? envelope.data : null);
8110
- if (!data.success) {
8111
- logger?.warn?.("preview-keepalive:malformed-response");
8112
- return null;
8113
- }
8114
- return data.data;
8233
+ if (!data.success) return {
8234
+ kind: "malformed_response",
8235
+ dashboardStatus: response.status
8236
+ };
8237
+ return {
8238
+ kind: "refreshed",
8239
+ tokens: data.data,
8240
+ dashboardStatus: response.status
8241
+ };
8115
8242
  } catch {
8116
- logger?.error?.("preview-keepalive:error");
8117
- return null;
8243
+ return {
8244
+ kind: "network_error",
8245
+ dashboardStatus: null
8246
+ };
8118
8247
  }
8119
8248
  }
8249
+ function logKeepAliveOutcome({ logger, fields, previewOutcome, status, previewDashboardStatus = null }) {
8250
+ const meta = {
8251
+ ...fields,
8252
+ previewOutcome,
8253
+ status,
8254
+ previewDashboardStatus
8255
+ };
8256
+ if (status >= 400) logger?.warn?.("preview-keepalive:outcome", meta);
8257
+ else logger?.info?.("preview-keepalive:outcome", meta);
8258
+ }
8259
+ async function respondToRefresh(params) {
8260
+ const { dashboardUrl, tokenPlan, correlationId, logFields, logger, fetcher, maxAge, secure } = params;
8261
+ if (!dashboardUrl) {
8262
+ logKeepAliveOutcome({
8263
+ logger,
8264
+ fields: logFields,
8265
+ previewOutcome: "dashboard_url_missing",
8266
+ status: 401
8267
+ });
8268
+ return NextResponse.json({ error: "Preview refresh is unavailable" }, { status: 401 });
8269
+ }
8270
+ const outcome = await refreshAccessToken({
8271
+ refreshToken: tokenPlan.refreshToken,
8272
+ dashboardUrl,
8273
+ correlationId,
8274
+ fetcher
8275
+ });
8276
+ if (outcome.kind !== "refreshed") {
8277
+ logKeepAliveOutcome({
8278
+ logger,
8279
+ fields: logFields,
8280
+ previewOutcome: outcome.kind,
8281
+ status: 401,
8282
+ previewDashboardStatus: outcome.dashboardStatus
8283
+ });
8284
+ return NextResponse.json({ error: "Unable to refresh preview session" }, { status: 401 });
8285
+ }
8286
+ logKeepAliveOutcome({
8287
+ logger,
8288
+ fields: logFields,
8289
+ previewOutcome: "refreshed",
8290
+ status: 200,
8291
+ previewDashboardStatus: outcome.dashboardStatus
8292
+ });
8293
+ const response = responseWithAccessToken(outcome.tokens.accessToken);
8294
+ setPreviewAuthCookies(response, outcome.tokens, {
8295
+ maxAge,
8296
+ secure
8297
+ });
8298
+ return response;
8299
+ }
8120
8300
  function isSuccessfulResponseEnvelope(value) {
8121
8301
  return typeof value === "object" && value !== null && !Array.isArray(value) && "success" in value && value.success === true && "data" in value;
8122
8302
  }
8303
+ function responseWithAccessToken(accessToken) {
8304
+ return NextResponse.json({ accessToken }, { headers: { "Cache-Control": "no-store" } });
8305
+ }
8123
8306
  function createPreviewKeepAliveRouteHandler(options = {}) {
8124
8307
  const maxAge = options.maxAge ?? 43200;
8125
- const refreshThresholdSeconds = options.refreshThresholdSeconds ?? 300;
8308
+ const refreshThresholdSeconds = options.refreshThresholdSeconds ?? 900;
8126
8309
  const logger = options.logger;
8127
8310
  const getCookies = options.getCookies ?? (async () => {
8128
8311
  const store = await cookies();
@@ -8130,56 +8313,49 @@ function createPreviewKeepAliveRouteHandler(options = {}) {
8130
8313
  });
8131
8314
  const fetcher = options.fetcher ?? fetch;
8132
8315
  return async function previewKeepAliveHandler(request) {
8133
- const res = new NextResponse(null, { status: 204 });
8134
8316
  const cookieStore = await getCookies();
8135
8317
  const accessToken = cookieStore.get(PREVIEW_COOKIE_NAME)?.value;
8136
8318
  const refreshToken = cookieStore.get(PREVIEW_REFRESH_COOKIE_NAME)?.value;
8137
8319
  const url = new URL(request.url);
8320
+ const correlationId = crypto.randomUUID();
8138
8321
  const isSecure = ((request.headers.get("x-forwarded-proto") ?? "").split(",")[0]?.trim() || url.protocol.replace(":", "")) === "https";
8139
- if (!refreshToken) {
8140
- if (accessToken) setPreviewAuthCookies(res, {
8141
- accessToken,
8142
- refreshToken
8143
- }, {
8144
- maxAge,
8145
- secure: isSecure
8322
+ const lifetime = inspectAccessToken(accessToken, Math.floor(Date.now() / 1e3));
8323
+ const tokenPlan = planPreviewTokens(accessToken, refreshToken, refreshThresholdSeconds, lifetime);
8324
+ const logFields = {
8325
+ host: url.host,
8326
+ correlationId,
8327
+ previewDecision: tokenPlan.kind,
8328
+ previewTokenTtlBucket: tokenTtlBucket(lifetime),
8329
+ previewRefreshCookiePresent: Boolean(refreshToken)
8330
+ };
8331
+ if (tokenPlan.kind === "unavailable") {
8332
+ logKeepAliveOutcome({
8333
+ logger,
8334
+ fields: logFields,
8335
+ previewOutcome: "session_unavailable",
8336
+ status: 401
8146
8337
  });
8147
- return res;
8338
+ return NextResponse.json({ error: "Preview session is unavailable" }, { status: 401 });
8148
8339
  }
8149
- if (!shouldRefreshToken(accessToken, refreshThresholdSeconds)) {
8150
- setPreviewAuthCookies(res, {
8151
- accessToken,
8152
- refreshToken
8153
- }, {
8154
- maxAge,
8155
- secure: isSecure
8340
+ if (tokenPlan.kind === "current") {
8341
+ logKeepAliveOutcome({
8342
+ logger,
8343
+ fields: logFields,
8344
+ previewOutcome: "current",
8345
+ status: 200
8156
8346
  });
8157
- return res;
8347
+ return responseWithAccessToken(tokenPlan.accessToken);
8158
8348
  }
8159
- if (!options.dashboardUrl) {
8160
- logger?.warn?.("preview-keepalive:missing-dashboard-url");
8161
- const failure = NextResponse.json({ error: "Preview refresh is unavailable" }, { status: 401 });
8162
- clearPreviewCookies(failure);
8163
- return failure;
8164
- }
8165
- logger?.debug?.("preview-keepalive:needs-refresh");
8166
- const refreshed = await refreshAccessToken({
8167
- refreshToken,
8349
+ return respondToRefresh({
8168
8350
  dashboardUrl: options.dashboardUrl,
8351
+ tokenPlan,
8352
+ correlationId,
8353
+ logFields,
8169
8354
  logger,
8170
- fetcher
8171
- });
8172
- if (!refreshed) {
8173
- logger?.warn?.("preview-keepalive:cleared-cookies");
8174
- const failure = NextResponse.json({ error: "Unable to refresh preview session" }, { status: 401 });
8175
- clearPreviewCookies(failure);
8176
- return failure;
8177
- }
8178
- setPreviewAuthCookies(res, refreshed, {
8355
+ fetcher,
8179
8356
  maxAge,
8180
8357
  secure: isSecure
8181
8358
  });
8182
- return res;
8183
8359
  };
8184
8360
  }
8185
8361
  //#endregion