@riverbankcms/sdk 0.132.0 → 0.134.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 +10 -0
- package/dist/{PreviewEditorSidebar-DKQ5eFK9.mjs → PreviewEditorSidebar-DfRhJPFQ.mjs} +3 -3
- package/dist/{PreviewEditorUI-CNTcOjCC.mjs → PreviewEditorUI-Dppxcr_g.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-DJu3qu33.mjs → SdkPreviewModeRuntime-8CyGCXir.mjs} +46 -15
- package/dist/{SiteChromeCustomizeContext-2TzT3vbj.mjs → SiteChromeCustomizeContext-DVMTMvqA.mjs} +497 -169
- package/dist/_dts/ai/src/contracts/proposals.d.ts +384 -384
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +219 -219
- package/dist/_dts/api/src/accountApi.d.ts +5 -5
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -14
- package/dist/_dts/api/src/bookings.d.ts +2 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +2 -2
- package/dist/_dts/api/src/endpoints.d.ts +3 -3
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/navigation/contracts.d.ts +9 -6
- package/dist/_dts/api/src/navigation/linkResolver.d.ts +6 -2
- package/dist/_dts/api/src/navigation/types.d.ts +23 -6
- package/dist/_dts/api/src/navigation.d.ts +1 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +15 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +3 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +2 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +50 -50
- package/dist/_dts/api/src/siteBanner.d.ts +4 -2
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/webhooks.d.ts +12 -12
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +28 -72
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -2
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +36 -14
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +148 -148
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/shared/bookingConsent.d.ts +36 -0
- package/dist/_dts/blocks/src/system/manifest/hydrateLinks.d.ts +9 -2
- package/dist/_dts/blocks/src/system/manifest/resolveBlockData.d.ts +8 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +79 -79
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -11
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/DynamicFormFields.d.ts +3 -19
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.consent.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.field-values.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.fields.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +38 -144
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -19
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +18 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/validation.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +34 -12
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingConsentAgreement.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
- package/dist/_dts/content-model/src/content-types/schema.d.ts +4 -4
- package/dist/_dts/core/src/booking-consent.d.ts +8 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
- package/dist/_dts/db/src/schemas/forms.d.ts +21 -21
- package/dist/_dts/db/src/types/jsonb.d.ts +1 -1
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +3 -2
- package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +3 -4
- package/dist/_dts/media-core/src/usageScanner.d.ts +1 -1
- package/dist/_dts/sdk/src/bookings/types.d.ts +7 -89
- package/dist/_dts/sdk/src/config/validation.d.ts +30 -30
- package/dist/_dts/sdk/src/contracts/content.d.ts +10 -36
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +9 -9
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -19
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -12
- package/dist/_dts/theme-core/src/cards/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -72
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/schema.d.ts +82 -82
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{StepIndicator-CGixP_LW.mjs → BookingConsentAgreement-BxgpGEFD.mjs} +26 -4
- package/dist/client/{DiscountCodeDisclosure-DO7llLxm.mjs → DiscountCodeDisclosure-CfuPOHD0.mjs} +1 -1
- package/dist/client/{EventCombined.client-xID7zN__.mjs → EventCombined.client-DB8Qfzi-.mjs} +3 -3
- package/dist/client/{EventListing.client-CriBslp0.mjs → EventListing.client-DD4X8hp4.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DYmHnM8g.mjs → LeafletStaticMap-QhgIBQbv.mjs} +1 -1
- package/dist/client/{WholeSeriesRegistrationWizard-BEjzSiOA.mjs → WholeSeriesRegistrationWizard-DwtC7bCs.mjs} +72 -22
- package/dist/client/{accordion-CgFbnnnQ.mjs → accordion-DFXpLvwg.mjs} +1 -1
- package/dist/client/{bookingForm-dUyGpbxc.mjs → bookingForm-sI05d3lk.mjs} +73 -47
- package/dist/client/bookings.mjs +989 -140
- package/dist/client/{carousel-BvBwkUzx.mjs → carousel-wjyWTZCh.mjs} +1 -1
- package/dist/client/{cart-DiZENT2E.mjs → cart-DCwdpA4i.mjs} +3 -3
- package/dist/client/{checkout-Dq13KIgR.mjs → checkout-DTDW3l0R.mjs} +3 -3
- package/dist/client/checkoutUrls-DQYC_Br-.mjs +187 -0
- package/dist/client/client.mjs +556 -237
- package/dist/client/{context-B83PiNzm.mjs → context-TSK1CGx8.mjs} +1 -14
- package/dist/client/{courseRegistration-CKC5NmyH.mjs → courseRegistration-A-Tg7qw_.mjs} +3 -3
- package/dist/client/{eventCalendar-BF0Jatfw.mjs → eventCalendar-B0Zg-i_w.mjs} +5 -5
- package/dist/client/{eventCombined-BuoCF8je.mjs → eventCombined-B8Y2wizd.mjs} +3 -3
- package/dist/client/{eventDetails-CKwh0S9s.mjs → eventDetails-DPDOwURJ.mjs} +3 -3
- package/dist/client/{eventListing-eUxaWFaB.mjs → eventListing-CjBcmSLn.mjs} +3 -3
- package/dist/client/{eventRegistration-CfkNOkPb.mjs → eventRegistration-CK30HsAq.mjs} +111 -64
- package/dist/client/{form-C17H1c_H.mjs → form-CUXfsABE.mjs} +2 -2
- package/dist/client/{headerSection-DEwUmrtt.mjs → headerSection-N-mN3rjr.mjs} +2 -2
- package/dist/client/hooks.mjs +106 -3
- package/dist/client/{locationMap-Pf2QwuvW.mjs → locationMap-oiIDQMBt.mjs} +2 -2
- package/dist/client/{newsletterForm-BWQAH5Sv.mjs → newsletterForm-CkQ2tTrM.mjs} +2 -2
- package/dist/client/{pricing-CVdvbopJ.mjs → pricing-Caa0QWzh.mjs} +1 -1
- package/dist/client/{productDetail-BZi1Fa_G.mjs → productDetail-CnidyrsN.mjs} +3 -3
- package/dist/client/{productList-qq-55DNk.mjs → productList-CttYcS_S.mjs} +3 -3
- package/dist/client/{propsDecoder-BxmqPKdP.mjs → propsDecoder-CeUMxI9a.mjs} +211 -100
- package/dist/client/rendering/client.mjs +428 -151
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +643 -324
- package/dist/client/{scrollToBlock-B3CcKdtG.mjs → scrollToBlock-lPr1oqxB.mjs} +1 -1
- package/dist/client/{shop-DNWJPut5.mjs → shop-DXQtMo2O.mjs} +6 -6
- package/dist/client/{shop-commerce-BhvQCosS.mjs → shop-commerce-quDL411J.mjs} +7 -164
- package/dist/client/{shop-commerce-store-B04sCNnW.mjs → shop-commerce-store-Dnu-8Iub.mjs} +1 -1
- package/dist/client/{shopShared-DNNgZlmW.mjs → shopShared-BWPUURvG.mjs} +3 -3
- package/dist/client/{useEventFilters-CUmhE24_.mjs → useEventFilters-DRhWp2_5.mjs} +3 -3
- package/dist/client/{usePolling-M5jG675x.mjs → usePolling-UN4WKnaM.mjs} +2 -2
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-BEXb1wqo.mjs → sdk-runtime-Ca5RD78X.mjs} +1 -1
- package/dist/{separator-DGMuip1D.mjs → separator-CMhj6BTi.mjs} +1 -1
- package/dist/server/components.mjs +117 -37
- package/dist/server/config-validation.mjs +106 -3
- package/dist/server/config.mjs +106 -3
- package/dist/server/data.mjs +106 -3
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +186 -106
- package/dist/server/page-converter.mjs +105 -2
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +119 -37
- package/dist/server/rendering.mjs +117 -37
- package/dist/server/routing.mjs +132 -73
- package/dist/server/server.mjs +107 -4
- package/dist/server/theme-bridge.mjs +4 -4
- package/package.json +2 -2
- package/dist/client/checkoutUrls-Ct8Mxna3.mjs +0 -26
|
@@ -2485,6 +2485,68 @@ z.object({
|
|
|
2485
2485
|
monthlyCurrency: z.literal("gbp")
|
|
2486
2486
|
});
|
|
2487
2487
|
//#endregion
|
|
2488
|
+
//#region ../blocks/src/system/types/link.ts
|
|
2489
|
+
const nullableString = z.union([z.string().min(1), z.null()]);
|
|
2490
|
+
const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
|
|
2491
|
+
"page",
|
|
2492
|
+
"content",
|
|
2493
|
+
"pageSurface"
|
|
2494
|
+
];
|
|
2495
|
+
const resolvedInternalLinkKeys = [
|
|
2496
|
+
"entityId",
|
|
2497
|
+
"entityType",
|
|
2498
|
+
"href",
|
|
2499
|
+
"title",
|
|
2500
|
+
"typeLabel"
|
|
2501
|
+
];
|
|
2502
|
+
const internalRouteOnlyLinkSchema = z.object({
|
|
2503
|
+
kind: z.literal("internal"),
|
|
2504
|
+
routeId: z.string().min(1)
|
|
2505
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
2506
|
+
if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
|
|
2507
|
+
ctx.addIssue({
|
|
2508
|
+
code: "custom",
|
|
2509
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
2510
|
+
});
|
|
2511
|
+
});
|
|
2512
|
+
const internalResolvedLinkSchema = z.object({
|
|
2513
|
+
kind: z.literal("internal"),
|
|
2514
|
+
routeId: z.string().min(1),
|
|
2515
|
+
entityId: z.string().min(1),
|
|
2516
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2517
|
+
href: z.string().min(1),
|
|
2518
|
+
title: z.string().min(1),
|
|
2519
|
+
typeLabel: z.string().min(1),
|
|
2520
|
+
contentTypeKey: nullableString.optional(),
|
|
2521
|
+
contentTypeName: nullableString.optional(),
|
|
2522
|
+
updatedAt: nullableString.optional()
|
|
2523
|
+
}).passthrough();
|
|
2524
|
+
const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
|
|
2525
|
+
const externalLinkSchema$1 = z.object({
|
|
2526
|
+
kind: z.literal("external"),
|
|
2527
|
+
href: z.string().min(1)
|
|
2528
|
+
}).passthrough();
|
|
2529
|
+
const customLinkSchema$1 = z.object({
|
|
2530
|
+
kind: z.literal("url"),
|
|
2531
|
+
href: z.string().min(1)
|
|
2532
|
+
}).passthrough();
|
|
2533
|
+
const pageLinkSchema$1 = z.object({
|
|
2534
|
+
kind: z.literal("page"),
|
|
2535
|
+
identifier: z.string().min(1)
|
|
2536
|
+
}).passthrough();
|
|
2537
|
+
const entryLinkSchema$1 = z.object({
|
|
2538
|
+
kind: z.literal("entry"),
|
|
2539
|
+
contentType: z.string().min(1),
|
|
2540
|
+
identifier: z.string().min(1)
|
|
2541
|
+
}).passthrough();
|
|
2542
|
+
z.union([
|
|
2543
|
+
internalLinkSchema,
|
|
2544
|
+
externalLinkSchema$1,
|
|
2545
|
+
customLinkSchema$1,
|
|
2546
|
+
pageLinkSchema$1,
|
|
2547
|
+
entryLinkSchema$1
|
|
2548
|
+
]);
|
|
2549
|
+
//#endregion
|
|
2488
2550
|
//#region ../api/src/navigation/contracts.ts
|
|
2489
2551
|
/**
|
|
2490
2552
|
* Canonical navigation/link Zod contracts.
|
|
@@ -2514,7 +2576,7 @@ const internalLinkPayloadSchema = z.object({
|
|
|
2514
2576
|
kind: z.literal("internal"),
|
|
2515
2577
|
routeId: z.string().uuid(),
|
|
2516
2578
|
entityId: z.string().uuid(),
|
|
2517
|
-
entityType: z.enum(
|
|
2579
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2518
2580
|
href: z.string().min(1),
|
|
2519
2581
|
title: z.string().min(1),
|
|
2520
2582
|
typeLabel: z.string().min(1),
|
|
@@ -26482,6 +26544,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
|
26482
26544
|
]);
|
|
26483
26545
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
26484
26546
|
//#endregion
|
|
26547
|
+
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
26548
|
+
const blockBookingConsentSchema = z.object({
|
|
26549
|
+
requirementId: z.string(),
|
|
26550
|
+
title: z.string(),
|
|
26551
|
+
agreement: RichTextDocSchema,
|
|
26552
|
+
checkboxLabel: z.string()
|
|
26553
|
+
});
|
|
26554
|
+
const bookingRequirementConsentFieldSchema = z.object({
|
|
26555
|
+
id: z.string(),
|
|
26556
|
+
label: z.string(),
|
|
26557
|
+
type: z.literal("booking_requirement_consent"),
|
|
26558
|
+
required: z.literal(true),
|
|
26559
|
+
agreement: RichTextDocSchema,
|
|
26560
|
+
checkboxLabel: z.string().min(1)
|
|
26561
|
+
});
|
|
26562
|
+
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26563
|
+
//#endregion
|
|
26485
26564
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26486
26565
|
const wholeSeriesVenueSchema = z.object({
|
|
26487
26566
|
id: z.string(),
|
|
@@ -26546,6 +26625,7 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26546
26625
|
pricing: wholeSeriesPricingSchema,
|
|
26547
26626
|
currency: z.string(),
|
|
26548
26627
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26628
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26549
26629
|
enrollmentCapacity: z.number().nullable(),
|
|
26550
26630
|
acceptsMemberships: z.boolean(),
|
|
26551
26631
|
status: z.enum([
|
|
@@ -26863,6 +26943,7 @@ const publicEventSchema = z.object({
|
|
|
26863
26943
|
timeZone: z.string(),
|
|
26864
26944
|
pricing: publicEventPricingSchema,
|
|
26865
26945
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26946
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26866
26947
|
accessRestriction: accessRestrictionSchema,
|
|
26867
26948
|
allowedCategoryIds: z.array(z.string()),
|
|
26868
26949
|
requireGuestDetails: z.boolean().optional(),
|
|
@@ -27211,6 +27292,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
|
|
|
27211
27292
|
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27212
27293
|
}
|
|
27213
27294
|
//#endregion
|
|
27295
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27296
|
+
function planEventRegistrationScope(input) {
|
|
27297
|
+
const subject = input.subject;
|
|
27298
|
+
const selectedRunOffering = input.wholeSeriesOffering;
|
|
27299
|
+
if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
|
|
27300
|
+
kind: "context",
|
|
27301
|
+
events: resolveEventRegistrationScopedEvents(input.events, {
|
|
27302
|
+
occurrenceContext: input.occurrenceContext,
|
|
27303
|
+
subject
|
|
27304
|
+
})
|
|
27305
|
+
};
|
|
27306
|
+
if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
|
|
27307
|
+
return {
|
|
27308
|
+
kind: "selectedRun",
|
|
27309
|
+
events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
|
|
27310
|
+
offering: selectedRunOffering
|
|
27311
|
+
};
|
|
27312
|
+
}
|
|
27313
|
+
//#endregion
|
|
27214
27314
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
27215
27315
|
function isRecord$5(value) {
|
|
27216
27316
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -27624,10 +27724,13 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27624
27724
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27625
27725
|
}
|
|
27626
27726
|
function scopeEventRegistrationEvents(source) {
|
|
27627
|
-
|
|
27727
|
+
const scope = planEventRegistrationScope({
|
|
27728
|
+
events: toRegistrationEvents(source.events ?? []),
|
|
27729
|
+
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27628
27730
|
occurrenceContext: source.occurrenceContext,
|
|
27629
27731
|
subject: source.subject
|
|
27630
27732
|
});
|
|
27733
|
+
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27631
27734
|
}
|
|
27632
27735
|
function shellLabelForRegistrationStep(step, events) {
|
|
27633
27736
|
switch (step) {
|
|
@@ -30840,7 +30943,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
|
30840
30943
|
entityId: z.string(),
|
|
30841
30944
|
path: z.string(),
|
|
30842
30945
|
title: z.string(),
|
|
30843
|
-
kind: z.enum(
|
|
30946
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
30844
30947
|
contentTypeKey: z.string().nullable().optional()
|
|
30845
30948
|
})) });
|
|
30846
30949
|
const groupOverrideFields = [
|
package/dist/server/config.mjs
CHANGED
|
@@ -2561,6 +2561,68 @@ z.object({
|
|
|
2561
2561
|
monthlyCurrency: z.literal("gbp")
|
|
2562
2562
|
});
|
|
2563
2563
|
//#endregion
|
|
2564
|
+
//#region ../blocks/src/system/types/link.ts
|
|
2565
|
+
const nullableString = z.union([z.string().min(1), z.null()]);
|
|
2566
|
+
const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
|
|
2567
|
+
"page",
|
|
2568
|
+
"content",
|
|
2569
|
+
"pageSurface"
|
|
2570
|
+
];
|
|
2571
|
+
const resolvedInternalLinkKeys = [
|
|
2572
|
+
"entityId",
|
|
2573
|
+
"entityType",
|
|
2574
|
+
"href",
|
|
2575
|
+
"title",
|
|
2576
|
+
"typeLabel"
|
|
2577
|
+
];
|
|
2578
|
+
const internalRouteOnlyLinkSchema = z.object({
|
|
2579
|
+
kind: z.literal("internal"),
|
|
2580
|
+
routeId: z.string().min(1)
|
|
2581
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
2582
|
+
if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
|
|
2583
|
+
ctx.addIssue({
|
|
2584
|
+
code: "custom",
|
|
2585
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
2586
|
+
});
|
|
2587
|
+
});
|
|
2588
|
+
const internalResolvedLinkSchema = z.object({
|
|
2589
|
+
kind: z.literal("internal"),
|
|
2590
|
+
routeId: z.string().min(1),
|
|
2591
|
+
entityId: z.string().min(1),
|
|
2592
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2593
|
+
href: z.string().min(1),
|
|
2594
|
+
title: z.string().min(1),
|
|
2595
|
+
typeLabel: z.string().min(1),
|
|
2596
|
+
contentTypeKey: nullableString.optional(),
|
|
2597
|
+
contentTypeName: nullableString.optional(),
|
|
2598
|
+
updatedAt: nullableString.optional()
|
|
2599
|
+
}).passthrough();
|
|
2600
|
+
const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
|
|
2601
|
+
const externalLinkSchema$1 = z.object({
|
|
2602
|
+
kind: z.literal("external"),
|
|
2603
|
+
href: z.string().min(1)
|
|
2604
|
+
}).passthrough();
|
|
2605
|
+
const customLinkSchema$1 = z.object({
|
|
2606
|
+
kind: z.literal("url"),
|
|
2607
|
+
href: z.string().min(1)
|
|
2608
|
+
}).passthrough();
|
|
2609
|
+
const pageLinkSchema$1 = z.object({
|
|
2610
|
+
kind: z.literal("page"),
|
|
2611
|
+
identifier: z.string().min(1)
|
|
2612
|
+
}).passthrough();
|
|
2613
|
+
const entryLinkSchema$1 = z.object({
|
|
2614
|
+
kind: z.literal("entry"),
|
|
2615
|
+
contentType: z.string().min(1),
|
|
2616
|
+
identifier: z.string().min(1)
|
|
2617
|
+
}).passthrough();
|
|
2618
|
+
z.union([
|
|
2619
|
+
internalLinkSchema,
|
|
2620
|
+
externalLinkSchema$1,
|
|
2621
|
+
customLinkSchema$1,
|
|
2622
|
+
pageLinkSchema$1,
|
|
2623
|
+
entryLinkSchema$1
|
|
2624
|
+
]);
|
|
2625
|
+
//#endregion
|
|
2564
2626
|
//#region ../api/src/navigation/contracts.ts
|
|
2565
2627
|
/**
|
|
2566
2628
|
* Canonical navigation/link Zod contracts.
|
|
@@ -2590,7 +2652,7 @@ const internalLinkPayloadSchema = z.object({
|
|
|
2590
2652
|
kind: z.literal("internal"),
|
|
2591
2653
|
routeId: z.string().uuid(),
|
|
2592
2654
|
entityId: z.string().uuid(),
|
|
2593
|
-
entityType: z.enum(
|
|
2655
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2594
2656
|
href: z.string().min(1),
|
|
2595
2657
|
title: z.string().min(1),
|
|
2596
2658
|
typeLabel: z.string().min(1),
|
|
@@ -26558,6 +26620,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
|
26558
26620
|
]);
|
|
26559
26621
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
26560
26622
|
//#endregion
|
|
26623
|
+
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
26624
|
+
const blockBookingConsentSchema = z.object({
|
|
26625
|
+
requirementId: z.string(),
|
|
26626
|
+
title: z.string(),
|
|
26627
|
+
agreement: RichTextDocSchema,
|
|
26628
|
+
checkboxLabel: z.string()
|
|
26629
|
+
});
|
|
26630
|
+
const bookingRequirementConsentFieldSchema = z.object({
|
|
26631
|
+
id: z.string(),
|
|
26632
|
+
label: z.string(),
|
|
26633
|
+
type: z.literal("booking_requirement_consent"),
|
|
26634
|
+
required: z.literal(true),
|
|
26635
|
+
agreement: RichTextDocSchema,
|
|
26636
|
+
checkboxLabel: z.string().min(1)
|
|
26637
|
+
});
|
|
26638
|
+
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26639
|
+
//#endregion
|
|
26561
26640
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26562
26641
|
const wholeSeriesVenueSchema = z.object({
|
|
26563
26642
|
id: z.string(),
|
|
@@ -26622,6 +26701,7 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26622
26701
|
pricing: wholeSeriesPricingSchema,
|
|
26623
26702
|
currency: z.string(),
|
|
26624
26703
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26704
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26625
26705
|
enrollmentCapacity: z.number().nullable(),
|
|
26626
26706
|
acceptsMemberships: z.boolean(),
|
|
26627
26707
|
status: z.enum([
|
|
@@ -26939,6 +27019,7 @@ const publicEventSchema = z.object({
|
|
|
26939
27019
|
timeZone: z.string(),
|
|
26940
27020
|
pricing: publicEventPricingSchema,
|
|
26941
27021
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
27022
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26942
27023
|
accessRestriction: accessRestrictionSchema,
|
|
26943
27024
|
allowedCategoryIds: z.array(z.string()),
|
|
26944
27025
|
requireGuestDetails: z.boolean().optional(),
|
|
@@ -27287,6 +27368,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
|
|
|
27287
27368
|
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27288
27369
|
}
|
|
27289
27370
|
//#endregion
|
|
27371
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27372
|
+
function planEventRegistrationScope(input) {
|
|
27373
|
+
const subject = input.subject;
|
|
27374
|
+
const selectedRunOffering = input.wholeSeriesOffering;
|
|
27375
|
+
if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
|
|
27376
|
+
kind: "context",
|
|
27377
|
+
events: resolveEventRegistrationScopedEvents(input.events, {
|
|
27378
|
+
occurrenceContext: input.occurrenceContext,
|
|
27379
|
+
subject
|
|
27380
|
+
})
|
|
27381
|
+
};
|
|
27382
|
+
if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
|
|
27383
|
+
return {
|
|
27384
|
+
kind: "selectedRun",
|
|
27385
|
+
events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
|
|
27386
|
+
offering: selectedRunOffering
|
|
27387
|
+
};
|
|
27388
|
+
}
|
|
27389
|
+
//#endregion
|
|
27290
27390
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
27291
27391
|
function isRecord$5(value) {
|
|
27292
27392
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -27700,10 +27800,13 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27700
27800
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27701
27801
|
}
|
|
27702
27802
|
function scopeEventRegistrationEvents(source) {
|
|
27703
|
-
|
|
27803
|
+
const scope = planEventRegistrationScope({
|
|
27804
|
+
events: toRegistrationEvents(source.events ?? []),
|
|
27805
|
+
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27704
27806
|
occurrenceContext: source.occurrenceContext,
|
|
27705
27807
|
subject: source.subject
|
|
27706
27808
|
});
|
|
27809
|
+
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27707
27810
|
}
|
|
27708
27811
|
function shellLabelForRegistrationStep(step, events) {
|
|
27709
27812
|
switch (step) {
|
|
@@ -30916,7 +31019,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
|
30916
31019
|
entityId: z.string(),
|
|
30917
31020
|
path: z.string(),
|
|
30918
31021
|
title: z.string(),
|
|
30919
|
-
kind: z.enum(
|
|
31022
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
30920
31023
|
contentTypeKey: z.string().nullable().optional()
|
|
30921
31024
|
})) });
|
|
30922
31025
|
const groupOverrideFields = [
|
package/dist/server/data.mjs
CHANGED
|
@@ -2485,6 +2485,68 @@ z.object({
|
|
|
2485
2485
|
monthlyCurrency: z.literal("gbp")
|
|
2486
2486
|
});
|
|
2487
2487
|
//#endregion
|
|
2488
|
+
//#region ../blocks/src/system/types/link.ts
|
|
2489
|
+
const nullableString = z.union([z.string().min(1), z.null()]);
|
|
2490
|
+
const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
|
|
2491
|
+
"page",
|
|
2492
|
+
"content",
|
|
2493
|
+
"pageSurface"
|
|
2494
|
+
];
|
|
2495
|
+
const resolvedInternalLinkKeys = [
|
|
2496
|
+
"entityId",
|
|
2497
|
+
"entityType",
|
|
2498
|
+
"href",
|
|
2499
|
+
"title",
|
|
2500
|
+
"typeLabel"
|
|
2501
|
+
];
|
|
2502
|
+
const internalRouteOnlyLinkSchema = z.object({
|
|
2503
|
+
kind: z.literal("internal"),
|
|
2504
|
+
routeId: z.string().min(1)
|
|
2505
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
2506
|
+
if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
|
|
2507
|
+
ctx.addIssue({
|
|
2508
|
+
code: "custom",
|
|
2509
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
2510
|
+
});
|
|
2511
|
+
});
|
|
2512
|
+
const internalResolvedLinkSchema = z.object({
|
|
2513
|
+
kind: z.literal("internal"),
|
|
2514
|
+
routeId: z.string().min(1),
|
|
2515
|
+
entityId: z.string().min(1),
|
|
2516
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2517
|
+
href: z.string().min(1),
|
|
2518
|
+
title: z.string().min(1),
|
|
2519
|
+
typeLabel: z.string().min(1),
|
|
2520
|
+
contentTypeKey: nullableString.optional(),
|
|
2521
|
+
contentTypeName: nullableString.optional(),
|
|
2522
|
+
updatedAt: nullableString.optional()
|
|
2523
|
+
}).passthrough();
|
|
2524
|
+
const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
|
|
2525
|
+
const externalLinkSchema$1 = z.object({
|
|
2526
|
+
kind: z.literal("external"),
|
|
2527
|
+
href: z.string().min(1)
|
|
2528
|
+
}).passthrough();
|
|
2529
|
+
const customLinkSchema$1 = z.object({
|
|
2530
|
+
kind: z.literal("url"),
|
|
2531
|
+
href: z.string().min(1)
|
|
2532
|
+
}).passthrough();
|
|
2533
|
+
const pageLinkSchema$1 = z.object({
|
|
2534
|
+
kind: z.literal("page"),
|
|
2535
|
+
identifier: z.string().min(1)
|
|
2536
|
+
}).passthrough();
|
|
2537
|
+
const entryLinkSchema$1 = z.object({
|
|
2538
|
+
kind: z.literal("entry"),
|
|
2539
|
+
contentType: z.string().min(1),
|
|
2540
|
+
identifier: z.string().min(1)
|
|
2541
|
+
}).passthrough();
|
|
2542
|
+
z.union([
|
|
2543
|
+
internalLinkSchema,
|
|
2544
|
+
externalLinkSchema$1,
|
|
2545
|
+
customLinkSchema$1,
|
|
2546
|
+
pageLinkSchema$1,
|
|
2547
|
+
entryLinkSchema$1
|
|
2548
|
+
]);
|
|
2549
|
+
//#endregion
|
|
2488
2550
|
//#region ../api/src/navigation/contracts.ts
|
|
2489
2551
|
/**
|
|
2490
2552
|
* Canonical navigation/link Zod contracts.
|
|
@@ -2514,7 +2576,7 @@ const internalLinkPayloadSchema = z.object({
|
|
|
2514
2576
|
kind: z.literal("internal"),
|
|
2515
2577
|
routeId: z.string().uuid(),
|
|
2516
2578
|
entityId: z.string().uuid(),
|
|
2517
|
-
entityType: z.enum(
|
|
2579
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2518
2580
|
href: z.string().min(1),
|
|
2519
2581
|
title: z.string().min(1),
|
|
2520
2582
|
typeLabel: z.string().min(1),
|
|
@@ -26484,6 +26546,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
|
26484
26546
|
]);
|
|
26485
26547
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
26486
26548
|
//#endregion
|
|
26549
|
+
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
26550
|
+
const blockBookingConsentSchema = z.object({
|
|
26551
|
+
requirementId: z.string(),
|
|
26552
|
+
title: z.string(),
|
|
26553
|
+
agreement: RichTextDocSchema,
|
|
26554
|
+
checkboxLabel: z.string()
|
|
26555
|
+
});
|
|
26556
|
+
const bookingRequirementConsentFieldSchema = z.object({
|
|
26557
|
+
id: z.string(),
|
|
26558
|
+
label: z.string(),
|
|
26559
|
+
type: z.literal("booking_requirement_consent"),
|
|
26560
|
+
required: z.literal(true),
|
|
26561
|
+
agreement: RichTextDocSchema,
|
|
26562
|
+
checkboxLabel: z.string().min(1)
|
|
26563
|
+
});
|
|
26564
|
+
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26565
|
+
//#endregion
|
|
26487
26566
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26488
26567
|
const wholeSeriesVenueSchema = z.object({
|
|
26489
26568
|
id: z.string(),
|
|
@@ -26548,6 +26627,7 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26548
26627
|
pricing: wholeSeriesPricingSchema,
|
|
26549
26628
|
currency: z.string(),
|
|
26550
26629
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26630
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26551
26631
|
enrollmentCapacity: z.number().nullable(),
|
|
26552
26632
|
acceptsMemberships: z.boolean(),
|
|
26553
26633
|
status: z.enum([
|
|
@@ -26865,6 +26945,7 @@ const publicEventSchema = z.object({
|
|
|
26865
26945
|
timeZone: z.string(),
|
|
26866
26946
|
pricing: publicEventPricingSchema,
|
|
26867
26947
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26948
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26868
26949
|
accessRestriction: accessRestrictionSchema,
|
|
26869
26950
|
allowedCategoryIds: z.array(z.string()),
|
|
26870
26951
|
requireGuestDetails: z.boolean().optional(),
|
|
@@ -27213,6 +27294,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
|
|
|
27213
27294
|
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27214
27295
|
}
|
|
27215
27296
|
//#endregion
|
|
27297
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27298
|
+
function planEventRegistrationScope(input) {
|
|
27299
|
+
const subject = input.subject;
|
|
27300
|
+
const selectedRunOffering = input.wholeSeriesOffering;
|
|
27301
|
+
if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
|
|
27302
|
+
kind: "context",
|
|
27303
|
+
events: resolveEventRegistrationScopedEvents(input.events, {
|
|
27304
|
+
occurrenceContext: input.occurrenceContext,
|
|
27305
|
+
subject
|
|
27306
|
+
})
|
|
27307
|
+
};
|
|
27308
|
+
if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
|
|
27309
|
+
return {
|
|
27310
|
+
kind: "selectedRun",
|
|
27311
|
+
events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
|
|
27312
|
+
offering: selectedRunOffering
|
|
27313
|
+
};
|
|
27314
|
+
}
|
|
27315
|
+
//#endregion
|
|
27216
27316
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
27217
27317
|
function isRecord$7(value) {
|
|
27218
27318
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -27626,10 +27726,13 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27626
27726
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27627
27727
|
}
|
|
27628
27728
|
function scopeEventRegistrationEvents(source) {
|
|
27629
|
-
|
|
27729
|
+
const scope = planEventRegistrationScope({
|
|
27730
|
+
events: toRegistrationEvents(source.events ?? []),
|
|
27731
|
+
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27630
27732
|
occurrenceContext: source.occurrenceContext,
|
|
27631
27733
|
subject: source.subject
|
|
27632
27734
|
});
|
|
27735
|
+
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27633
27736
|
}
|
|
27634
27737
|
function shellLabelForRegistrationStep(step, events) {
|
|
27635
27738
|
switch (step) {
|
|
@@ -31066,7 +31169,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
|
31066
31169
|
entityId: z.string(),
|
|
31067
31170
|
path: z.string(),
|
|
31068
31171
|
title: z.string(),
|
|
31069
|
-
kind: z.enum(
|
|
31172
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
31070
31173
|
contentTypeKey: z.string().nullable().optional()
|
|
31071
31174
|
})) });
|
|
31072
31175
|
const groupOverrideFields = [
|
package/dist/server/index.mjs
CHANGED
|
@@ -8171,7 +8171,7 @@ var SimpleCache = class {
|
|
|
8171
8171
|
* 1. This constant
|
|
8172
8172
|
* 2. The "version" field in package.json
|
|
8173
8173
|
*/
|
|
8174
|
-
const SDK_VERSION = "0.
|
|
8174
|
+
const SDK_VERSION = "0.134.0";
|
|
8175
8175
|
//#endregion
|
|
8176
8176
|
//#region src/client/error.ts
|
|
8177
8177
|
let _Symbol$for;
|