@riverbankcms/sdk 0.151.0 → 0.153.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 (316) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +10 -9
  3. package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -3
  4. package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-ORkVZhfu.mjs} +5 -4
  5. package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +341 -164
  6. package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +27124 -39230
  7. package/dist/ThemedButton-X2UxhW6F.mjs +16525 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
  12. package/dist/_dts/api/src/communications.d.ts +19 -5
  13. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  14. package/dist/_dts/api/src/index.d.ts +1 -1
  15. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/navigation/types.d.ts +7 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -1
  18. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
  19. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  20. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  21. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  23. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  27. package/dist/_dts/blocks/src/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  29. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  30. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
  31. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  32. package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +212 -804
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  39. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  44. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  47. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  48. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  49. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  50. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  51. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
  53. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
  54. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
  55. package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
  56. package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
  57. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
  58. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
  59. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  60. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  61. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +5 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  68. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +51 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
  97. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
  98. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +290 -882
  120. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  122. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  123. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
  124. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
  125. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
  126. package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
  127. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
  128. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
  129. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  130. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
  131. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
  132. package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
  133. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -0
  134. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +2 -0
  135. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
  136. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
  137. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
  138. package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
  139. package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
  140. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  141. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
  142. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  143. package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
  144. package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
  145. package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
  146. package/dist/_dts/core/src/branded.d.ts +0 -2
  147. package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
  148. package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
  149. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
  150. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
  151. package/dist/_dts/core/src/index.d.ts +4 -0
  152. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  153. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  154. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  155. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  156. package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
  157. package/dist/_dts/core/src/mailing-list-targeting.d.ts +11 -1
  158. package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
  159. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +106 -36
  160. package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
  161. package/dist/_dts/editor/src/index.d.ts +1 -0
  162. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  163. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  164. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  165. package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
  166. package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
  167. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
  168. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
  169. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
  170. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
  171. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  172. package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
  173. package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
  174. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
  175. package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
  176. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
  179. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  180. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  181. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
  182. package/dist/_dts/media-core/src/index.d.ts +5 -0
  183. package/dist/_dts/media-core/src/media.d.ts +406 -0
  184. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  185. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  186. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  187. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  188. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  189. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  190. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  191. package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
  192. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  193. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  194. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  195. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  196. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  197. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  198. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  199. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  200. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  201. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  202. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  203. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  204. package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
  205. package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
  206. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  207. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  208. package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
  209. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  210. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  211. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  212. package/dist/_dts/sdk/src/index.d.ts +1 -0
  213. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
  214. package/dist/_dts/sdk/src/rendering/image.d.ts +14 -4
  215. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -2
  216. package/dist/_dts/sdk/src/rendering/link.d.ts +5 -0
  217. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  218. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  219. package/dist/_dts/sdk/src/version.d.ts +1 -1
  220. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  221. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
  222. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  223. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  224. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  225. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  226. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  227. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  228. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  229. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  230. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  231. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  232. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  233. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  234. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  235. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  236. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  237. package/dist/client/BookingMailingListNote-DrchYW1m.mjs +386 -0
  238. package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-CC_GVmF6.mjs} +5 -5
  239. package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
  240. package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  241. package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +85 -85
  242. package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-DyN0v0Xk.mjs} +7 -9
  243. package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +11 -10
  244. package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  245. package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  246. package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
  247. package/dist/client/{RichText-LjPCUGGi.mjs → RichText-C1fIXBzA.mjs} +50 -34
  248. package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  249. package/dist/client/{accordion-Qe--SILD.mjs → accordion-DCDVWSye.mjs} +1 -1
  250. package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-BJ3C4GlM.mjs} +321 -154
  251. package/dist/client/bookings.mjs +118607 -22429
  252. package/dist/client/{carousel-h2YjKOS2.mjs → carousel-BSCBhfHY.mjs} +2 -2
  253. package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-GEtOGsxo.mjs} +46 -41
  254. package/dist/client/{cart-5NeiigVd.mjs → cart-Yv-aAtck.mjs} +3 -3
  255. package/dist/client/{checkout-G4UWjOEw.mjs → checkout-B9xDkl30.mjs} +3 -3
  256. package/dist/client/client.mjs +37511 -33793
  257. package/dist/client/{context-GK4-AVAh.mjs → context-BOGe3rIA.mjs} +275 -10
  258. package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-D6M0T9hs.mjs} +18 -17
  259. package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  260. package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-f_FhV4O8.mjs} +3 -4
  261. package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-WLkfAROh.mjs} +4 -4
  262. package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-D3ejfLvW.mjs} +2209 -2144
  263. package/dist/client/{form-Cf0WMtfG.mjs → form-D5Or2Jyu.mjs} +5 -6
  264. package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-hWgnv27V.mjs} +9 -9
  265. package/dist/client/hooks.mjs +17278 -16106
  266. package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  267. package/dist/client/{media-47fcnhzD.mjs → media-D29-F1u_.mjs} +183 -362
  268. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  269. package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-CwxcwTNO.mjs} +5 -5
  270. package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  271. package/dist/client/{productList-BKQlWEKE.mjs → productList-oGytONOX.mjs} +3 -3
  272. package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-lf_dTeZS.mjs} +18659 -14473
  273. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  274. package/dist/client/rendering/client.mjs +58971 -55722
  275. package/dist/client/rendering/islands.mjs +20 -23
  276. package/dist/client/rendering.mjs +41610 -37917
  277. package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  278. package/dist/client/{shop-D7ytcFBC.mjs → shop-BQ3bR7fA.mjs} +16 -14
  279. package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-DDPll6ZC.mjs} +9 -9
  280. package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  281. package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BylM9jh1.mjs} +5 -5
  282. package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
  283. package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-B1Puub2v.mjs} +60 -77
  284. package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-BBhkmQaT.mjs} +6 -8
  285. package/dist/preview-next/before-render.mjs +96 -4
  286. package/dist/preview-next/client/runtime.mjs +3 -3
  287. package/dist/preview-next/keepAlive.mjs +7 -0
  288. package/dist/preview-next/middleware.mjs +7 -0
  289. package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  290. package/dist/server/components.mjs +21820 -19902
  291. package/dist/server/config-validation.mjs +1786 -642
  292. package/dist/server/config.mjs +1786 -642
  293. package/dist/server/data.mjs +17220 -16076
  294. package/dist/server/index.mjs +234 -2
  295. package/dist/server/next.mjs +22505 -20528
  296. package/dist/server/page-converter.mjs +7587 -6572
  297. package/dist/server/prebuild.mjs +1 -1
  298. package/dist/server/rendering/server.mjs +20487 -19044
  299. package/dist/server/rendering.mjs +21844 -19901
  300. package/dist/server/routing.mjs +19186 -17961
  301. package/dist/server/server.mjs +1874 -695
  302. package/dist/server/theme-bridge.mjs +1371 -914
  303. package/dist/server/theme.mjs +154 -37
  304. package/dist/{spinner-tSdG9YvG.mjs → spinner-BYM-Y81w.mjs} +1 -1
  305. package/dist/styles/index.css +1088 -721
  306. package/package.json +1 -1
  307. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
  308. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
  309. package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
  310. package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
  311. package/dist/client/colorStyles-DTunOThj.mjs +0 -1316
  312. package/dist/client/pricing-CMD0kADd.mjs +0 -314
  313. package/dist/client/result-DRW7JWXz.mjs +0 -30
  314. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
  315. package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
  316. package/dist/spinner-BL3kW9Uh.mjs +0 -803
