@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
package/dist/server/config.mjs
CHANGED
|
@@ -2029,6 +2029,16 @@ function isRecord$12(value) {
|
|
|
2029
2029
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
2030
2030
|
}
|
|
2031
2031
|
//#endregion
|
|
2032
|
+
//#region ../core/src/booking-payment-options.ts
|
|
2033
|
+
/** Automatic instalments and a flexible balance cannot share one booking offer. */
|
|
2034
|
+
function validateBookingPaymentOptionKinds(kinds) {
|
|
2035
|
+
if (kinds.length === 0) return err("no_options");
|
|
2036
|
+
const uniqueKinds = new Set(kinds);
|
|
2037
|
+
if (uniqueKinds.size !== kinds.length) return err("duplicate_kind");
|
|
2038
|
+
if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err("incompatible_collection_options");
|
|
2039
|
+
return ok(void 0);
|
|
2040
|
+
}
|
|
2041
|
+
//#endregion
|
|
2032
2042
|
//#region ../core/src/booking-time-zone.ts
|
|
2033
2043
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
2034
2044
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -4118,7 +4128,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
|
|
|
4118
4128
|
stack: 8e3,
|
|
4119
4129
|
digest: 128,
|
|
4120
4130
|
componentStack: 8e3,
|
|
4121
|
-
sourceLocation: 1024
|
|
4131
|
+
sourceLocation: 1024,
|
|
4132
|
+
navigationAgeMs: 6e4
|
|
4122
4133
|
};
|
|
4123
4134
|
const clientErrorEventSchema = z.enum([
|
|
4124
4135
|
"dashboard:route-error",
|
|
@@ -4135,7 +4146,17 @@ z.object({
|
|
|
4135
4146
|
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
4136
4147
|
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
4137
4148
|
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
4138
|
-
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
4149
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
|
|
4150
|
+
navigation: z.object({
|
|
4151
|
+
fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
4152
|
+
toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
4153
|
+
type: z.enum([
|
|
4154
|
+
"push",
|
|
4155
|
+
"replace",
|
|
4156
|
+
"traverse"
|
|
4157
|
+
]),
|
|
4158
|
+
ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
|
|
4159
|
+
}).strict().nullable().optional()
|
|
4139
4160
|
}).strict();
|
|
4140
4161
|
({
|
|
4141
4162
|
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
@@ -29198,68 +29219,115 @@ const RichTextDocSchema = z.object({
|
|
|
29198
29219
|
content: z.array(TipTapNodeSchema)
|
|
29199
29220
|
}).strict();
|
|
29200
29221
|
//#endregion
|
|
29201
|
-
//#region ../
|
|
29202
|
-
const
|
|
29203
|
-
const
|
|
29204
|
-
|
|
29205
|
-
|
|
29206
|
-
|
|
29207
|
-
|
|
29208
|
-
|
|
29209
|
-
intervalUnit: z.enum([
|
|
29210
|
-
"day",
|
|
29211
|
-
"week",
|
|
29212
|
-
"month"
|
|
29213
|
-
])
|
|
29214
|
-
}),
|
|
29215
|
-
z.object({
|
|
29216
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
29217
|
-
depositAmountCents: z.number().int().min(0),
|
|
29218
|
-
depositRefundability: bookingDepositRefundPolicySchema$1,
|
|
29219
|
-
instalmentCount: z.number().int().positive(),
|
|
29220
|
-
intervalCount: z.number().int().positive(),
|
|
29221
|
-
intervalUnit: z.enum([
|
|
29222
|
-
"day",
|
|
29223
|
-
"week",
|
|
29224
|
-
"month"
|
|
29225
|
-
])
|
|
29226
|
-
}),
|
|
29227
|
-
z.object({
|
|
29228
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
29229
|
-
instalmentCount: z.number().int().positive(),
|
|
29230
|
-
intervalCount: z.number().int().positive(),
|
|
29231
|
-
intervalUnit: z.enum([
|
|
29232
|
-
"day",
|
|
29233
|
-
"week",
|
|
29234
|
-
"month"
|
|
29235
|
-
])
|
|
29236
|
-
})
|
|
29222
|
+
//#region ../core/src/booking-payment-schemas.ts
|
|
29223
|
+
const stripObject = (shape) => z.object(shape);
|
|
29224
|
+
const strictObject = (shape) => z.strictObject(shape);
|
|
29225
|
+
const depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
29226
|
+
const intervalUnitSchema = z.enum([
|
|
29227
|
+
"day",
|
|
29228
|
+
"week",
|
|
29229
|
+
"month"
|
|
29237
29230
|
]);
|
|
29238
|
-
const
|
|
29239
|
-
|
|
29240
|
-
|
|
29241
|
-
|
|
29242
|
-
|
|
29243
|
-
|
|
29244
|
-
|
|
29245
|
-
|
|
29246
|
-
|
|
29247
|
-
|
|
29248
|
-
|
|
29249
|
-
|
|
29250
|
-
|
|
29251
|
-
|
|
29252
|
-
|
|
29253
|
-
|
|
29254
|
-
|
|
29255
|
-
|
|
29256
|
-
|
|
29257
|
-
|
|
29258
|
-
|
|
29259
|
-
|
|
29260
|
-
|
|
29261
|
-
|
|
29262
|
-
|
|
29231
|
+
const nonNegativeIntegerSchema = z.number().int().nonnegative();
|
|
29232
|
+
const positiveIntegerSchema = z.number().int().positive();
|
|
29233
|
+
function createInstalmentPlanSchema(object) {
|
|
29234
|
+
return z.discriminatedUnion("kind", [
|
|
29235
|
+
object({
|
|
29236
|
+
kind: z.literal("deposit_plus_one_remainder"),
|
|
29237
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
29238
|
+
depositRefundability: depositRefundPolicySchema,
|
|
29239
|
+
remainderDueCount: positiveIntegerSchema,
|
|
29240
|
+
intervalUnit: intervalUnitSchema
|
|
29241
|
+
}),
|
|
29242
|
+
object({
|
|
29243
|
+
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
29244
|
+
depositAmountCents: nonNegativeIntegerSchema,
|
|
29245
|
+
depositRefundability: depositRefundPolicySchema,
|
|
29246
|
+
instalmentCount: positiveIntegerSchema,
|
|
29247
|
+
intervalCount: positiveIntegerSchema,
|
|
29248
|
+
intervalUnit: intervalUnitSchema
|
|
29249
|
+
}),
|
|
29250
|
+
object({
|
|
29251
|
+
kind: z.literal("equal_scheduled_instalments"),
|
|
29252
|
+
instalmentCount: positiveIntegerSchema,
|
|
29253
|
+
intervalCount: positiveIntegerSchema,
|
|
29254
|
+
intervalUnit: intervalUnitSchema
|
|
29255
|
+
})
|
|
29256
|
+
]);
|
|
29257
|
+
}
|
|
29258
|
+
function createFlexibleBalanceSchemas(object) {
|
|
29259
|
+
const dueDateRule = z.discriminatedUnion("kind", [object({
|
|
29260
|
+
kind: z.literal("relative_to_start_date"),
|
|
29261
|
+
daysBeforeStart: positiveIntegerSchema
|
|
29262
|
+
}), object({
|
|
29263
|
+
kind: z.literal("fixed_calendar_date"),
|
|
29264
|
+
dueAt: z.string().datetime()
|
|
29265
|
+
})]);
|
|
29266
|
+
return {
|
|
29267
|
+
dueDateRule,
|
|
29268
|
+
config: object({
|
|
29269
|
+
upfrontAmountCents: nonNegativeIntegerSchema,
|
|
29270
|
+
dueDateRule,
|
|
29271
|
+
depositRefundability: depositRefundPolicySchema
|
|
29272
|
+
})
|
|
29273
|
+
};
|
|
29274
|
+
}
|
|
29275
|
+
const paymentOptionKindsMessages = {
|
|
29276
|
+
no_options: "Choose at least one way for customers to pay.",
|
|
29277
|
+
duplicate_kind: "Choose each payment option only once.",
|
|
29278
|
+
incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
|
|
29279
|
+
};
|
|
29280
|
+
function buildBookingPaymentOptionSchemas(object) {
|
|
29281
|
+
const instalmentPlan = createInstalmentPlanSchema(object);
|
|
29282
|
+
const flexibleBalance = createFlexibleBalanceSchemas(object);
|
|
29283
|
+
const paymentCollectionOption = z.discriminatedUnion("kind", [
|
|
29284
|
+
object({ kind: z.literal("upfront") }),
|
|
29285
|
+
object({ kind: z.literal("deferred_manual") }),
|
|
29286
|
+
object({
|
|
29287
|
+
kind: z.literal("instalment_plan"),
|
|
29288
|
+
plan: instalmentPlan
|
|
29289
|
+
}),
|
|
29290
|
+
object({
|
|
29291
|
+
kind: z.literal("flexible_balance"),
|
|
29292
|
+
config: flexibleBalance.config
|
|
29293
|
+
})
|
|
29294
|
+
]);
|
|
29295
|
+
const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
|
|
29296
|
+
const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
|
|
29297
|
+
if (!result.ok) ctx.addIssue({
|
|
29298
|
+
code: "custom",
|
|
29299
|
+
path: ["allowedOptions"],
|
|
29300
|
+
message: paymentOptionKindsMessages[result.error]
|
|
29301
|
+
});
|
|
29302
|
+
});
|
|
29303
|
+
const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
|
|
29304
|
+
source: z.literal("custom"),
|
|
29305
|
+
paymentTerms
|
|
29306
|
+
})]);
|
|
29307
|
+
return {
|
|
29308
|
+
depositRefundPolicy: depositRefundPolicySchema,
|
|
29309
|
+
instalmentPlan,
|
|
29310
|
+
flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
|
|
29311
|
+
flexibleBalanceConfig: flexibleBalance.config,
|
|
29312
|
+
paymentCollectionOption,
|
|
29313
|
+
paymentTerms,
|
|
29314
|
+
paymentOptionsChoice
|
|
29315
|
+
};
|
|
29316
|
+
}
|
|
29317
|
+
function createBookingPaymentOptionSchemas(mode) {
|
|
29318
|
+
return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
|
|
29319
|
+
}
|
|
29320
|
+
const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
|
|
29321
|
+
bookingPaymentOptionSchemas.depositRefundPolicy;
|
|
29322
|
+
bookingPaymentOptionSchemas.instalmentPlan;
|
|
29323
|
+
bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
|
|
29324
|
+
bookingPaymentOptionSchemas.flexibleBalanceConfig;
|
|
29325
|
+
bookingPaymentOptionSchemas.paymentCollectionOption;
|
|
29326
|
+
const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
|
|
29327
|
+
bookingPaymentOptionSchemas.paymentOptionsChoice;
|
|
29328
|
+
//#endregion
|
|
29329
|
+
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
29330
|
+
const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
|
|
29263
29331
|
//#endregion
|
|
29264
29332
|
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
29265
29333
|
const blockBookingConsentSchema = z.object({
|
|
@@ -29861,7 +29929,7 @@ const publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassP
|
|
|
29861
29929
|
/**
|
|
29862
29930
|
* Public membership product for shop display
|
|
29863
29931
|
*/
|
|
29864
|
-
const
|
|
29932
|
+
const publicMembershipProductFields = {
|
|
29865
29933
|
id: z.string(),
|
|
29866
29934
|
name: z.string(),
|
|
29867
29935
|
description: z.string().nullable(),
|
|
@@ -29870,7 +29938,16 @@ const publicMembershipProductSchema = z.object({
|
|
|
29870
29938
|
billingInterval: z.enum(["month", "year"]),
|
|
29871
29939
|
eligibleCategoryIds: z.array(z.string()),
|
|
29872
29940
|
eligibleCategoryNames: z.array(z.string())
|
|
29941
|
+
};
|
|
29942
|
+
const purchasablePublicMembershipProductSchema = z.object({
|
|
29943
|
+
...publicMembershipProductFields,
|
|
29944
|
+
purchaseAvailability: z.literal("purchasable")
|
|
29873
29945
|
});
|
|
29946
|
+
const publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
|
|
29947
|
+
...publicMembershipProductFields,
|
|
29948
|
+
purchaseAvailability: z.literal("display_only"),
|
|
29949
|
+
unavailabilityReason: z.literal("online_payments_unavailable")
|
|
29950
|
+
})]);
|
|
29874
29951
|
const publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
|
|
29875
29952
|
//#endregion
|
|
29876
29953
|
//#region ../blocks/src/system/blocks/event-registration.shared.ts
|
|
@@ -35603,7 +35680,7 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35603
35680
|
product: pass
|
|
35604
35681
|
} : {
|
|
35605
35682
|
kind: "unavailable",
|
|
35606
|
-
label: "Online purchasing
|
|
35683
|
+
label: "Online purchasing is unavailable."
|
|
35607
35684
|
}
|
|
35608
35685
|
};
|
|
35609
35686
|
});
|
|
@@ -35613,7 +35690,14 @@ function buildPassesMembershipsDisplay(options) {
|
|
|
35613
35690
|
description: options.showDescriptions ? membership.description : null,
|
|
35614
35691
|
priceLabel: formatCommercePrice(membership.price, membership.currency),
|
|
35615
35692
|
intervalLabel: formatInterval(membership.billingInterval),
|
|
35616
|
-
|
|
35693
|
+
action: membership.purchaseAvailability === "purchasable" ? {
|
|
35694
|
+
kind: "purchase",
|
|
35695
|
+
label: options.membershipActionLabel,
|
|
35696
|
+
product: membership
|
|
35697
|
+
} : {
|
|
35698
|
+
kind: "unavailable",
|
|
35699
|
+
label: "Online purchasing is unavailable."
|
|
35700
|
+
}
|
|
35617
35701
|
}));
|
|
35618
35702
|
return {
|
|
35619
35703
|
kind: "passes-memberships",
|
|
@@ -35833,7 +35917,14 @@ const membershipCardDisplaySchema = z.object({
|
|
|
35833
35917
|
description: z.string().nullable(),
|
|
35834
35918
|
priceLabel: z.string(),
|
|
35835
35919
|
intervalLabel: z.string(),
|
|
35836
|
-
|
|
35920
|
+
action: z.discriminatedUnion("kind", [z.object({
|
|
35921
|
+
kind: z.literal("purchase"),
|
|
35922
|
+
label: z.string(),
|
|
35923
|
+
product: purchasablePublicMembershipProductSchema
|
|
35924
|
+
}), z.object({
|
|
35925
|
+
kind: z.literal("unavailable"),
|
|
35926
|
+
label: z.string()
|
|
35927
|
+
})])
|
|
35837
35928
|
});
|
|
35838
35929
|
const passesMembershipsDisplaySchema = z.object({
|
|
35839
35930
|
kind: z.literal("passes-memberships"),
|
|
@@ -40180,6 +40271,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
|
40180
40271
|
"refund_failed"
|
|
40181
40272
|
];
|
|
40182
40273
|
const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
40274
|
+
"refund_blocked_by_live_payment_terms",
|
|
40183
40275
|
...CANONICAL_REFUND_PLANNER_ERROR_CODES,
|
|
40184
40276
|
"payment_intent_not_found",
|
|
40185
40277
|
"stripe_error",
|
|
@@ -40195,6 +40287,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
|
|
|
40195
40287
|
//#endregion
|
|
40196
40288
|
//#region ../api/src/bookingRefundOutcomes.ts
|
|
40197
40289
|
const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
40290
|
+
"refund_blocked_by_live_payment_terms",
|
|
40198
40291
|
"missing_amount",
|
|
40199
40292
|
"invalid_amount",
|
|
40200
40293
|
"amount_exceeds_remaining",
|
|
@@ -40557,68 +40650,6 @@ function collectText(node) {
|
|
|
40557
40650
|
}
|
|
40558
40651
|
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
40559
40652
|
//#endregion
|
|
40560
|
-
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
40561
|
-
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
40562
|
-
const bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
|
|
40563
|
-
z.object({
|
|
40564
|
-
kind: z.literal("deposit_plus_one_remainder"),
|
|
40565
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
40566
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
40567
|
-
remainderDueCount: z.number().int().positive(),
|
|
40568
|
-
intervalUnit: z.enum([
|
|
40569
|
-
"day",
|
|
40570
|
-
"week",
|
|
40571
|
-
"month"
|
|
40572
|
-
])
|
|
40573
|
-
}),
|
|
40574
|
-
z.object({
|
|
40575
|
-
kind: z.literal("deposit_plus_scheduled_instalments"),
|
|
40576
|
-
depositAmountCents: z.number().int().nonnegative(),
|
|
40577
|
-
depositRefundability: bookingDepositRefundPolicySchema,
|
|
40578
|
-
instalmentCount: z.number().int().positive(),
|
|
40579
|
-
intervalCount: z.number().int().positive(),
|
|
40580
|
-
intervalUnit: z.enum([
|
|
40581
|
-
"day",
|
|
40582
|
-
"week",
|
|
40583
|
-
"month"
|
|
40584
|
-
])
|
|
40585
|
-
}),
|
|
40586
|
-
z.object({
|
|
40587
|
-
kind: z.literal("equal_scheduled_instalments"),
|
|
40588
|
-
instalmentCount: z.number().int().positive(),
|
|
40589
|
-
intervalCount: z.number().int().positive(),
|
|
40590
|
-
intervalUnit: z.enum([
|
|
40591
|
-
"day",
|
|
40592
|
-
"week",
|
|
40593
|
-
"month"
|
|
40594
|
-
])
|
|
40595
|
-
})
|
|
40596
|
-
]);
|
|
40597
|
-
const bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
|
|
40598
|
-
kind: z.literal("relative_to_start_date"),
|
|
40599
|
-
daysBeforeStart: z.number().int().positive()
|
|
40600
|
-
}), z.object({
|
|
40601
|
-
kind: z.literal("fixed_calendar_date"),
|
|
40602
|
-
dueAt: z.string().datetime()
|
|
40603
|
-
})]);
|
|
40604
|
-
const bookingFlexibleBalanceConfigSchema = z.object({
|
|
40605
|
-
upfrontAmountCents: z.number().int().nonnegative(),
|
|
40606
|
-
dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
|
|
40607
|
-
depositRefundability: bookingDepositRefundPolicySchema
|
|
40608
|
-
});
|
|
40609
|
-
z.discriminatedUnion("kind", [
|
|
40610
|
-
z.object({ kind: z.literal("upfront") }),
|
|
40611
|
-
z.object({ kind: z.literal("deferred_manual") }),
|
|
40612
|
-
z.object({
|
|
40613
|
-
kind: z.literal("instalment_plan"),
|
|
40614
|
-
plan: bookingInstalmentPlanSchema
|
|
40615
|
-
}),
|
|
40616
|
-
z.object({
|
|
40617
|
-
kind: z.literal("flexible_balance"),
|
|
40618
|
-
config: bookingFlexibleBalanceConfigSchema
|
|
40619
|
-
})
|
|
40620
|
-
]);
|
|
40621
|
-
//#endregion
|
|
40622
40653
|
//#region ../api/src/navigationMenuValidation.ts
|
|
40623
40654
|
function hasChildren(item) {
|
|
40624
40655
|
return Array.isArray(item.children) && item.children.length > 0;
|