@riverbankcms/sdk 0.148.0 → 0.149.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DvEPG3Z2.mjs → PreviewEditorSidebar-DBKln68M.mjs} +103 -66
- package/dist/{PreviewEditorUI-D6eb6fkx.mjs → PreviewEditorUI-DpRX4Mum.mjs} +3 -6
- package/dist/{PreviewQueryProvider-5znTyJuz.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
- package/dist/{SdkPreviewModeRuntime-DJ6utQ_R.mjs → SdkPreviewModeRuntime-DJPmPY-r.mjs} +95 -67
- package/dist/{SiteChromeCustomizeContext-CFJYh6vo.mjs → SiteChromeCustomizeContext-JYA0cJ_Z.mjs} +982 -734
- package/dist/_dts/api/src/bookingConfig.d.ts +33 -48
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
- package/dist/_dts/api/src/bookingOperations.d.ts +5 -7
- package/dist/_dts/api/src/bookingRecords.d.ts +15 -11
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +0 -2
- package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
- package/dist/_dts/api/src/endpoints.d.ts +2 -10
- package/dist/_dts/api/src/eventManagementContracts.d.ts +4 -7
- package/dist/_dts/api/src/index.d.ts +3 -3
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +2 -2
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -29
- package/dist/_dts/api/src/request.d.ts +1 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +6 -2
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +38 -10
- package/dist/_dts/blocks/src/portal/types.d.ts +9 -6
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +24 -24
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +24 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -6
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
- package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
- package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
- package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
- package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
- package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +2 -2
- package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -3
- package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
- package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
- package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +3 -1
- package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
- package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
- package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
- package/dist/_dts/commerce/src/purchase/types.d.ts +2 -1
- package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
- package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
- package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
- package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
- package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
- package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
- package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/edit-lease.d.ts +5 -0
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +297 -36
- package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
- package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
- package/dist/_dts/media-editor/src/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +0 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
- package/dist/_dts/preview-next/src/constants.d.ts +4 -0
- package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
- package/dist/_dts/ui/src/color-picker.d.ts +1 -1
- package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
- package/dist/client/{BookingMailingListNote-CzRt2dF_.mjs → BookingMailingListNote-Cr3EeTP5.mjs} +408 -69
- package/dist/client/{DemoBookingPortalAccess-mxqwap3f.mjs → DemoBookingPortalAccess-BFGB1Fay.mjs} +2 -2
- package/dist/client/{EventCombined.client-CDb11igO.mjs → EventCombined.client-DKYV0_ft.mjs} +6 -6
- package/dist/client/{EventListing.client-EgYhzKPa.mjs → EventListing.client-B9UIcEYc.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-gtmtaA2b.mjs → LeafletStaticMap-CFLPkP0K.mjs} +1 -1
- package/dist/client/{TerminalPanel-DvNUP5ot.mjs → TerminalPanel-JjmgxEsR.mjs} +1 -1
- package/dist/client/{ThemedButton-C7CeUJjW.mjs → ThemedButton-CKV1Jh2m.mjs} +1 -1
- package/dist/client/{accordion-kjvt49rA.mjs → accordion-DXWIfT3T.mjs} +1 -1
- package/dist/client/{bookingForm-pbRZordh.mjs → bookingForm-CjZgHNvv.mjs} +11 -8
- package/dist/client/bookings.mjs +424 -320
- package/dist/client/{carousel-f4Zbmicv.mjs → carousel-DSLikmvZ.mjs} +1 -1
- package/dist/client/{cart-DO20An50.mjs → cart-HDjWReFt.mjs} +3 -3
- package/dist/client/{checkout-Du5amDR_.mjs → checkout-CUvRZA3W.mjs} +3 -3
- package/dist/client/client.mjs +963 -866
- package/dist/client/{context-eW97E945.mjs → context-DFmaZa-Q.mjs} +1 -1
- package/dist/client/{dates-jPCirRea.mjs → dates-BBep1JnF.mjs} +2 -2
- package/dist/client/{eventCalendar-C2M-iE4j.mjs → eventCalendar-zEobhxo4.mjs} +9 -9
- package/dist/client/{eventCombined-W6ns3LHg.mjs → eventCombined-Dp7bz5k-.mjs} +4 -4
- package/dist/client/{eventDetails-CR-GT0f0.mjs → eventDetails-FE-zqTt7.mjs} +4 -4
- package/dist/client/{eventListing-BK8AfYZz.mjs → eventListing-BMt5snal.mjs} +4 -4
- package/dist/client/{eventRegistration-BJSd4KUu.mjs → eventRegistration-O6ZxHfOb.mjs} +67 -342
- package/dist/client/{form-BvpfbQaT.mjs → form-DFa1D8vt.mjs} +3 -3
- package/dist/client/{headerSection-I5sUQ8x-.mjs → headerSection-CmjHLR-N.mjs} +3 -3
- package/dist/client/hooks.mjs +160 -129
- package/dist/client/{locationMap-BLvwf9_f.mjs → locationMap-BXKP_lGh.mjs} +3 -3
- package/dist/client/{newsletterForm-DrQ2weE8.mjs → newsletterForm-CU-HmxGx.mjs} +3 -3
- package/dist/client/{pricing-BES87mrR.mjs → pricing-KEAEsibq.mjs} +1 -1
- package/dist/client/{productDetail-Url9jcc5.mjs → productDetail-Ckp7MGnt.mjs} +3 -3
- package/dist/client/{productList-DE7ngEZJ.mjs → productList-D91V0sYa.mjs} +3 -3
- package/dist/client/{propsDecoder-D1OtGXDV.mjs → propsDecoder-DZd6RJeA.mjs} +155 -77
- package/dist/client/rendering/client.mjs +3356 -3192
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +956 -841
- package/dist/client/{routeIslandApiConfig-BG9Y-SHg.mjs → routeIslandApiConfig-E1EkhhYY.mjs} +1 -1
- package/dist/client/{shop-CJkuySJ3.mjs → shop-4F2jLQPI.mjs} +12 -13
- package/dist/client/{shop-commerce-4rKj5n9h.mjs → shop-commerce-BbfCJjB3.mjs} +6 -6
- package/dist/client/{shop-commerce-store-Bxm75Pg6.mjs → shop-commerce-store-vicweP2K.mjs} +1 -1
- package/dist/client/{shopShared-DpoQDWfz.mjs → shopShared-DlONJt0T.mjs} +4 -4
- package/dist/client/{useEventFilters-D8HliSqR.mjs → useEventFilters-COYyL3m7.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +15 -22
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/constants.mjs +5 -1
- package/dist/preview-next/index.mjs +5 -1
- package/dist/preview-next/keepAlive.mjs +149 -82
- package/dist/preview-next/middleware.mjs +15 -22
- package/dist/{previewAuthStore-BXXF3hhW.mjs → previewAuthStore-BBmV7UsW.mjs} +49 -29
- package/dist/{sdk-runtime-C2a05WjL.mjs → sdk-runtime-CwvFFjB-.mjs} +2 -2
- package/dist/{separator-CuNhBAhS.mjs → separator-ByL72zUT.mjs} +1 -1
- package/dist/server/components.mjs +167 -131
- package/dist/server/config-validation.mjs +160 -129
- package/dist/server/config.mjs +160 -129
- package/dist/server/data.mjs +160 -129
- package/dist/server/index.mjs +20 -27
- package/dist/server/next.mjs +174 -156
- package/dist/server/page-converter.mjs +145 -65
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +169 -131
- package/dist/server/rendering.mjs +167 -131
- package/dist/server/routing.mjs +165 -118
- package/dist/server/server.mjs +167 -154
- package/package.json +1 -1
- package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
- package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
- package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
- package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
|
@@ -1984,6 +1984,16 @@ function isRecord$11(value) {
|
|
|
1984
1984
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1985
1985
|
}
|
|
1986
1986
|
//#endregion
|
|
1987
|
+
//#region ../core/src/booking-payment-options.ts
|
|
1988
|
+
/** Automatic instalments and a flexible balance cannot share one booking offer. */
|
|
1989
|
+
function validateBookingPaymentOptionKinds(kinds) {
|
|
1990
|
+
if (kinds.length === 0) return err("no_options");
|
|
1991
|
+
const uniqueKinds = new Set(kinds);
|
|
1992
|
+
if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
|
|
1993
|
+
if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
|
|
1994
|
+
return ok(void 0);
|
|
1995
|
+
}
|
|
1996
|
+
//#endregion
|
|
1987
1997
|
//#region ../core/src/booking-time-zone.ts
|
|
1988
1998
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
1989
1999
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -4041,7 +4051,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
|
|
|
4041
4051
|
stack: 8e3,
|
|
4042
4052
|
digest: 128,
|
|
4043
4053
|
componentStack: 8e3,
|
|
4044
|
-
sourceLocation: 1024
|
|
4054
|
+
sourceLocation: 1024,
|
|
4055
|
+
navigationAgeMs: 6e4
|
|
4045
4056
|
};
|
|
4046
4057
|
const clientErrorEventSchema = z.enum([
|
|
4047
4058
|
"dashboard:route-error",
|
|
@@ -4058,7 +4069,17 @@ z.object({
|
|
|
4058
4069
|
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
4059
4070
|
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
4060
4071
|
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
4061
|
-
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
4072
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
|
|
4073
|
+
navigation: z.object({
|
|
4074
|
+
fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
4075
|
+
toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
4076
|
+
type: z.enum([
|
|
4077
|
+
"push",
|
|
4078
|
+
"replace",
|
|
4079
|
+
"traverse"
|
|
4080
|
+
]),
|
|
4081
|
+
ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
|
|
4082
|
+
}).strict().nullable().optional()
|
|
4062
4083
|
}).strict();
|
|
4063
4084
|
({
|
|
4064
4085
|
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
@@ -29121,68 +29142,115 @@ const RichTextDocSchema = z.object({
|
|
|
29121
29142
|
content: z.array(TipTapNodeSchema)
|
|
29122
29143
|
}).strict();
|
|
29123
29144
|
//#endregion
|
|
29124
|
-
//#region ../
|
|
29125
|
-
const
|
|
29126
|
-
const
|
|
29127
|
-
|
|
29128
|
-
|
|
29129
|
-
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
intervalUnit: z.enum([
|
|
29133
|
-
"day",
|
|
29134
|
-
"week",
|
|
29135
|
-
"month"
|
|
29136
|
-
])
|
|
29137
|
-
}),
|
|
29138
|
-
z.object({
|
|
29139
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
29140
|
-
depositAmountCents: z.number().int().min(0),
|
|
29141
|
-
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
29142
|
-
instalmentCount: z.number().int().positive(),
|
|
29143
|
-
intervalCount: z.number().int().positive(),
|
|
29144
|
-
intervalUnit: z.enum([
|
|
29145
|
-
"day",
|
|
29146
|
-
"week",
|
|
29147
|
-
"month"
|
|
29148
|
-
])
|
|
29149
|
-
}),
|
|
29150
|
-
z.object({
|
|
29151
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
29152
|
-
instalmentCount: z.number().int().positive(),
|
|
29153
|
-
intervalCount: z.number().int().positive(),
|
|
29154
|
-
intervalUnit: z.enum([
|
|
29155
|
-
"day",
|
|
29156
|
-
"week",
|
|
29157
|
-
"month"
|
|
29158
|
-
])
|
|
29159
|
-
})
|
|
29145
|
+
//#region ../core/src/booking-payment-schemas.ts
|
|
29146
|
+
const stripObject = (shape) => z.object(shape);
|
|
29147
|
+
const strictObject = (shape) => z.strictObject(shape);
|
|
29148
|
+
const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
29149
|
+
const intervalUnitSchema = z.enum([
|
|
29150
|
+
"day",
|
|
29151
|
+
"week",
|
|
29152
|
+
"month"
|
|
29160
29153
|
]);
|
|
29161
|
-
const
|
|
29162
|
-
|
|
29163
|
-
|
|
29164
|
-
|
|
29165
|
-
|
|
29166
|
-
|
|
29167
|
-
|
|
29168
|
-
|
|
29169
|
-
|
|
29170
|
-
|
|
29171
|
-
|
|
29172
|
-
|
|
29173
|
-
|
|
29174
|
-
|
|
29175
|
-
|
|
29176
|
-
|
|
29177
|
-
|
|
29178
|
-
|
|
29179
|
-
|
|
29180
|
-
|
|
29181
|
-
|
|
29182
|
-
|
|
29183
|
-
|
|
29184
|
-
|
|
29185
|
-
|
|
29154
|
+
const nonNegativeIntegerSchema = z.number().int().nonnegative();
|
|
29155
|
+
const positiveIntegerSchema = z.number().int().positive();
|
|
29156
|
+
function createInstalmentPlanSchema(object) {
|
|
29157
|
+
return z.discriminatedUnion("kind", [
|
|
29158
|
+
object({
|
|
29159
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
29160
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
29161
|
+
depositRefundability: depositRefundPolicySchema,
|
|
29162
|
+
remainderDueCount: positiveIntegerSchema,
|
|
29163
|
+
intervalUnit: intervalUnitSchema
|
|
29164
|
+
}),
|
|
29165
|
+
object({
|
|
29166
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
29167
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
29168
|
+
depositRefundability: depositRefundPolicySchema,
|
|
29169
|
+
instalmentCount: positiveIntegerSchema,
|
|
29170
|
+
intervalCount: positiveIntegerSchema,
|
|
29171
|
+
intervalUnit: intervalUnitSchema
|
|
29172
|
+
}),
|
|
29173
|
+
object({
|
|
29174
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
29175
|
+
instalmentCount: positiveIntegerSchema,
|
|
29176
|
+
intervalCount: positiveIntegerSchema,
|
|
29177
|
+
intervalUnit: intervalUnitSchema
|
|
29178
|
+
})
|
|
29179
|
+
]);
|
|
29180
|
+
}
|
|
29181
|
+
function createFlexibleBalanceSchemas(object) {
|
|
29182
|
+
const dueDateRule = z.discriminatedUnion("kind", [object({
|
|
29183
|
+
kind: z.literal("relative_to_start_date"),
|
|
29184
|
+
daysBeforeStart: positiveIntegerSchema
|
|
29185
|
+
}), object({
|
|
29186
|
+
kind: z.literal("fixed_calendar_date"),
|
|
29187
|
+
dueAt: z.string().datetime()
|
|
29188
|
+
})]);
|
|
29189
|
+
return {
|
|
29190
|
+
dueDateRule,
|
|
29191
|
+
config: object({
|
|
29192
|
+
upfrontAmountCents: nonNegativeIntegerSchema,
|
|
29193
|
+
dueDateRule,
|
|
29194
|
+
depositRefundability: depositRefundPolicySchema
|
|
29195
|
+
})
|
|
29196
|
+
};
|
|
29197
|
+
}
|
|
29198
|
+
const paymentOptionKindsMessages = {
|
|
29199
|
+
no_options: "Choose at least one way for customers to pay.",
|
|
29200
|
+
duplicate_kind: "Choose each payment option only once.",
|
|
29201
|
+
incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
|
|
29202
|
+
};
|
|
29203
|
+
function buildBookingPaymentOptionSchemas(object) {
|
|
29204
|
+
const instalmentPlan = createInstalmentPlanSchema(object);
|
|
29205
|
+
const flexibleBalance = createFlexibleBalanceSchemas(object);
|
|
29206
|
+
const paymentCollectionOption = z.discriminatedUnion("kind", [
|
|
29207
|
+
object({ kind: z.literal("upfront") }),
|
|
29208
|
+
object({ kind: z.literal("deferred_manual") }),
|
|
29209
|
+
object({
|
|
29210
|
+
kind: z.literal("instalment_plan"),
|
|
29211
|
+
plan: instalmentPlan
|
|
29212
|
+
}),
|
|
29213
|
+
object({
|
|
29214
|
+
kind: z.literal("flexible_balance"),
|
|
29215
|
+
config: flexibleBalance.config
|
|
29216
|
+
})
|
|
29217
|
+
]);
|
|
29218
|
+
const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
|
|
29219
|
+
const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
|
|
29220
|
+
if (!result.ok) ctx.addIssue({
|
|
29221
|
+
code: "custom",
|
|
29222
|
+
path: ["allowedOptions"],
|
|
29223
|
+
message: paymentOptionKindsMessages[result.error]
|
|
29224
|
+
});
|
|
29225
|
+
});
|
|
29226
|
+
const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
|
|
29227
|
+
source: z.literal("custom"),
|
|
29228
|
+
paymentTerms
|
|
29229
|
+
})]);
|
|
29230
|
+
return {
|
|
29231
|
+
depositRefundPolicy: depositRefundPolicySchema,
|
|
29232
|
+
instalmentPlan,
|
|
29233
|
+
flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
|
|
29234
|
+
flexibleBalanceConfig: flexibleBalance.config,
|
|
29235
|
+
paymentCollectionOption,
|
|
29236
|
+
paymentTerms,
|
|
29237
|
+
paymentOptionsChoice
|
|
29238
|
+
};
|
|
29239
|
+
}
|
|
29240
|
+
function createBookingPaymentOptionSchemas(mode) {
|
|
29241
|
+
return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
|
|
29242
|
+
}
|
|
29243
|
+
const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
|
|
29244
|
+
bookingPaymentOptionSchemas.depositRefundPolicy;
|
|
29245
|
+
bookingPaymentOptionSchemas.instalmentPlan;
|
|
29246
|
+
bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
|
|
29247
|
+
bookingPaymentOptionSchemas.flexibleBalanceConfig;
|
|
29248
|
+
bookingPaymentOptionSchemas.paymentCollectionOption;
|
|
29249
|
+
const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
|
|
29250
|
+
bookingPaymentOptionSchemas.paymentOptionsChoice;
|
|
29251
|
+
//#endregion
|
|
29252
|
+
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
29253
|
+
const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
|
|
29186
29254
|
//#endregion
|
|
29187
29255
|
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
29188
29256
|
const blockBookingConsentSchema = z.object({
|
|
@@ -29784,7 +29852,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
|
|
|
29784
29852
|
/**
|
|
29785
29853
|
* Public membership product for shop display
|
|
29786
29854
|
*/
|
|
29787
|
-
const
|
|
29855
|
+
const publicMembershipProductFields = {
|
|
29788
29856
|
id: z.string(),
|
|
29789
29857
|
name: z.string(),
|
|
29790
29858
|
description: z.string().nullable(),
|
|
@@ -29793,7 +29861,16 @@ const publicMembershipProductSchema = z.object({
|
|
|
29793
29861
|
billingInterval: z.enum(["month", "year"]),
|
|
29794
29862
|
eligibleCategoryIds: z.array(z.string()),
|
|
29795
29863
|
eligibleCategoryNames: z.array(z.string())
|
|
29864
|
+
};
|
|
29865
|
+
const purchasablePublicMembershipProductSchema = z.object({
|
|
29866
|
+
...publicMembershipProductFields,
|
|
29867
|
+
purchaseAvailability: z.literal("purchasable")
|
|
29796
29868
|
});
|
|
29869
|
+
const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
|
|
29870
|
+
...publicMembershipProductFields,
|
|
29871
|
+
purchaseAvailability: z.literal("display_only"),
|
|
29872
|
+
unavailabilityReason: z.literal("online_payments_unavailable")
|
|
29873
|
+
})]);
|
|
29797
29874
|
const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
|
|
29798
29875
|
//#endregion
|
|
29799
29876
|
//#region ../blocks/src/system/blocks/event-registration.shared.ts
|
|
@@ -35526,7 +35603,7 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35526
35603
|
product: pass
|
|
35527
35604
|
} : {
|
|
35528
35605
|
kind: "unavailable",
|
|
35529
|
-
label: "Online purchasing
|
|
35606
|
+
label: "Online purchasing is unavailable."
|
|
35530
35607
|
}
|
|
35531
35608
|
};
|
|
35532
35609
|
});
|
|
@@ -35536,7 +35613,14 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35536
35613
|
description: options.showDescriptions ? membership.description : null,
|
|
35537
35614
|
priceLabel: formatCommercePrice(membership.price, membership.currency),
|
|
35538
35615
|
intervalLabel: formatInterval(membership.billingInterval),
|
|
35539
|
-
|
|
35616
|
+
action: membership.purchaseAvailability === "purchasable" ? {
|
|
35617
|
+
kind: "purchase",
|
|
35618
|
+
label: options.membershipActionLabel,
|
|
35619
|
+
product: membership
|
|
35620
|
+
} : {
|
|
35621
|
+
kind: "unavailable",
|
|
35622
|
+
label: "Online purchasing is unavailable."
|
|
35623
|
+
}
|
|
35540
35624
|
}));
|
|
35541
35625
|
return {
|
|
35542
35626
|
kind: "passes-memberships",
|
|
@@ -35756,7 +35840,14 @@ const membershipCardDisplaySchema = z.object({
|
|
|
35756
35840
|
description: z.string().nullable(),
|
|
35757
35841
|
priceLabel: z.string(),
|
|
35758
35842
|
intervalLabel: z.string(),
|
|
35759
|
-
|
|
35843
|
+
action: z.discriminatedUnion("kind", [z.object({
|
|
35844
|
+
kind: z.literal("purchase"),
|
|
35845
|
+
label: z.string(),
|
|
35846
|
+
product: purchasablePublicMembershipProductSchema
|
|
35847
|
+
}), z.object({
|
|
35848
|
+
kind: z.literal("unavailable"),
|
|
35849
|
+
label: z.string()
|
|
35850
|
+
})])
|
|
35760
35851
|
});
|
|
35761
35852
|
const passesMembershipsDisplaySchema = z.object({
|
|
35762
35853
|
kind: z.literal("passes-memberships"),
|
|
@@ -40103,6 +40194,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
40103
40194
|
"refund_failed"
|
|
40104
40195
|
];
|
|
40105
40196
|
const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
40197
|
+
"refund_blocked_by_live_payment_terms",
|
|
40106
40198
|
...CANONICAL_REFUND_PLANNER_ERROR_CODES,
|
|
40107
40199
|
"payment_intent_not_found",
|
|
40108
40200
|
"stripe_error",
|
|
@@ -40118,6 +40210,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
40118
40210
|
//#endregion
|
|
40119
40211
|
//#region ../api/src/bookingRefundOutcomes.ts
|
|
40120
40212
|
const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
40213
|
+
"refund_blocked_by_live_payment_terms",
|
|
40121
40214
|
"missing_amount",
|
|
40122
40215
|
"invalid_amount",
|
|
40123
40216
|
"amount_exceeds_remaining",
|
|
@@ -40480,68 +40573,6 @@ function collectText(node) {
|
|
|
40480
40573
|
}
|
|
40481
40574
|
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
40482
40575
|
//#endregion
|
|
40483
|
-
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
40484
|
-
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
40485
|
-
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
40486
|
-
z.object({
|
|
40487
|
-
kind: z.literal("deposit_plus_one_remainder"),
|
|
40488
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
40489
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
40490
|
-
remainderDueCount: z.number().int().positive(),
|
|
40491
|
-
intervalUnit: z.enum([
|
|
40492
|
-
"day",
|
|
40493
|
-
"week",
|
|
40494
|
-
"month"
|
|
40495
|
-
])
|
|
40496
|
-
}),
|
|
40497
|
-
z.object({
|
|
40498
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
40499
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
40500
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
40501
|
-
instalmentCount: z.number().int().positive(),
|
|
40502
|
-
intervalCount: z.number().int().positive(),
|
|
40503
|
-
intervalUnit: z.enum([
|
|
40504
|
-
"day",
|
|
40505
|
-
"week",
|
|
40506
|
-
"month"
|
|
40507
|
-
])
|
|
40508
|
-
}),
|
|
40509
|
-
z.object({
|
|
40510
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
40511
|
-
instalmentCount: z.number().int().positive(),
|
|
40512
|
-
intervalCount: z.number().int().positive(),
|
|
40513
|
-
intervalUnit: z.enum([
|
|
40514
|
-
"day",
|
|
40515
|
-
"week",
|
|
40516
|
-
"month"
|
|
40517
|
-
])
|
|
40518
|
-
})
|
|
40519
|
-
]);
|
|
40520
|
-
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
40521
|
-
kind: z.literal("relative_to_start_date"),
|
|
40522
|
-
daysBeforeStart: z.number().int().positive()
|
|
40523
|
-
}), z.object({
|
|
40524
|
-
kind: z.literal("fixed_calendar_date"),
|
|
40525
|
-
dueAt: z.string().datetime()
|
|
40526
|
-
})]);
|
|
40527
|
-
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
40528
|
-
upfrontAmountCents: z.number().int().nonnegative(),
|
|
40529
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
40530
|
-
depositRefundability: bookingDepositRefundPolicySchema
|
|
40531
|
-
});
|
|
40532
|
-
z.discriminatedUnion("kind", [
|
|
40533
|
-
z.object({ kind: z.literal("upfront") }),
|
|
40534
|
-
z.object({ kind: z.literal("deferred_manual") }),
|
|
40535
|
-
z.object({
|
|
40536
|
-
kind: z.literal("instalment_plan"),
|
|
40537
|
-
plan: bookingInstalmentPlanSchema
|
|
40538
|
-
}),
|
|
40539
|
-
z.object({
|
|
40540
|
-
kind: z.literal("flexible_balance"),
|
|
40541
|
-
config: bookingFlexibleBalanceConfigSchema
|
|
40542
|
-
})
|
|
40543
|
-
]);
|
|
40544
|
-
//#endregion
|
|
40545
40576
|
//#region ../api/src/navigationMenuValidation.ts
|
|
40546
40577
|
function hasChildren(item) {
|
|
40547
40578
|
return Array.isArray(item.children) && item.children.length > 0;
|