@riverbankcms/sdk 0.146.0 → 0.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DvEPG3Z2.mjs} +249 -172
- package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-D6eb6fkx.mjs} +68 -60
- package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-5znTyJuz.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DJ6utQ_R.mjs} +1180 -475
- package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-CFJYh6vo.mjs} +199078 -193767
- package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -33
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -3
- package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
- package/dist/_dts/api/src/accountApi.d.ts +6 -6
- package/dist/_dts/api/src/admin.d.ts +22 -22
- package/dist/_dts/api/src/aiPatch.d.ts +2 -2
- package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
- package/dist/_dts/api/src/analytics.d.ts +2 -2
- package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
- package/dist/_dts/api/src/auth.d.ts +10 -10
- package/dist/_dts/api/src/availability.d.ts +6 -6
- package/dist/_dts/api/src/billing.d.ts +42 -15
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
- package/dist/_dts/api/src/blocks.d.ts +15 -14
- package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +16 -2
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
- package/dist/_dts/api/src/bookingOperations.d.ts +6 -48
- package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +12 -49
- package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
- package/dist/_dts/api/src/bookings.d.ts +8 -7
- package/dist/_dts/api/src/calendar.d.ts +9 -9
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -6
- package/dist/_dts/api/src/common/envelope.d.ts +2 -2
- package/dist/_dts/api/src/content-editor.d.ts +2 -2
- package/dist/_dts/api/src/contentEntries.d.ts +17 -48
- package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
- package/dist/_dts/api/src/contentTypes.d.ts +11 -11
- package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
- package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
- package/dist/_dts/api/src/domains.d.ts +16 -16
- package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
- package/dist/_dts/api/src/emailSettings.d.ts +4 -4
- package/dist/_dts/api/src/endpoints.d.ts +725 -607
- package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
- package/dist/_dts/api/src/eventManagementContracts.d.ts +48 -8
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -9
- package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
- package/dist/_dts/api/src/footerSettings.d.ts +6 -6
- package/dist/_dts/api/src/index.d.ts +8 -6
- package/dist/_dts/api/src/indexCoreTypes.d.ts +2 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
- package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation.d.ts +5 -5
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
- package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
- package/dist/_dts/api/src/pages.d.ts +7 -7
- package/dist/_dts/api/src/performance.d.ts +1 -1
- package/dist/_dts/api/src/public/index.d.ts +1 -1
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +50 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/redirects.d.ts +3 -3
- package/dist/_dts/api/src/request.d.ts +10 -1
- package/dist/_dts/api/src/resources.d.ts +4 -4
- package/dist/_dts/api/src/routes.d.ts +8 -3
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -1
- package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +8 -1
- package/dist/_dts/api/src/seo.d.ts +4 -4
- package/dist/_dts/api/src/services.d.ts +4 -4
- package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +19 -25
- package/dist/_dts/api/src/siteMembers.d.ts +10 -10
- package/dist/_dts/api/src/siteOnboarding.d.ts +16 -14
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
- package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
- package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
- package/dist/_dts/billing/src/components/index.d.ts +25 -40
- package/dist/_dts/billing/src/membership/index.d.ts +1 -3
- package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
- package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
- package/dist/_dts/billing/src/plans/types.d.ts +5 -15
- package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
- package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
- package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
- package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
- package/dist/_dts/blocks/src/client/events.d.ts +3 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -4
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +18 -9
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +6 -1
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +36 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +18 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +17 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +7 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +18 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
- package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
- package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
- package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
- package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
- package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
- package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
- package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
- package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
- package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
- package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
- package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
- package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
- package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
- package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
- package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
- package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
- package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
- package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
- package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
- package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
- package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
- package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
- package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
- package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
- package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
- package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
- package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
- package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
- package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
- package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
- package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
- package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
- package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
- package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
- package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
- package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
- package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
- package/dist/_dts/content-editor/src/index.d.ts +26 -7
- package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
- package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
- package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
- package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
- package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
- package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
- package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
- package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
- package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
- package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
- package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
- package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
- package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
- package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
- package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
- package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
- package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
- package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
- package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
- package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
- package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
- package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
- package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
- package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
- package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
- package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
- package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
- package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
- package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
- package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
- package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
- package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
- package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
- package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
- package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
- package/dist/_dts/content-model/src/types.d.ts +0 -1
- package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
- package/dist/_dts/core/src/branded.d.ts +12 -0
- package/dist/_dts/core/src/currency-format.d.ts +8 -2
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
- package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
- package/dist/_dts/core/src/edit-lease.d.ts +55 -0
- package/dist/_dts/core/src/editor-state.d.ts +38 -13
- package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
- package/dist/_dts/core/src/html-entities.d.ts +6 -0
- package/dist/_dts/core/src/index.d.ts +5 -1
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
- package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
- package/dist/_dts/core/src/participants.d.ts +0 -38
- package/dist/_dts/core/src/uuid.d.ts +7 -5
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +261 -175
- package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
- package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
- package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
- package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
- package/dist/_dts/editor/src/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
- package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
- package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
- package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
- package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
- package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
- package/dist/_dts/media-editor/src/context.d.ts +1 -1
- package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
- package/dist/_dts/media-editor/src/provider.d.ts +3 -2
- package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
- package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +10 -6
- package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
- package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +24 -14
- package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
- package/dist/_dts/realtime/src/client.d.ts +3 -0
- package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
- package/dist/_dts/realtime/src/drafts.d.ts +210 -0
- package/dist/_dts/realtime/src/index.d.ts +3 -0
- package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
- package/dist/_dts/realtime/src/types.d.ts +113 -0
- package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
- package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +4 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
- package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
- package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
- package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
- package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
- package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
- package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
- package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
- package/dist/_dts/ui/src/badge.d.ts +2 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
- package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
- package/dist/_dts/ui/src/combobox.d.ts +26 -1
- package/dist/_dts/ui/src/date-picker.d.ts +5 -8
- package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
- package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
- package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
- package/dist/_dts/ui/src/index.d.ts +4 -1
- package/dist/_dts/ui/src/native-select.d.ts +8 -0
- package/dist/_dts/ui/src/popover.d.ts +7 -1
- package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
- package/dist/_dts/ui/src/surface.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-CzRt2dF_.mjs} +110 -97
- package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
- package/dist/client/DemoBookingPortalAccess-mxqwap3f.mjs +344 -0
- package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-CDb11igO.mjs} +7 -7
- package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-EgYhzKPa.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-gtmtaA2b.mjs} +1 -1
- package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-DvNUP5ot.mjs} +77 -77
- package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-C7CeUJjW.mjs} +2 -2
- package/dist/client/{accordion-BEQNSptH.mjs → accordion-kjvt49rA.mjs} +1 -1
- package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-pbRZordh.mjs} +411 -141
- package/dist/client/bookings.mjs +966 -396
- package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-f4Zbmicv.mjs} +2 -2
- package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
- package/dist/client/{cart-CnWi30zJ.mjs → cart-DO20An50.mjs} +3 -3
- package/dist/client/{checkout-f3nkWgd4.mjs → checkout-Du5amDR_.mjs} +3 -3
- package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
- package/dist/client/client.mjs +3837 -2202
- package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
- package/dist/client/{context-Bc8T6pCe.mjs → context-eW97E945.mjs} +4 -3
- package/dist/client/{dates-DUsCEzLb.mjs → dates-jPCirRea.mjs} +56 -11
- package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-C2M-iE4j.mjs} +10 -10
- package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-W6ns3LHg.mjs} +4 -4
- package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-CR-GT0f0.mjs} +4 -4
- package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-BK8AfYZz.mjs} +4 -4
- package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-BJSd4KUu.mjs} +461 -266
- package/dist/client/{form-C2h3YAcg.mjs → form-BvpfbQaT.mjs} +5 -5
- package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-I5sUQ8x-.mjs} +3 -3
- package/dist/client/hooks.mjs +909 -163
- package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-BLvwf9_f.mjs} +4 -4
- package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
- package/dist/client/{media-BtJ37tzS.mjs → media-Cl38iOMI.mjs} +11 -4
- package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DrQ2weE8.mjs} +6 -6
- package/dist/client/{pricing-HHx3IgBz.mjs → pricing-BES87mrR.mjs} +1 -1
- package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-Url9jcc5.mjs} +3 -3
- package/dist/client/{productList-CtCv-Nmx.mjs → productList-DE7ngEZJ.mjs} +3 -3
- package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-D1OtGXDV.mjs} +140 -22
- package/dist/client/rendering/client.mjs +2366 -997
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +4607 -2884
- package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BG9Y-SHg.mjs} +1 -1
- package/dist/client/{shop-DQXrQ8kJ.mjs → shop-CJkuySJ3.mjs} +126 -79
- package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-4rKj5n9h.mjs} +26 -14
- package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-Bxm75Pg6.mjs} +1 -1
- package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-DpoQDWfz.mjs} +5 -5
- package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-D8HliSqR.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +314 -133
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +53 -2
- package/dist/preview-next/editor-chrome.css +7 -4
- package/dist/preview-next/keepAlive.mjs +314 -133
- package/dist/preview-next/middleware.mjs +314 -133
- package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-BXXF3hhW.mjs} +316 -133
- package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-C2a05WjL.mjs} +2 -2
- package/dist/{separator-BpHS1KZK.mjs → separator-CuNhBAhS.mjs} +1 -1
- package/dist/server/components.mjs +6888 -6157
- package/dist/server/config-validation.mjs +931 -199
- package/dist/server/config.mjs +931 -199
- package/dist/server/data.mjs +929 -198
- package/dist/server/index.mjs +317 -134
- package/dist/server/navigation.mjs +13 -2
- package/dist/server/next.mjs +5003 -4340
- package/dist/server/page-converter.mjs +160 -78
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +6421 -5687
- package/dist/server/rendering.mjs +7683 -6933
- package/dist/server/routing.mjs +1035 -338
- package/dist/server/server.mjs +946 -256
- package/dist/server/theme-bridge.mjs +66 -17
- package/dist/server/theme.mjs +5 -1
- package/dist/styles/index.css +32 -4
- package/package.json +1 -1
- package/dist/_dts/billing/src/plans/display.d.ts +0 -15
- package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
- package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
- package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
- package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
- package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
- package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
- package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
- package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
- package/dist/_dts/content-editor/src/types.d.ts +0 -44
- package/dist/_dts/core/src/participant-identity.d.ts +0 -135
- package/dist/client/DiscountCodeDisclosure-CsOtjFY7.mjs +0 -137
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import { type PlannerNoChange } from '../../../core/src/index';
|
|
2
|
-
import { type BillingPlanId } from '../plans/types';
|
|
3
|
-
export type BillingComponentInterval = 'month' | 'year';
|
|
1
|
+
import { type Brand, type PlannerNoChange } from '../../../core/src/index';
|
|
2
|
+
import { type BillingPlanId, type PaidBillingPlanId } from '../plans/types';
|
|
4
3
|
export type BillingComponentCurrencyCode = string;
|
|
5
|
-
export type BillingComponentId = string
|
|
4
|
+
export type BillingComponentId = Brand<string, 'BillingComponentId'>;
|
|
5
|
+
export type BillingComponentIdempotencyKey = Brand<string, 'BillingComponentIdempotencyKey'>;
|
|
6
|
+
export type BillingComponentSnapshotHash = Brand<string, 'BillingComponentSnapshotHash'>;
|
|
6
7
|
export type BillingComponentSiteId = string;
|
|
7
8
|
export type BillingComponentSiteDomainId = string;
|
|
8
|
-
|
|
9
|
+
/** Brand a component id read from a trusted store (a database row or a fixture). */
|
|
10
|
+
export declare const unsafeAsBillingComponentId: (id: string) => BillingComponentId;
|
|
11
|
+
export declare const unsafeAsBillingComponentIdempotencyKey: (key: string) => BillingComponentIdempotencyKey;
|
|
12
|
+
export declare const unsafeAsBillingComponentSnapshotHash: (hash: string) => BillingComponentSnapshotHash;
|
|
13
|
+
/** Components derived on every read; they are never stored. */
|
|
14
|
+
export type ComputedBillingComponentKind = 'plan_base' | 'custom_site_price';
|
|
15
|
+
/** Components stored in `billing_components`; mirrors the database enum. */
|
|
16
|
+
export type PersistedBillingComponentKind = 'extra_site' | 'managed_domain_overage';
|
|
17
|
+
export type BillingComponentKind = ComputedBillingComponentKind | PersistedBillingComponentKind;
|
|
9
18
|
export type BillingComponentPersistenceStatus = 'pending_acceptance' | 'accepted' | 'sync_failed' | 'registrar_failed' | 'registrar_succeeded_persist_failed' | 'active' | 'ending' | 'ended' | 'failed';
|
|
10
19
|
export type EndableBillingComponentStatus = Extract<BillingComponentPersistenceStatus, 'active' | 'ending'>;
|
|
11
20
|
export type EndableBillingComponentKind = Extract<BillingComponentKind, 'extra_site' | 'managed_domain_overage'>;
|
|
@@ -14,10 +23,9 @@ export type BillingComponentProposalPlan = Readonly<{
|
|
|
14
23
|
pendingSourceKey: string;
|
|
15
24
|
userId: string;
|
|
16
25
|
siteId: string | null;
|
|
17
|
-
kind:
|
|
26
|
+
kind: PersistedBillingComponentKind;
|
|
18
27
|
amountCents: number;
|
|
19
28
|
currency: string;
|
|
20
|
-
interval: BillingComponentInterval;
|
|
21
29
|
sourceEntity: BillingComponentSourceEntityPlan;
|
|
22
30
|
snapshotHash: string;
|
|
23
31
|
pricingSnapshot: unknown;
|
|
@@ -51,7 +59,6 @@ export type BillingComponentBase<TKind extends BillingComponentKind, TOrigin ext
|
|
|
51
59
|
source: BillingComponentSourceForKind<TKind>;
|
|
52
60
|
amountCents: number;
|
|
53
61
|
currency: BillingComponentCurrencyCode;
|
|
54
|
-
interval: BillingComponentInterval;
|
|
55
62
|
}>;
|
|
56
63
|
export type MacadamiaExtraSiteBillingComponentProposalPlan = BillingComponentProposalPlan & Readonly<{
|
|
57
64
|
kind: 'extra_site';
|
|
@@ -122,9 +129,7 @@ export type BillingTotalPricePlan = BillingBasePricePlan & Readonly<{
|
|
|
122
129
|
componentBreakdown: readonly BillingComponent[];
|
|
123
130
|
}>;
|
|
124
131
|
export type BillingComponentCompatibilityMismatch = Readonly<{
|
|
125
|
-
tag: '
|
|
126
|
-
componentInterval: BillingComponentInterval;
|
|
127
|
-
requestedInterval: BillingComponentInterval;
|
|
132
|
+
tag: 'component_currency_mismatch';
|
|
128
133
|
componentCurrency: BillingComponentCurrencyCode;
|
|
129
134
|
requestedCurrency: BillingComponentCurrencyCode;
|
|
130
135
|
}>;
|
|
@@ -147,7 +152,6 @@ export type BillingComponentSummaryBase<TKind extends BillingComponentKind> = Re
|
|
|
147
152
|
label: string;
|
|
148
153
|
amountCents: number;
|
|
149
154
|
formatted: string;
|
|
150
|
-
interval: BillingComponentInterval;
|
|
151
155
|
}>;
|
|
152
156
|
export type BillingComponentSummaryBasePlanComponent = BillingComponentSummaryBase<'plan_base'> & Readonly<{
|
|
153
157
|
source: BillingComponentPlanSource;
|
|
@@ -208,13 +212,15 @@ export type MacadamiaExtraSitePricingSnapshot = Readonly<{
|
|
|
208
212
|
planId: BillingPlanId;
|
|
209
213
|
amountCents: number;
|
|
210
214
|
currency: BillingComponentCurrencyCode;
|
|
211
|
-
interval: BillingComponentInterval;
|
|
212
215
|
}>;
|
|
213
216
|
export type ExtraSitePricingPolicy = Readonly<{
|
|
214
217
|
includedSiteCount: number;
|
|
215
218
|
currency: BillingComponentCurrencyCode;
|
|
216
|
-
extraSite:
|
|
219
|
+
extraSite:
|
|
220
|
+
/** The plan an upgrade prompt names: the cheapest one that keeps what this plan has and adds extra sites. */
|
|
221
|
+
Readonly<{
|
|
217
222
|
tag: 'not_supported';
|
|
223
|
+
minimumPlanId: PaidBillingPlanId;
|
|
218
224
|
}> | Readonly<{
|
|
219
225
|
tag: 'priced';
|
|
220
226
|
monthlyAmountCents: number;
|
|
@@ -226,34 +232,22 @@ export type ConfiguredExtraSitePricingPolicy = ExtraSitePricingPolicy & Readonly
|
|
|
226
232
|
monthlyAmountCents: number;
|
|
227
233
|
}>;
|
|
228
234
|
}>;
|
|
229
|
-
export type MacadamiaSiteAllowancePricingInput = Readonly<{
|
|
230
|
-
includedLiveSiteCount: number;
|
|
231
|
-
extraSite: Readonly<{
|
|
232
|
-
tag: 'not_supported';
|
|
233
|
-
}> | Readonly<{
|
|
234
|
-
tag: 'priced';
|
|
235
|
-
monthlyPricePence: number;
|
|
236
|
-
}>;
|
|
237
|
-
}>;
|
|
238
235
|
export type ActiveExtraSiteComponentForReconciliation = Readonly<{
|
|
239
236
|
componentId: BillingComponentId;
|
|
240
237
|
siteId: BillingComponentSiteId;
|
|
241
238
|
amountCents: number;
|
|
242
239
|
currency: BillingComponentCurrencyCode;
|
|
243
|
-
interval: BillingComponentInterval;
|
|
244
240
|
}>;
|
|
245
241
|
export type MacadamiaExtraSiteReconciliationAction = Readonly<{
|
|
246
242
|
tag: 'requires_acceptance';
|
|
247
243
|
site: BillableMacadamiaSite;
|
|
248
244
|
amountCents: number;
|
|
249
245
|
currency: BillingComponentCurrencyCode;
|
|
250
|
-
interval: BillingComponentInterval;
|
|
251
246
|
}> | Readonly<{
|
|
252
247
|
tag: 'create_missing';
|
|
253
248
|
site: BillableMacadamiaSite;
|
|
254
249
|
amountCents: number;
|
|
255
250
|
currency: BillingComponentCurrencyCode;
|
|
256
|
-
interval: BillingComponentInterval;
|
|
257
251
|
}> | Readonly<{
|
|
258
252
|
tag: 'end_at_period_end';
|
|
259
253
|
component: ActiveExtraSiteComponentForReconciliation;
|
|
@@ -265,7 +259,7 @@ export type MacadamiaExtraSiteReconciliationAction = Readonly<{
|
|
|
265
259
|
}> | Readonly<{
|
|
266
260
|
tag: 'requires_plan_upgrade';
|
|
267
261
|
site: BillableMacadamiaSite;
|
|
268
|
-
minimumPlanId:
|
|
262
|
+
minimumPlanId: PaidBillingPlanId;
|
|
269
263
|
}>;
|
|
270
264
|
export type MacadamiaExtraSiteReconciliationPlan = PlannerNoChange | Readonly<{
|
|
271
265
|
tag: 'changes_required';
|
|
@@ -281,13 +275,12 @@ export type MacadamiaExtraSiteLaunchDecision = Readonly<{
|
|
|
281
275
|
}> | Readonly<{
|
|
282
276
|
tag: 'requires_plan_upgrade';
|
|
283
277
|
currentPlanId: BillingPlanId;
|
|
284
|
-
minimumPlanId:
|
|
278
|
+
minimumPlanId: PaidBillingPlanId;
|
|
285
279
|
}> | Readonly<{
|
|
286
280
|
tag: 'requires_acceptance';
|
|
287
281
|
currentPlanId: BillingPlanId;
|
|
288
282
|
amountCents: number;
|
|
289
283
|
currency: BillingComponentCurrencyCode;
|
|
290
|
-
interval: BillingComponentInterval;
|
|
291
284
|
}>;
|
|
292
285
|
export type MacadamiaSiteCreationBillingNotice = Readonly<{
|
|
293
286
|
tag: 'none';
|
|
@@ -298,13 +291,12 @@ export type MacadamiaSiteCreationBillingNotice = Readonly<{
|
|
|
298
291
|
}> | Readonly<{
|
|
299
292
|
tag: 'upgrade_required_on_launch';
|
|
300
293
|
currentPlanId: BillingPlanId;
|
|
301
|
-
minimumPlanId:
|
|
294
|
+
minimumPlanId: PaidBillingPlanId;
|
|
302
295
|
}> | Readonly<{
|
|
303
296
|
tag: 'extra_site_charge_on_launch';
|
|
304
297
|
currentPlanId: BillingPlanId;
|
|
305
298
|
amountCents: number;
|
|
306
299
|
currency: BillingComponentCurrencyCode;
|
|
307
|
-
interval: BillingComponentInterval;
|
|
308
300
|
}>;
|
|
309
301
|
export type MacadamiaExtraSiteProposalDecisionPlan = Extract<MacadamiaExtraSiteLaunchDecision, {
|
|
310
302
|
tag: 'requires_acceptance';
|
|
@@ -378,7 +370,7 @@ export declare function planBillingComponentEndAtTimestamp(input: Readonly<{
|
|
|
378
370
|
now: Date;
|
|
379
371
|
}>): BillingComponentTimestampEndPlan;
|
|
380
372
|
export declare function gbpPenceToAmountCents(amountPence: number, currency: BillingComponentCurrencyCode): number;
|
|
381
|
-
export declare function buildMacadamiaExtraSitePricingPolicy(
|
|
373
|
+
export declare function buildMacadamiaExtraSitePricingPolicy(planId: BillingPlanId): ExtraSitePricingPolicy;
|
|
382
374
|
export declare function buildManagedDomainRegistrarAttemptIdempotencyKey(input: Readonly<{
|
|
383
375
|
componentId: string;
|
|
384
376
|
domain: string;
|
|
@@ -408,14 +400,12 @@ export declare function classifyBillingModel(input: Readonly<{
|
|
|
408
400
|
export declare function planExtraSiteComponents(input: Readonly<{
|
|
409
401
|
sites: readonly BillableMacadamiaSite[];
|
|
410
402
|
policy: ConfiguredExtraSitePricingPolicy;
|
|
411
|
-
interval?: BillingComponentInterval;
|
|
412
403
|
}>): readonly BillingComponent[];
|
|
413
404
|
export declare function planMacadamiaExtraSiteReconciliation(input: Readonly<{
|
|
414
405
|
sites: readonly BillableMacadamiaSite[];
|
|
415
406
|
activeExtraSiteComponents: readonly ActiveExtraSiteComponentForReconciliation[];
|
|
416
407
|
acceptedSiteIds?: readonly BillingComponentSiteId[];
|
|
417
408
|
policy: ExtraSitePricingPolicy;
|
|
418
|
-
interval?: BillingComponentInterval;
|
|
419
409
|
}>): MacadamiaExtraSiteReconciliationPlan;
|
|
420
410
|
export declare function evaluateMacadamiaExtraSiteLaunchDecision(input: Readonly<{
|
|
421
411
|
siteId: BillingComponentSiteId;
|
|
@@ -426,14 +416,12 @@ export declare function evaluateMacadamiaExtraSiteLaunchDecision(input: Readonly
|
|
|
426
416
|
componentId?: BillingComponentId;
|
|
427
417
|
}>[];
|
|
428
418
|
policy: ExtraSitePricingPolicy;
|
|
429
|
-
interval?: BillingComponentInterval;
|
|
430
419
|
}>): MacadamiaExtraSiteLaunchDecision;
|
|
431
420
|
export declare function macadamiaExtraSiteLaunchDecisionToCreationBillingNotice(decision: MacadamiaExtraSiteLaunchDecision): MacadamiaSiteCreationBillingNotice;
|
|
432
421
|
export declare function evaluateMacadamiaSiteCreationBillingNotice(input: Readonly<{
|
|
433
422
|
currentPlanId: BillingPlanId;
|
|
434
423
|
currentLiveSiteCount: number;
|
|
435
424
|
policy: ExtraSitePricingPolicy;
|
|
436
|
-
interval?: BillingComponentInterval;
|
|
437
425
|
}>): MacadamiaSiteCreationBillingNotice;
|
|
438
426
|
export declare function resolveBillingComponents(input: Readonly<{
|
|
439
427
|
basePlan: BillingComponent;
|
|
@@ -454,16 +442,13 @@ export declare function toBillingSiteCostBreakdown(input: Readonly<{
|
|
|
454
442
|
export declare function planCustomSitePriceComponents(input: Readonly<{
|
|
455
443
|
siteBreakdown: readonly BillingSiteCostBreakdown[];
|
|
456
444
|
currency: BillingComponentCurrencyCode;
|
|
457
|
-
interval: BillingComponentInterval;
|
|
458
445
|
}>): readonly BillingComponent[];
|
|
459
446
|
export declare function validateBillingComponentCompatibility(input: Readonly<{
|
|
460
447
|
component: BillingComponent;
|
|
461
|
-
requestedInterval: BillingComponentInterval;
|
|
462
448
|
requestedCurrency: BillingComponentCurrencyCode;
|
|
463
449
|
}>): BillingComponentCompatibilityMismatch | null;
|
|
464
450
|
export declare function planBillingTotalPrice(input: Readonly<{
|
|
465
451
|
planId: string;
|
|
466
|
-
interval: BillingComponentInterval;
|
|
467
452
|
currency: BillingComponentCurrencyCode;
|
|
468
453
|
siteBreakdown: readonly BillingSiteCostBreakdown[];
|
|
469
454
|
persistedComponents: readonly PersistedBillingComponent[];
|
|
@@ -521,5 +506,5 @@ export declare function asBillingComponentProposalPlan<TIdempotencyKey, TPending
|
|
|
521
506
|
* programming/configuration error into every runtime caller.
|
|
522
507
|
*/
|
|
523
508
|
export declare function asBillingComponentProposalPricingSnapshot<TPricingSnapshot>(value: unknown, parse: BillingComponentProposalPricingSnapshotParser<TPricingSnapshot>, description?: string): TPricingSnapshot;
|
|
524
|
-
export declare function hashBillingComponentSnapshot(snapshot: unknown):
|
|
509
|
+
export declare function hashBillingComponentSnapshot(snapshot: unknown): BillingComponentSnapshotHash;
|
|
525
510
|
export declare function stableJson(value: unknown): string;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BillingPlanId, PlanEntitlements } from '../plans/types';
|
|
2
2
|
import { type SubscriptionRepository, type SubscriptionRecord } from '../subscriptions/store';
|
|
3
3
|
import { type PlanStanding } from '../plans/standing';
|
|
4
4
|
export interface MembershipState {
|
|
5
5
|
userId: string;
|
|
6
6
|
planStanding: 'paid' | 'payment_recovery' | 'free';
|
|
7
7
|
planId: BillingPlanId;
|
|
8
|
-
interval: BillingInterval;
|
|
9
8
|
status: SubscriptionRecord['status'];
|
|
10
9
|
currentPeriodEnd: string;
|
|
11
10
|
cancelAtPeriodEnd: boolean;
|
|
@@ -19,7 +18,6 @@ export interface MembershipSummary {
|
|
|
19
18
|
planStanding: 'paid' | 'payment_recovery' | 'free';
|
|
20
19
|
/** Effective entitlement plan. Provider subscription identity remains in the repository. */
|
|
21
20
|
planId: BillingPlanId;
|
|
22
|
-
interval: BillingInterval;
|
|
23
21
|
status: SubscriptionRecord['status'];
|
|
24
22
|
currentPeriodEnd: string;
|
|
25
23
|
cancelAtPeriodEnd: boolean;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type BillingPlanId, type BrandingTier, type FormsTier, type NewsletterTier, type PlanBooleanFeatureKey, type PlanEntitlements, type SeoTier, type StorageBytes, type StorageQuota, type TeamTier, type WebsiteCollaborationTier, type WebsiteTier } from './types';
|
|
2
|
+
type MinimumTier<TTier extends string> = Readonly<{
|
|
3
|
+
minimum: TTier;
|
|
4
|
+
}>;
|
|
5
|
+
export type PlanEntitlementRequirementSpec = Readonly<{
|
|
6
|
+
features?: readonly PlanBooleanFeatureKey[];
|
|
7
|
+
website?: MinimumTier<WebsiteTier>;
|
|
8
|
+
/** Commission isn't a tier: the only requirement is that there is none. */
|
|
9
|
+
stripeBookingCommission?: Readonly<{
|
|
10
|
+
kind: 'none';
|
|
11
|
+
}>;
|
|
12
|
+
/** Extra sites aren't a tier either: the plan either prices them or doesn't offer them. */
|
|
13
|
+
extraSite?: Readonly<{
|
|
14
|
+
kind: 'supported';
|
|
15
|
+
}>;
|
|
16
|
+
forms?: MinimumTier<FormsTier>;
|
|
17
|
+
seo?: MinimumTier<SeoTier>;
|
|
18
|
+
newsletter?: MinimumTier<NewsletterTier>;
|
|
19
|
+
branding?: MinimumTier<BrandingTier>;
|
|
20
|
+
team?: MinimumTier<TeamTier>;
|
|
21
|
+
websiteCollaboration?: MinimumTier<WebsiteCollaborationTier>;
|
|
22
|
+
}>;
|
|
23
|
+
export type StorageQuotaCheckResult = Readonly<{
|
|
24
|
+
tag: 'unlimited';
|
|
25
|
+
usedBytes: StorageBytes;
|
|
26
|
+
incomingBytes: StorageBytes;
|
|
27
|
+
}> | Readonly<{
|
|
28
|
+
tag: 'within_limit';
|
|
29
|
+
usedBytes: StorageBytes;
|
|
30
|
+
incomingBytes: StorageBytes;
|
|
31
|
+
remainingBytes: StorageBytes;
|
|
32
|
+
maxBytes: StorageBytes;
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
tag: 'at_limit';
|
|
35
|
+
usedBytes: StorageBytes;
|
|
36
|
+
incomingBytes: StorageBytes;
|
|
37
|
+
remainingBytes: StorageBytes;
|
|
38
|
+
maxBytes: StorageBytes;
|
|
39
|
+
}> | Readonly<{
|
|
40
|
+
tag: 'would_exceed_limit';
|
|
41
|
+
usedBytes: StorageBytes;
|
|
42
|
+
incomingBytes: StorageBytes;
|
|
43
|
+
remainingBytes: StorageBytes;
|
|
44
|
+
maxBytes: StorageBytes;
|
|
45
|
+
overByBytes: StorageBytes;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function definePlanEntitlementRequirements<const TRequirements extends PlanEntitlementRequirementSpec>(requirements: TRequirements): TRequirements;
|
|
48
|
+
export declare function isPlanBooleanFeatureEnabled(entitlements: PlanEntitlements, feature: PlanBooleanFeatureKey): boolean;
|
|
49
|
+
export declare function meetsPlanEntitlementRequirements(entitlements: PlanEntitlements, requirements: PlanEntitlementRequirementSpec): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* The cheapest plan that grants `requirements`, by list price: the plan an
|
|
52
|
+
* upgrade prompt names. Price order, not registry order, so a plan added
|
|
53
|
+
* anywhere in the ladder is still found correctly.
|
|
54
|
+
*/
|
|
55
|
+
export declare function cheapestPlanMeetingRequirements(requirements: PlanEntitlementRequirementSpec): BillingPlanId | null;
|
|
56
|
+
/**
|
|
57
|
+
* What choosing `planId` at launch commits the site to: the entitlements a
|
|
58
|
+
* launched site depends on (the website, a team, its own domain, no
|
|
59
|
+
* commission). A current plan satisfies the selection when it grants all of
|
|
60
|
+
* them, so plans that differ in other ways (storage, analytics) never block a
|
|
61
|
+
* launch, and a plan outside a single ladder (Team, alongside Solo) needs no
|
|
62
|
+
* rank.
|
|
63
|
+
*/
|
|
64
|
+
export declare function launchRequirementFor(planId: BillingPlanId): PlanEntitlementRequirementSpec;
|
|
65
|
+
/**
|
|
66
|
+
* The plan an upgrade prompt names when an account on `currentPlanId` needs
|
|
67
|
+
* `addition`: the cheapest plan that keeps everything a launched site on the
|
|
68
|
+
* current plan depends on and adds it. A Team account that needs extra sites
|
|
69
|
+
* is pointed to Studio, not Solo, because Solo would lose the team. Null when
|
|
70
|
+
* no plan does.
|
|
71
|
+
*/
|
|
72
|
+
export declare function upgradeTargetAdding(currentPlanId: BillingPlanId, addition: PlanEntitlementRequirementSpec): BillingPlanId | null;
|
|
73
|
+
/** Whether an account on `currentPlanId` can launch a site that selected `selectedPlanId`. */
|
|
74
|
+
export declare function planSatisfiesLaunchSelection(currentPlanId: BillingPlanId | null, selectedPlanId: BillingPlanId): boolean;
|
|
75
|
+
export declare function checkStorageQuota(quota: StorageQuota, input: Readonly<{
|
|
76
|
+
usedBytes: StorageBytes;
|
|
77
|
+
incomingBytes: StorageBytes;
|
|
78
|
+
}>): StorageQuotaCheckResult;
|
|
79
|
+
export declare function listBooleanPlanFeatureKeys(): readonly PlanBooleanFeatureKey[];
|
|
80
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type BillingPlanId, type PlanDefinition } from './types';
|
|
2
2
|
export declare function listPlans(): PlanDefinition[];
|
|
3
3
|
export declare function isBillingPlanId(planId: string): planId is BillingPlanId;
|
|
4
4
|
export declare function ensureBillingPlanId(planId: string): BillingPlanId;
|
|
@@ -8,23 +8,23 @@ export declare function getKnownPlan(planId: BillingPlanId): PlanDefinition;
|
|
|
8
8
|
export declare function ensurePlan(planId: string): PlanDefinition;
|
|
9
9
|
export declare function getPlanEntitlements(planId: string): PlanDefinition['entitlements'];
|
|
10
10
|
export declare function getMacadamiaSiteAllowance(planId: string): PlanDefinition['entitlements']['macadamiaSiteAllowance'];
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Use database pricing with resolveUserPrice() instead.
|
|
13
|
-
* This function fetches pre-created Stripe Price IDs which is being replaced
|
|
14
|
-
* by inline price_data creation from database prices.
|
|
15
|
-
*/
|
|
16
|
-
export declare function getStripePriceId(planId: string, interval: BillingInterval): Promise<string>;
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated Use database pricing with getPlanPrice() and resolveUserPrice() instead.
|
|
19
|
-
* This function fetches prices from Stripe which is being replaced by database pricing.
|
|
20
|
-
*/
|
|
21
|
-
export declare function calculatePlanPricing(planId: string): Promise<DisplayPricing>;
|
|
22
|
-
/**
|
|
23
|
-
* @deprecated Use database pricing instead. This function fetches prices from Stripe.
|
|
24
|
-
*/
|
|
25
|
-
export declare function listPricing(): Promise<DisplayPricing[]>;
|
|
26
11
|
/**
|
|
27
12
|
* Check if a plan is a paid plan.
|
|
28
13
|
* A plan is paid if it's not the 'free' plan.
|
|
29
14
|
*/
|
|
30
15
|
export declare function isPaidPlan(planId: string): boolean;
|
|
16
|
+
/** What a plan costs and charges, derived from the registry. Not a second store. */
|
|
17
|
+
export type PlanCommercials = Readonly<{
|
|
18
|
+
planId: BillingPlanId;
|
|
19
|
+
/** The monthly list price, before any per-user override or site costs. */
|
|
20
|
+
monthlyPricePence: number;
|
|
21
|
+
/** Macadamia's commission on Stripe-paid bookings; 0 when the plan has none. */
|
|
22
|
+
commissionPercent: number;
|
|
23
|
+
/**
|
|
24
|
+
* The monthly online revenue at which Free's commission equals this plan's
|
|
25
|
+
* price. Null for Free itself, and for any plan that does not charge less
|
|
26
|
+
* commission than Free.
|
|
27
|
+
*/
|
|
28
|
+
breakEvenMonthlyOnlineRevenuePence: number | null;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function planCommercials(planId: BillingPlanId): PlanCommercials;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SubscriptionStandingEvidence, SubscriptionStandingEvidenceError, SubscriptionStandingInput } from '../subscriptions/standingEvidence';
|
|
2
|
-
import { type SubscriptionRead } from '../subscriptions/store';
|
|
3
|
-
type PaidStandingDetails = Pick<SubscriptionStandingEvidence, 'planId' | '
|
|
2
|
+
import { type SubscriptionRead, type SubscriptionStatus } from '../subscriptions/store';
|
|
3
|
+
type PaidStandingDetails = Pick<SubscriptionStandingEvidence, 'planId' | 'currentPeriodEnd' | 'cancelAtPeriodEnd'>;
|
|
4
4
|
export type PlanStanding = Readonly<{
|
|
5
5
|
kind: 'paid';
|
|
6
6
|
} & PaidStandingDetails> | Readonly<{
|
|
@@ -16,4 +16,11 @@ export type PlanStanding = Readonly<{
|
|
|
16
16
|
export declare function resolvePlanStanding(input: SubscriptionStandingInput): PlanStanding;
|
|
17
17
|
/** Repository reads have already parsed provider evidence; never validate it again here. */
|
|
18
18
|
export declare function resolveStoredPlanStanding(record: SubscriptionRead): PlanStanding;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the provider still holds this subscription: it can be recovered,
|
|
21
|
+
* updated, cancelled or acted on by an arrangement change. This is presence,
|
|
22
|
+
* not entitlement: an unpaid subscription is present but grants free standing,
|
|
23
|
+
* so read `resolvePlanStanding` for what a plan allows.
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasProviderSubscriptionPresence(status: SubscriptionStatus): boolean;
|
|
19
26
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export type BillingInterval = 'monthly' | 'annual';
|
|
2
1
|
declare const storageBytesBrand: unique symbol;
|
|
3
2
|
export type StorageBytes = number & {
|
|
4
3
|
readonly [storageBytesBrand]: 'StorageBytes';
|
|
@@ -24,10 +23,11 @@ export declare function storageGigabytes(value: number): StorageBytes;
|
|
|
24
23
|
export declare function limitedStorageQuota(maxBytes: StorageBytes): StorageQuota;
|
|
25
24
|
export declare function formatStorageBytes(bytes: StorageBytes): string;
|
|
26
25
|
export declare function formatStorageQuota(quota: StorageQuota): string;
|
|
27
|
-
|
|
26
|
+
/** The ladder in reading order: the booking-page plans, then the website plans. */
|
|
27
|
+
export declare const BILLING_PLAN_IDS: readonly ["free", "core", "team", "solo", "studio"];
|
|
28
28
|
export type BillingPlanId = (typeof BILLING_PLAN_IDS)[number];
|
|
29
|
-
export
|
|
30
|
-
export
|
|
29
|
+
export type PaidBillingPlanId = Exclude<BillingPlanId, 'free'>;
|
|
30
|
+
export declare function isPaidBillingPlanId(planId: BillingPlanId): planId is PaidBillingPlanId;
|
|
31
31
|
export declare const FORMS_TIERS: readonly ["limited", "full"];
|
|
32
32
|
export type FormsTier = (typeof FORMS_TIERS)[number];
|
|
33
33
|
export declare const SEO_TIERS: readonly ["none", "basic", "advanced"];
|
|
@@ -73,8 +73,7 @@ export type StripeBookingCommission = Readonly<{
|
|
|
73
73
|
}>;
|
|
74
74
|
export interface PlanEntitlements {
|
|
75
75
|
planId: BillingPlanId;
|
|
76
|
-
monthlyPricePence: number
|
|
77
|
-
availableIntervals: readonly BillingInterval[];
|
|
76
|
+
monthlyPricePence: number;
|
|
78
77
|
macadamiaSiteAllowance: Readonly<{
|
|
79
78
|
includedLiveSiteCount: number;
|
|
80
79
|
extraSite: Readonly<{
|
|
@@ -106,13 +105,9 @@ export interface PlanDefinition {
|
|
|
106
105
|
name: string;
|
|
107
106
|
description: string;
|
|
108
107
|
defaultCurrency: string;
|
|
109
|
-
annualDiscountPercent?: number;
|
|
110
|
-
/** @deprecated Use database pricing instead. Will be removed in Phase 6. */
|
|
111
|
-
stripePriceLookupKeys?: Partial<Record<BillingInterval, string>>;
|
|
112
108
|
/** @deprecated Stripe products are now auto-created via ensurePlatformProduct(). */
|
|
113
109
|
stripeProductId?: string;
|
|
114
110
|
entitlements: PlanEntitlements;
|
|
115
|
-
trialDays?: number;
|
|
116
111
|
metadata?: Record<string, string | number | boolean>;
|
|
117
112
|
}
|
|
118
113
|
export interface DisplayPricing {
|
|
@@ -122,10 +117,5 @@ export interface DisplayPricing {
|
|
|
122
117
|
amountPence: number;
|
|
123
118
|
formatted: string;
|
|
124
119
|
};
|
|
125
|
-
annual: {
|
|
126
|
-
amountPence: number;
|
|
127
|
-
formatted: string;
|
|
128
|
-
discountPercent?: number;
|
|
129
|
-
};
|
|
130
120
|
}
|
|
131
121
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type PositiveCents, type Result } from '../../core/src/index';
|
|
2
|
+
import type { SubscriptionStatus } from './subscriptions/store';
|
|
2
3
|
export declare const SITE_BILLING_ARRANGEMENT_KINDS: readonly ["self_serve", "managed_platform_subscription", "managed_manual"];
|
|
3
4
|
export type SiteBillingArrangementKind = (typeof SITE_BILLING_ARRANGEMENT_KINDS)[number];
|
|
4
5
|
export declare const MANAGED_MANUAL_BILLING_REASONS: readonly ["bank_transfer", "testing_exchange", "complimentary", "other"];
|
|
@@ -56,7 +57,7 @@ export type ActiveSiteLinkedPlatformAddOn = Readonly<{
|
|
|
56
57
|
export type SiteBillingSubscriptionSnapshot = Readonly<{
|
|
57
58
|
id: string;
|
|
58
59
|
origin: BillingSubscriptionOrigin | null;
|
|
59
|
-
status:
|
|
60
|
+
status: SubscriptionStatus;
|
|
60
61
|
}> | null;
|
|
61
62
|
export type SiteBillingManualReviewReason = 'ambiguous_subscription_origin' | 'active_site_linked_add_on' | 'admin_requested_manual_review' | 'missing_admin_subscription_choice' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'subscription_action_failed' | 'multiple_platform_subscriptions' | 'platform_subscription_recovery_failed' | 'commission_reconciliation_exhausted';
|
|
62
63
|
export declare const SITE_BILLING_MANUAL_REVIEW_REASONS: readonly ["ambiguous_subscription_origin", "active_site_linked_add_on", "admin_requested_manual_review", "missing_admin_subscription_choice", "practitioner_limit_exceeded", "live_site_allowance_exceeded", "subscription_action_failed", "multiple_platform_subscriptions", "platform_subscription_recovery_failed", "commission_reconciliation_exhausted"];
|
|
@@ -175,4 +176,3 @@ export declare function planSiteBillingArrangementChange(input: Readonly<{
|
|
|
175
176
|
activeSiteLinkedAddOns: readonly ActiveSiteLinkedPlatformAddOn[];
|
|
176
177
|
adminSubscriptionAction?: AdminManagedSubscriptionActionChoice | null;
|
|
177
178
|
}>): SiteBillingArrangementChangePlan;
|
|
178
|
-
export declare function isSubscriptionActiveForArrangementPlanning(status: string): boolean;
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { type Result, type UtcIsoDateTimeString } from '../../../core/src/index';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PaidBillingPlanId } from '../plans/types';
|
|
3
3
|
import type { SubscriptionStatus } from './store';
|
|
4
4
|
/** Untrusted stored columns, before defaults, casts or membership projection. */
|
|
5
5
|
export type RawSubscriptionStandingEvidence = Readonly<{
|
|
6
6
|
planId: unknown;
|
|
7
|
-
interval: unknown;
|
|
8
7
|
status: unknown;
|
|
9
8
|
currentPeriodEnd: unknown;
|
|
10
9
|
cancelAtPeriodEnd: unknown;
|
|
11
10
|
}>;
|
|
12
|
-
export type SubscriptionStandingEvidenceError = 'invalid_plan' | '
|
|
11
|
+
export type SubscriptionStandingEvidenceError = 'invalid_plan' | 'invalid_status' | 'invalid_period_end' | 'invalid_cancellation';
|
|
13
12
|
export type SubscriptionStandingEvidence = Readonly<{
|
|
14
13
|
planId: PaidBillingPlanId;
|
|
15
|
-
interval: BillingInterval;
|
|
16
14
|
status: SubscriptionStatus;
|
|
17
15
|
currentPeriodEnd: UtcIsoDateTimeString;
|
|
18
16
|
cancelAtPeriodEnd: boolean;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import { type StripeCustomerId, type StripeSubscriptionId } from '../../../core/src/index';
|
|
1
2
|
import type { ProviderSubscriptionRecord } from './evidence';
|
|
2
3
|
import { type RawSubscriptionStandingEvidence, type SubscriptionStandingEvidenceError } from './standingEvidence';
|
|
3
|
-
import type { BillingInterval } from '../plans/types';
|
|
4
4
|
import type { BillingSubscriptionOrigin } from '../site-arrangements';
|
|
5
5
|
export type SubscriptionStatus = 'incomplete_expired' | 'paused' | 'incomplete' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid';
|
|
6
6
|
export interface SubscriptionRecord {
|
|
7
|
-
id:
|
|
7
|
+
id: StripeSubscriptionId;
|
|
8
8
|
userId: string;
|
|
9
|
-
customerId:
|
|
9
|
+
customerId: StripeCustomerId;
|
|
10
10
|
planId: string;
|
|
11
11
|
origin: BillingSubscriptionOrigin | null;
|
|
12
|
-
interval: BillingInterval;
|
|
13
12
|
status: SubscriptionStatus;
|
|
14
13
|
currentPeriodEnd: string;
|
|
15
14
|
cancelAtPeriodEnd: boolean;
|
|
@@ -18,9 +17,9 @@ export interface SubscriptionRecord {
|
|
|
18
17
|
}
|
|
19
18
|
export type InvalidSubscriptionRecord = Readonly<{
|
|
20
19
|
kind: 'invalid';
|
|
21
|
-
id:
|
|
20
|
+
id: StripeSubscriptionId;
|
|
22
21
|
userId: string;
|
|
23
|
-
customerId:
|
|
22
|
+
customerId: StripeCustomerId;
|
|
24
23
|
reason: SubscriptionStandingEvidenceError;
|
|
25
24
|
}>;
|
|
26
25
|
export type SubscriptionRead = ProviderSubscriptionRecord | InvalidSubscriptionRecord | null;
|
|
@@ -31,18 +30,25 @@ export declare class InvalidSubscriptionEvidenceError extends Error {
|
|
|
31
30
|
}
|
|
32
31
|
/** For mutation boundaries that cannot operate without valid subscription evidence. */
|
|
33
32
|
export declare function requireSubscriptionRecord(value: SubscriptionRead): ProviderSubscriptionRecord | null;
|
|
34
|
-
|
|
33
|
+
/**
|
|
34
|
+
* The parse boundary for a stored row: the Stripe ids arrive as the column
|
|
35
|
+
* strings and leave as branded ids, whether or not the rest is valid.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readSubscriptionRecord(raw: Omit<SubscriptionRecord, keyof RawSubscriptionStandingEvidence | 'id' | 'customerId'> & RawSubscriptionStandingEvidence & Readonly<{
|
|
38
|
+
id: string;
|
|
39
|
+
customerId: string;
|
|
40
|
+
}>): ProviderSubscriptionRecord | InvalidSubscriptionRecord;
|
|
35
41
|
export interface SubscriptionRepository {
|
|
36
42
|
upsert(record: SubscriptionRecord): Promise<void>;
|
|
37
43
|
getByUserId(userId: string): Promise<SubscriptionRead>;
|
|
38
|
-
getBySubscriptionId(subscriptionId:
|
|
39
|
-
removeBySubscriptionId(subscriptionId:
|
|
44
|
+
getBySubscriptionId(subscriptionId: StripeSubscriptionId): Promise<SubscriptionRead>;
|
|
45
|
+
removeBySubscriptionId(subscriptionId: StripeSubscriptionId): Promise<void>;
|
|
40
46
|
}
|
|
41
47
|
export declare class InMemorySubscriptionRepository implements SubscriptionRepository {
|
|
42
48
|
private byUser;
|
|
43
49
|
private byId;
|
|
44
50
|
upsert(record: SubscriptionRecord): Promise<void>;
|
|
45
51
|
getByUserId(userId: string): Promise<SubscriptionRead>;
|
|
46
|
-
getBySubscriptionId(subscriptionId:
|
|
47
|
-
removeBySubscriptionId(subscriptionId:
|
|
52
|
+
getBySubscriptionId(subscriptionId: StripeSubscriptionId): Promise<SubscriptionRead>;
|
|
53
|
+
removeBySubscriptionId(subscriptionId: StripeSubscriptionId): Promise<void>;
|
|
48
54
|
}
|
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
* Integrates with EditorUiStore for autosave-enabled form management.
|
|
5
5
|
* Supports blocks (per-block data), metadata, content, and linkedContent (embedded entry data).
|
|
6
6
|
*/
|
|
7
|
-
import type
|
|
7
|
+
import { type EditorBlockId, type EditorValueRecord, type ValueSync } from '../../../core/src/index';
|
|
8
8
|
import { type BlockDraftSaveability } from '../blockDraftSaveability';
|
|
9
9
|
import type { FormBackend, StoreBackendOptions } from './types';
|
|
10
10
|
type StoreSnapshot = {
|
|
11
|
-
|
|
12
|
-
baseline: Record<string, unknown> | null;
|
|
13
|
-
syncState: EditorSyncState;
|
|
11
|
+
sync: ValueSync<EditorValueRecord | null>;
|
|
14
12
|
version?: number;
|
|
15
13
|
};
|
|
16
14
|
interface BlocksSlice {
|
|
@@ -18,7 +16,6 @@ interface BlocksSlice {
|
|
|
18
16
|
setAtPath: (blockId: EditorBlockId, path: string, value: unknown) => void;
|
|
19
17
|
getCurrentValues: (blockId: EditorBlockId) => Record<string, unknown> | null;
|
|
20
18
|
getBlockSnapshot?: (blockId: EditorBlockId) => StoreSnapshot | null;
|
|
21
|
-
clearError?: (blockId: EditorBlockId) => void;
|
|
22
19
|
updateBlockBaseline?: (blockId: EditorBlockId, data: Record<string, unknown> | null) => void;
|
|
23
20
|
}
|
|
24
21
|
interface RootSlice {
|
|
@@ -27,8 +24,10 @@ interface RootSlice {
|
|
|
27
24
|
setAtPath: (path: string, value: unknown) => void;
|
|
28
25
|
getCurrentValues: () => Record<string, unknown> | null;
|
|
29
26
|
getSnapshot?: () => StoreSnapshot | null;
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
/** Applies server values as a refresh; `replace` throws local edits away. */
|
|
28
|
+
refresh?: (input: Readonly<{
|
|
29
|
+
values: Record<string, unknown> | null;
|
|
30
|
+
}>, policy: 'replace') => unknown;
|
|
32
31
|
}
|
|
33
32
|
interface ArrayKeysManager {
|
|
34
33
|
get: (scope: string, path: string) => string[] | undefined;
|
|
@@ -133,6 +133,13 @@ export type StoreBackendOptions<TState = unknown> = {
|
|
|
133
133
|
store: ZustandLikeStore<TState>;
|
|
134
134
|
blockId?: EditorBlockId;
|
|
135
135
|
validateFn?: (values: Record<string, unknown>) => ZodIssue[];
|
|
136
|
+
/**
|
|
137
|
+
* Read-only values beside the scope's own, keyed by top-level field id. A read of a key
|
|
138
|
+
* the values don't hold falls back to these, so a widget can watch a sibling that isn't
|
|
139
|
+
* a value (slug auto-generation's `statusFieldId` reads the entry's lifecycle status
|
|
140
|
+
* this way). They're never written, sent or edited.
|
|
141
|
+
*/
|
|
142
|
+
context?: Readonly<Record<string, unknown>>;
|
|
136
143
|
};
|
|
137
144
|
/**
|
|
138
145
|
* Type guards for discriminating backend types
|
|
@@ -9,6 +9,8 @@ export type FieldFrameProps = {
|
|
|
9
9
|
fieldPath?: string;
|
|
10
10
|
label?: ReactNode;
|
|
11
11
|
required?: boolean;
|
|
12
|
+
/** Marks the label "optional", for forms that mark what can be left blank rather than what can't. */
|
|
13
|
+
optional?: boolean;
|
|
12
14
|
labelClassName?: string;
|
|
13
15
|
description?: ReactNode;
|
|
14
16
|
descriptionClassName?: string;
|
|
@@ -29,4 +31,4 @@ export declare function FieldFrameMessage({ id, error, hint }: FieldFrameMessage
|
|
|
29
31
|
export declare function FieldLabelText({ label, required, }: {
|
|
30
32
|
label: ReactNode;
|
|
31
33
|
required?: boolean;
|
|
32
|
-
}): import("react").JSX.Element
|
|
34
|
+
}): import("react").JSX.Element;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { ResolverContext } from './system';
|
|
3
|
-
import type { PageOutline } from './structure/schema';
|
|
4
3
|
import type { SdkCustomBlock } from './system/manifest/schema';
|
|
5
4
|
import type { RouteMap } from './system/transforms';
|
|
6
5
|
import { type OverrideOnlyRenderMode, type ThemedRenderMode, type TokensOnlyRenderMode } from './pageRenderingMode';
|
|
7
6
|
import { type PageJoinRenderer, type PageRuntimeJoin } from './pageRendererBoundaries';
|
|
8
7
|
import { type BlockOverrides, type PageRendererDataContext, type SdkConfigForRenderer } from './pageRendererContracts';
|
|
9
|
-
import { type RenderablePageOutline } from './pageRenderAdmission';
|
|
10
|
-
export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
|
|
8
|
+
import { type RenderablePageOutline, type EditorPageOutlineWithPlacement } from './pageRenderAdmission';
|
|
9
|
+
export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, EditorRenderablePageOutline, EditorPageOutlineWithPlacement, } from './pageRenderAdmission';
|
|
11
10
|
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, SdkConfigForRenderer, } from './pageRendererContracts';
|
|
12
11
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
13
12
|
export type { PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, } from './pageRendererBoundaries';
|
|
@@ -30,6 +29,6 @@ type OverrideOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & Ove
|
|
|
30
29
|
blockOverrides: BlockOverrides;
|
|
31
30
|
};
|
|
32
31
|
export type PageRendererProps = ThemedPageRendererProps<RenderablePageOutline> | TokensOnlyPageRendererProps<RenderablePageOutline> | OverrideOnlyPageRendererProps<RenderablePageOutline>;
|
|
33
|
-
export type EditorPageRendererProps = ThemedPageRendererProps<
|
|
32
|
+
export type EditorPageRendererProps = ThemedPageRendererProps<EditorPageOutlineWithPlacement> | OverrideOnlyPageRendererProps<EditorPageOutlineWithPlacement>;
|
|
34
33
|
export default function PageRenderer(props: PageRendererProps): React.JSX.Element;
|
|
35
34
|
export declare function EditorPageRenderer(props: EditorPageRendererProps): React.JSX.Element;
|
|
@@ -4,3 +4,6 @@ export { EventDetailsIslandClient, type EventDetailsIslandClientProps, } from '.
|
|
|
4
4
|
export { EventCalendarClient, type EventCalendarClientProps, } from '../system/runtime/nodes/events/EventCalendar.client';
|
|
5
5
|
export { EventCombinedIslandClient, type EventCombinedClientProps, type EventCombinedIslandClientProps, } from '../system/runtime/nodes/events/EventCombined.client';
|
|
6
6
|
export { EventListingClient, type EventListingClientProps, } from '../system/runtime/nodes/events/EventListing.client';
|
|
7
|
+
export { EventCardClient, type EventCardClientProps, } from '../system/runtime/nodes/events/shared/EventCard.client';
|
|
8
|
+
export { catalogueEventCardProps, type EventCardDisplayProps, } from '../system/runtime/nodes/events/shared/eventCardPresentations';
|
|
9
|
+
export { defaultEventListingCardProps } from '../system/runtime/nodes/events/EventListing.interactive';
|