@@ -1,5 +1,6 @@
1
1
  import { type SafeDownloadFilename, type SiteScopedStoragePath, type SiteId, type StorageBucketName, type StoragePath, type UploadSessionId, type UserId, type MediaAssetId, type Result } from '../../core/src/index';
2
2
  import type { StorageClass } from './fileDomain';
3
+ import { type WritableStoragePathError } from './storageObjectKey';
3
4
  export declare const FILE_STORAGE_BUCKETS: {
4
5
  readonly publicSite: StorageBucketName;
5
6
  readonly privateSite: StorageBucketName;
@@ -16,7 +17,7 @@ export declare const DURABLE_FILE_FOLDER = "files";
16
17
  export declare const SDK_UPLOAD_STAGING_PREFIX = "sdk-staging";
17
18
  export declare const PRIVATE_SITE_FILE_BUCKET_MIME_TYPES: readonly ["application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "application/rtf", "text/rtf", "image/jpeg", "image/png", "image/webp", "image/gif", "image/avif", "image/heic", "image/heif", "image/svg+xml", "text/csv", "application/csv", "application/vnd.ms-excel", "application/zip", "application/x-zip-compressed", "audio/mpeg", "audio/mp4", "audio/wav", "audio/x-wav", "audio/ogg", "audio/webm", "audio/flac", "video/mp4", "video/webm", "video/quicktime"];
18
19
  export declare const TEMP_UPLOAD_BUCKET_MIME_TYPES: readonly ["application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "application/rtf", "text/rtf", "image/jpeg", "image/png", "image/webp", "image/gif", "image/avif", "image/heic", "image/heif", "image/svg+xml", "text/csv", "application/csv", "application/vnd.ms-excel", "application/zip", "application/x-zip-compressed", "audio/mpeg", "audio/mp4", "audio/wav", "audio/x-wav", "audio/ogg", "audio/webm", "audio/flac", "video/mp4", "video/webm", "video/quicktime", "font/woff2", "application/font-woff2", "application/x-font-woff2", "application/octet-stream"];
19
- export type FileStoragePathError = 'unsafe-path-segment';
20
+ export type FileStoragePathError = WritableStoragePathError;
20
21
  export type StagedUploadStoragePathInput = {
21
22
  readonly userId: UserId;
22
23
  readonly siteId: SiteId;
@@ -35,12 +36,12 @@ export type DurableFileStoragePathInput = {
35
36
  export declare function storageBucketForStorageClass(storageClass: StorageClass): StorageBucketName;
36
37
  /**
37
38
  * Builds the `temp-uploads` object path allowed by Storage RLS:
38
- * `temp-file-uploads/{userId}/{siteId}/{uploadSessionId}/{safeDownloadFilename}`.
39
+ * `temp-file-uploads/{userId}/{siteId}/{uploadSessionId}/{storageObjectFilename}`.
39
40
  */
40
41
  export declare function buildStagedUploadStoragePath(input: StagedUploadStoragePathInput): Result<StoragePath, FileStoragePathError>;
41
42
  /**
42
43
  * Builds the durable site-scoped object path allowed by public/private site-file RLS:
43
- * `sites/{siteId}/files/{fileAssetId}/{safeDownloadFilename}`.
44
+ * `sites/{siteId}/files/{fileAssetId}/{storageObjectFilename}`.
44
45
  */
45
46
  export declare function buildDurableFileStoragePath(input: DurableFileStoragePathInput): Result<SiteScopedStoragePath, FileStoragePathError>;
46
47
  export declare function parseStoragePath(value: string): Result<StoragePath, FileStoragePathError>;
@@ -1,6 +1,7 @@
1
1
  export * from './types';
2
2
  export * from './fileDomain';
3
3
  export * from './fileStorage';
4
+ export * from './storageObjectKey';
4
5
  export * from './storagePathDomain';
5
6
  export * from './fileSafety';
6
7
  export * from './filePersistence';
@@ -28,6 +29,9 @@ export * from './classifyAllPlanning';
28
29
  export * from './mediaSettingsState';
29
30
  export * from './videoSlotPolicy';
30
31
  export * from './identifiers';
32
+ export * from './mediaIdentifierSchema';
33
+ export * from './mediaKinds';
34
+ export * from './media';
31
35
  export { getImageUrl, getDirectImageUrl, getDirectImageUrlForRelativePath, getDirectImageUrlForSiteScopedPath, getDirectImageUrlForBucketPath, getDirectImageUrlForMediaAsset, isSiteScopedDirectImageStoragePath, type DirectImageMediaAsset, type DirectImageUrlOptions, type DirectImageUrlPathTarget, type ImageProxyFit, type ImageProxyParams, } from './url';
32
36
  export { isSameTransformRect, isSameHotspot, type HotspotLike } from './compare';
33
37
  export { asRecord, isRecord } from './typeGuards';
@@ -45,6 +49,7 @@ export * from './richTextImageWriteNormalizer';
45
49
  export * from './mediaUsageProjection';
46
50
  export * from './portableMediaReferences';
47
51
  export * from './renderableMediaAsset';
52
+ export * from './renderableMediaAssetAdmission';
48
53
  export * from './contentMediaAudit';
49
54
  export * from './contentMediaAuditFieldAdapter';
50
55
  export * from './contentMediaSnapshotAudit';
@@ -0,0 +1,406 @@
1
+ import { z } from 'zod';
2
+ import { type MediaTypeDiscriminant } from './mediaKinds';
3
+ export { mediaIdentifierSchema } from './mediaIdentifierSchema';
4
+ export type { MediaIdentifier } from './identifiers';
5
+ export { mediaTypeDiscriminants, type MediaTypeDiscriminant } from './mediaKinds';
6
+ export declare const mediaPosterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
+ tag: z.ZodLiteral<"media">;
8
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
9
+ }, z.core.$strict>, z.ZodObject<{
10
+ tag: z.ZodLiteral<"external-src">;
11
+ src: z.ZodString;
12
+ }, z.core.$strict>], "tag">;
13
+ declare const mediaUsageShape: {
14
+ purpose: z.ZodOptional<z.ZodString>;
15
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
16
+ alt: z.ZodOptional<z.ZodString>;
17
+ filename: z.ZodOptional<z.ZodString>;
18
+ width: z.ZodOptional<z.ZodNumber>;
19
+ height: z.ZodOptional<z.ZodNumber>;
20
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
21
+ tag: z.ZodLiteral<"media">;
22
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
23
+ }, z.core.$strict>, z.ZodObject<{
24
+ tag: z.ZodLiteral<"external-src">;
25
+ src: z.ZodString;
26
+ }, z.core.$strict>], "tag">>;
27
+ transform: z.ZodOptional<z.ZodObject<{
28
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
29
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
30
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
31
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
32
+ x: z.ZodNumber;
33
+ y: z.ZodNumber;
34
+ radius: z.ZodOptional<z.ZodNumber>;
35
+ }, z.core.$strip>>>;
36
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
37
+ }, z.core.$strip>>>>>;
38
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
39
+ hotspot: z.ZodOptional<z.ZodObject<{
40
+ x: z.ZodNumber;
41
+ y: z.ZodNumber;
42
+ radius: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
45
+ }, z.core.$strip>>;
46
+ };
47
+ declare const mediaBaseSchema: z.ZodObject<{
48
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
49
+ assetId: z.ZodOptional<z.ZodNever>;
50
+ id: z.ZodOptional<z.ZodNever>;
51
+ src: z.ZodOptional<z.ZodNever>;
52
+ storageBucket: z.ZodOptional<z.ZodNever>;
53
+ storagePath: z.ZodOptional<z.ZodNever>;
54
+ mimeType: z.ZodOptional<z.ZodNever>;
55
+ purpose: z.ZodOptional<z.ZodString>;
56
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
57
+ alt: z.ZodOptional<z.ZodString>;
58
+ filename: z.ZodOptional<z.ZodString>;
59
+ width: z.ZodOptional<z.ZodNumber>;
60
+ height: z.ZodOptional<z.ZodNumber>;
61
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
62
+ tag: z.ZodLiteral<"media">;
63
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
64
+ }, z.core.$strict>, z.ZodObject<{
65
+ tag: z.ZodLiteral<"external-src">;
66
+ src: z.ZodString;
67
+ }, z.core.$strict>], "tag">>;
68
+ transform: z.ZodOptional<z.ZodObject<{
69
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
70
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
71
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
72
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
73
+ x: z.ZodNumber;
74
+ y: z.ZodNumber;
75
+ radius: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>>>;
77
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
78
+ }, z.core.$strip>>>>>;
79
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
80
+ hotspot: z.ZodOptional<z.ZodObject<{
81
+ x: z.ZodNumber;
82
+ y: z.ZodNumber;
83
+ radius: z.ZodOptional<z.ZodNumber>;
84
+ }, z.core.$strip>>;
85
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
86
+ }, z.core.$strip>>;
87
+ }, z.core.$strict>;
88
+ export declare const imageMediaSchema: z.ZodObject<{
89
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
90
+ assetId: z.ZodOptional<z.ZodNever>;
91
+ id: z.ZodOptional<z.ZodNever>;
92
+ src: z.ZodOptional<z.ZodNever>;
93
+ storageBucket: z.ZodOptional<z.ZodNever>;
94
+ storagePath: z.ZodOptional<z.ZodNever>;
95
+ mimeType: z.ZodOptional<z.ZodNever>;
96
+ purpose: z.ZodOptional<z.ZodString>;
97
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
98
+ alt: z.ZodOptional<z.ZodString>;
99
+ filename: z.ZodOptional<z.ZodString>;
100
+ width: z.ZodOptional<z.ZodNumber>;
101
+ height: z.ZodOptional<z.ZodNumber>;
102
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
103
+ tag: z.ZodLiteral<"media">;
104
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
105
+ }, z.core.$strict>, z.ZodObject<{
106
+ tag: z.ZodLiteral<"external-src">;
107
+ src: z.ZodString;
108
+ }, z.core.$strict>], "tag">>;
109
+ transform: z.ZodOptional<z.ZodObject<{
110
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
111
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
112
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
113
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
114
+ x: z.ZodNumber;
115
+ y: z.ZodNumber;
116
+ radius: z.ZodOptional<z.ZodNumber>;
117
+ }, z.core.$strip>>>;
118
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
119
+ }, z.core.$strip>>>>>;
120
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
121
+ hotspot: z.ZodOptional<z.ZodObject<{
122
+ x: z.ZodNumber;
123
+ y: z.ZodNumber;
124
+ radius: z.ZodOptional<z.ZodNumber>;
125
+ }, z.core.$strip>>;
126
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
127
+ }, z.core.$strip>>;
128
+ type: z.ZodLiteral<"image">;
129
+ }, z.core.$strict>;
130
+ export declare const videoMediaSchema: z.ZodObject<{
131
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
132
+ assetId: z.ZodOptional<z.ZodNever>;
133
+ id: z.ZodOptional<z.ZodNever>;
134
+ src: z.ZodOptional<z.ZodNever>;
135
+ storageBucket: z.ZodOptional<z.ZodNever>;
136
+ storagePath: z.ZodOptional<z.ZodNever>;
137
+ mimeType: z.ZodOptional<z.ZodNever>;
138
+ purpose: z.ZodOptional<z.ZodString>;
139
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
140
+ alt: z.ZodOptional<z.ZodString>;
141
+ filename: z.ZodOptional<z.ZodString>;
142
+ width: z.ZodOptional<z.ZodNumber>;
143
+ height: z.ZodOptional<z.ZodNumber>;
144
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
145
+ tag: z.ZodLiteral<"media">;
146
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
147
+ }, z.core.$strict>, z.ZodObject<{
148
+ tag: z.ZodLiteral<"external-src">;
149
+ src: z.ZodString;
150
+ }, z.core.$strict>], "tag">>;
151
+ transform: z.ZodOptional<z.ZodObject<{
152
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
153
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
154
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
155
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
156
+ x: z.ZodNumber;
157
+ y: z.ZodNumber;
158
+ radius: z.ZodOptional<z.ZodNumber>;
159
+ }, z.core.$strip>>>;
160
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
161
+ }, z.core.$strip>>>>>;
162
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
163
+ hotspot: z.ZodOptional<z.ZodObject<{
164
+ x: z.ZodNumber;
165
+ y: z.ZodNumber;
166
+ radius: z.ZodOptional<z.ZodNumber>;
167
+ }, z.core.$strip>>;
168
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
169
+ }, z.core.$strip>>;
170
+ type: z.ZodLiteral<"video">;
171
+ }, z.core.$strict>;
172
+ type ManagedMediaFields = z.infer<typeof mediaBaseSchema>;
173
+ export type MediaOfType<TType extends MediaTypeDiscriminant> = ManagedMediaFields & {
174
+ type: TType;
175
+ };
176
+ export type Media = {
177
+ [TType in MediaTypeDiscriminant]: MediaOfType<TType>;
178
+ }[MediaTypeDiscriminant];
179
+ export declare const mediaSchema: z.ZodType<Media>;
180
+ export declare const persistableMediaSchema: z.ZodType<Media, unknown, z.core.$ZodTypeInternals<Media, unknown>>;
181
+ export declare const externalMediaSchema: z.ZodObject<{
182
+ type: z.ZodEnum<{
183
+ image: "image";
184
+ video: "video";
185
+ audio: "audio";
186
+ document: "document";
187
+ spreadsheet: "spreadsheet";
188
+ archive: "archive";
189
+ }>;
190
+ src: z.ZodString;
191
+ identifier: z.ZodOptional<z.ZodNever>;
192
+ assetId: z.ZodOptional<z.ZodNever>;
193
+ id: z.ZodOptional<z.ZodNever>;
194
+ storageBucket: z.ZodOptional<z.ZodNever>;
195
+ storagePath: z.ZodOptional<z.ZodNever>;
196
+ mimeType: z.ZodOptional<z.ZodNever>;
197
+ purpose: z.ZodOptional<z.ZodString>;
198
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
199
+ alt: z.ZodOptional<z.ZodString>;
200
+ filename: z.ZodOptional<z.ZodString>;
201
+ width: z.ZodOptional<z.ZodNumber>;
202
+ height: z.ZodOptional<z.ZodNumber>;
203
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
204
+ tag: z.ZodLiteral<"media">;
205
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
206
+ }, z.core.$strict>, z.ZodObject<{
207
+ tag: z.ZodLiteral<"external-src">;
208
+ src: z.ZodString;
209
+ }, z.core.$strict>], "tag">>;
210
+ transform: z.ZodOptional<z.ZodObject<{
211
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
212
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
213
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
214
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
215
+ x: z.ZodNumber;
216
+ y: z.ZodNumber;
217
+ radius: z.ZodOptional<z.ZodNumber>;
218
+ }, z.core.$strip>>>;
219
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
220
+ }, z.core.$strip>>>>>;
221
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
222
+ hotspot: z.ZodOptional<z.ZodObject<{
223
+ x: z.ZodNumber;
224
+ y: z.ZodNumber;
225
+ radius: z.ZodOptional<z.ZodNumber>;
226
+ }, z.core.$strip>>;
227
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
228
+ }, z.core.$strip>>;
229
+ }, z.core.$strict>;
230
+ export type PersistableMedia = Media;
231
+ export type ExternalMedia = z.infer<typeof externalMediaSchema>;
232
+ export type MediaPoster = z.infer<typeof mediaPosterSchema>;
233
+ export type MediaUsage = z.infer<z.ZodObject<typeof mediaUsageShape>>;
234
+ export declare const assetMediaSchema: z.ZodObject<{
235
+ type: z.ZodEnum<{
236
+ image: "image";
237
+ video: "video";
238
+ audio: "audio";
239
+ document: "document";
240
+ spreadsheet: "spreadsheet";
241
+ archive: "archive";
242
+ }>;
243
+ asset: z.ZodObject<{
244
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
245
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
246
+ storageBucket: z.ZodString;
247
+ storagePath: z.ZodString;
248
+ mimeType: z.ZodString;
249
+ filename: z.ZodOptional<z.ZodString>;
250
+ width: z.ZodNullable<z.ZodNumber>;
251
+ height: z.ZodNullable<z.ZodNumber>;
252
+ }, z.core.$strip>;
253
+ identifier: z.ZodOptional<z.ZodNever>;
254
+ assetId: z.ZodOptional<z.ZodNever>;
255
+ id: z.ZodOptional<z.ZodNever>;
256
+ src: z.ZodOptional<z.ZodNever>;
257
+ storageBucket: z.ZodOptional<z.ZodNever>;
258
+ storagePath: z.ZodOptional<z.ZodNever>;
259
+ mimeType: z.ZodOptional<z.ZodNever>;
260
+ purpose: z.ZodOptional<z.ZodString>;
261
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
262
+ alt: z.ZodOptional<z.ZodString>;
263
+ filename: z.ZodOptional<z.ZodString>;
264
+ width: z.ZodOptional<z.ZodNumber>;
265
+ height: z.ZodOptional<z.ZodNumber>;
266
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
267
+ tag: z.ZodLiteral<"media">;
268
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
269
+ }, z.core.$strict>, z.ZodObject<{
270
+ tag: z.ZodLiteral<"external-src">;
271
+ src: z.ZodString;
272
+ }, z.core.$strict>], "tag">>;
273
+ transform: z.ZodOptional<z.ZodObject<{
274
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
275
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
276
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
277
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
278
+ x: z.ZodNumber;
279
+ y: z.ZodNumber;
280
+ radius: z.ZodOptional<z.ZodNumber>;
281
+ }, z.core.$strip>>>;
282
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
283
+ }, z.core.$strip>>>>>;
284
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
285
+ hotspot: z.ZodOptional<z.ZodObject<{
286
+ x: z.ZodNumber;
287
+ y: z.ZodNumber;
288
+ radius: z.ZodOptional<z.ZodNumber>;
289
+ }, z.core.$strip>>;
290
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
291
+ }, z.core.$strip>>;
292
+ }, z.core.$strict>;
293
+ export declare const runtimeMediaSchema: z.ZodUnion<readonly [z.ZodType<Media, unknown, z.core.$ZodTypeInternals<Media, unknown>>, z.ZodObject<{
294
+ type: z.ZodEnum<{
295
+ image: "image";
296
+ video: "video";
297
+ audio: "audio";
298
+ document: "document";
299
+ spreadsheet: "spreadsheet";
300
+ archive: "archive";
301
+ }>;
302
+ src: z.ZodString;
303
+ identifier: z.ZodOptional<z.ZodNever>;
304
+ assetId: z.ZodOptional<z.ZodNever>;
305
+ id: z.ZodOptional<z.ZodNever>;
306
+ storageBucket: z.ZodOptional<z.ZodNever>;
307
+ storagePath: z.ZodOptional<z.ZodNever>;
308
+ mimeType: z.ZodOptional<z.ZodNever>;
309
+ purpose: z.ZodOptional<z.ZodString>;
310
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
311
+ alt: z.ZodOptional<z.ZodString>;
312
+ filename: z.ZodOptional<z.ZodString>;
313
+ width: z.ZodOptional<z.ZodNumber>;
314
+ height: z.ZodOptional<z.ZodNumber>;
315
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
316
+ tag: z.ZodLiteral<"media">;
317
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
318
+ }, z.core.$strict>, z.ZodObject<{
319
+ tag: z.ZodLiteral<"external-src">;
320
+ src: z.ZodString;
321
+ }, z.core.$strict>], "tag">>;
322
+ transform: z.ZodOptional<z.ZodObject<{
323
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
324
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
325
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
326
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
327
+ x: z.ZodNumber;
328
+ y: z.ZodNumber;
329
+ radius: z.ZodOptional<z.ZodNumber>;
330
+ }, z.core.$strip>>>;
331
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
332
+ }, z.core.$strip>>>>>;
333
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
334
+ hotspot: z.ZodOptional<z.ZodObject<{
335
+ x: z.ZodNumber;
336
+ y: z.ZodNumber;
337
+ radius: z.ZodOptional<z.ZodNumber>;
338
+ }, z.core.$strip>>;
339
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
340
+ }, z.core.$strip>>;
341
+ }, z.core.$strict>, z.ZodObject<{
342
+ type: z.ZodEnum<{
343
+ image: "image";
344
+ video: "video";
345
+ audio: "audio";
346
+ document: "document";
347
+ spreadsheet: "spreadsheet";
348
+ archive: "archive";
349
+ }>;
350
+ asset: z.ZodObject<{
351
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
352
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
353
+ storageBucket: z.ZodString;
354
+ storagePath: z.ZodString;
355
+ mimeType: z.ZodString;
356
+ filename: z.ZodOptional<z.ZodString>;
357
+ width: z.ZodNullable<z.ZodNumber>;
358
+ height: z.ZodNullable<z.ZodNumber>;
359
+ }, z.core.$strip>;
360
+ identifier: z.ZodOptional<z.ZodNever>;
361
+ assetId: z.ZodOptional<z.ZodNever>;
362
+ id: z.ZodOptional<z.ZodNever>;
363
+ src: z.ZodOptional<z.ZodNever>;
364
+ storageBucket: z.ZodOptional<z.ZodNever>;
365
+ storagePath: z.ZodOptional<z.ZodNever>;
366
+ mimeType: z.ZodOptional<z.ZodNever>;
367
+ purpose: z.ZodOptional<z.ZodString>;
368
+ placeholder: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
369
+ alt: z.ZodOptional<z.ZodString>;
370
+ filename: z.ZodOptional<z.ZodString>;
371
+ width: z.ZodOptional<z.ZodNumber>;
372
+ height: z.ZodOptional<z.ZodNumber>;
373
+ poster: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
374
+ tag: z.ZodLiteral<"media">;
375
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
376
+ }, z.core.$strict>, z.ZodObject<{
377
+ tag: z.ZodLiteral<"external-src">;
378
+ src: z.ZodString;
379
+ }, z.core.$strict>], "tag">>;
380
+ transform: z.ZodOptional<z.ZodObject<{
381
+ aspectCrops: z.ZodOptional<z.ZodPipe<z.ZodTransform<object | undefined, unknown>, z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodObject<{
382
+ aspect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodString>>;
383
+ rect: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
384
+ hotspot: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodObject<{
385
+ x: z.ZodNumber;
386
+ y: z.ZodNumber;
387
+ radius: z.ZodOptional<z.ZodNumber>;
388
+ }, z.core.$strip>>>;
389
+ rotation: z.ZodPipe<z.ZodTransform<{} | undefined, unknown>, z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>>;
390
+ }, z.core.$strip>>>>>;
391
+ rect: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
392
+ hotspot: z.ZodOptional<z.ZodObject<{
393
+ x: z.ZodNumber;
394
+ y: z.ZodNumber;
395
+ radius: z.ZodOptional<z.ZodNumber>;
396
+ }, z.core.$strip>>;
397
+ rotation: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>>;
398
+ }, z.core.$strip>>;
399
+ }, z.core.$strict>]>;
400
+ export type AssetMedia = z.infer<typeof assetMediaSchema>;
401
+ export type RuntimeMedia = z.infer<typeof runtimeMediaSchema>;
402
+ export type RuntimeMediaOfType<TType extends MediaTypeDiscriminant> = MediaOfType<TType> | (ExternalMedia & {
403
+ type: TType;
404
+ }) | (AssetMedia & {
405
+ type: TType;
406
+ });
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ /** Strict stored-reference admission delegates the canonical identifier decision. */
3
+ export declare const mediaIdentifierSchema: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
@@ -0,0 +1,2 @@
1
+ export declare const mediaTypeDiscriminants: readonly ["image", "video", "audio", "document", "spreadsheet", "archive"];
2
+ export type MediaTypeDiscriminant = (typeof mediaTypeDiscriminants)[number];
@@ -104,7 +104,19 @@ export type ProductFileDownloadMediaUsageLocation = Readonly<{
104
104
  productId: string;
105
105
  productTitle: string;
106
106
  }>;
