@riverbankcms/sdk 0.90.1 → 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.
Files changed (113) hide show
  1. package/dist/{PreviewEditorSidebar-FNFRVSIM.mjs → PreviewEditorSidebar-3CI5MKV3.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-3WXJFQXG.mjs → PreviewEditorUI-DKEP636I.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-BRGRDQFH.mjs +8 -0
  4. package/dist/_dts/api/src/bookingConfig.d.ts +13 -1
  5. package/dist/_dts/api/src/bookingOperations.d.ts +1 -0
  6. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  7. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
  8. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
  9. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -0
  10. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +12 -1
  11. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +12 -0
  12. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +4 -1
  13. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -0
  14. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +24 -0
  15. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +8 -1
  16. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  17. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -0
  18. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
  19. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +40 -0
  20. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  21. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +29 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
  23. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +6 -0
  24. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +8 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +8 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +1 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -0
  30. package/dist/_dts/content-model/src/entry-slots/types.d.ts +110 -2
  31. package/dist/_dts/core/src/branded.d.ts +3 -0
  32. package/dist/_dts/core/src/event-pricing.d.ts +18 -1
  33. package/dist/_dts/core/src/money-input.d.ts +34 -4
  34. package/dist/_dts/core/src/string.d.ts +12 -0
  35. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +70 -0
  36. package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
  37. package/dist/_dts/media-core/src/filePersistence.d.ts +5 -1
  38. package/dist/_dts/media-core/src/fileStorage.d.ts +1 -0
  39. package/dist/_dts/media-core/src/videoPrep.d.ts +15 -6
  40. package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +5 -5
  41. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +2 -0
  42. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +23 -0
  43. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +54 -0
  44. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +7 -2
  45. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +6 -0
  46. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +35 -0
  47. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +2 -2
  48. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +23 -1
  49. package/dist/_dts/sdk/src/version.d.ts +1 -1
  50. package/dist/{chunk-SYYJZPKU.mjs → chunk-6D7PLF4M.mjs} +2 -2
  51. package/dist/{chunk-CR2VX432.mjs → chunk-I6EOKV6B.mjs} +568 -76
  52. package/dist/{chunk-FA6LVZ7C.mjs → chunk-LERKJM3E.mjs} +7 -7
  53. package/dist/{chunk-UG7I7S7W.mjs → chunk-U5YM4AWE.mjs} +1 -1
  54. package/dist/{chunk-H6TT5ZXI.mjs → chunk-UOMTCHZD.mjs} +1 -1
  55. package/dist/{chunk-BOQXMCSP.mjs → chunk-ZA2S7H34.mjs} +3 -3
  56. package/dist/cli/index.mjs +755 -414
  57. package/dist/cli/init-docs/content/workflow-add-block.md +48 -0
  58. package/dist/cli/init-docs/content/workflow-custom-block.md +10 -0
  59. package/dist/client/{accordion-4K7VGZ3I.mjs → accordion-BUDH2G3S.mjs} +2 -2
  60. package/dist/client/{bookingForm-3QXA3CIS.mjs → bookingForm-NQMCELVB.mjs} +90 -15
  61. package/dist/client/bookings.mjs +259 -32
  62. package/dist/client/{carousel-BEJKNGQ7.mjs → carousel-ONCEW6IJ.mjs} +3 -3
  63. package/dist/client/{cart-44BBM6XG.mjs → cart-V2TCK2GI.mjs} +7 -7
  64. package/dist/client/{checkout-THMHEYKF.mjs → checkout-ZI7SWNCS.mjs} +7 -7
  65. package/dist/client/{chunk-PEDNDLPB.mjs → chunk-AUMRQ242.mjs} +52 -5
  66. package/dist/client/{chunk-EJBHK74Y.mjs → chunk-B5UC2D6X.mjs} +7 -6
  67. package/dist/client/{chunk-DQIRKNZE.mjs → chunk-ERQDHUS2.mjs} +1 -1
  68. package/dist/client/{chunk-3H5CLFKT.mjs → chunk-GH6IIOOE.mjs} +39 -10
  69. package/dist/client/{chunk-ZIAF2DA4.mjs → chunk-HQWIJLYN.mjs} +1 -1
  70. package/dist/client/{chunk-4COPESPO.mjs → chunk-JXY6NHG6.mjs} +6 -6
  71. package/dist/client/{chunk-JV7ZNAOU.mjs → chunk-KXYEKEV6.mjs} +155 -17
  72. package/dist/client/{chunk-HIHOQGIP.mjs → chunk-LJCX6V7Q.mjs} +9 -9
  73. package/dist/client/{chunk-5AJIMWKS.mjs → chunk-N2WJPTF7.mjs} +3 -3
  74. package/dist/client/{chunk-KNTLBQ3N.mjs → chunk-QQNVQ62W.mjs} +1 -1
  75. package/dist/client/{chunk-B4H6QMPY.mjs → chunk-R3CZQLXF.mjs} +73 -8
  76. package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
  77. package/dist/client/{chunk-SLY6UDAS.mjs → chunk-ZJDBOLX7.mjs} +3 -3
  78. package/dist/client/client.mjs +548 -68
  79. package/dist/client/{courseRegistration-URX7RCCK.mjs → courseRegistration-JPWAQ6KM.mjs} +112 -12
  80. package/dist/client/{eventCalendar-GTENOQCE.mjs → eventCalendar-QDOCHBBV.mjs} +10 -10
  81. package/dist/client/{eventCombined-EZVB72MF.mjs → eventCombined-ZS2CXSIE.mjs} +10 -10
  82. package/dist/client/{eventDetails-CH4BJR5Z.mjs → eventDetails-5LOBMPLN.mjs} +10 -10
  83. package/dist/client/{eventListing-4BVOI5HS.mjs → eventListing-SBGY4I3L.mjs} +10 -10
  84. package/dist/client/{eventRegistration-37LPIKIE.mjs → eventRegistration-XGPIU3Z2.mjs} +10 -10
  85. package/dist/client/{form-FX3Y54YK.mjs → form-R7D4LZWW.mjs} +4 -4
  86. package/dist/client/{headerSection-UOZZGVYL.mjs → headerSection-RRLYUCGC.mjs} +3 -3
  87. package/dist/client/hooks.mjs +29 -9
  88. package/dist/client/{locationMap-VSIPKV35.mjs → locationMap-35ZJMRBZ.mjs} +3 -3
  89. package/dist/client/{newsletterForm-6FRJKNAF.mjs → newsletterForm-MJ2VCFUT.mjs} +4 -4
  90. package/dist/client/{productDetail-6AHMLXCO.mjs → productDetail-2O7YQNBX.mjs} +7 -7
  91. package/dist/client/{productList-M2CYIZVH.mjs → productList-FDP5BH7W.mjs} +7 -7
  92. package/dist/client/rendering/client.mjs +526 -64
  93. package/dist/client/rendering/islands.mjs +19 -19
  94. package/dist/client/rendering.mjs +547 -67
  95. package/dist/client/{shop-AUOT6GEX.mjs → shop-BGYJ3LDT.mjs} +7 -7
  96. package/dist/client/spam-protection.mjs +10 -10
  97. package/dist/preview-next/client/runtime.mjs +5 -5
  98. package/dist/{sdk-runtime-6GPJNLU6.mjs → sdk-runtime-B3TFXRXZ.mjs} +6 -6
  99. package/dist/server/components.mjs +179 -18
  100. package/dist/server/config-validation.mjs +30 -9
  101. package/dist/server/config.mjs +30 -9
  102. package/dist/server/data.mjs +29 -9
  103. package/dist/server/index.mjs +1 -1
  104. package/dist/server/navigation.mjs +2 -2
  105. package/dist/server/next.mjs +180 -19
  106. package/dist/server/page-converter.mjs +24 -7
  107. package/dist/server/prebuild.mjs +1 -1
  108. package/dist/server/rendering/server.mjs +179 -18
  109. package/dist/server/rendering.mjs +179 -18
  110. package/dist/server/routing.mjs +43 -19
  111. package/dist/server/server.mjs +30 -10
  112. package/package.json +1 -1
  113. package/dist/SdkPreviewModeRuntime-2UCIMKUB.mjs +0 -8
@@ -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":
@@ -6573,11 +6574,11 @@ function isValidTimeZone(timeZone) {
6573
6574
  }
6574
6575
  function getSafeTimeZone(timeZone) {
6575
6576
  const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
6576
- return normalized && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
6577
+ return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
6577
6578
  }
6578
6579
  function parseStrictBookingTimeZone(timeZone) {
6579
6580
  const normalized = timeZone.trim();
6580
- if (!normalized || !isValidTimeZone(normalized)) {
6581
+ if (normalized.length === 0 || !isValidTimeZone(normalized)) {
6581
6582
  return null;
6582
6583
  }
6583
6584
  return normalized;
@@ -6651,7 +6652,7 @@ function parseScheduledBookingDateTime(input) {
6651
6652
  try {
6652
6653
  const startsAt = toUtcIsoDateTimeString(input.startsAt);
6653
6654
  const timeZone = parseStrictBookingTimeZone(input.timeZone);
6654
- if (!timeZone) {
6655
+ if (timeZone === null) {
6655
6656
  return {
6656
6657
  ok: false,
6657
6658
  field: "timeZone",
@@ -6697,10 +6698,10 @@ function normalizeLocationAddressText(value) {
6697
6698
  return null;
6698
6699
  }
6699
6700
  const trimmed = value.trim();
6700
- return trimmed ? trimmed : null;
6701
+ return trimmed.length > 0 ? trimmed : null;
6701
6702
  }
6702
6703
  function hasLocationCoordinates(value) {
6703
- return typeof value?.lat === "number" && typeof value?.lng === "number";
6704
+ return value != null && typeof value.lat === "number" && typeof value.lng === "number";
6704
6705
  }
6705
6706
  function toLocationCoordinates(value) {
6706
6707
  if (!hasLocationCoordinates(value)) {
@@ -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";
@@ -37103,11 +37120,11 @@ function extractRouteUpdatedAt(candidate) {
37103
37120
  }
37104
37121
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
37105
37122
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
37106
- if (!routeId || !routes) return null;
37123
+ if (routeId === null || routeId.length === 0 || routes === void 0) return null;
37107
37124
  const routeEntry = routes[routeId];
37108
37125
  if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
37109
37126
  const href = extractRouteHref(routeEntry, stageInput);
37110
- if (!href) return null;
37127
+ if (href === null) return null;
37111
37128
  return {
37112
37129
  routeId,
37113
37130
  href,
@@ -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 = [
@@ -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":
@@ -6530,11 +6531,11 @@ function isValidTimeZone(timeZone) {
6530
6531
  }
6531
6532
  function getSafeTimeZone(timeZone) {
6532
6533
  const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
6533
- return normalized && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
6534
+ return normalized.length > 0 && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
6534
6535
  }
6535
6536
  function parseStrictBookingTimeZone(timeZone) {
6536
6537
  const normalized = timeZone.trim();
6537
- if (!normalized || !isValidTimeZone(normalized)) {
6538
+ if (normalized.length === 0 || !isValidTimeZone(normalized)) {
6538
6539
  return null;
6539
6540
  }
6540
6541
  return normalized;
@@ -6608,7 +6609,7 @@ function parseScheduledBookingDateTime(input) {
6608
6609
  try {
6609
6610
  const startsAt = toUtcIsoDateTimeString(input.startsAt);
6610
6611
  const timeZone = parseStrictBookingTimeZone(input.timeZone);
6611
- if (!timeZone) {
6612
+ if (timeZone === null) {
6612
6613
  return {
6613
6614
  ok: false,
6614
6615
  field: "timeZone",
@@ -6654,10 +6655,10 @@ function normalizeLocationAddressText(value) {
6654
6655
  return null;
6655
6656
  }
6656
6657
  const trimmed = value.trim();
6657
- return trimmed ? trimmed : null;
6658
+ return trimmed.length > 0 ? trimmed : null;
6658
6659
  }
6659
6660
  function hasLocationCoordinates(value) {
6660
- return typeof value?.lat === "number" && typeof value?.lng === "number";
6661
+ return value != null && typeof value.lat === "number" && typeof value.lng === "number";
6661
6662
  }
6662
6663
  function toLocationCoordinates(value) {
6663
6664
  if (!hasLocationCoordinates(value)) {
@@ -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";
@@ -37042,11 +37059,11 @@ function extractRouteUpdatedAt(candidate) {
37042
37059
  }
37043
37060
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
37044
37061
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
37045
- if (!routeId || !routes) return null;
37062
+ if (routeId === null || routeId.length === 0 || routes === void 0) return null;
37046
37063
  const routeEntry = routes[routeId];
37047
37064
  if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
37048
37065
  const href = extractRouteHref(routeEntry, stageInput);
37049
- if (!href) return null;
37066
+ if (href === null) return null;
37050
37067
  return {
37051
37068
  routeId,
37052
37069
  href,
@@ -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 = [
@@ -7062,7 +7062,7 @@ var SimpleCache = class {
7062
7062
  };
7063
7063
 
7064
7064
  // src/version.ts
7065
- var SDK_VERSION = "0.90.1";
7065
+ var SDK_VERSION = "0.92.0";
7066
7066
 
7067
7067
  // src/client/error.ts
7068
7068
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -49,11 +49,11 @@ function extractRouteUpdatedAt(candidate) {
49
49
  }
50
50
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
51
51
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
52
- if (!routeId || !routes) return null;
52
+ if (routeId === null || routeId.length === 0 || routes === void 0) return null;
53
53
  const routeEntry = routes[routeId];
54
54
  if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
55
55
  const href = extractRouteHref(routeEntry, stageInput);
56
- if (!href) return null;
56
+ if (href === null) return null;
57
57
  return {
58
58
  routeId,
59
59
  href,