@riverbankcms/sdk 0.91.0 → 0.92.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/dist/{PreviewEditorSidebar-3TT47WCF.mjs → PreviewEditorSidebar-3CI5MKV3.mjs} +2 -2
- package/dist/{PreviewEditorUI-ORCLLUNZ.mjs → PreviewEditorUI-DKEP636I.mjs} +2 -2
- package/dist/SdkPreviewModeRuntime-BRGRDQFH.mjs +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +13 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +1 -0
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +12 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +12 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -0
- package/dist/_dts/content-model/src/entry-slots/types.d.ts +110 -2
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/event-pricing.d.ts +18 -1
- package/dist/_dts/core/src/money-input.d.ts +34 -4
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +70 -0
- package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
- package/dist/_dts/media-core/src/filePersistence.d.ts +5 -1
- package/dist/_dts/media-core/src/fileStorage.d.ts +1 -0
- package/dist/_dts/media-core/src/videoPrep.d.ts +15 -6
- package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +5 -5
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +23 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +54 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +7 -2
- package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +35 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +23 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-AFPMCLS7.mjs → chunk-6D7PLF4M.mjs} +1 -1
- package/dist/{chunk-RQUZYSES.mjs → chunk-I6EOKV6B.mjs} +520 -40
- package/dist/{chunk-S3YHJWEU.mjs → chunk-LERKJM3E.mjs} +5 -5
- package/dist/{chunk-GDT2QGIL.mjs → chunk-UOMTCHZD.mjs} +1 -1
- package/dist/cli/index.mjs +552 -80
- package/dist/client/{accordion-AFX37652.mjs → accordion-BUDH2G3S.mjs} +2 -2
- package/dist/client/{bookingForm-32V5QCOW.mjs → bookingForm-NQMCELVB.mjs} +89 -14
- package/dist/client/bookings.mjs +243 -17
- package/dist/client/{carousel-TJGQJ7ER.mjs → carousel-ONCEW6IJ.mjs} +3 -3
- package/dist/client/{cart-JUU2JEW4.mjs → cart-V2TCK2GI.mjs} +7 -7
- package/dist/client/{checkout-RD6BTFX4.mjs → checkout-ZI7SWNCS.mjs} +7 -7
- package/dist/client/{chunk-FMZZHAIR.mjs → chunk-AUMRQ242.mjs} +52 -5
- package/dist/client/{chunk-PMNAV6LO.mjs → chunk-B5UC2D6X.mjs} +7 -6
- package/dist/client/{chunk-6RN62XBV.mjs → chunk-ERQDHUS2.mjs} +1 -1
- package/dist/client/{chunk-RWYFG625.mjs → chunk-GH6IIOOE.mjs} +30 -2
- package/dist/client/{chunk-C4LP6BPG.mjs → chunk-HQWIJLYN.mjs} +1 -1
- package/dist/client/{chunk-RMOFBBNA.mjs → chunk-JXY6NHG6.mjs} +6 -6
- package/dist/client/{chunk-6QZIBNGV.mjs → chunk-KXYEKEV6.mjs} +154 -16
- package/dist/client/{chunk-E6VIWZUG.mjs → chunk-N2WJPTF7.mjs} +3 -3
- package/dist/client/{chunk-ISAUXU5R.mjs → chunk-QQNVQ62W.mjs} +1 -1
- package/dist/client/{chunk-MLBNVN4H.mjs → chunk-R3CZQLXF.mjs} +67 -4
- package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
- package/dist/client/{chunk-CKXEUWWA.mjs → chunk-ZJDBOLX7.mjs} +3 -3
- package/dist/client/client.mjs +515 -38
- package/dist/client/{courseRegistration-X63QAIVV.mjs → courseRegistration-JPWAQ6KM.mjs} +111 -11
- package/dist/client/{eventCalendar-5T24GCZL.mjs → eventCalendar-QDOCHBBV.mjs} +9 -9
- package/dist/client/{eventCombined-AZVTF22X.mjs → eventCombined-ZS2CXSIE.mjs} +9 -9
- package/dist/client/{eventDetails-7GPFNLGF.mjs → eventDetails-5LOBMPLN.mjs} +9 -9
- package/dist/client/{eventListing-QEUMTMUM.mjs → eventListing-SBGY4I3L.mjs} +9 -9
- package/dist/client/{eventRegistration-P2EDKCQZ.mjs → eventRegistration-XGPIU3Z2.mjs} +9 -9
- package/dist/client/{form-NUJ7H4IN.mjs → form-R7D4LZWW.mjs} +3 -3
- package/dist/client/{headerSection-JB7LECPL.mjs → headerSection-RRLYUCGC.mjs} +3 -3
- package/dist/client/hooks.mjs +22 -2
- package/dist/client/{locationMap-UEYWUCSW.mjs → locationMap-35ZJMRBZ.mjs} +3 -3
- package/dist/client/{newsletterForm-S2YZQ2X7.mjs → newsletterForm-MJ2VCFUT.mjs} +3 -3
- package/dist/client/{productDetail-H5MADGG7.mjs → productDetail-2O7YQNBX.mjs} +7 -7
- package/dist/client/{productList-DK7YON7H.mjs → productList-FDP5BH7W.mjs} +7 -7
- package/dist/client/rendering/client.mjs +495 -36
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +514 -37
- package/dist/client/{shop-6PA7RDRJ.mjs → shop-BGYJ3LDT.mjs} +7 -7
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-JP5347OB.mjs → sdk-runtime-B3TFXRXZ.mjs} +4 -4
- package/dist/server/components.mjs +166 -7
- package/dist/server/config-validation.mjs +23 -2
- package/dist/server/config.mjs +23 -2
- package/dist/server/data.mjs +22 -2
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +167 -8
- package/dist/server/page-converter.mjs +19 -2
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +166 -7
- package/dist/server/rendering.mjs +166 -7
- package/dist/server/routing.mjs +29 -5
- package/dist/server/server.mjs +23 -3
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-GMCDQPZZ.mjs +0 -8
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { mountShopBlockIsland, ShopClient } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import { mountShopBlockIsland, ShopClient } from './chunk-JXY6NHG6.mjs';
|
|
2
|
+
import './chunk-ERQDHUS2.mjs';
|
|
3
|
+
import './chunk-B5UC2D6X.mjs';
|
|
4
4
|
import './chunk-6N7YRNYU.mjs';
|
|
5
5
|
import './chunk-L4J5Y62O.mjs';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-ZJDBOLX7.mjs';
|
|
7
7
|
import './chunk-3DCJ45Z2.mjs';
|
|
8
8
|
import './chunk-WBQG7VJA.mjs';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-TNGL2WJF.mjs';
|
|
10
10
|
import './chunk-N7PBWBWQ.mjs';
|
|
11
|
-
import { defineIslandPropsDecoder } from './chunk-
|
|
12
|
-
import './chunk-
|
|
11
|
+
import { defineIslandPropsDecoder } from './chunk-R3CZQLXF.mjs';
|
|
12
|
+
import './chunk-GH6IIOOE.mjs';
|
|
13
13
|
|
|
14
14
|
// src/rendering/islands/enhancers/shop.tsx
|
|
15
15
|
var decode = defineIslandPropsDecoder("shop");
|
|
@@ -6,19 +6,19 @@ import React from 'react';
|
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
var LazySdkPreviewMode = React.lazy(async () => {
|
|
9
|
-
const mod = await import('../../SdkPreviewModeRuntime-
|
|
9
|
+
const mod = await import('../../SdkPreviewModeRuntime-BRGRDQFH.mjs');
|
|
10
10
|
return {
|
|
11
11
|
default: mod.SdkPreviewModeRuntime
|
|
12
12
|
};
|
|
13
13
|
});
|
|
14
14
|
var LazyPreviewShell = React.lazy(async () => {
|
|
15
|
-
const mod = await import('../../sdk-runtime-
|
|
15
|
+
const mod = await import('../../sdk-runtime-B3TFXRXZ.mjs');
|
|
16
16
|
return {
|
|
17
17
|
default: mod.PreviewShell
|
|
18
18
|
};
|
|
19
19
|
});
|
|
20
20
|
var LazyPreviewShellLayout = React.lazy(async () => {
|
|
21
|
-
const mod = await import('../../sdk-runtime-
|
|
21
|
+
const mod = await import('../../sdk-runtime-B3TFXRXZ.mjs');
|
|
22
22
|
return {
|
|
23
23
|
default: mod.PreviewShellLayout
|
|
24
24
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { PreviewShell, PreviewShellLayout, SdkPreviewModeRuntime as SdkPreviewMode } from './chunk-
|
|
2
|
+
export { PreviewShell, PreviewShellLayout, SdkPreviewModeRuntime as SdkPreviewMode } from './chunk-LERKJM3E.mjs';
|
|
3
3
|
export { PreviewLayoutProvider, PreviewQueryProvider, createPreviewQueryClient, useOptionalPreviewLayout, usePreviewLayout } from './chunk-U5YM4AWE.mjs';
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
4
|
+
import './chunk-UOMTCHZD.mjs';
|
|
5
|
+
import './chunk-6D7PLF4M.mjs';
|
|
6
|
+
import './chunk-I6EOKV6B.mjs';
|
|
7
7
|
import './chunk-ZA2S7H34.mjs';
|
|
8
8
|
import './chunk-R7POPVJR.mjs';
|
|
@@ -126,6 +126,8 @@ function err(error) {
|
|
|
126
126
|
|
|
127
127
|
// ../core/src/branded.ts
|
|
128
128
|
var unsafeAsMediaAssetId = (id) => id;
|
|
129
|
+
var unsafeAsStorageBucketName = (value) => value;
|
|
130
|
+
var unsafeAsStoragePath = (value) => value;
|
|
129
131
|
|
|
130
132
|
// ../core/src/assert-never.ts
|
|
131
133
|
function assertNever(value, message = "Unexpected variant") {
|
|
@@ -180,6 +182,7 @@ function publicEventPricingType(pricing) {
|
|
|
180
182
|
return "free";
|
|
181
183
|
case "single_paid":
|
|
182
184
|
case "ticket_types":
|
|
185
|
+
case "sliding_scale":
|
|
183
186
|
case "course":
|
|
184
187
|
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
185
188
|
case "external":
|
|
@@ -192,6 +195,7 @@ function publicEventPricingCurrency(pricing) {
|
|
|
192
195
|
case "free_registration":
|
|
193
196
|
case "single_paid":
|
|
194
197
|
case "ticket_types":
|
|
198
|
+
case "sliding_scale":
|
|
195
199
|
return pricing.currency;
|
|
196
200
|
case "course":
|
|
197
201
|
return pricing.display.display.currency;
|
|
@@ -223,6 +227,8 @@ function formatCoursePriceDisplayLabel(display, options) {
|
|
|
223
227
|
return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
|
|
224
228
|
case "from":
|
|
225
229
|
return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
|
|
230
|
+
case "range":
|
|
231
|
+
return `Course (${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)})`;
|
|
226
232
|
default:
|
|
227
233
|
return assertNever(display);
|
|
228
234
|
}
|
|
@@ -514,6 +520,77 @@ function resolvePlanningDateInput(input = {}) {
|
|
|
514
520
|
return resolvePlanningNowDate(input);
|
|
515
521
|
}
|
|
516
522
|
|
|
523
|
+
// ../media-core/src/fileSafety.ts
|
|
524
|
+
var CONTROL_CHARACTER_PATTERN = /[\u0000-\u001f\u007f]/u;
|
|
525
|
+
function containsUnsafePathSegmentCharacter(value) {
|
|
526
|
+
return value.includes("/") || value.includes("\\") || CONTROL_CHARACTER_PATTERN.test(value);
|
|
527
|
+
}
|
|
528
|
+
function isReservedPathSegment(value) {
|
|
529
|
+
return value === "." || value === "..";
|
|
530
|
+
}
|
|
531
|
+
function isUnsafePathSegment(segment) {
|
|
532
|
+
return segment.trim().length === 0 || segment !== segment.trim() || isReservedPathSegment(segment) || containsUnsafePathSegmentCharacter(segment);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
// ../media-core/src/fileStorage.ts
|
|
536
|
+
var FILE_STORAGE_BUCKETS = {
|
|
537
|
+
publicSite: unsafeAsStorageBucketName("media"),
|
|
538
|
+
privateSite: unsafeAsStorageBucketName("site-files-private"),
|
|
539
|
+
temporary: unsafeAsStorageBucketName("temp-uploads")
|
|
540
|
+
};
|
|
541
|
+
var PUBLIC_SITE_FILE_STORAGE_BUCKETS = [
|
|
542
|
+
FILE_STORAGE_BUCKETS.publicSite,
|
|
543
|
+
// Existing site logo and font uploads predate the unified file buckets.
|
|
544
|
+
unsafeAsStorageBucketName("site-assets"),
|
|
545
|
+
unsafeAsStorageBucketName("site-fonts")
|
|
546
|
+
];
|
|
547
|
+
var PRIVATE_SITE_FILE_BUCKET_MIME_TYPES = [
|
|
548
|
+
"application/pdf",
|
|
549
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
550
|
+
"text/plain",
|
|
551
|
+
"application/rtf",
|
|
552
|
+
"text/rtf",
|
|
553
|
+
"image/jpeg",
|
|
554
|
+
"image/png",
|
|
555
|
+
"image/webp",
|
|
556
|
+
"image/gif",
|
|
557
|
+
"image/avif",
|
|
558
|
+
"image/heic",
|
|
559
|
+
"image/heif",
|
|
560
|
+
"image/svg+xml",
|
|
561
|
+
"text/csv",
|
|
562
|
+
"application/csv",
|
|
563
|
+
"application/vnd.ms-excel",
|
|
564
|
+
"application/zip",
|
|
565
|
+
"application/x-zip-compressed",
|
|
566
|
+
"audio/mpeg",
|
|
567
|
+
"audio/mp4",
|
|
568
|
+
"audio/wav",
|
|
569
|
+
"audio/x-wav",
|
|
570
|
+
"audio/ogg",
|
|
571
|
+
"audio/webm",
|
|
572
|
+
"audio/flac",
|
|
573
|
+
"video/mp4",
|
|
574
|
+
"video/webm",
|
|
575
|
+
"video/quicktime"
|
|
576
|
+
];
|
|
577
|
+
var TEMP_UPLOAD_BUCKET_MIME_TYPES = [
|
|
578
|
+
...PRIVATE_SITE_FILE_BUCKET_MIME_TYPES,
|
|
579
|
+
"font/woff2",
|
|
580
|
+
"application/font-woff2",
|
|
581
|
+
"application/x-font-woff2",
|
|
582
|
+
"application/octet-stream"
|
|
583
|
+
];
|
|
584
|
+
function parseStoragePath(value) {
|
|
585
|
+
return joinStoragePathSegments(value.split("/"));
|
|
586
|
+
}
|
|
587
|
+
function joinStoragePathSegments(segments) {
|
|
588
|
+
if (segments.some(isUnsafePathSegment)) {
|
|
589
|
+
return err("unsafe-path-segment");
|
|
590
|
+
}
|
|
591
|
+
return ok(unsafeAsStoragePath(segments.join("/")));
|
|
592
|
+
}
|
|
593
|
+
|
|
517
594
|
// ../media-core/src/typeGuards.ts
|
|
518
595
|
function isRecord(value) {
|
|
519
596
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
@@ -530,10 +607,10 @@ var RELATIVE_STORAGE_PATH_PREFIXES = [
|
|
|
530
607
|
"imports/"
|
|
531
608
|
];
|
|
532
609
|
function isRelativeDirectImageStoragePath(storagePath) {
|
|
533
|
-
return RELATIVE_STORAGE_PATH_PREFIXES.some((prefix) => storagePath.startsWith(prefix));
|
|
610
|
+
return RELATIVE_STORAGE_PATH_PREFIXES.some((prefix) => storagePath.startsWith(prefix)) && parseStoragePath(storagePath).ok;
|
|
534
611
|
}
|
|
535
612
|
function isSiteScopedDirectImageStoragePath(storagePath) {
|
|
536
|
-
return storagePath.startsWith("sites/");
|
|
613
|
+
return storagePath.startsWith("sites/") && parseStoragePath(storagePath).ok;
|
|
537
614
|
}
|
|
538
615
|
function encodeStoragePath(storagePath) {
|
|
539
616
|
return storagePath.split("/").map((segment) => encodeURIComponent(segment)).join("/");
|
|
@@ -3006,6 +3083,21 @@ function fieldPlanToZod(plan, options = {}) {
|
|
|
3006
3083
|
}
|
|
3007
3084
|
});
|
|
3008
3085
|
}
|
|
3086
|
+
function fieldPresenceForPlan(plan) {
|
|
3087
|
+
return plan.required ? { kind: "required" } : { kind: "optional" };
|
|
3088
|
+
}
|
|
3089
|
+
function fieldPlanToObjectPropertyZod(plan, options = {}) {
|
|
3090
|
+
const schema = fieldPlanToZod(plan, options);
|
|
3091
|
+
const presence = fieldPresenceForPlan(plan);
|
|
3092
|
+
switch (presence.kind) {
|
|
3093
|
+
case "required":
|
|
3094
|
+
return schema;
|
|
3095
|
+
case "optional":
|
|
3096
|
+
return schema.optional();
|
|
3097
|
+
default:
|
|
3098
|
+
return assertNever2(presence);
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3009
3101
|
function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
|
|
3010
3102
|
const message = fieldIssueToMessage(validationIssue);
|
|
3011
3103
|
const path = relativeZodIssuePath(validationIssue.path, rootPath);
|
|
@@ -3218,7 +3310,7 @@ function createManifestValidator(manifestOrFields, options = {}) {
|
|
|
3218
3310
|
function deriveContentZodFromPlans(plans, options) {
|
|
3219
3311
|
const shape = {};
|
|
3220
3312
|
for (const plan of plans) {
|
|
3221
|
-
shape[plan.fieldId] =
|
|
3313
|
+
shape[plan.fieldId] = fieldPlanToObjectPropertyZod(plan, options);
|
|
3222
3314
|
}
|
|
3223
3315
|
return z5.object(shape).catchall(z5.unknown()).passthrough();
|
|
3224
3316
|
}
|
|
@@ -26327,9 +26419,12 @@ var coursePricingOptionSchema = z43.object({
|
|
|
26327
26419
|
});
|
|
26328
26420
|
var coursePricingSchema = z43.object({
|
|
26329
26421
|
bookingRequirement: z43.enum(["none", "required"]),
|
|
26330
|
-
pricingStrategy: z43.enum(["free", "single", "tiered"]),
|
|
26422
|
+
pricingStrategy: z43.enum(["free", "single", "tiered", "sliding_scale"]),
|
|
26331
26423
|
currency: z43.string(),
|
|
26332
26424
|
singlePriceAmount: z43.number().nullable(),
|
|
26425
|
+
slidingMinAmount: z43.number().nullable().optional(),
|
|
26426
|
+
slidingMaxAmount: z43.number().nullable().optional(),
|
|
26427
|
+
slidingSuggestedAmount: z43.number().nullable().optional(),
|
|
26333
26428
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26334
26429
|
options: z43.array(coursePricingOptionSchema)
|
|
26335
26430
|
});
|
|
@@ -26483,6 +26578,19 @@ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
|
|
|
26483
26578
|
ticketTypes: z44.array(publicEventTicketTypeSchema),
|
|
26484
26579
|
display: publicEventTicketTypePriceDisplaySchema
|
|
26485
26580
|
}),
|
|
26581
|
+
z44.object({
|
|
26582
|
+
kind: z44.literal("sliding_scale"),
|
|
26583
|
+
minAmount: z44.number(),
|
|
26584
|
+
maxAmount: z44.number(),
|
|
26585
|
+
suggestedAmount: z44.number().nullable(),
|
|
26586
|
+
currency: z44.string(),
|
|
26587
|
+
display: z44.object({
|
|
26588
|
+
kind: z44.literal("range"),
|
|
26589
|
+
minAmount: z44.number(),
|
|
26590
|
+
maxAmount: z44.number(),
|
|
26591
|
+
currency: z44.string()
|
|
26592
|
+
})
|
|
26593
|
+
}),
|
|
26486
26594
|
z44.object({
|
|
26487
26595
|
kind: z44.literal("course"),
|
|
26488
26596
|
display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
@@ -26899,7 +27007,7 @@ function isRecord6(value) {
|
|
|
26899
27007
|
}
|
|
26900
27008
|
function isPublicEventPricing(value) {
|
|
26901
27009
|
if (!isRecord6(value) || typeof value.kind !== "string") return false;
|
|
26902
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
27010
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
26903
27011
|
}
|
|
26904
27012
|
function isPublicEventTicketType(value) {
|
|
26905
27013
|
return isRecord6(value) && typeof value.id === "string";
|
|
@@ -27516,7 +27624,9 @@ function getSelectableCoursePricingOptionsForNow(course, now) {
|
|
|
27516
27624
|
return left.name.localeCompare(right.name);
|
|
27517
27625
|
});
|
|
27518
27626
|
}
|
|
27519
|
-
function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {}) {
|
|
27627
|
+
function resolveCoursePricingState(course, selectedPricingOptionId, selectedSlidingAmountOrNowInput, nowInput = {}) {
|
|
27628
|
+
const selectedSlidingAmount = typeof selectedSlidingAmountOrNowInput === "number" || selectedSlidingAmountOrNowInput === null ? selectedSlidingAmountOrNowInput : null;
|
|
27629
|
+
const effectiveNowInput = typeof selectedSlidingAmountOrNowInput === "object" && selectedSlidingAmountOrNowInput !== null ? selectedSlidingAmountOrNowInput : nowInput;
|
|
27520
27630
|
const currency = course.pricing?.currency ?? course.currency;
|
|
27521
27631
|
if (!course.pricing) {
|
|
27522
27632
|
const legacyAmount = course.priceCents ?? 0;
|
|
@@ -27526,6 +27636,8 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
27526
27636
|
selectableOptions: [],
|
|
27527
27637
|
requiresSelection: false,
|
|
27528
27638
|
selectedOption: null,
|
|
27639
|
+
slidingScale: null,
|
|
27640
|
+
selectedSlidingAmount: null,
|
|
27529
27641
|
selectedPriceAmount: legacyAmount,
|
|
27530
27642
|
selectedRequiresPayment: legacyAmount > 0,
|
|
27531
27643
|
hasPaidSelection: legacyAmount > 0,
|
|
@@ -27540,6 +27652,8 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
27540
27652
|
selectableOptions: [],
|
|
27541
27653
|
requiresSelection: false,
|
|
27542
27654
|
selectedOption: null,
|
|
27655
|
+
slidingScale: null,
|
|
27656
|
+
selectedSlidingAmount: null,
|
|
27543
27657
|
selectedPriceAmount: 0,
|
|
27544
27658
|
selectedRequiresPayment: false,
|
|
27545
27659
|
hasPaidSelection: false,
|
|
@@ -27553,6 +27667,8 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
27553
27667
|
selectableOptions: [],
|
|
27554
27668
|
requiresSelection: false,
|
|
27555
27669
|
selectedOption: null,
|
|
27670
|
+
slidingScale: null,
|
|
27671
|
+
selectedSlidingAmount: null,
|
|
27556
27672
|
selectedPriceAmount: amount,
|
|
27557
27673
|
selectedRequiresPayment: amount > 0,
|
|
27558
27674
|
hasPaidSelection: amount > 0,
|
|
@@ -27562,7 +27678,7 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
27562
27678
|
case "tiered": {
|
|
27563
27679
|
const selectableOptions = getSelectableCoursePricingOptionsForNow(
|
|
27564
27680
|
course,
|
|
27565
|
-
resolvePlanningDateInput(
|
|
27681
|
+
resolvePlanningDateInput(effectiveNowInput)
|
|
27566
27682
|
);
|
|
27567
27683
|
const selectedOption = (selectedPricingOptionId ? selectableOptions.find((option) => option.id === selectedPricingOptionId) : null) ?? (selectableOptions.length === 1 ? selectableOptions[0] ?? null : null);
|
|
27568
27684
|
const lowestAmount = selectableOptions.reduce((lowest, option) => {
|
|
@@ -27578,12 +27694,51 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
27578
27694
|
selectableOptions,
|
|
27579
27695
|
requiresSelection: selectableOptions.length > 1,
|
|
27580
27696
|
selectedOption,
|
|
27697
|
+
slidingScale: null,
|
|
27698
|
+
selectedSlidingAmount: null,
|
|
27581
27699
|
selectedPriceAmount: selectedOption?.priceAmount ?? null,
|
|
27582
27700
|
selectedRequiresPayment: (selectedOption?.priceAmount ?? 0) > 0,
|
|
27583
27701
|
hasPaidSelection: selectableOptions.some((option) => option.priceAmount > 0),
|
|
27584
27702
|
hasFreeSelection: selectableOptions.some((option) => option.priceAmount === 0)
|
|
27585
27703
|
};
|
|
27586
27704
|
}
|
|
27705
|
+
case "sliding_scale": {
|
|
27706
|
+
const minAmount = course.pricing.slidingMinAmount ?? null;
|
|
27707
|
+
const maxAmount = course.pricing.slidingMaxAmount ?? null;
|
|
27708
|
+
if (minAmount === null || maxAmount === null || minAmount < 0 || maxAmount < minAmount) {
|
|
27709
|
+
return {
|
|
27710
|
+
currency,
|
|
27711
|
+
display: { kind: "unavailable", currency },
|
|
27712
|
+
selectableOptions: [],
|
|
27713
|
+
requiresSelection: true,
|
|
27714
|
+
selectedOption: null,
|
|
27715
|
+
slidingScale: null,
|
|
27716
|
+
selectedSlidingAmount: null,
|
|
27717
|
+
selectedPriceAmount: null,
|
|
27718
|
+
selectedRequiresPayment: false,
|
|
27719
|
+
hasPaidSelection: false,
|
|
27720
|
+
hasFreeSelection: false
|
|
27721
|
+
};
|
|
27722
|
+
}
|
|
27723
|
+
const normalizedSelectedAmount = typeof selectedSlidingAmount === "number" && Number.isFinite(selectedSlidingAmount) ? selectedSlidingAmount : null;
|
|
27724
|
+
return {
|
|
27725
|
+
currency,
|
|
27726
|
+
display: { kind: "range", minAmount, maxAmount, currency },
|
|
27727
|
+
selectableOptions: [],
|
|
27728
|
+
requiresSelection: normalizedSelectedAmount === null,
|
|
27729
|
+
selectedOption: null,
|
|
27730
|
+
slidingScale: {
|
|
27731
|
+
minAmount,
|
|
27732
|
+
maxAmount,
|
|
27733
|
+
suggestedAmount: course.pricing.slidingSuggestedAmount ?? null
|
|
27734
|
+
},
|
|
27735
|
+
selectedSlidingAmount: normalizedSelectedAmount,
|
|
27736
|
+
selectedPriceAmount: normalizedSelectedAmount,
|
|
27737
|
+
selectedRequiresPayment: (normalizedSelectedAmount ?? 0) > 0,
|
|
27738
|
+
hasPaidSelection: maxAmount > 0,
|
|
27739
|
+
hasFreeSelection: minAmount === 0
|
|
27740
|
+
};
|
|
27741
|
+
}
|
|
27587
27742
|
}
|
|
27588
27743
|
}
|
|
27589
27744
|
function formatCoursePriceDisplay(display, locale) {
|
|
@@ -39901,6 +40056,7 @@ var bookingServiceSchema = z64.object({
|
|
|
39901
40056
|
title: z64.string(),
|
|
39902
40057
|
description: z64.string().nullable().optional().transform((value) => value ?? void 0),
|
|
39903
40058
|
durationMinutes: z64.number().optional(),
|
|
40059
|
+
pricing: z64.custom().optional(),
|
|
39904
40060
|
priceAmount: z64.number().nullable().optional(),
|
|
39905
40061
|
priceCurrency: z64.string().nullable().optional(),
|
|
39906
40062
|
paymentTerms: blockBookingPaymentTermsSchema.optional(),
|
|
@@ -67714,6 +67870,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
|
|
|
67714
67870
|
];
|
|
67715
67871
|
var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
67716
67872
|
...CANONICAL_REFUND_CONFLICT_CODES,
|
|
67873
|
+
"invalid_amount",
|
|
67717
67874
|
"amount_exceeds_remaining",
|
|
67718
67875
|
"pass_revoke_requires_full_refund",
|
|
67719
67876
|
"refund_failed"
|
|
@@ -67740,6 +67897,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
|
|
|
67740
67897
|
// ../api/src/bookingRefundOutcomes.ts
|
|
67741
67898
|
var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
67742
67899
|
"missing_amount",
|
|
67900
|
+
"invalid_amount",
|
|
67743
67901
|
"amount_exceeds_remaining",
|
|
67744
67902
|
"credit_refunds_disabled",
|
|
67745
67903
|
"missing_credit_customer",
|
|
@@ -67754,6 +67912,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
|
|
|
67754
67912
|
var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
|
|
67755
67913
|
"credit_refunds_disabled",
|
|
67756
67914
|
"not_refundable",
|
|
67915
|
+
"invalid_amount",
|
|
67757
67916
|
"amount_exceeds_remaining"
|
|
67758
67917
|
];
|
|
67759
67918
|
var CUSTOMER_PASS_REFUND_INVALID_CODES = [
|
|
@@ -6493,6 +6493,7 @@ function publicEventPricingType(pricing) {
|
|
|
6493
6493
|
return "free";
|
|
6494
6494
|
case "single_paid":
|
|
6495
6495
|
case "ticket_types":
|
|
6496
|
+
case "sliding_scale":
|
|
6496
6497
|
case "course":
|
|
6497
6498
|
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
6498
6499
|
case "external":
|
|
@@ -28058,9 +28059,12 @@ var coursePricingOptionSchema = z42.object({
|
|
|
28058
28059
|
});
|
|
28059
28060
|
var coursePricingSchema = z42.object({
|
|
28060
28061
|
bookingRequirement: z42.enum(["none", "required"]),
|
|
28061
|
-
pricingStrategy: z42.enum(["free", "single", "tiered"]),
|
|
28062
|
+
pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
|
|
28062
28063
|
currency: z42.string(),
|
|
28063
28064
|
singlePriceAmount: z42.number().nullable(),
|
|
28065
|
+
slidingMinAmount: z42.number().nullable().optional(),
|
|
28066
|
+
slidingMaxAmount: z42.number().nullable().optional(),
|
|
28067
|
+
slidingSuggestedAmount: z42.number().nullable().optional(),
|
|
28064
28068
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
28065
28069
|
options: z42.array(coursePricingOptionSchema)
|
|
28066
28070
|
});
|
|
@@ -28214,6 +28218,19 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
|
|
|
28214
28218
|
ticketTypes: z43.array(publicEventTicketTypeSchema),
|
|
28215
28219
|
display: publicEventTicketTypePriceDisplaySchema
|
|
28216
28220
|
}),
|
|
28221
|
+
z43.object({
|
|
28222
|
+
kind: z43.literal("sliding_scale"),
|
|
28223
|
+
minAmount: z43.number(),
|
|
28224
|
+
maxAmount: z43.number(),
|
|
28225
|
+
suggestedAmount: z43.number().nullable(),
|
|
28226
|
+
currency: z43.string(),
|
|
28227
|
+
display: z43.object({
|
|
28228
|
+
kind: z43.literal("range"),
|
|
28229
|
+
minAmount: z43.number(),
|
|
28230
|
+
maxAmount: z43.number(),
|
|
28231
|
+
currency: z43.string()
|
|
28232
|
+
})
|
|
28233
|
+
}),
|
|
28217
28234
|
z43.object({
|
|
28218
28235
|
kind: z43.literal("course"),
|
|
28219
28236
|
display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
@@ -28630,7 +28647,7 @@ function isRecord4(value) {
|
|
|
28630
28647
|
}
|
|
28631
28648
|
function isPublicEventPricing(value) {
|
|
28632
28649
|
if (!isRecord4(value) || typeof value.kind !== "string") return false;
|
|
28633
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28650
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28634
28651
|
}
|
|
28635
28652
|
function isPublicEventTicketType(value) {
|
|
28636
28653
|
return isRecord4(value) && typeof value.id === "string";
|
|
@@ -37210,6 +37227,7 @@ var BOOKING_FORM_DATA_RESERVED_KEY_VALUES = [
|
|
|
37210
37227
|
"selectedDate",
|
|
37211
37228
|
"selectedSlot",
|
|
37212
37229
|
"discountCode",
|
|
37230
|
+
"selectedSlidingAmountInput",
|
|
37213
37231
|
"selectedCollectionOptionKind",
|
|
37214
37232
|
"selectedAppointmentPackageId"
|
|
37215
37233
|
];
|
|
@@ -38391,6 +38409,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
|
|
|
38391
38409
|
];
|
|
38392
38410
|
var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
38393
38411
|
...CANONICAL_REFUND_CONFLICT_CODES,
|
|
38412
|
+
"invalid_amount",
|
|
38394
38413
|
"amount_exceeds_remaining",
|
|
38395
38414
|
"pass_revoke_requires_full_refund",
|
|
38396
38415
|
"refund_failed"
|
|
@@ -38417,6 +38436,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
|
|
|
38417
38436
|
// ../api/src/bookingRefundOutcomes.ts
|
|
38418
38437
|
var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
38419
38438
|
"missing_amount",
|
|
38439
|
+
"invalid_amount",
|
|
38420
38440
|
"amount_exceeds_remaining",
|
|
38421
38441
|
"credit_refunds_disabled",
|
|
38422
38442
|
"missing_credit_customer",
|
|
@@ -38431,6 +38451,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
|
|
|
38431
38451
|
var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
|
|
38432
38452
|
"credit_refunds_disabled",
|
|
38433
38453
|
"not_refundable",
|
|
38454
|
+
"invalid_amount",
|
|
38434
38455
|
"amount_exceeds_remaining"
|
|
38435
38456
|
];
|
|
38436
38457
|
var CUSTOMER_PASS_REFUND_INVALID_CODES = [
|
package/dist/server/config.mjs
CHANGED
|
@@ -6538,6 +6538,7 @@ function publicEventPricingType(pricing) {
|
|
|
6538
6538
|
return "free";
|
|
6539
6539
|
case "single_paid":
|
|
6540
6540
|
case "ticket_types":
|
|
6541
|
+
case "sliding_scale":
|
|
6541
6542
|
case "course":
|
|
6542
6543
|
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
6543
6544
|
case "external":
|
|
@@ -28103,9 +28104,12 @@ var coursePricingOptionSchema = z42.object({
|
|
|
28103
28104
|
});
|
|
28104
28105
|
var coursePricingSchema = z42.object({
|
|
28105
28106
|
bookingRequirement: z42.enum(["none", "required"]),
|
|
28106
|
-
pricingStrategy: z42.enum(["free", "single", "tiered"]),
|
|
28107
|
+
pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
|
|
28107
28108
|
currency: z42.string(),
|
|
28108
28109
|
singlePriceAmount: z42.number().nullable(),
|
|
28110
|
+
slidingMinAmount: z42.number().nullable().optional(),
|
|
28111
|
+
slidingMaxAmount: z42.number().nullable().optional(),
|
|
28112
|
+
slidingSuggestedAmount: z42.number().nullable().optional(),
|
|
28109
28113
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
28110
28114
|
options: z42.array(coursePricingOptionSchema)
|
|
28111
28115
|
});
|
|
@@ -28259,6 +28263,19 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
|
|
|
28259
28263
|
ticketTypes: z43.array(publicEventTicketTypeSchema),
|
|
28260
28264
|
display: publicEventTicketTypePriceDisplaySchema
|
|
28261
28265
|
}),
|
|
28266
|
+
z43.object({
|
|
28267
|
+
kind: z43.literal("sliding_scale"),
|
|
28268
|
+
minAmount: z43.number(),
|
|
28269
|
+
maxAmount: z43.number(),
|
|
28270
|
+
suggestedAmount: z43.number().nullable(),
|
|
28271
|
+
currency: z43.string(),
|
|
28272
|
+
display: z43.object({
|
|
28273
|
+
kind: z43.literal("range"),
|
|
28274
|
+
minAmount: z43.number(),
|
|
28275
|
+
maxAmount: z43.number(),
|
|
28276
|
+
currency: z43.string()
|
|
28277
|
+
})
|
|
28278
|
+
}),
|
|
28262
28279
|
z43.object({
|
|
28263
28280
|
kind: z43.literal("course"),
|
|
28264
28281
|
display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
@@ -28675,7 +28692,7 @@ function isRecord4(value) {
|
|
|
28675
28692
|
}
|
|
28676
28693
|
function isPublicEventPricing(value) {
|
|
28677
28694
|
if (!isRecord4(value) || typeof value.kind !== "string") return false;
|
|
28678
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28695
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28679
28696
|
}
|
|
28680
28697
|
function isPublicEventTicketType(value) {
|
|
28681
28698
|
return isRecord4(value) && typeof value.id === "string";
|
|
@@ -37255,6 +37272,7 @@ var BOOKING_FORM_DATA_RESERVED_KEY_VALUES = [
|
|
|
37255
37272
|
"selectedDate",
|
|
37256
37273
|
"selectedSlot",
|
|
37257
37274
|
"discountCode",
|
|
37275
|
+
"selectedSlidingAmountInput",
|
|
37258
37276
|
"selectedCollectionOptionKind",
|
|
37259
37277
|
"selectedAppointmentPackageId"
|
|
37260
37278
|
];
|
|
@@ -38436,6 +38454,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
|
|
|
38436
38454
|
];
|
|
38437
38455
|
var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
38438
38456
|
...CANONICAL_REFUND_CONFLICT_CODES,
|
|
38457
|
+
"invalid_amount",
|
|
38439
38458
|
"amount_exceeds_remaining",
|
|
38440
38459
|
"pass_revoke_requires_full_refund",
|
|
38441
38460
|
"refund_failed"
|
|
@@ -38462,6 +38481,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
|
|
|
38462
38481
|
// ../api/src/bookingRefundOutcomes.ts
|
|
38463
38482
|
var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
38464
38483
|
"missing_amount",
|
|
38484
|
+
"invalid_amount",
|
|
38465
38485
|
"amount_exceeds_remaining",
|
|
38466
38486
|
"credit_refunds_disabled",
|
|
38467
38487
|
"missing_credit_customer",
|
|
@@ -38476,6 +38496,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
|
|
|
38476
38496
|
var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
|
|
38477
38497
|
"credit_refunds_disabled",
|
|
38478
38498
|
"not_refundable",
|
|
38499
|
+
"invalid_amount",
|
|
38479
38500
|
"amount_exceeds_remaining"
|
|
38480
38501
|
];
|
|
38481
38502
|
var CUSTOMER_PASS_REFUND_INVALID_CODES = [
|
package/dist/server/data.mjs
CHANGED
|
@@ -6495,6 +6495,7 @@ function publicEventPricingType(pricing) {
|
|
|
6495
6495
|
return "free";
|
|
6496
6496
|
case "single_paid":
|
|
6497
6497
|
case "ticket_types":
|
|
6498
|
+
case "sliding_scale":
|
|
6498
6499
|
case "course":
|
|
6499
6500
|
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
6500
6501
|
case "external":
|
|
@@ -28042,9 +28043,12 @@ var coursePricingOptionSchema = z42.object({
|
|
|
28042
28043
|
});
|
|
28043
28044
|
var coursePricingSchema = z42.object({
|
|
28044
28045
|
bookingRequirement: z42.enum(["none", "required"]),
|
|
28045
|
-
pricingStrategy: z42.enum(["free", "single", "tiered"]),
|
|
28046
|
+
pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
|
|
28046
28047
|
currency: z42.string(),
|
|
28047
28048
|
singlePriceAmount: z42.number().nullable(),
|
|
28049
|
+
slidingMinAmount: z42.number().nullable().optional(),
|
|
28050
|
+
slidingMaxAmount: z42.number().nullable().optional(),
|
|
28051
|
+
slidingSuggestedAmount: z42.number().nullable().optional(),
|
|
28048
28052
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
28049
28053
|
options: z42.array(coursePricingOptionSchema)
|
|
28050
28054
|
});
|
|
@@ -28198,6 +28202,19 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
|
|
|
28198
28202
|
ticketTypes: z43.array(publicEventTicketTypeSchema),
|
|
28199
28203
|
display: publicEventTicketTypePriceDisplaySchema
|
|
28200
28204
|
}),
|
|
28205
|
+
z43.object({
|
|
28206
|
+
kind: z43.literal("sliding_scale"),
|
|
28207
|
+
minAmount: z43.number(),
|
|
28208
|
+
maxAmount: z43.number(),
|
|
28209
|
+
suggestedAmount: z43.number().nullable(),
|
|
28210
|
+
currency: z43.string(),
|
|
28211
|
+
display: z43.object({
|
|
28212
|
+
kind: z43.literal("range"),
|
|
28213
|
+
minAmount: z43.number(),
|
|
28214
|
+
maxAmount: z43.number(),
|
|
28215
|
+
currency: z43.string()
|
|
28216
|
+
})
|
|
28217
|
+
}),
|
|
28201
28218
|
z43.object({
|
|
28202
28219
|
kind: z43.literal("course"),
|
|
28203
28220
|
display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
@@ -28614,7 +28631,7 @@ function isRecord4(value) {
|
|
|
28614
28631
|
}
|
|
28615
28632
|
function isPublicEventPricing(value) {
|
|
28616
28633
|
if (!isRecord4(value) || typeof value.kind !== "string") return false;
|
|
28617
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28634
|
+
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
28618
28635
|
}
|
|
28619
28636
|
function isPublicEventTicketType(value) {
|
|
28620
28637
|
return isRecord4(value) && typeof value.id === "string";
|
|
@@ -38824,6 +38841,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
|
|
|
38824
38841
|
];
|
|
38825
38842
|
var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
38826
38843
|
...CANONICAL_REFUND_CONFLICT_CODES,
|
|
38844
|
+
"invalid_amount",
|
|
38827
38845
|
"amount_exceeds_remaining",
|
|
38828
38846
|
"pass_revoke_requires_full_refund",
|
|
38829
38847
|
"refund_failed"
|
|
@@ -38850,6 +38868,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
|
|
|
38850
38868
|
// ../api/src/bookingRefundOutcomes.ts
|
|
38851
38869
|
var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
38852
38870
|
"missing_amount",
|
|
38871
|
+
"invalid_amount",
|
|
38853
38872
|
"amount_exceeds_remaining",
|
|
38854
38873
|
"credit_refunds_disabled",
|
|
38855
38874
|
"missing_credit_customer",
|
|
@@ -38864,6 +38883,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
|
|
|
38864
38883
|
var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
|
|
38865
38884
|
"credit_refunds_disabled",
|
|
38866
38885
|
"not_refundable",
|
|
38886
|
+
"invalid_amount",
|
|
38867
38887
|
"amount_exceeds_remaining"
|
|
38868
38888
|
];
|
|
38869
38889
|
var CUSTOMER_PASS_REFUND_INVALID_CODES = [
|
package/dist/server/index.mjs
CHANGED