107
- export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | EntrySlotBlockMediaUsageLocation | SurfaceSlotBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation;
107
+ export type NewsletterTemplateMediaUsageLocation = Readonly<{
108
+ kind: 'newsletterTemplate';
109
+ siteId: string;
110
+ templateId: string;
111
+ templateName: string;
112
+ }>;
113
+ export type NewsletterCampaignMediaUsageLocation = Readonly<{
114
+ kind: 'newsletterCampaign';
115
+ siteId: string;
116
+ campaignId: string;
117
+ campaignName: string;
118
+ }>;
119
+ export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | EntrySlotBlockMediaUsageLocation | SurfaceSlotBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation | NewsletterTemplateMediaUsageLocation | NewsletterCampaignMediaUsageLocation;
108
120
  export type MediaUsageCheckItemProjection = Readonly<{
109
121
  assetId: string;
110
122
  filename: string | null;
@@ -8,11 +8,7 @@ export type NormalizeMediaReferencesForWriteCoreOptions = Readonly<{
8
8
  value: unknown;
9
9
  resolveMediaAssetsById: (assetIds: readonly string[]) => Promise<readonly MediaIdentifierResolutionRecord[]>;
10
10
  }>;
11
- /**
12
- * Normalizes CMS media objects to identifier-only persistence. Infrastructure
13
- * concerns stay behind callbacks so this core workflow can run outside the
14
- * dashboard app.
15
- *
16
- * @mutates options.value (and nested objects) in-place.
11
+ /** Projects explicit write candidates; stored reads never use this conversion.
12
+ * @mutates options.value in-place only after classification, lookup and validation succeed.
17
13
  */
18
14
  export declare function normalizeMediaReferencesForWriteCore(options: NormalizeMediaReferencesForWriteCoreOptions): Promise<void>;
@@ -1,36 +1,23 @@
1
- type PortableMediaReferenceSource = 'media-field' | 'rich-text-image';
1
+ import type { MediaIdentifier } from './identifiers';
2
+ import { type ManagedMediaResolution } from './renderableMediaAsset';
2
3
  export type PortableMediaReference = Readonly<{
3
- kind: 'assetId';
4
- assetId: string;
5
- location: string;
6
- source: PortableMediaReferenceSource;
7
- } | {
8
4
  kind: 'identifier';
9
- identifier: string;
5
+ identifier: MediaIdentifier;
10
6
  location: string;
11
- source: PortableMediaReferenceSource;
7
+ source: 'media-field' | 'rich-text-image' | 'media-poster';
12
8
  }>;
13
9
  export type PortableMediaReferenceSummary = Readonly<{
14
10
  references: PortableMediaReference[];
15
- assetIds: string[];
16
- identifiers: string[];
11
+ identifiers: MediaIdentifier[];
17
12
  }>;
18
13
  type PortableMediaLookupAsset = Readonly<{
19
14
  id: string;
20
- identifier?: string | null;
15
+ identifier: MediaIdentifier;
21
16
  }>;
22
17
  type PortableMediaLookup<TAsset extends PortableMediaLookupAsset> = Readonly<{
23
- byId: Map<string, TAsset>;
24
- byIdentifier: Map<string, TAsset>;
25
- }>;
26
- export type PortableMediaResolution<TAsset extends PortableMediaLookupAsset> = Readonly<{
27
- kind: 'resolved';
28
- reference: PortableMediaReference;
29
- asset: TAsset;
30
- } | {
31
- kind: 'missing';
32
- reference: PortableMediaReference;
18
+ byIdentifier: ReadonlyMap<MediaIdentifier, TAsset>;
33
19
  }>;
20
+ export type PortableMediaResolution<TAsset extends PortableMediaLookupAsset> = ManagedMediaResolution<PortableMediaReference, TAsset>;
34
21
  export declare function summarizePortableMediaReferences(references: readonly PortableMediaReference[]): PortableMediaReferenceSummary;
35
22
  export declare function collectPortableMediaReferencesFromContent(content: unknown): PortableMediaReferenceSummary;
36
23
  export declare function buildPortableMediaLookup<TAsset extends PortableMediaLookupAsset>(assets: readonly TAsset[]): PortableMediaLookup<TAsset>;
@@ -1,18 +1,32 @@
1
1
  import type { MediaAssetId } from '../../core/src/index';
2
- export type RenderableMediaAsset = Readonly<{
3
- id: MediaAssetId;
4
- identifier?: string | null;
5
- storageBucket?: string;
6
- storagePath?: string;
7
- width?: number | null;
8
- height?: number | null;
9
- mimeType?: string;
10
- }>;
2
+ import type { MediaIdentifier } from './identifiers';
3
+ import type { RenderableMediaAsset } from './renderableMediaAssetAdmission';
4
+ export type { RenderableMediaAsset } from './renderableMediaAssetAdmission';
11
5
  export type RenderableMediaAssetIndex = Readonly<{
12
- byId: ReadonlyMap<string, RenderableMediaAsset>;
13
- byIdentifier: ReadonlyMap<string, RenderableMediaAsset>;
6
+ byId: ReadonlyMap<MediaAssetId, RenderableMediaAsset>;
7
+ byIdentifier: ReadonlyMap<MediaIdentifier, RenderableMediaAsset>;
14
8
  }>;
15
- export declare function buildRenderableMediaAssetIndex(assets: readonly RenderableMediaAsset[] | undefined): RenderableMediaAssetIndex | undefined;
16
- export declare function attachRenderableMediaAssetFields<TMedia extends Readonly<Record<string, unknown>>>(media: TMedia, asset: RenderableMediaAsset): TMedia & RenderableMediaAsset & Readonly<{
17
- assetId: MediaAssetId;
9
+ /** Shared identifier indexing for admitted site-scoped projections. */
10
+ export declare function buildMediaIdentifierIndex<TAsset extends Readonly<{
11
+ identifier: MediaIdentifier;
12
+ }>>(assets: readonly TAsset[]): ReadonlyMap<MediaIdentifier, TAsset>;
13
+ /** Index already admitted projections, including runtime registration updates. */
14
+ export declare function indexRenderableMediaAssets(assets: readonly RenderableMediaAsset[]): (RenderableMediaAssetIndex & Readonly<{
15
+ assets: readonly RenderableMediaAsset[];
16
+ }>) | undefined;
17
+ export type ManagedMediaResolution<TReference extends Readonly<{
18
+ identifier: MediaIdentifier;
19
+ }>, TAsset = RenderableMediaAsset> = Readonly<{
20
+ kind: 'resolved';
21
+ reference: TReference;
22
+ asset: TAsset;
23
+ }> | Readonly<{
24
+ kind: 'missing';
25
+ reference: TReference;
18
26
  }>;
27
+ /** A portable reference never uses an incidental UUID, URL or storage snapshot for identity. */
28
+ export declare function resolveManagedMediaReference<TReference extends Readonly<{
29
+ identifier: MediaIdentifier;
30
+ }>, TAsset = RenderableMediaAsset>(reference: TReference, index: Readonly<{
31
+ byIdentifier: ReadonlyMap<MediaIdentifier, TAsset>;
32
+ }> | undefined): ManagedMediaResolution<TReference, TAsset>;
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { indexRenderableMediaAssets } from './renderableMediaAsset';
3
+ export declare const renderableMediaAssetSchema: z.ZodObject<{
4
+ id: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../core/src/index").MediaAssetId, string>>;
5
+ identifier: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").MediaIdentifier, string>>;
6
+ storageBucket: z.ZodString;
7
+ storagePath: z.ZodString;
8
+ mimeType: z.ZodString;
9
+ filename: z.ZodOptional<z.ZodString>;
10
+ width: z.ZodNullable<z.ZodNumber>;
11
+ height: z.ZodNullable<z.ZodNumber>;
12
+ }, z.core.$strip>;
13
+ export type RenderableMediaAsset = Readonly<z.infer<typeof renderableMediaAssetSchema>>;
14
+ /** Admission precedes the identifier-only runtime resolution decision. */
15
+ export declare function buildRenderableMediaAssetIndex(assets: readonly unknown[] | undefined): ReturnType<typeof indexRenderableMediaAssets>;
@@ -0,0 +1,12 @@
1
+ import { type Result, type StoragePath } from '../../core/src/index';
2
+ declare const writableStoragePathBrand: unique symbol;
3
+ /** An exact key admitted for a write; readable paths have a different contract. */
4
+ export type WritableStoragePath = StoragePath & {
5
+ readonly [writableStoragePathBrand]: true;
6
+ };
7
+ export type WritableStoragePathError = 'unsafe-path-segment' | 'unsupported-storage-character';
8
+ /** Validate without trimming or rewriting: supplied keys are object identities. */
9
+ export declare function parseWritableStoragePath(value: unknown): Result<WritableStoragePath, WritableStoragePathError>;
10
+ /** Choose a new internal filename; never use this to rewrite an existing key. */
11
+ export declare function storageObjectFilename(filename: string, maxLength?: 120 | 255): string;
12
+ export {};