@riverbankcms/sdk 0.152.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.
- package/CHANGELOG.md +15 -0
- package/dist/{EventEmbeddedCheckoutStep-DVQXWFm6.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +1 -1
- package/dist/{PreviewEditorSidebar-Dr4NJi3Q.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -4
- package/dist/{PreviewEditorUI-DSZXQbyh.mjs → PreviewEditorUI-ORkVZhfu.mjs} +3 -3
- package/dist/{SdkPreviewModeRuntime-Dl4GyMc3.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +221 -115
- package/dist/{SiteChromeCustomizeContext-DgBe-FlM.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +1798 -2024
- package/dist/{ThemedButton-B8ViBnLK.mjs → ThemedButton-X2UxhW6F.mjs} +213 -38
- package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
- package/dist/_dts/api/src/communications.d.ts +19 -5
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
- package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
- package/dist/_dts/api/src/teamMembers.d.ts +2 -27
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
- package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +196 -804
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
- package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
- package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
- package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
- package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +28 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +276 -884
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
- package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
- package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -3
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +9 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +55 -4
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +2 -2
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
- package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
- package/dist/_dts/media-core/src/index.d.ts +4 -0
- package/dist/_dts/media-core/src/media.d.ts +406 -0
- package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
- package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
- package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
- package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
- package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
- package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
- package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
- package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
- package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
- package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
- package/dist/_dts/media-editor/src/types.d.ts +1 -1
- package/dist/_dts/media-editor/src/utils.d.ts +0 -1
- package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
- package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
- package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
- package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
- package/dist/_dts/sdk/src/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/image.d.ts +5 -5
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/link.d.ts +3 -7
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
- package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
- package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
- package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
- package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
- package/dist/client/{BookingMailingListNote-CBuMKN0w.mjs → BookingMailingListNote-DrchYW1m.mjs} +2 -2
- package/dist/client/{CardListItem-Dc9XTXhB.mjs → CardListItem-CC_GVmF6.mjs} +5 -4
- package/dist/client/{CheckboxChoice-CIqx_o0E.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-D3VQ_kLj.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +2 -2
- package/dist/client/{EventCombined.client-BHGEKise.mjs → EventCombined.client-DyN0v0Xk.mjs} +5 -6
- package/dist/client/{EventEmbeddedCheckoutStep-Bo1Cm23R.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +2 -2
- package/dist/client/{EventListing.client-D5OQgVPr.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CLL5cWrr.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
- package/dist/client/{RichText-BoDmnopf.mjs → RichText-C1fIXBzA.mjs} +45 -32
- package/dist/client/{ThemedButton-Ciltp0IK.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
- package/dist/client/{accordion-DOkRS64-.mjs → accordion-DCDVWSye.mjs} +1 -1
- package/dist/client/{bookingForm-wlMVwo9h.mjs → bookingForm-BJ3C4GlM.mjs} +42 -15
- package/dist/client/bookings.mjs +116989 -22191
- package/dist/client/{carousel-CGWk-Z0u.mjs → carousel-BSCBhfHY.mjs} +2 -2
- package/dist/client/{carousel.client-kX5mN1Eg.mjs → carousel.client-GEtOGsxo.mjs} +1 -1
- package/dist/client/{cart-OBBPlaH4.mjs → cart-Yv-aAtck.mjs} +3 -3
- package/dist/client/{checkout-Bmw2WjQX.mjs → checkout-B9xDkl30.mjs} +3 -3
- package/dist/client/client.mjs +17577 -17361
- package/dist/client/{context-BI77UFAn.mjs → context-BOGe3rIA.mjs} +1 -1
- package/dist/client/{eventCalendar-qkej2Edn.mjs → eventCalendar-D6M0T9hs.mjs} +8 -9
- package/dist/client/{eventCombined-DApKHvat.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
- package/dist/client/{eventDetails-BQyUDPH0.mjs → eventDetails-f_FhV4O8.mjs} +3 -3
- package/dist/client/{eventListing-CeAnshlZ.mjs → eventListing-WLkfAROh.mjs} +4 -4
- package/dist/client/{eventRegistration-C3A3NyBO.mjs → eventRegistration-D3ejfLvW.mjs} +10 -10
- package/dist/client/{form-DW8rU7jO.mjs → form-D5Or2Jyu.mjs} +4 -5
- package/dist/client/{headerSection-CkIhsoNm.mjs → headerSection-hWgnv27V.mjs} +3 -3
- package/dist/client/hooks.mjs +16014 -15751
- package/dist/client/{locationMap-D4O8wbli.mjs → locationMap-Di1K0O2S.mjs} +3 -4
- package/dist/client/{media-C5K_0xPd.mjs → media-D29-F1u_.mjs} +183 -362
- package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
- package/dist/client/{newsletterForm-B7IxSPuz.mjs → newsletterForm-CwxcwTNO.mjs} +4 -4
- package/dist/client/{productDetail-Bqxpwy5N.mjs → productDetail-BLSnhPdA.mjs} +3 -3
- package/dist/client/{productList-u9Lz8V15.mjs → productList-oGytONOX.mjs} +3 -3
- package/dist/client/{propsDecoder-Bf1jucUp.mjs → propsDecoder-lf_dTeZS.mjs} +1467 -125
- package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
- package/dist/client/rendering/client.mjs +10855 -10689
- package/dist/client/rendering/islands.mjs +20 -23
- package/dist/client/rendering.mjs +18411 -18181
- package/dist/client/{routeIslandApiConfig-BgP-aPMl.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
- package/dist/client/{shop-B_eykR-_.mjs → shop-BQ3bR7fA.mjs} +7 -7
- package/dist/client/{shop-commerce-CT0APkFV.mjs → shop-commerce-DDPll6ZC.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DcvZxdEK.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
- package/dist/client/{shopShared-BVJOiUiJ.mjs → shopShared-BylM9jh1.mjs} +5 -5
- package/dist/client/{useDiscountCodeUi-DPmYDunz.mjs → useDiscountCodeUi-B1Puub2v.mjs} +1 -1
- package/dist/client/{useEventPagination-8-U55vH5.mjs → useEventPagination-BBhkmQaT.mjs} +6 -7
- package/dist/preview-next/before-render.mjs +89 -4
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-C5jPdSrk.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
- package/dist/server/components.mjs +18663 -18510
- package/dist/server/config-validation.mjs +450 -215
- package/dist/server/config.mjs +450 -215
- package/dist/server/data.mjs +15940 -15705
- package/dist/server/index.mjs +227 -2
- package/dist/server/next.mjs +18643 -18490
- package/dist/server/page-converter.mjs +12588 -12477
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +18007 -17855
- package/dist/server/rendering.mjs +18677 -18516
- package/dist/server/routing.mjs +17747 -17469
- package/dist/server/server.mjs +539 -276
- package/dist/server/theme-bridge.mjs +154 -37
- package/dist/server/theme.mjs +154 -37
- package/dist/{spinner-B-ab2rJp.mjs → spinner-BYM-Y81w.mjs} +1 -1
- package/package.json +1 -1
- package/dist/client/aspectTransforms-D-TnDdq4.mjs +0 -93
- package/dist/client/colorStyles-ECDNPE_P.mjs +0 -1253
package/dist/server/index.mjs
CHANGED
|
@@ -1713,6 +1713,32 @@ const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1713
1713
|
]
|
|
1714
1714
|
}
|
|
1715
1715
|
});
|
|
1716
|
+
//#endregion
|
|
1717
|
+
//#region ../core/src/result.ts
|
|
1718
|
+
function ok(value) {
|
|
1719
|
+
return {
|
|
1720
|
+
ok: true,
|
|
1721
|
+
value
|
|
1722
|
+
};
|
|
1723
|
+
}
|
|
1724
|
+
function err(error) {
|
|
1725
|
+
return {
|
|
1726
|
+
ok: false,
|
|
1727
|
+
error
|
|
1728
|
+
};
|
|
1729
|
+
}
|
|
1730
|
+
//#endregion
|
|
1731
|
+
//#region ../core/src/branded.ts
|
|
1732
|
+
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1733
|
+
function parseUuidBrand(value, unsafeConstructor) {
|
|
1734
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
1735
|
+
const normalized = value.trim().toLowerCase();
|
|
1736
|
+
if (normalized.length === 0) return err({ kind: "empty_string" });
|
|
1737
|
+
if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
|
|
1738
|
+
return ok(unsafeConstructor(normalized));
|
|
1739
|
+
}
|
|
1740
|
+
const unsafeAsMediaAssetId = (id) => id;
|
|
1741
|
+
const parseMediaAssetId = (value) => parseUuidBrand(value, unsafeAsMediaAssetId);
|
|
1716
1742
|
const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
|
|
1717
1743
|
function availability(transport) {
|
|
1718
1744
|
return {
|
|
@@ -8929,7 +8955,7 @@ var SimpleCache = class {
|
|
|
8929
8955
|
* 1. This constant
|
|
8930
8956
|
* 2. The "version" field in package.json
|
|
8931
8957
|
*/
|
|
8932
|
-
const SDK_VERSION = "0.
|
|
8958
|
+
const SDK_VERSION = "0.153.0";
|
|
8933
8959
|
//#endregion
|
|
8934
8960
|
//#region src/client/error.ts
|
|
8935
8961
|
let _Symbol$for;
|
|
@@ -11758,4 +11784,203 @@ const SYSTEM_BLOCK_KINDS = [
|
|
|
11758
11784
|
"block.file-download"
|
|
11759
11785
|
];
|
|
11760
11786
|
//#endregion
|
|
11761
|
-
|
|
11787
|
+
//#region ../media-core/src/identifiers.ts
|
|
11788
|
+
function slugifyMediaIdentifier(value) {
|
|
11789
|
+
return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
11790
|
+
}
|
|
11791
|
+
function parseMediaIdentifier(value) {
|
|
11792
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
11793
|
+
const trimmed = value.trim();
|
|
11794
|
+
if (trimmed.length === 0) return err({ kind: "empty_identifier" });
|
|
11795
|
+
const normalized = slugifyMediaIdentifier(trimmed);
|
|
11796
|
+
if (normalized.length === 0) return err({
|
|
11797
|
+
kind: "empty_after_normalization",
|
|
11798
|
+
value
|
|
11799
|
+
});
|
|
11800
|
+
return ok(normalized);
|
|
11801
|
+
}
|
|
11802
|
+
/**
|
|
11803
|
+
* Admits identifiers read from trusted persistence without repairing dirty data in memory.
|
|
11804
|
+
* User input should use parseMediaIdentifier, which intentionally canonicalizes it.
|
|
11805
|
+
*/
|
|
11806
|
+
function parseCanonicalMediaIdentifier(value) {
|
|
11807
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
11808
|
+
const parsed = parseMediaIdentifier(value);
|
|
11809
|
+
if (!parsed.ok) return parsed;
|
|
11810
|
+
if (value !== parsed.value) return err({
|
|
11811
|
+
kind: "non_canonical_identifier",
|
|
11812
|
+
value,
|
|
11813
|
+
canonical: parsed.value
|
|
11814
|
+
});
|
|
11815
|
+
return parsed;
|
|
11816
|
+
}
|
|
11817
|
+
//#endregion
|
|
11818
|
+
//#region ../media-core/src/mediaIdentifierSchema.ts
|
|
11819
|
+
/** Strict stored-reference admission delegates the canonical identifier decision. */
|
|
11820
|
+
const mediaIdentifierSchema = z.string().transform((value, context) => {
|
|
11821
|
+
const parsed = parseCanonicalMediaIdentifier(value);
|
|
11822
|
+
if (parsed.ok) return parsed.value;
|
|
11823
|
+
context.addIssue({
|
|
11824
|
+
code: "custom",
|
|
11825
|
+
message: "Expected a canonical media identifier"
|
|
11826
|
+
});
|
|
11827
|
+
return z.NEVER;
|
|
11828
|
+
});
|
|
11829
|
+
//#endregion
|
|
11830
|
+
//#region ../media-core/src/mediaKinds.ts
|
|
11831
|
+
const mediaTypeDiscriminants = [
|
|
11832
|
+
"image",
|
|
11833
|
+
"video",
|
|
11834
|
+
"audio",
|
|
11835
|
+
"document",
|
|
11836
|
+
"spreadsheet",
|
|
11837
|
+
"archive"
|
|
11838
|
+
];
|
|
11839
|
+
//#endregion
|
|
11840
|
+
//#region ../media-core/src/renderableMediaAsset.ts
|
|
11841
|
+
/** Shared identifier indexing for admitted site-scoped projections. */
|
|
11842
|
+
function buildMediaIdentifierIndex(assets) {
|
|
11843
|
+
const index = new Map(assets.map((asset) => [asset.identifier, asset]));
|
|
11844
|
+
if (index.size !== assets.length) throw new Error("Duplicate media identifier in a site asset list");
|
|
11845
|
+
return index;
|
|
11846
|
+
}
|
|
11847
|
+
/** Index already admitted projections, including runtime registration updates. */
|
|
11848
|
+
function indexRenderableMediaAssets(assets) {
|
|
11849
|
+
if (!assets.length) return void 0;
|
|
11850
|
+
const byId = new Map(assets.map((asset) => [asset.id, asset]));
|
|
11851
|
+
const byIdentifier = buildMediaIdentifierIndex(assets);
|
|
11852
|
+
if (byId.size !== assets.length) throw new Error("Duplicate media asset identity in a site asset list");
|
|
11853
|
+
return {
|
|
11854
|
+
assets,
|
|
11855
|
+
byId,
|
|
11856
|
+
byIdentifier
|
|
11857
|
+
};
|
|
11858
|
+
}
|
|
11859
|
+
/** A portable reference never uses an incidental UUID, URL or storage snapshot for identity. */
|
|
11860
|
+
function resolveManagedMediaReference(reference, index) {
|
|
11861
|
+
const asset = index?.byIdentifier.get(reference.identifier);
|
|
11862
|
+
return asset ? {
|
|
11863
|
+
kind: "resolved",
|
|
11864
|
+
reference,
|
|
11865
|
+
asset
|
|
11866
|
+
} : {
|
|
11867
|
+
kind: "missing",
|
|
11868
|
+
reference
|
|
11869
|
+
};
|
|
11870
|
+
}
|
|
11871
|
+
//#endregion
|
|
11872
|
+
//#region ../media-core/src/renderableMediaAssetAdmission.ts
|
|
11873
|
+
const mediaAssetIdSchema = z.string().transform((value, context) => {
|
|
11874
|
+
const parsed = parseMediaAssetId(value);
|
|
11875
|
+
if (parsed.ok) return parsed.value;
|
|
11876
|
+
context.addIssue({
|
|
11877
|
+
code: "custom",
|
|
11878
|
+
message: "Expected a media asset ID"
|
|
11879
|
+
});
|
|
11880
|
+
return z.NEVER;
|
|
11881
|
+
});
|
|
11882
|
+
const nonemptyStorageValue = z.string().refine((value) => value.trim().length > 0);
|
|
11883
|
+
const renderableMediaAssetSchema = z.object({
|
|
11884
|
+
id: mediaAssetIdSchema,
|
|
11885
|
+
identifier: mediaIdentifierSchema,
|
|
11886
|
+
storageBucket: nonemptyStorageValue,
|
|
11887
|
+
storagePath: nonemptyStorageValue,
|
|
11888
|
+
mimeType: nonemptyStorageValue,
|
|
11889
|
+
filename: z.string().optional(),
|
|
11890
|
+
width: z.number().positive().nullable(),
|
|
11891
|
+
height: z.number().positive().nullable()
|
|
11892
|
+
});
|
|
11893
|
+
/** Admission precedes the identifier-only runtime resolution decision. */
|
|
11894
|
+
function buildRenderableMediaAssetIndex(assets) {
|
|
11895
|
+
if (!assets?.length) return void 0;
|
|
11896
|
+
return indexRenderableMediaAssets(assets.map((asset) => renderableMediaAssetSchema.parse(asset)));
|
|
11897
|
+
}
|
|
11898
|
+
//#endregion
|
|
11899
|
+
//#region ../media-core/src/media.ts
|
|
11900
|
+
const hotspotSchema = z.object({
|
|
11901
|
+
x: z.number().min(0).max(1),
|
|
11902
|
+
y: z.number().min(0).max(1),
|
|
11903
|
+
radius: z.number().optional()
|
|
11904
|
+
});
|
|
11905
|
+
const rotationSchema = z.union([
|
|
11906
|
+
z.literal(0),
|
|
11907
|
+
z.literal(90),
|
|
11908
|
+
z.literal(180),
|
|
11909
|
+
z.literal(270)
|
|
11910
|
+
]);
|
|
11911
|
+
const rectSchema = z.tuple([
|
|
11912
|
+
z.number(),
|
|
11913
|
+
z.number(),
|
|
11914
|
+
z.number(),
|
|
11915
|
+
z.number()
|
|
11916
|
+
]);
|
|
11917
|
+
const aspectCropSchema = z.object({
|
|
11918
|
+
aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
|
|
11919
|
+
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
11920
|
+
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
11921
|
+
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
11922
|
+
});
|
|
11923
|
+
const transformSchema = z.object({
|
|
11924
|
+
aspectCrops: z.preprocess((value) => {
|
|
11925
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
11926
|
+
return value;
|
|
11927
|
+
}, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
|
|
11928
|
+
rect: rectSchema.optional(),
|
|
11929
|
+
hotspot: hotspotSchema.optional(),
|
|
11930
|
+
rotation: rotationSchema.optional()
|
|
11931
|
+
});
|
|
11932
|
+
const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
|
|
11933
|
+
tag: z.literal("media"),
|
|
11934
|
+
identifier: mediaIdentifierSchema
|
|
11935
|
+
}).strict(), z.object({
|
|
11936
|
+
tag: z.literal("external-src"),
|
|
11937
|
+
src: z.string().url()
|
|
11938
|
+
}).strict()]);
|
|
11939
|
+
const mediaUsageShape = {
|
|
11940
|
+
purpose: z.string().optional(),
|
|
11941
|
+
placeholder: z.boolean().default(true).optional(),
|
|
11942
|
+
alt: z.string().optional(),
|
|
11943
|
+
filename: z.string().optional(),
|
|
11944
|
+
width: z.number().optional(),
|
|
11945
|
+
height: z.number().optional(),
|
|
11946
|
+
poster: mediaPosterSchema.optional(),
|
|
11947
|
+
transform: transformSchema.optional()
|
|
11948
|
+
};
|
|
11949
|
+
const environmentExclusions = {
|
|
11950
|
+
assetId: z.never().optional(),
|
|
11951
|
+
id: z.never().optional(),
|
|
11952
|
+
src: z.never().optional(),
|
|
11953
|
+
storageBucket: z.never().optional(),
|
|
11954
|
+
storagePath: z.never().optional(),
|
|
11955
|
+
mimeType: z.never().optional()
|
|
11956
|
+
};
|
|
11957
|
+
const mediaBaseSchema = z.object({
|
|
11958
|
+
...mediaUsageShape,
|
|
11959
|
+
...environmentExclusions,
|
|
11960
|
+
identifier: mediaIdentifierSchema
|
|
11961
|
+
}).strict();
|
|
11962
|
+
mediaBaseSchema.extend({ type: z.literal("image") });
|
|
11963
|
+
mediaBaseSchema.extend({ type: z.literal("video") });
|
|
11964
|
+
const mediaSchema = mediaBaseSchema.extend({ type: z.enum(mediaTypeDiscriminants) });
|
|
11965
|
+
const persistableMediaSchema = mediaSchema;
|
|
11966
|
+
const externalMediaSchema = z.object({
|
|
11967
|
+
...mediaUsageShape,
|
|
11968
|
+
...environmentExclusions,
|
|
11969
|
+
type: z.enum(mediaTypeDiscriminants),
|
|
11970
|
+
src: z.string().min(1),
|
|
11971
|
+
identifier: z.never().optional()
|
|
11972
|
+
}).strict();
|
|
11973
|
+
const assetMediaSchema = z.object({
|
|
11974
|
+
...mediaUsageShape,
|
|
11975
|
+
...environmentExclusions,
|
|
11976
|
+
type: z.enum(mediaTypeDiscriminants),
|
|
11977
|
+
asset: renderableMediaAssetSchema,
|
|
11978
|
+
identifier: z.never().optional()
|
|
11979
|
+
}).strict();
|
|
11980
|
+
const runtimeMediaSchema = z.union([
|
|
11981
|
+
mediaSchema,
|
|
11982
|
+
externalMediaSchema,
|
|
11983
|
+
assetMediaSchema
|
|
11984
|
+
]);
|
|
11985
|
+
//#endregion
|
|
11986
|
+
export { API_ENDPOINTS, DEFAULT_PUBLISHED_RUNTIME_CACHE_PAYLOAD_SCHEMA_VERSION, PrebuildLoader, RiverbankApiError, SDK_CORRELATION_HEADER_NAMES, SYSTEM_BLOCK_KINDS, buildEndpointURL, buildRenderableMediaAssetIndex, canUsePrebuild, classifyPublishedRuntimeCacheFreshness, createPrebuildLoader, createRiverbankClient, derivePublishedRuntimeCacheKey, getResilienceStatusFromError, isPublishedRuntimeCacheKeyEndpoint, mediaIdentifierSchema, mediaSchema, normalizeRuntimePublicPath, parseCanonicalMediaIdentifier, parseMediaIdentifier, parsePublishedRuntimeCacheKey, parsePublishedRuntimeCacheKeyDetails, parsePublishedRuntimeCachePayloadSchemaVersion, persistableMediaSchema, prebuildCache, renderableMediaAssetSchema, resolveManagedMediaReference, resolveRuntimeCachePolicy, runtimeMediaSchema };
|