@riverbankcms/sdk 0.91.0 → 0.93.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-D3PAF7NW.mjs} +3 -3
- package/dist/{PreviewEditorUI-ORCLLUNZ.mjs → PreviewEditorUI-G5JVJEIJ.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-NHTLRNQD.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/common/envelope.d.ts +10 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
- package/dist/_dts/api/src/request.d.ts +1 -1
- 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 +8 -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-editor/src/controller/EntryControllerProvider.d.ts +14 -14
- package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -15
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +46 -0
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +43 -36
- 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/fileUploadFinalization.d.ts +29 -1
- package/dist/_dts/media-core/src/index.d.ts +1 -0
- package/dist/_dts/media-core/src/legacyMediaValue.d.ts +11 -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/media-react/src/hooks/useApiMediaUploader.d.ts +2 -1
- 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-GDT2QGIL.mjs → chunk-A63UXN3P.mjs} +21 -19
- package/dist/{chunk-U5YM4AWE.mjs → chunk-AJZGT6YG.mjs} +1 -1
- package/dist/{chunk-AFPMCLS7.mjs → chunk-AQ6RT6LZ.mjs} +2 -2
- package/dist/{chunk-ZA2S7H34.mjs → chunk-NT76QGIJ.mjs} +98 -1
- package/dist/{chunk-RQUZYSES.mjs → chunk-PCNCETBI.mjs} +1196 -426
- package/dist/{chunk-S3YHJWEU.mjs → chunk-XIK2HYI3.mjs} +7 -7
- package/dist/cli/index.mjs +749 -166
- package/dist/client/{accordion-AFX37652.mjs → accordion-RNQIPG55.mjs} +2 -2
- package/dist/client/{bookingForm-32V5QCOW.mjs → bookingForm-HYEEVRLP.mjs} +89 -14
- package/dist/client/bookings.mjs +243 -17
- package/dist/client/{carousel-TJGQJ7ER.mjs → carousel-W7DQ3YPU.mjs} +3 -3
- package/dist/client/{cart-JUU2JEW4.mjs → cart-PXJ3SXXO.mjs} +7 -7
- package/dist/client/{checkout-RD6BTFX4.mjs → checkout-X3JYSOXI.mjs} +7 -7
- package/dist/client/{chunk-MLBNVN4H.mjs → chunk-6SYGVVWA.mjs} +67 -4
- package/dist/client/{chunk-E6VIWZUG.mjs → chunk-DUOHLWLF.mjs} +3 -3
- package/dist/client/{chunk-6QZIBNGV.mjs → chunk-IXDSXF2D.mjs} +154 -16
- package/dist/client/{chunk-CKXEUWWA.mjs → chunk-J6TMMMXW.mjs} +3 -3
- package/dist/client/{chunk-PMNAV6LO.mjs → chunk-JNE6UI6U.mjs} +7 -6
- package/dist/client/{chunk-ISAUXU5R.mjs → chunk-OLAOAZEO.mjs} +1 -1
- package/dist/client/{chunk-RWYFG625.mjs → chunk-PCHACQEB.mjs} +30 -2
- package/dist/client/{chunk-FMZZHAIR.mjs → chunk-PICR3NTQ.mjs} +52 -5
- package/dist/client/{chunk-6RN62XBV.mjs → chunk-Q47XGAGS.mjs} +1 -1
- package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
- package/dist/client/{chunk-C4LP6BPG.mjs → chunk-WERRJXNJ.mjs} +1 -1
- package/dist/client/{chunk-RMOFBBNA.mjs → chunk-YYVGSYBO.mjs} +6 -6
- package/dist/client/client.mjs +641 -54
- package/dist/client/{courseRegistration-X63QAIVV.mjs → courseRegistration-QZ67PVHO.mjs} +111 -11
- package/dist/client/{eventCalendar-5T24GCZL.mjs → eventCalendar-V3BDHQNT.mjs} +9 -9
- package/dist/client/{eventCombined-AZVTF22X.mjs → eventCombined-XYFRN2RG.mjs} +9 -9
- package/dist/client/{eventDetails-7GPFNLGF.mjs → eventDetails-TFE5TWKV.mjs} +9 -9
- package/dist/client/{eventListing-QEUMTMUM.mjs → eventListing-IQ6AGWZ6.mjs} +9 -9
- package/dist/client/{eventRegistration-P2EDKCQZ.mjs → eventRegistration-WGJVFKQJ.mjs} +9 -9
- package/dist/client/{form-NUJ7H4IN.mjs → form-6UZY6RUA.mjs} +3 -3
- package/dist/client/{headerSection-JB7LECPL.mjs → headerSection-RSFXY6V3.mjs} +3 -3
- package/dist/client/hooks.mjs +57 -5
- package/dist/client/{locationMap-UEYWUCSW.mjs → locationMap-24FH67I4.mjs} +3 -3
- package/dist/client/{newsletterForm-S2YZQ2X7.mjs → newsletterForm-QVL3MLTN.mjs} +3 -3
- package/dist/client/{productDetail-H5MADGG7.mjs → productDetail-ZDYN3G4T.mjs} +7 -7
- package/dist/client/{productList-DK7YON7H.mjs → productList-4BMJLQHZ.mjs} +7 -7
- package/dist/client/rendering/client.mjs +503 -36
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +583 -39
- package/dist/client/{shop-6PA7RDRJ.mjs → shop-U5C634FF.mjs} +7 -7
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/{sdk-runtime-JP5347OB.mjs → sdk-runtime-VGV46WVB.mjs} +6 -6
- package/dist/server/components.mjs +287 -68
- package/dist/server/config-validation.mjs +58 -5
- package/dist/server/config.mjs +58 -5
- package/dist/server/data.mjs +57 -5
- package/dist/server/index.mjs +104 -29
- package/dist/server/next.mjs +347 -85
- package/dist/server/page-converter.mjs +22 -5
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +287 -68
- package/dist/server/rendering.mjs +287 -68
- package/dist/server/routing.mjs +131 -67
- package/dist/server/server.mjs +189 -94
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-GMCDQPZZ.mjs +0 -8
package/dist/server/server.mjs
CHANGED
|
@@ -6545,6 +6545,104 @@ function resolveApiBaseUrl() {
|
|
|
6545
6545
|
return getCmsApiUrl();
|
|
6546
6546
|
}
|
|
6547
6547
|
|
|
6548
|
+
// ../api/src/common/envelope.ts
|
|
6549
|
+
var API_ERROR_CODES = [
|
|
6550
|
+
"auth:unauthenticated",
|
|
6551
|
+
"auth:token_expired",
|
|
6552
|
+
"auth:token_invalid",
|
|
6553
|
+
"auth:forbidden",
|
|
6554
|
+
"auth:mfa_required",
|
|
6555
|
+
"auth:sudo_required",
|
|
6556
|
+
"auth:insufficient_permissions",
|
|
6557
|
+
"auth:impersonation_restricted",
|
|
6558
|
+
"validation:invalid_input",
|
|
6559
|
+
"validation:missing_field",
|
|
6560
|
+
"validation:invalid_format",
|
|
6561
|
+
"validation:payload_too_large",
|
|
6562
|
+
"resource:not_found",
|
|
6563
|
+
"resource:already_exists",
|
|
6564
|
+
"resource:conflict",
|
|
6565
|
+
"resource:gone",
|
|
6566
|
+
"rate_limit:exceeded",
|
|
6567
|
+
"billing:payment_required",
|
|
6568
|
+
"billing:plan_limit_exceeded",
|
|
6569
|
+
"billing:pass_redemption_failed",
|
|
6570
|
+
"server:internal_error",
|
|
6571
|
+
"server:unavailable",
|
|
6572
|
+
"external:service_error",
|
|
6573
|
+
"external:registrar_orphaned_contact_profile",
|
|
6574
|
+
"network:connection_error",
|
|
6575
|
+
"network:timeout",
|
|
6576
|
+
"network:dns_error"
|
|
6577
|
+
];
|
|
6578
|
+
var API_ERROR_CODE_SET = new Set(API_ERROR_CODES);
|
|
6579
|
+
function isApiErrorCode(value) {
|
|
6580
|
+
return typeof value === "string" && API_ERROR_CODE_SET.has(value);
|
|
6581
|
+
}
|
|
6582
|
+
function isApiError(result) {
|
|
6583
|
+
return result.success === false;
|
|
6584
|
+
}
|
|
6585
|
+
function isApiSuccess(result) {
|
|
6586
|
+
return result.success === true;
|
|
6587
|
+
}
|
|
6588
|
+
function isRecord(value) {
|
|
6589
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6590
|
+
}
|
|
6591
|
+
function isFieldError(value) {
|
|
6592
|
+
return isRecord(value) && typeof value.field === "string" && typeof value.code === "string" && typeof value.message === "string";
|
|
6593
|
+
}
|
|
6594
|
+
function fieldErrorsFromUnknown(value) {
|
|
6595
|
+
if (!Array.isArray(value)) return null;
|
|
6596
|
+
return value.every(isFieldError) ? value : null;
|
|
6597
|
+
}
|
|
6598
|
+
function extractEnvelopeErrorObject(body) {
|
|
6599
|
+
if (!isRecord(body)) return null;
|
|
6600
|
+
const error = body.error;
|
|
6601
|
+
if (!isRecord(error)) return null;
|
|
6602
|
+
if ("success" in body && body.success !== false) {
|
|
6603
|
+
return null;
|
|
6604
|
+
}
|
|
6605
|
+
return error;
|
|
6606
|
+
}
|
|
6607
|
+
function extractApiEnvelopeErrorDetails(body) {
|
|
6608
|
+
const error = extractEnvelopeErrorObject(body);
|
|
6609
|
+
if (!error) {
|
|
6610
|
+
return {
|
|
6611
|
+
rawCode: null,
|
|
6612
|
+
code: null,
|
|
6613
|
+
message: null,
|
|
6614
|
+
status: null,
|
|
6615
|
+
fieldErrors: null
|
|
6616
|
+
};
|
|
6617
|
+
}
|
|
6618
|
+
const rawCode = typeof error.code === "string" ? error.code : null;
|
|
6619
|
+
const message = typeof error.message === "string" && error.message.trim().length > 0 ? error.message : null;
|
|
6620
|
+
return {
|
|
6621
|
+
rawCode,
|
|
6622
|
+
code: isApiErrorCode(rawCode) ? rawCode : null,
|
|
6623
|
+
message,
|
|
6624
|
+
status: typeof error.status === "number" && Number.isFinite(error.status) ? error.status : null,
|
|
6625
|
+
fieldErrors: fieldErrorsFromUnknown(error.fieldErrors)
|
|
6626
|
+
};
|
|
6627
|
+
}
|
|
6628
|
+
var ApiEnvelopeError = class extends Error {
|
|
6629
|
+
constructor(error) {
|
|
6630
|
+
super(error.message);
|
|
6631
|
+
this.name = "ApiEnvelopeError";
|
|
6632
|
+
this.code = error.code;
|
|
6633
|
+
this.requestId = error.requestId;
|
|
6634
|
+
this.timestamp = error.timestamp;
|
|
6635
|
+
this.status = error.status;
|
|
6636
|
+
this.fieldErrors = error.fieldErrors;
|
|
6637
|
+
}
|
|
6638
|
+
};
|
|
6639
|
+
function unwrapResponse(result) {
|
|
6640
|
+
if (isApiSuccess(result)) {
|
|
6641
|
+
return result.data;
|
|
6642
|
+
}
|
|
6643
|
+
throw new ApiEnvelopeError(result.error);
|
|
6644
|
+
}
|
|
6645
|
+
|
|
6548
6646
|
// ../api/src/request.ts
|
|
6549
6647
|
var revalidateTag = null;
|
|
6550
6648
|
var revalidateTagResolved = false;
|
|
@@ -6923,6 +7021,7 @@ function createParsedClient(rawClient) {
|
|
|
6923
7021
|
const auth = config.auth ?? "user";
|
|
6924
7022
|
if (!response.ok) {
|
|
6925
7023
|
const body = await parseErrorBody(response);
|
|
7024
|
+
const envelopeError = extractApiEnvelopeErrorDetails(body);
|
|
6926
7025
|
const requestId = response.headers.get("x-request-id") ?? void 0;
|
|
6927
7026
|
const retryAfterMs = parseRetryAfterHeader(response.headers.get("retry-after"));
|
|
6928
7027
|
throw new ApiRequestError(
|
|
@@ -6934,6 +7033,7 @@ function createParsedClient(rawClient) {
|
|
|
6934
7033
|
auth,
|
|
6935
7034
|
requestId,
|
|
6936
7035
|
body,
|
|
7036
|
+
errorCode: envelopeError.code ?? void 0,
|
|
6937
7037
|
retryAfterMs
|
|
6938
7038
|
}
|
|
6939
7039
|
);
|
|
@@ -6954,31 +7054,6 @@ function createBearerAPIClient(token, baseUrl) {
|
|
|
6954
7054
|
return createCMSClient(authHeaders, baseUrl);
|
|
6955
7055
|
}
|
|
6956
7056
|
|
|
6957
|
-
// ../api/src/common/envelope.ts
|
|
6958
|
-
function isApiError(result) {
|
|
6959
|
-
return result.success === false;
|
|
6960
|
-
}
|
|
6961
|
-
function isApiSuccess(result) {
|
|
6962
|
-
return result.success === true;
|
|
6963
|
-
}
|
|
6964
|
-
var ApiEnvelopeError = class extends Error {
|
|
6965
|
-
constructor(error) {
|
|
6966
|
-
super(error.message);
|
|
6967
|
-
this.name = "ApiEnvelopeError";
|
|
6968
|
-
this.code = error.code;
|
|
6969
|
-
this.requestId = error.requestId;
|
|
6970
|
-
this.timestamp = error.timestamp;
|
|
6971
|
-
this.status = error.status;
|
|
6972
|
-
this.fieldErrors = error.fieldErrors;
|
|
6973
|
-
}
|
|
6974
|
-
};
|
|
6975
|
-
function unwrapResponse(result) {
|
|
6976
|
-
if (isApiSuccess(result)) {
|
|
6977
|
-
return result.data;
|
|
6978
|
-
}
|
|
6979
|
-
throw new ApiEnvelopeError(result.error);
|
|
6980
|
-
}
|
|
6981
|
-
|
|
6982
7057
|
// src/client/cache.ts
|
|
6983
7058
|
var SimpleCache = class {
|
|
6984
7059
|
constructor(options = {}) {
|
|
@@ -7095,7 +7170,7 @@ var SimpleCache = class {
|
|
|
7095
7170
|
};
|
|
7096
7171
|
|
|
7097
7172
|
// src/version.ts
|
|
7098
|
-
var SDK_VERSION = "0.
|
|
7173
|
+
var SDK_VERSION = "0.93.0";
|
|
7099
7174
|
|
|
7100
7175
|
// src/client/error.ts
|
|
7101
7176
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -9272,6 +9347,7 @@ function publicEventPricingType(pricing) {
|
|
|
9272
9347
|
return "free";
|
|
9273
9348
|
case "single_paid":
|
|
9274
9349
|
case "ticket_types":
|
|
9350
|
+
case "sliding_scale":
|
|
9275
9351
|
case "course":
|
|
9276
9352
|
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
9277
9353
|
case "external":
|
|
@@ -9599,9 +9675,6 @@ function formatKeyAsLabel(key) {
|
|
|
9599
9675
|
return key.replace(/([A-Z])/g, " $1").replace(/[-_]/g, " ").trim().split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
|
|
9600
9676
|
}
|
|
9601
9677
|
|
|
9602
|
-
// ../blocks/src/system/manifest/schema.ts
|
|
9603
|
-
import { z as z4 } from "zod";
|
|
9604
|
-
|
|
9605
9678
|
// ../media-core/src/transformRect.ts
|
|
9606
9679
|
function isValidTransformRectStructure(rect) {
|
|
9607
9680
|
if (!Array.isArray(rect) || rect.length !== 4) return false;
|
|
@@ -9695,6 +9768,9 @@ function rotateNormalizedPoint(point, rotation) {
|
|
|
9695
9768
|
}
|
|
9696
9769
|
}
|
|
9697
9770
|
|
|
9771
|
+
// ../blocks/src/system/manifest/schema.ts
|
|
9772
|
+
import { z as z4 } from "zod";
|
|
9773
|
+
|
|
9698
9774
|
// ../blocks/src/system/node/schema.ts
|
|
9699
9775
|
import { z as z3 } from "zod";
|
|
9700
9776
|
var transformStepSchema = z3.object({
|
|
@@ -28134,7 +28210,7 @@ var mediaTransforms = [mediaFromUrl];
|
|
|
28134
28210
|
import { z as z37 } from "zod";
|
|
28135
28211
|
|
|
28136
28212
|
// ../blocks/src/lib/typeGuards.ts
|
|
28137
|
-
function
|
|
28213
|
+
function isRecord3(value) {
|
|
28138
28214
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
28139
28215
|
}
|
|
28140
28216
|
function isObjectRecord2(value) {
|
|
@@ -28149,16 +28225,16 @@ var interpolateRichTextTokensOptionsSchema = z37.object({
|
|
|
28149
28225
|
var richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
|
|
28150
28226
|
function getSiteName(context) {
|
|
28151
28227
|
const viewModel = context.viewModel;
|
|
28152
|
-
if (!
|
|
28228
|
+
if (!isRecord3(viewModel)) return null;
|
|
28153
28229
|
const site = viewModel.site;
|
|
28154
|
-
if (
|
|
28230
|
+
if (isRecord3(site) && typeof site.title === "string") {
|
|
28155
28231
|
const title = site.title.trim();
|
|
28156
28232
|
return title.length > 0 ? title : null;
|
|
28157
28233
|
}
|
|
28158
28234
|
const root = viewModel.$root;
|
|
28159
|
-
if (
|
|
28235
|
+
if (isRecord3(root)) {
|
|
28160
28236
|
const rootSite = root.site;
|
|
28161
|
-
if (
|
|
28237
|
+
if (isRecord3(rootSite) && typeof rootSite.title === "string") {
|
|
28162
28238
|
const title = rootSite.title.trim();
|
|
28163
28239
|
if (title.length > 0) return title;
|
|
28164
28240
|
}
|
|
@@ -28180,7 +28256,7 @@ function replaceTokenText(input, allowedTokens, tokenValues) {
|
|
|
28180
28256
|
});
|
|
28181
28257
|
}
|
|
28182
28258
|
function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
28183
|
-
if (!
|
|
28259
|
+
if (!isRecord3(node)) return node;
|
|
28184
28260
|
let changed = false;
|
|
28185
28261
|
const nextNode = { ...node };
|
|
28186
28262
|
if (nextNode.type === "text" && typeof nextNode.text === "string") {
|
|
@@ -28206,13 +28282,13 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
|
28206
28282
|
return changed ? nextNode : node;
|
|
28207
28283
|
}
|
|
28208
28284
|
function interpolateRichTextTokens(value, options, context) {
|
|
28209
|
-
if (!
|
|
28285
|
+
if (!isRecord3(value)) return value;
|
|
28210
28286
|
const allowedTokens = new Set(options.tokens);
|
|
28211
28287
|
const tokenValues = {
|
|
28212
28288
|
year: String((/* @__PURE__ */ new Date()).getFullYear()),
|
|
28213
28289
|
site_name: getSiteName(context)
|
|
28214
28290
|
};
|
|
28215
|
-
if (
|
|
28291
|
+
if (isRecord3(value.doc)) {
|
|
28216
28292
|
const nextDoc = visitRichTextNode(value.doc, allowedTokens, tokenValues);
|
|
28217
28293
|
if (nextDoc === value.doc) return value;
|
|
28218
28294
|
return { ...value, doc: nextDoc };
|
|
@@ -30719,10 +30795,10 @@ var RichTextDocSchema = z40.object({
|
|
|
30719
30795
|
content: z40.array(TipTapNodeSchema)
|
|
30720
30796
|
});
|
|
30721
30797
|
function unwrapRichTextRoot(value) {
|
|
30722
|
-
if (!
|
|
30798
|
+
if (!isRecord3(value)) return value;
|
|
30723
30799
|
if (!("doc" in value)) return value;
|
|
30724
30800
|
const inner = value.doc;
|
|
30725
|
-
if (
|
|
30801
|
+
if (isRecord3(inner) && inner.type === "doc") return inner;
|
|
30726
30802
|
return value;
|
|
30727
30803
|
}
|
|
30728
30804
|
|
|
@@ -30826,9 +30902,12 @@ var coursePricingOptionSchema = z42.object({
|
|
|
30826
30902
|
});
|
|
30827
30903
|
var coursePricingSchema = z42.object({
|
|
30828
30904
|
bookingRequirement: z42.enum(["none", "required"]),
|
|
30829
|
-
pricingStrategy: z42.enum(["free", "single", "tiered"]),
|
|
30905
|
+
pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
|
|
30830
30906
|
currency: z42.string(),
|
|
30831
30907
|
singlePriceAmount: z42.number().nullable(),
|
|
30908
|
+
slidingMinAmount: z42.number().nullable().optional(),
|
|
30909
|
+
slidingMaxAmount: z42.number().nullable().optional(),
|
|
30910
|
+
slidingSuggestedAmount: z42.number().nullable().optional(),
|
|
30832
30911
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
30833
30912
|
options: z42.array(coursePricingOptionSchema)
|
|
30834
30913
|
});
|
|
@@ -30982,6 +31061,19 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
|
|
|
30982
31061
|
ticketTypes: z43.array(publicEventTicketTypeSchema),
|
|
30983
31062
|
display: publicEventTicketTypePriceDisplaySchema
|
|
30984
31063
|
}),
|
|
31064
|
+
z43.object({
|
|
31065
|
+
kind: z43.literal("sliding_scale"),
|
|
31066
|
+
minAmount: z43.number(),
|
|
31067
|
+
maxAmount: z43.number(),
|
|
31068
|
+
suggestedAmount: z43.number().nullable(),
|
|
31069
|
+
currency: z43.string(),
|
|
31070
|
+
display: z43.object({
|
|
31071
|
+
kind: z43.literal("range"),
|
|
31072
|
+
minAmount: z43.number(),
|
|
31073
|
+
maxAmount: z43.number(),
|
|
31074
|
+
currency: z43.string()
|
|
31075
|
+
})
|
|
31076
|
+
}),
|
|
30985
31077
|
z43.object({
|
|
30986
31078
|
kind: z43.literal("course"),
|
|
30987
31079
|
display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
@@ -31323,11 +31415,11 @@ function isEventContentType(slug) {
|
|
|
31323
31415
|
}
|
|
31324
31416
|
|
|
31325
31417
|
// ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
31326
|
-
function
|
|
31418
|
+
function isRecord4(value) {
|
|
31327
31419
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31328
31420
|
}
|
|
31329
31421
|
function isRuntimeEventDestination(value) {
|
|
31330
|
-
if (!
|
|
31422
|
+
if (!isRecord4(value) || typeof value.kind !== "string") return false;
|
|
31331
31423
|
if (value.kind === "native") {
|
|
31332
31424
|
return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
|
|
31333
31425
|
}
|
|
@@ -31393,22 +31485,22 @@ function resolveRuntimeEventPricing(event) {
|
|
|
31393
31485
|
function readCurrency(value) {
|
|
31394
31486
|
return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
|
|
31395
31487
|
}
|
|
31396
|
-
function
|
|
31488
|
+
function isRecord5(value) {
|
|
31397
31489
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31398
31490
|
}
|
|
31399
31491
|
function isPublicEventPricing(value) {
|
|
31400
|
-
if (!
|
|
31401
|
-
return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
|
|
31492
|
+
if (!isRecord5(value) || typeof value.kind !== "string") return false;
|
|
31493
|
+
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";
|
|
31402
31494
|
}
|
|
31403
31495
|
function isPublicEventTicketType(value) {
|
|
31404
|
-
return
|
|
31496
|
+
return isRecord5(value) && typeof value.id === "string";
|
|
31405
31497
|
}
|
|
31406
31498
|
function readTicketTypePriceDisplay(value, currency) {
|
|
31407
31499
|
const display = readLegacyPriceDisplay(value, currency);
|
|
31408
31500
|
return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
|
|
31409
31501
|
}
|
|
31410
31502
|
function readLegacyPriceDisplay(value, currency) {
|
|
31411
|
-
if (!
|
|
31503
|
+
if (!isRecord5(value) || typeof value.kind !== "string") {
|
|
31412
31504
|
return { kind: "unavailable", currency };
|
|
31413
31505
|
}
|
|
31414
31506
|
const displayCurrency = readCurrency(value.currency);
|
|
@@ -31447,7 +31539,7 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
31447
31539
|
case "unavailable":
|
|
31448
31540
|
return { kind: "unavailable", currency: displayCurrency };
|
|
31449
31541
|
case "course":
|
|
31450
|
-
return
|
|
31542
|
+
return isRecord5(value.display) ? {
|
|
31451
31543
|
kind: "course",
|
|
31452
31544
|
display: readCoursePriceDisplay(value.display, displayCurrency)
|
|
31453
31545
|
} : {
|
|
@@ -31731,7 +31823,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
31731
31823
|
})
|
|
31732
31824
|
});
|
|
31733
31825
|
function normalizeEventRegistrationEventInput(value) {
|
|
31734
|
-
if (!
|
|
31826
|
+
if (!isRecord6(value)) {
|
|
31735
31827
|
return value;
|
|
31736
31828
|
}
|
|
31737
31829
|
return {
|
|
@@ -31740,7 +31832,7 @@ function normalizeEventRegistrationEventInput(value) {
|
|
|
31740
31832
|
pricing: resolveRuntimeEventPricing(value)
|
|
31741
31833
|
};
|
|
31742
31834
|
}
|
|
31743
|
-
function
|
|
31835
|
+
function isRecord6(value) {
|
|
31744
31836
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31745
31837
|
}
|
|
31746
31838
|
var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
@@ -34302,7 +34394,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
|
|
|
34302
34394
|
return keys.length >= 2 ? keys : [];
|
|
34303
34395
|
}
|
|
34304
34396
|
function normalizeOfferingsPreviewContentForWrite(value) {
|
|
34305
|
-
if (!
|
|
34397
|
+
if (!isRecord7(value)) return null;
|
|
34306
34398
|
const groupOrderValue = value.groupOrder;
|
|
34307
34399
|
if (Array.isArray(groupOrderValue)) {
|
|
34308
34400
|
const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
|
|
@@ -34315,7 +34407,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
|
|
|
34315
34407
|
return { ...value, groupOrder: [] };
|
|
34316
34408
|
}
|
|
34317
34409
|
const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
|
|
34318
|
-
Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(
|
|
34410
|
+
Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord7) : []
|
|
34319
34411
|
);
|
|
34320
34412
|
return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
|
|
34321
34413
|
}
|
|
@@ -34329,7 +34421,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
|
|
|
34329
34421
|
}
|
|
34330
34422
|
return keys;
|
|
34331
34423
|
}
|
|
34332
|
-
function
|
|
34424
|
+
function isRecord7(value) {
|
|
34333
34425
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34334
34426
|
}
|
|
34335
34427
|
|
|
@@ -34696,7 +34788,7 @@ function isOfferingsPreviewItemLimit(value) {
|
|
|
34696
34788
|
return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
|
|
34697
34789
|
}
|
|
34698
34790
|
function normalizeOfferingsPreviewGroupOverride(value) {
|
|
34699
|
-
if (!
|
|
34791
|
+
if (!isRecord8(value)) return [];
|
|
34700
34792
|
const override = {};
|
|
34701
34793
|
if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
|
|
34702
34794
|
override.sourceKey = value.sourceKey;
|
|
@@ -34728,12 +34820,12 @@ function isButtonVariant(value) {
|
|
|
34728
34820
|
return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
|
|
34729
34821
|
}
|
|
34730
34822
|
function normalizeCardStylesContent(value) {
|
|
34731
|
-
return
|
|
34823
|
+
return isRecord8(value) || value === null ? value : void 0;
|
|
34732
34824
|
}
|
|
34733
34825
|
function normalizeSectionStylesContent(value) {
|
|
34734
|
-
return
|
|
34826
|
+
return isRecord8(value) || value === null ? value : void 0;
|
|
34735
34827
|
}
|
|
34736
|
-
function
|
|
34828
|
+
function isRecord8(value) {
|
|
34737
34829
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34738
34830
|
}
|
|
34739
34831
|
|
|
@@ -37813,7 +37905,7 @@ function deriveNewsletterSignupRuntimeSource(values) {
|
|
|
37813
37905
|
};
|
|
37814
37906
|
}
|
|
37815
37907
|
function sanitizeNewsletterSignupPublicContent(content) {
|
|
37816
|
-
if (!
|
|
37908
|
+
if (!isRecord9(content)) return content;
|
|
37817
37909
|
const provider = parseNewsletterSignupDestinationProvider(content.destinationProvider) ?? getProviderFromExplicitDestination(content.destination);
|
|
37818
37910
|
const {
|
|
37819
37911
|
destination: _destination,
|
|
@@ -37832,7 +37924,7 @@ function sanitizeNewsletterSignupPublicContent(content) {
|
|
|
37832
37924
|
return mutablePublicContent;
|
|
37833
37925
|
}
|
|
37834
37926
|
function getProviderFromExplicitDestination(destination) {
|
|
37835
|
-
if (!
|
|
37927
|
+
if (!isRecord9(destination) || typeof destination.tag !== "string") return null;
|
|
37836
37928
|
if (destination.tag === "riverbank_list") return "riverbank";
|
|
37837
37929
|
if (destination.tag === "mailchimp_audience") return "mailchimp";
|
|
37838
37930
|
return null;
|
|
@@ -37844,7 +37936,7 @@ function parseTrimmedString(value) {
|
|
|
37844
37936
|
const trimmed = value.trim();
|
|
37845
37937
|
return trimmed.length > 0 ? trimmed : null;
|
|
37846
37938
|
}
|
|
37847
|
-
function
|
|
37939
|
+
function isRecord9(value) {
|
|
37848
37940
|
return typeof value === "object" && value !== null;
|
|
37849
37941
|
}
|
|
37850
37942
|
|
|
@@ -40001,7 +40093,7 @@ var defaultTransforms = createTransformRegistry(builtinTransformDefinitions);
|
|
|
40001
40093
|
// ../blocks/src/system/data/linkedContentEntries.ts
|
|
40002
40094
|
var LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
|
|
40003
40095
|
function coerceLinkedContentEntriesPayload(payload) {
|
|
40004
|
-
if (!
|
|
40096
|
+
if (!isRecord10(payload)) return payload;
|
|
40005
40097
|
const response = payload;
|
|
40006
40098
|
if (!Array.isArray(response.entries)) return payload;
|
|
40007
40099
|
const contentType = parsePublicContentTypeMeta(response.contentType);
|
|
@@ -40009,12 +40101,12 @@ function coerceLinkedContentEntriesPayload(payload) {
|
|
|
40009
40101
|
return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
|
|
40010
40102
|
}
|
|
40011
40103
|
function enrichLinkedContentEntry(entry, contentType) {
|
|
40012
|
-
if (!
|
|
40104
|
+
if (!isRecord10(entry)) return entry;
|
|
40013
40105
|
const entryId = typeof entry.id === "string" ? entry.id : null;
|
|
40014
40106
|
if (!entryId) return entry;
|
|
40015
40107
|
const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
|
|
40016
40108
|
const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
|
|
40017
|
-
const content =
|
|
40109
|
+
const content = isRecord10(entry.content) ? entry.content : {};
|
|
40018
40110
|
const meta = {
|
|
40019
40111
|
kind: "linked-content-entry",
|
|
40020
40112
|
entryId,
|
|
@@ -40107,7 +40199,7 @@ function capitalize(value) {
|
|
|
40107
40199
|
return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
|
|
40108
40200
|
}
|
|
40109
40201
|
function parsePublicContentTypeMeta(value) {
|
|
40110
|
-
if (!
|
|
40202
|
+
if (!isRecord10(value)) return null;
|
|
40111
40203
|
if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
|
|
40112
40204
|
return {
|
|
40113
40205
|
key: value.key,
|
|
@@ -40117,7 +40209,7 @@ function parsePublicContentTypeMeta(value) {
|
|
|
40117
40209
|
};
|
|
40118
40210
|
}
|
|
40119
40211
|
function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
40120
|
-
if (!
|
|
40212
|
+
if (!isRecord10(value) || typeof value.kind !== "string") return null;
|
|
40121
40213
|
switch (value.kind) {
|
|
40122
40214
|
case "generic":
|
|
40123
40215
|
return { kind: "generic" };
|
|
@@ -40131,7 +40223,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
|
|
|
40131
40223
|
}
|
|
40132
40224
|
}
|
|
40133
40225
|
function parsePublicContentTypeFieldMeta(value) {
|
|
40134
|
-
if (!
|
|
40226
|
+
if (!isRecord10(value)) return [];
|
|
40135
40227
|
if (typeof value.id !== "string" || typeof value.type !== "string") return [];
|
|
40136
40228
|
return [{
|
|
40137
40229
|
id: value.id,
|
|
@@ -40145,7 +40237,7 @@ function parseStringArray(value) {
|
|
|
40145
40237
|
if (!Array.isArray(value)) return null;
|
|
40146
40238
|
return value.filter((item) => typeof item === "string");
|
|
40147
40239
|
}
|
|
40148
|
-
function
|
|
40240
|
+
function isRecord10(value) {
|
|
40149
40241
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
40150
40242
|
}
|
|
40151
40243
|
|
|
@@ -41629,6 +41721,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
|
|
|
41629
41721
|
];
|
|
41630
41722
|
var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
|
|
41631
41723
|
...CANONICAL_REFUND_CONFLICT_CODES,
|
|
41724
|
+
"invalid_amount",
|
|
41632
41725
|
"amount_exceeds_remaining",
|
|
41633
41726
|
"pass_revoke_requires_full_refund",
|
|
41634
41727
|
"refund_failed"
|
|
@@ -41655,6 +41748,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
|
|
|
41655
41748
|
// ../api/src/bookingRefundOutcomes.ts
|
|
41656
41749
|
var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
|
|
41657
41750
|
"missing_amount",
|
|
41751
|
+
"invalid_amount",
|
|
41658
41752
|
"amount_exceeds_remaining",
|
|
41659
41753
|
"credit_refunds_disabled",
|
|
41660
41754
|
"missing_credit_customer",
|
|
@@ -41669,6 +41763,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
|
|
|
41669
41763
|
var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
|
|
41670
41764
|
"credit_refunds_disabled",
|
|
41671
41765
|
"not_refundable",
|
|
41766
|
+
"invalid_amount",
|
|
41672
41767
|
"amount_exceeds_remaining"
|
|
41673
41768
|
];
|
|
41674
41769
|
var CUSTOMER_PASS_REFUND_INVALID_CODES = [
|
|
@@ -41913,7 +42008,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
|
|
|
41913
42008
|
}
|
|
41914
42009
|
|
|
41915
42010
|
// ../api/src/utils/isRecord.ts
|
|
41916
|
-
function
|
|
42011
|
+
function isRecord11(value) {
|
|
41917
42012
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
41918
42013
|
}
|
|
41919
42014
|
|
|
@@ -42220,7 +42315,7 @@ function sanitizeMarks(marks) {
|
|
|
42220
42315
|
if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
|
|
42221
42316
|
return [{ type: mark.type }];
|
|
42222
42317
|
}
|
|
42223
|
-
if (mark.type === "link" &&
|
|
42318
|
+
if (mark.type === "link" && isRecord11(mark.attrs) && typeof mark.attrs.href === "string") {
|
|
42224
42319
|
const attrs = { href: mark.attrs.href };
|
|
42225
42320
|
if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
|
|
42226
42321
|
attrs.target = mark.attrs.target;
|
|
@@ -42235,10 +42330,10 @@ function sanitizeMarks(marks) {
|
|
|
42235
42330
|
return sanitized.length > 0 ? sanitized : void 0;
|
|
42236
42331
|
}
|
|
42237
42332
|
function unwrapRichTextValue(value) {
|
|
42238
|
-
if (
|
|
42333
|
+
if (isRecord11(value) && isRecord11(value.doc)) {
|
|
42239
42334
|
return unwrapRichTextValue(value.doc);
|
|
42240
42335
|
}
|
|
42241
|
-
if (
|
|
42336
|
+
if (isRecord11(value) && value.type === "doc") {
|
|
42242
42337
|
return {
|
|
42243
42338
|
type: "doc",
|
|
42244
42339
|
content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
|
|
@@ -42247,7 +42342,7 @@ function unwrapRichTextValue(value) {
|
|
|
42247
42342
|
return EMPTY_SITE_BANNER_BODY;
|
|
42248
42343
|
}
|
|
42249
42344
|
function isTipTapNodeLike(value) {
|
|
42250
|
-
return
|
|
42345
|
+
return isRecord11(value) && typeof value.type === "string";
|
|
42251
42346
|
}
|
|
42252
42347
|
function coerceTipTapNode(value) {
|
|
42253
42348
|
return {
|
|
@@ -42255,9 +42350,9 @@ function coerceTipTapNode(value) {
|
|
|
42255
42350
|
...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
|
|
42256
42351
|
...typeof value.text === "string" ? { text: value.text } : {},
|
|
42257
42352
|
...Array.isArray(value.marks) ? {
|
|
42258
|
-
marks: value.marks.filter((mark) =>
|
|
42353
|
+
marks: value.marks.filter((mark) => isRecord11(mark) && typeof mark.type === "string").map((mark) => ({
|
|
42259
42354
|
type: mark.type,
|
|
42260
|
-
...
|
|
42355
|
+
...isRecord11(mark.attrs) ? { attrs: mark.attrs } : {}
|
|
42261
42356
|
}))
|
|
42262
42357
|
} : {}
|
|
42263
42358
|
};
|
|
@@ -42392,7 +42487,7 @@ var ENTRY_REF_KEYS = [
|
|
|
42392
42487
|
"entryId",
|
|
42393
42488
|
"slug"
|
|
42394
42489
|
];
|
|
42395
|
-
function
|
|
42490
|
+
function isRecord12(value) {
|
|
42396
42491
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
42397
42492
|
}
|
|
42398
42493
|
function extractManualEntryRef(item) {
|
|
@@ -42400,7 +42495,7 @@ function extractManualEntryRef(item) {
|
|
|
42400
42495
|
const trimmed = item.trim();
|
|
42401
42496
|
return trimmed.length > 0 ? trimmed : null;
|
|
42402
42497
|
}
|
|
42403
|
-
if (!
|
|
42498
|
+
if (!isRecord12(item)) return null;
|
|
42404
42499
|
for (const key of ENTRY_REF_KEYS) {
|
|
42405
42500
|
const raw = item[key];
|
|
42406
42501
|
if (typeof raw === "string" && raw.trim().length > 0) {
|
|
@@ -42757,7 +42852,7 @@ function collectMediaAssetSidecar(mediaAssets) {
|
|
|
42757
42852
|
return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
|
|
42758
42853
|
}
|
|
42759
42854
|
function convertPageResponseBlock(block) {
|
|
42760
|
-
if (!
|
|
42855
|
+
if (!isRecord13(block)) {
|
|
42761
42856
|
throw new Error("Invalid block format in page API response");
|
|
42762
42857
|
}
|
|
42763
42858
|
if (typeof block.id !== "string" && block.id !== null) {
|
|
@@ -42788,20 +42883,20 @@ function buildPageOutline(input) {
|
|
|
42788
42883
|
blocks: input.blocks.map(convertPageResponseBlock)
|
|
42789
42884
|
};
|
|
42790
42885
|
}
|
|
42791
|
-
function
|
|
42886
|
+
function isRecord13(value) {
|
|
42792
42887
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
42793
42888
|
}
|
|
42794
42889
|
function readContentRecord(value) {
|
|
42795
|
-
return
|
|
42890
|
+
return isRecord13(value) ? value : void 0;
|
|
42796
42891
|
}
|
|
42797
42892
|
function readNestedContentRecord(value) {
|
|
42798
|
-
if (!
|
|
42893
|
+
if (!isRecord13(value)) return null;
|
|
42799
42894
|
return readContentRecord(value.data) ?? null;
|
|
42800
42895
|
}
|
|
42801
42896
|
function sanitizeSdkRuntimeBlockContent(blockKind, content) {
|
|
42802
42897
|
if (blockKind !== "block.newsletter-signup") return content;
|
|
42803
42898
|
const sanitized = sanitizeNewsletterSignupPublicContent(content);
|
|
42804
|
-
return
|
|
42899
|
+
return isRecord13(sanitized) ? sanitized : {};
|
|
42805
42900
|
}
|
|
42806
42901
|
function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
|
|
42807
42902
|
return content ? sanitizeSdkRuntimeBlockContent(blockKind, content) : null;
|
|
@@ -42894,7 +42989,7 @@ function applyBindings(bindings, context) {
|
|
|
42894
42989
|
}
|
|
42895
42990
|
continue;
|
|
42896
42991
|
}
|
|
42897
|
-
if (
|
|
42992
|
+
if (isRecord3(bindingSpec)) {
|
|
42898
42993
|
const nested = applyBindings(bindingSpec, context);
|
|
42899
42994
|
if (Object.keys(nested).length > 0) {
|
|
42900
42995
|
setBindingValue(result, key, nested);
|
|
@@ -42927,7 +43022,7 @@ function setBindingValue(target, path, value) {
|
|
|
42927
43022
|
current[Number(segment)] = value;
|
|
42928
43023
|
return;
|
|
42929
43024
|
}
|
|
42930
|
-
if (
|
|
43025
|
+
if (isRecord3(current)) {
|
|
42931
43026
|
current[segment] = value;
|
|
42932
43027
|
}
|
|
42933
43028
|
return;
|
|
@@ -42939,17 +43034,17 @@ function setBindingValue(target, path, value) {
|
|
|
42939
43034
|
if (nextWantsArray) {
|
|
42940
43035
|
if (!Array.isArray(existing)) current[index] = [];
|
|
42941
43036
|
} else {
|
|
42942
|
-
if (!
|
|
43037
|
+
if (!isRecord3(existing)) current[index] = {};
|
|
42943
43038
|
}
|
|
42944
43039
|
current = current[index];
|
|
42945
43040
|
continue;
|
|
42946
43041
|
}
|
|
42947
|
-
if (
|
|
43042
|
+
if (isRecord3(current)) {
|
|
42948
43043
|
const existing = current[segment];
|
|
42949
43044
|
if (nextWantsArray) {
|
|
42950
43045
|
if (!Array.isArray(existing)) current[segment] = [];
|
|
42951
43046
|
} else {
|
|
42952
|
-
if (!
|
|
43047
|
+
if (!isRecord3(existing)) current[segment] = {};
|
|
42953
43048
|
}
|
|
42954
43049
|
current = current[segment];
|
|
42955
43050
|
continue;
|
|
@@ -42989,7 +43084,7 @@ function getPath(source, path) {
|
|
|
42989
43084
|
const segments = path.split(".").map((segment) => segment.trim()).filter(Boolean);
|
|
42990
43085
|
let current = source;
|
|
42991
43086
|
for (const segment of segments) {
|
|
42992
|
-
if (!
|
|
43087
|
+
if (!isRecord3(current)) return void 0;
|
|
42993
43088
|
current = current[segment];
|
|
42994
43089
|
}
|
|
42995
43090
|
return current;
|
|
@@ -43009,13 +43104,13 @@ function applyTransform(name, value) {
|
|
|
43009
43104
|
}
|
|
43010
43105
|
function extractFirstParagraph(value) {
|
|
43011
43106
|
const unwrapped = unwrapRichTextRoot(value);
|
|
43012
|
-
if (!
|
|
43107
|
+
if (!isRecord3(unwrapped)) return null;
|
|
43013
43108
|
const doc = unwrapped;
|
|
43014
43109
|
if (!Array.isArray(doc.content)) return null;
|
|
43015
43110
|
for (const node of doc.content) {
|
|
43016
|
-
if (!
|
|
43111
|
+
if (!isRecord3(node)) continue;
|
|
43017
43112
|
if (node.type !== "paragraph" || !Array.isArray(node.content)) continue;
|
|
43018
|
-
const text2 = node.content.filter((item) =>
|
|
43113
|
+
const text2 = node.content.filter((item) => isRecord3(item) && item.type === "text").map((item) => typeof item.text === "string" ? item.text : "").join("").trim();
|
|
43019
43114
|
if (text2.length > 0) {
|
|
43020
43115
|
return text2;
|
|
43021
43116
|
}
|
|
@@ -43029,7 +43124,7 @@ function formatDate(value, options) {
|
|
|
43029
43124
|
return new Intl.DateTimeFormat(void 0, options).format(date);
|
|
43030
43125
|
}
|
|
43031
43126
|
function isBindingDescriptor(value) {
|
|
43032
|
-
if (!
|
|
43127
|
+
if (!isRecord3(value) || typeof value.source !== "string") {
|
|
43033
43128
|
return false;
|
|
43034
43129
|
}
|
|
43035
43130
|
if (!BINDING_SOURCES.includes(value.source)) {
|
|
@@ -43050,7 +43145,7 @@ function isBindingDescriptor(value) {
|
|
|
43050
43145
|
}
|
|
43051
43146
|
}
|
|
43052
43147
|
function isBindingDescriptorLike(value) {
|
|
43053
|
-
return isBindingDescriptor(value) || typeof value === "string" ||
|
|
43148
|
+
return isBindingDescriptor(value) || typeof value === "string" || isRecord3(value) && typeof value.source === "string" && typeof value.path === "string";
|
|
43054
43149
|
}
|
|
43055
43150
|
function normalizeBindingInput(value) {
|
|
43056
43151
|
if (isBindingDescriptor(value)) return value;
|
|
@@ -43066,7 +43161,7 @@ function normalizeValue(value) {
|
|
|
43066
43161
|
if (Array.isArray(value)) {
|
|
43067
43162
|
return value.map((item) => normalizeValue(item));
|
|
43068
43163
|
}
|
|
43069
|
-
if (!
|
|
43164
|
+
if (!isRecord3(value)) {
|
|
43070
43165
|
return value;
|
|
43071
43166
|
}
|
|
43072
43167
|
if (isDocWrapper(value)) {
|
|
@@ -43080,7 +43175,7 @@ function isDocWrapper(value) {
|
|
|
43080
43175
|
const keys = Object.keys(value);
|
|
43081
43176
|
if (keys.length !== 1) return false;
|
|
43082
43177
|
const doc = value.doc;
|
|
43083
|
-
return
|
|
43178
|
+
return isRecord3(doc) && typeof doc.type === "string" && doc.type === "doc";
|
|
43084
43179
|
}
|
|
43085
43180
|
|
|
43086
43181
|
// src/rendering/helpers/bindings.ts
|