@riverbankcms/sdk 0.77.1 → 0.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -0
- package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
- package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +154 -154
- package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
- package/dist/_dts/api/src/billing.d.ts +3 -26
- package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
- package/dist/_dts/api/src/content-editor.d.ts +1 -0
- package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +14 -2
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
- package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
- package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
- package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
- package/dist/_dts/api/src/navigation.d.ts +12 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
- package/dist/_dts/api/src/staffAccess.d.ts +79 -0
- package/dist/_dts/api/src/types.d.ts +3 -1
- package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +21 -21
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
- package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -29
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
- package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
- package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
- package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
- package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
- package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
- package/dist/_dts/content-editor/src/index.d.ts +5 -0
- package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/index.d.ts +1 -0
- package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
- package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
- package/dist/_dts/core/src/csv-cells.d.ts +10 -0
- package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
- package/dist/_dts/core/src/csv-escape.d.ts +1 -0
- package/dist/_dts/core/src/csv-filename.d.ts +18 -0
- package/dist/_dts/core/src/csv-render.d.ts +4 -0
- package/dist/_dts/core/src/csv-types.d.ts +116 -0
- package/dist/_dts/core/src/currency-format.d.ts +4 -0
- package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
- package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
- package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
- package/dist/_dts/core/src/duration.d.ts +14 -0
- package/dist/_dts/core/src/email-format.d.ts +10 -0
- package/dist/_dts/core/src/field-errors.d.ts +1 -0
- package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
- package/dist/_dts/core/src/index.d.ts +20 -0
- package/dist/_dts/core/src/number-input.d.ts +22 -0
- package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
- package/dist/_dts/core/src/slug.d.ts +39 -0
- package/dist/_dts/core/src/string.d.ts +19 -0
- package/dist/_dts/core/src/uuid.d.ts +6 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
- package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
- package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
- package/dist/_dts/media-core/src/filename.d.ts +1 -0
- package/dist/_dts/media-core/src/index.d.ts +10 -0
- package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
- package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
- package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
- package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +8 -0
- package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
- package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
- package/dist/_dts/sdk/src/client/error.d.ts +3 -0
- package/dist/_dts/sdk/src/client/index.d.ts +2 -2
- package/dist/_dts/sdk/src/client/types.d.ts +37 -19
- package/dist/_dts/sdk/src/index.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
- package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
- package/dist/_dts/sdk/src/next/index.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
- package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +12 -12
- package/dist/_dts/site-commands/src/index.d.ts +1 -0
- package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +3 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
- package/dist/_dts/theme-core/src/schema.d.ts +64 -18
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
- package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
- package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
- package/dist/{chunk-2SPENC5M.mjs → chunk-F7RTCZYN.mjs} +229 -50
- package/dist/{chunk-IENWFSLO.mjs → chunk-NIDXI46P.mjs} +1 -1
- package/dist/{chunk-KWJPDZH2.mjs → chunk-OECWLDHN.mjs} +2770 -620
- package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
- package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
- package/dist/{chunk-ZYEJLCTN.mjs → chunk-TXDES5P2.mjs} +2 -2
- package/dist/cli/index.mjs +1677 -440
- package/dist/client/{accordion-RZMQSYLR.mjs → accordion-EVDEOUPR.mjs} +2 -2
- package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-DIHBLC64.mjs} +27 -30
- package/dist/client/bookings.mjs +3707 -259
- package/dist/client/{carousel-LDX47ZIK.mjs → carousel-FEBQHIWI.mjs} +3 -4
- package/dist/client/{cart-RGXDS5F4.mjs → cart-7CKSXAE4.mjs} +8 -8
- package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WKYCANLV.mjs} +8 -8
- package/dist/client/{chunk-JNC7CGHX.mjs → chunk-2SAVKN2M.mjs} +2 -2
- package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-36WJCERQ.mjs} +1 -1
- package/dist/client/{chunk-R56FQ3RR.mjs → chunk-65F47D7Y.mjs} +280 -71
- package/dist/client/{chunk-L3DNHIJX.mjs → chunk-GUK2FPXQ.mjs} +23 -45
- package/dist/client/{chunk-PMAIXMAB.mjs → chunk-IVNCUVAV.mjs} +26 -21
- package/dist/client/{chunk-II7O4XN3.mjs → chunk-OFMSCGNY.mjs} +2 -2
- package/dist/client/chunk-PD6NBCEY.mjs +66 -0
- package/dist/client/{chunk-GMVTOKYG.mjs → chunk-RV6FX7UH.mjs} +510 -64
- package/dist/client/{chunk-E2TDNXCL.mjs → chunk-RZDWX7QW.mjs} +2 -1
- package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
- package/dist/client/{chunk-JEZECJ3W.mjs → chunk-VPPMNXCF.mjs} +129 -3
- package/dist/client/{chunk-UFSWADAO.mjs → chunk-YDSEG6GZ.mjs} +5 -66
- package/dist/client/client.mjs +7070 -4561
- package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-5QF2PHKM.mjs} +14 -11
- package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-4ZOSETDU.mjs} +9 -9
- package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-WQGU7JUX.mjs} +9 -9
- package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-AYWVUJ5Y.mjs} +9 -9
- package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-NT7C6UT5.mjs} +9 -9
- package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-OH24F4ZJ.mjs} +9 -9
- package/dist/client/{form-ETFZFATW.mjs → form-7L42SRBB.mjs} +6 -6
- package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-OZRZNZ52.mjs} +3 -3
- package/dist/client/hooks.mjs +1040 -278
- package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-ZBXRPQ7C.mjs} +2 -2
- package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-SNAGFF2I.mjs} +3 -3
- package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-I46BOFGV.mjs} +8 -8
- package/dist/client/{productList-A5RO5WIS.mjs → productList-BOYHTYI6.mjs} +8 -8
- package/dist/client/rendering/client.mjs +7090 -2645
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +6089 -3792
- package/dist/client/{shop-L4MZH4I2.mjs → shop-XTXPZTKR.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/editor-chrome.css +10 -0
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-6UT2S7KZ.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
- package/dist/server/components.mjs +2635 -1262
- package/dist/server/config-validation.mjs +1271 -509
- package/dist/server/config.mjs +1271 -509
- package/dist/server/data.mjs +1040 -278
- package/dist/server/index.mjs +488 -246
- package/dist/server/next.mjs +4087 -2147
- package/dist/server/page-converter.mjs +571 -115
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2636 -1263
- package/dist/server/rendering.mjs +2654 -1268
- package/dist/server/routing.mjs +1729 -489
- package/dist/server/server.mjs +1532 -530
- package/dist/server/theme-bridge.mjs +3151 -131
- package/dist/server/theme.mjs +10 -1
- package/dist/styles/index.css +488 -48
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
- package/dist/client/chunk-OJPZEZU2.mjs +0 -31
- package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type AssetsInUseStage = 'draft' | 'published';
|
|
2
|
+
export type AssetsInUseLocationLike = Readonly<{
|
|
3
|
+
kind: 'pageBlock';
|
|
4
|
+
pageDraftPath?: string | null;
|
|
5
|
+
pagePublishedPath?: string | null;
|
|
6
|
+
pageTitle?: string | null;
|
|
7
|
+
stage: AssetsInUseStage;
|
|
8
|
+
blockKind: string;
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
kind: 'contentEntry';
|
|
11
|
+
routeDraftPath?: string | null;
|
|
12
|
+
routePublishedPath?: string | null;
|
|
13
|
+
entryTitle: string;
|
|
14
|
+
stage: AssetsInUseStage;
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
kind: 'productFileDownload';
|
|
17
|
+
productTitle: string;
|
|
18
|
+
}>;
|
|
19
|
+
export type AssetsInUseItemLike = Readonly<{
|
|
20
|
+
usedCount: number;
|
|
21
|
+
}>;
|
|
22
|
+
export type AssetsInUseResponseLike<TItem extends AssetsInUseItemLike> = Readonly<{
|
|
23
|
+
items: readonly TItem[];
|
|
24
|
+
}>;
|
|
25
|
+
export type AssetsInUseSummary<TItem extends AssetsInUseItemLike> = Readonly<{
|
|
26
|
+
usedItems: readonly TItem[];
|
|
27
|
+
totalAssets: number;
|
|
28
|
+
totalLocations: number;
|
|
29
|
+
totalAssetLabel: 'item' | 'items';
|
|
30
|
+
totalLocationLabel: 'place' | 'places';
|
|
31
|
+
}>;
|
|
32
|
+
export declare function formatMediaUsageStage(stage: AssetsInUseStage): string;
|
|
33
|
+
export declare function mediaUsageLocationLabel(location: AssetsInUseLocationLike): string;
|
|
34
|
+
export declare function summarizeAssetsInUse<TItem extends AssetsInUseItemLike>(usage: AssetsInUseResponseLike<TItem> | null): AssetsInUseSummary<TItem>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type MediaUsageCheckItemWithCount = Readonly<{
|
|
2
|
+
usedCount: number;
|
|
3
|
+
}>;
|
|
4
|
+
export type MediaUsageCheckResponseWithCounts = Readonly<{
|
|
5
|
+
items: readonly MediaUsageCheckItemWithCount[];
|
|
6
|
+
}>;
|
|
7
|
+
export type BulkDeleteResultLike = Readonly<{
|
|
8
|
+
deleted: number;
|
|
9
|
+
failed: number;
|
|
10
|
+
}>;
|
|
11
|
+
export type BulkDeleteOptions = Readonly<{
|
|
12
|
+
deleteObjects?: boolean;
|
|
13
|
+
cascadeLabels?: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const BULK_DELETE_IN_PROGRESS_MESSAGE = "Delete already in progress";
|
|
16
|
+
export type BulkDeleteCompletionToast = Readonly<{
|
|
17
|
+
kind: 'success';
|
|
18
|
+
message: string;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: 'error';
|
|
21
|
+
message: string;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function hasMediaUsage(response: MediaUsageCheckResponseWithCounts): boolean;
|
|
24
|
+
export declare function planBulkDeleteCompletionToast(result: BulkDeleteResultLike): BulkDeleteCompletionToast;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export type UploadReviewTargetLike<TAsset> = Readonly<{
|
|
2
|
+
status: string;
|
|
3
|
+
asset?: TAsset | null;
|
|
4
|
+
}>;
|
|
5
|
+
export type CanonicalCropTarget<TAsset, TUpload> = Readonly<{
|
|
6
|
+
kind: 'upload';
|
|
7
|
+
upload: TUpload;
|
|
8
|
+
asset: TAsset;
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
kind: 'asset';
|
|
11
|
+
asset: TAsset;
|
|
12
|
+
}>;
|
|
13
|
+
type CanonicalCropDialogState<TAsset, TUpload> = Readonly<{
|
|
14
|
+
kind: 'closed';
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
kind: 'editing';
|
|
17
|
+
target: CanonicalCropTarget<TAsset, TUpload>;
|
|
18
|
+
}> | Readonly<{
|
|
19
|
+
kind: 'saving';
|
|
20
|
+
target: CanonicalCropTarget<TAsset, TUpload>;
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'error';
|
|
23
|
+
target: CanonicalCropTarget<TAsset, TUpload>;
|
|
24
|
+
message: string;
|
|
25
|
+
}>;
|
|
26
|
+
export type CanonicalCropReviewState<TAsset, TUpload> = Readonly<{
|
|
27
|
+
reviewingIds: ReadonlySet<string>;
|
|
28
|
+
dialog: CanonicalCropDialogState<TAsset, TUpload>;
|
|
29
|
+
}>;
|
|
30
|
+
export type CanonicalCropDialogView<TAsset, TUpload> = Readonly<{
|
|
31
|
+
kind: 'closed';
|
|
32
|
+
asset: null;
|
|
33
|
+
error: null;
|
|
34
|
+
saving: false;
|
|
35
|
+
target: null;
|
|
36
|
+
}> | Readonly<{
|
|
37
|
+
kind: 'open';
|
|
38
|
+
asset: TAsset;
|
|
39
|
+
error: string | null;
|
|
40
|
+
saving: boolean;
|
|
41
|
+
target: CanonicalCropTarget<TAsset, TUpload>;
|
|
42
|
+
}>;
|
|
43
|
+
export type CanonicalCropReviewAction<TAsset, TUpload> = Readonly<{
|
|
44
|
+
type: 'mark-reviewing';
|
|
45
|
+
uploadId: string;
|
|
46
|
+
reviewing: boolean;
|
|
47
|
+
}> | Readonly<{
|
|
48
|
+
type: 'open-crop';
|
|
49
|
+
target: CanonicalCropTarget<TAsset, TUpload>;
|
|
50
|
+
}> | Readonly<{
|
|
51
|
+
type: 'close-crop';
|
|
52
|
+
}> | Readonly<{
|
|
53
|
+
type: 'submit-crop';
|
|
54
|
+
}> | Readonly<{
|
|
55
|
+
type: 'crop-failed';
|
|
56
|
+
message: string;
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
type: 'crop-completed';
|
|
59
|
+
}>;
|
|
60
|
+
export declare function createInitialCanonicalCropReviewState<TAsset, TUpload>(): CanonicalCropReviewState<TAsset, TUpload>;
|
|
61
|
+
export declare function isReviewReady<TAsset, TUpload extends UploadReviewTargetLike<TAsset>>(upload: TUpload): upload is TUpload & {
|
|
62
|
+
asset: TAsset;
|
|
63
|
+
};
|
|
64
|
+
export declare function canonicalCropReviewReducer<TAsset, TUpload>(state: CanonicalCropReviewState<TAsset, TUpload>, action: CanonicalCropReviewAction<TAsset, TUpload>): CanonicalCropReviewState<TAsset, TUpload>;
|
|
65
|
+
export declare function getCanonicalCropDialogView<TAsset, TUpload>(state: CanonicalCropReviewState<TAsset, TUpload>): CanonicalCropDialogView<TAsset, TUpload>;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type MediaClassifyJobStatus = 'pending' | 'processing' | 'completed' | 'failed';
|
|
2
|
+
export type ClassifySummary = Readonly<{
|
|
3
|
+
processed: number;
|
|
4
|
+
skipped: number;
|
|
5
|
+
failures: number;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const EMPTY_CLASSIFY_SUMMARY: ClassifySummary;
|
|
8
|
+
export type ClassifyJobState = Readonly<{
|
|
9
|
+
id: string;
|
|
10
|
+
status: MediaClassifyJobStatus;
|
|
11
|
+
summary: ClassifySummary;
|
|
12
|
+
completed: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
export type ClassifyRunJobLike = Readonly<{
|
|
15
|
+
id: string;
|
|
16
|
+
status: MediaClassifyJobStatus;
|
|
17
|
+
}>;
|
|
18
|
+
export type ClassifyRunPayloadLike = Readonly<{
|
|
19
|
+
job?: ClassifyRunJobLike | null;
|
|
20
|
+
summary?: ClassifySummary | null;
|
|
21
|
+
completed?: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
export type ClassifyWorkflowResult = Readonly<{
|
|
24
|
+
kind: 'nothingToClassify';
|
|
25
|
+
reason: string;
|
|
26
|
+
}> | Readonly<{
|
|
27
|
+
kind: 'completed';
|
|
28
|
+
summary: ClassifySummary;
|
|
29
|
+
job: ClassifyJobState;
|
|
30
|
+
}>;
|
|
31
|
+
export type ClassifyCompletionToast = Readonly<{
|
|
32
|
+
kind: 'none';
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
kind: 'success';
|
|
35
|
+
message: string;
|
|
36
|
+
}> | Readonly<{
|
|
37
|
+
kind: 'warning';
|
|
38
|
+
message: string;
|
|
39
|
+
}> | Readonly<{
|
|
40
|
+
kind: 'info';
|
|
41
|
+
message: string;
|
|
42
|
+
}>;
|
|
43
|
+
export declare function normalizeClassifySummary(summary: ClassifySummary | null | undefined): ClassifySummary;
|
|
44
|
+
export declare function createCompletedClassifyResult(input: {
|
|
45
|
+
fallbackJobId: string;
|
|
46
|
+
runPayload: ClassifyRunPayloadLike;
|
|
47
|
+
}): ClassifyWorkflowResult;
|
|
48
|
+
export declare function planClassifyCompletionToast(result: ClassifyWorkflowResult): ClassifyCompletionToast;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function filenameExtension(filename: string): string | null;
|
|
@@ -14,7 +14,16 @@ export * from './fileDownloadResolution';
|
|
|
14
14
|
export * from './fileAssetDeletion';
|
|
15
15
|
export * from './fileAssetCompatibility';
|
|
16
16
|
export * from './fileMimeDetection';
|
|
17
|
+
export * from './filename';
|
|
18
|
+
export * from './uploadVerificationContract';
|
|
17
19
|
export * from './videoPrep';
|
|
20
|
+
export * from './videoAssetRepair';
|
|
21
|
+
export * from './canonicalCropReview';
|
|
22
|
+
export * from './mediaAssetUsageStatus';
|
|
23
|
+
export * from './assetsInUseSummary';
|
|
24
|
+
export * from './bulkDeletePlanning';
|
|
25
|
+
export * from './classifyAllPlanning';
|
|
26
|
+
export * from './mediaSettingsState';
|
|
18
27
|
export * from './videoSlotPolicy';
|
|
19
28
|
export * from './identifiers';
|
|
20
29
|
export { getImageUrl, getDirectImageUrl, getDirectImageUrlForRelativePath, getDirectImageUrlForSiteScopedPath, getDirectImageUrlForBucketPath, getDirectImageUrlForStoragePath, getDirectImageUrlForMediaAsset, isRelativeDirectImageStoragePath, isSiteScopedDirectImageStoragePath, type DirectImageMediaAsset, type DirectImageUrlOptions, type DirectImageUrlPathTarget, type ImageProxyFit, type ImageProxyParams, } from './url';
|
|
@@ -32,3 +41,4 @@ export * from './mediaWriteNormalizer';
|
|
|
32
41
|
export { walkAndCollectImageAttrs, pickFilenameFromUrl, type RichTextImageAttrsRef, } from './richTextImageCollector';
|
|
33
42
|
export * from './richTextImageWriteNormalizer';
|
|
34
43
|
export * from './mediaUsageProjection';
|
|
44
|
+
export * from './portableMediaReferences';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type UsageCheckedAssetLike = Readonly<{
|
|
2
|
+
id: string;
|
|
3
|
+
mimeType: string;
|
|
4
|
+
}>;
|
|
5
|
+
export type MediaUsageCheckItemLike = Readonly<{
|
|
6
|
+
assetId: string;
|
|
7
|
+
usedCount: number;
|
|
8
|
+
}>;
|
|
9
|
+
export type MediaUsageCheckResponseLike = Readonly<{
|
|
10
|
+
items: readonly MediaUsageCheckItemLike[];
|
|
11
|
+
}>;
|
|
12
|
+
export type StoredAssetUsageStatus = Readonly<{
|
|
13
|
+
kind: 'unknown';
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'checking';
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
kind: 'eligible';
|
|
18
|
+
usedCount: 0;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: 'ineligible';
|
|
21
|
+
usedCount: number;
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: 'notApplicable';
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: 'failed';
|
|
26
|
+
message: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type StoredAssetUsageStatusByAssetId = Readonly<Record<string, StoredAssetUsageStatus>>;
|
|
29
|
+
export declare function getRasterAssetIds(assets: readonly UsageCheckedAssetLike[]): readonly string[];
|
|
30
|
+
export declare function getMissingAssetUsageIds(input: {
|
|
31
|
+
rasterAssetIds: readonly string[];
|
|
32
|
+
storedStatusByAssetId: StoredAssetUsageStatusByAssetId;
|
|
33
|
+
inFlightAssetIds: ReadonlySet<string>;
|
|
34
|
+
}): readonly string[];
|
|
35
|
+
export declare function markAssetUsageChecking(statusByAssetId: StoredAssetUsageStatusByAssetId, assetIds: readonly string[]): StoredAssetUsageStatusByAssetId;
|
|
36
|
+
export declare function applyAssetUsageResponse(input: {
|
|
37
|
+
statusByAssetId: StoredAssetUsageStatusByAssetId;
|
|
38
|
+
requestedAssetIds: readonly string[];
|
|
39
|
+
response: MediaUsageCheckResponseLike;
|
|
40
|
+
}): StoredAssetUsageStatusByAssetId;
|
|
41
|
+
export declare function applyAssetUsageFailure(input: {
|
|
42
|
+
statusByAssetId: StoredAssetUsageStatusByAssetId;
|
|
43
|
+
requestedAssetIds: readonly string[];
|
|
44
|
+
message: string;
|
|
45
|
+
}): StoredAssetUsageStatusByAssetId;
|
|
46
|
+
export declare function removeInFlightAssetIds(inFlightAssetIds: ReadonlySet<string>, completedAssetIds: readonly string[]): ReadonlySet<string>;
|
|
47
|
+
export declare function getStoredAssetUsageStatusForAsset(asset: UsageCheckedAssetLike, statusByAssetId: StoredAssetUsageStatusByAssetId): StoredAssetUsageStatus;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
type PortableMediaReferenceSource = 'media-field' | 'rich-text-image';
|
|
2
|
+
export type PortableMediaReference = Readonly<{
|
|
3
|
+
kind: 'assetId';
|
|
4
|
+
assetId: string;
|
|
5
|
+
location: string;
|
|
6
|
+
source: PortableMediaReferenceSource;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'identifier';
|
|
9
|
+
identifier: string;
|
|
10
|
+
location: string;
|
|
11
|
+
source: PortableMediaReferenceSource;
|
|
12
|
+
}>;
|
|
13
|
+
export type PortableMediaReferenceSummary = Readonly<{
|
|
14
|
+
references: PortableMediaReference[];
|
|
15
|
+
assetIds: string[];
|
|
16
|
+
identifiers: string[];
|
|
17
|
+
}>;
|
|
18
|
+
type PortableMediaLookupAsset = Readonly<{
|
|
19
|
+
id: string;
|
|
20
|
+
identifier?: string | null;
|
|
21
|
+
}>;
|
|
22
|
+
type PortableMediaLookup<TAsset extends PortableMediaLookupAsset> = Readonly<{
|
|
23
|
+
byId: Map<string, TAsset>;
|
|
24
|
+
byIdentifier: Map<string, TAsset>;
|
|
25
|
+
}>;
|
|
26
|
+
export type PortableMediaResolution<TAsset extends PortableMediaLookupAsset> = Readonly<{
|
|
27
|
+
kind: 'resolved';
|
|
28
|
+
reference: PortableMediaReference;
|
|
29
|
+
asset: TAsset;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'missing';
|
|
32
|
+
reference: PortableMediaReference;
|
|
33
|
+
}>;
|
|
34
|
+
export declare function summarizePortableMediaReferences(references: readonly PortableMediaReference[]): PortableMediaReferenceSummary;
|
|
35
|
+
export declare function collectPortableMediaReferencesFromContent(content: unknown): PortableMediaReferenceSummary;
|
|
36
|
+
export declare function buildPortableMediaLookup<TAsset extends PortableMediaLookupAsset>(assets: readonly TAsset[]): PortableMediaLookup<TAsset>;
|
|
37
|
+
export declare function resolvePortableMediaReferences<TAsset extends PortableMediaLookupAsset>(references: readonly PortableMediaReference[], lookup: PortableMediaLookup<TAsset>): PortableMediaResolution<TAsset>[];
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type FileKind, type UploadIntent } from './fileDomain';
|
|
2
|
+
/**
|
|
3
|
+
* Shared upload boundary contract derived from the caller-provided filename and
|
|
4
|
+
* declared MIME type. Accept surfaces, session creation, and finalization
|
|
5
|
+
* should all consult this module so file-kind acceptance and verification
|
|
6
|
+
* cannot drift apart.
|
|
7
|
+
*/
|
|
8
|
+
export type UploadCandidateDescriptor = Readonly<{
|
|
9
|
+
name: string;
|
|
10
|
+
type?: string | null;
|
|
11
|
+
}>;
|
|
12
|
+
export type UploadVerificationStrategy = Readonly<{
|
|
13
|
+
tag: 'magic-only';
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
tag: 'text-fallback';
|
|
16
|
+
detectedMimeType: 'text/plain' | 'text/csv';
|
|
17
|
+
}> | Readonly<{
|
|
18
|
+
tag: 'rtf-fallback';
|
|
19
|
+
detectedMimeType: 'application/rtf';
|
|
20
|
+
}>;
|
|
21
|
+
export type AcceptedUploadKindContract = Readonly<{
|
|
22
|
+
kind: FileKind;
|
|
23
|
+
verification: UploadVerificationStrategy;
|
|
24
|
+
}>;
|
|
25
|
+
export declare const PRODUCT_FILE_EXTENSION_TAGS: readonly ["pdf", "docx", "txt", "rtf", "csv", "zip", "mp3", "m4a", "wav", "ogg", "flac", "webm", "mp4", "mov"];
|
|
26
|
+
export declare function resolveAcceptedUploadKindContract(candidate: UploadCandidateDescriptor): AcceptedUploadKindContract | undefined;
|
|
27
|
+
export declare function isUploadKindCompatibleWithIntent(intent: UploadIntent, kind: FileKind): boolean;
|
|
28
|
+
export declare function resolveVerifiedMimeTypeFromContract(buffer: Uint8Array | null, contract: AcceptedUploadKindContract | undefined): string | undefined;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { MediaAssetId } from '../../core/src/index';
|
|
2
|
+
export type VideoRepairAssetLike = Readonly<{
|
|
3
|
+
id: MediaAssetId;
|
|
4
|
+
filename: string;
|
|
5
|
+
siteId: string;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
thumbnailAssetId?: string | null;
|
|
8
|
+
durationSeconds?: number | null;
|
|
9
|
+
width?: number | null;
|
|
10
|
+
height?: number | null;
|
|
11
|
+
}>;
|
|
12
|
+
export type VideoAssetRepairPlan = Readonly<{
|
|
13
|
+
tag: 'none';
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
tag: 'repair-metadata';
|
|
16
|
+
assetId: MediaAssetId;
|
|
17
|
+
filename: string;
|
|
18
|
+
siteId: string;
|
|
19
|
+
processingLabel: 'Reading video metadata';
|
|
20
|
+
processingText: 'Reading video metadata...';
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
tag: 'repair-thumbnail-and-metadata';
|
|
23
|
+
assetId: MediaAssetId;
|
|
24
|
+
filename: string;
|
|
25
|
+
siteId: string;
|
|
26
|
+
processingLabel: 'Generating thumbnail';
|
|
27
|
+
processingText: 'Generating thumbnail...';
|
|
28
|
+
}>;
|
|
29
|
+
export type RunnableVideoAssetRepairPlan = Exclude<VideoAssetRepairPlan, {
|
|
30
|
+
tag: 'none';
|
|
31
|
+
}>;
|
|
32
|
+
export type VideoAssetRepairQueueState = Readonly<{
|
|
33
|
+
isProcessing: boolean;
|
|
34
|
+
isCompleted: boolean;
|
|
35
|
+
isFailed: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
export declare function planVideoAssetRepair(asset: VideoRepairAssetLike): VideoAssetRepairPlan;
|
|
38
|
+
export declare function shouldQueueVideoAssetRepair(plan: VideoAssetRepairPlan, queueState: VideoAssetRepairQueueState): plan is RunnableVideoAssetRepairPlan;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function logMediaEditorDebug(event: string, payload: Record<string, unknown>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type PathSegment = string | number;
|
|
2
|
+
export declare function parsePath(path: string | Array<PathSegment>): Array<PathSegment>;
|
|
3
|
+
export declare function segmentsToPath(segments: Array<PathSegment>): string | undefined;
|
|
4
|
+
export declare function getAtPath<T = unknown>(source: unknown, path: string | Array<PathSegment>): T | undefined;
|
|
5
|
+
export declare function setAtPath(target: Record<string, unknown> | Array<unknown>, path: string | Array<PathSegment>, value: unknown): void;
|
|
6
|
+
export declare function toAbsolutePath(base: string | undefined | null, path: string): string;
|
|
7
|
+
export * from './redirectPaths';
|
|
8
|
+
export * from './safeAppPath';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type RedirectPathParseError = {
|
|
2
|
+
tag: 'MISSING';
|
|
3
|
+
} | {
|
|
4
|
+
tag: 'EMPTY';
|
|
5
|
+
} | {
|
|
6
|
+
tag: 'CONTROL_CHAR';
|
|
7
|
+
} | {
|
|
8
|
+
tag: 'BACKSLASH';
|
|
9
|
+
} | {
|
|
10
|
+
tag: 'EXTERNAL_URL';
|
|
11
|
+
} | {
|
|
12
|
+
tag: 'INVALID_PATH';
|
|
13
|
+
} | {
|
|
14
|
+
tag: 'ENCODED_SEPARATOR';
|
|
15
|
+
};
|
|
16
|
+
export type RedirectPathParseResult = {
|
|
17
|
+
ok: true;
|
|
18
|
+
value: string;
|
|
19
|
+
} | {
|
|
20
|
+
ok: false;
|
|
21
|
+
error: RedirectPathParseError;
|
|
22
|
+
};
|
|
23
|
+
export declare function parseInternalRedirectPath(value: unknown): RedirectPathParseResult;
|
|
24
|
+
export declare function sanitizeInternalRedirectPath(value: unknown): string | null;
|
|
25
|
+
export declare function parseSameOriginRedirectPath(value: unknown, baseUrl: string | URL): RedirectPathParseResult;
|
|
26
|
+
export declare function sanitizeSameOriginRedirectPath(value: unknown, baseUrl: string | URL): string | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type RedirectPathParseError } from './redirectPaths';
|
|
2
|
+
declare const __brand: unique symbol;
|
|
3
|
+
type Brand<T, B extends string> = T & {
|
|
4
|
+
readonly [__brand]: B;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* A redirect path that has been validated as a safe, same-origin relative path.
|
|
8
|
+
*
|
|
9
|
+
* Parse once at the boundary, then carry the branded value inward instead of
|
|
10
|
+
* re-validating ad hoc string inputs in every auth flow.
|
|
11
|
+
*/
|
|
12
|
+
export type SafeAppPath = Brand<string, 'SafeAppPath'>;
|
|
13
|
+
export type SafeAppPathParseError = RedirectPathParseError;
|
|
14
|
+
export type SafeAppPathParseResult = {
|
|
15
|
+
ok: true;
|
|
16
|
+
value: SafeAppPath;
|
|
17
|
+
} | {
|
|
18
|
+
ok: false;
|
|
19
|
+
error: SafeAppPathParseError;
|
|
20
|
+
};
|
|
21
|
+
export declare function parseSafeAppPath(value: unknown): SafeAppPathParseResult;
|
|
22
|
+
export declare function sanitizeSafeAppPath(value: unknown): SafeAppPath | null;
|
|
23
|
+
export declare function assertSafeAppPath(value: string): SafeAppPath;
|
|
24
|
+
export declare function safeAppPathOrFallback(value: unknown, fallback: SafeAppPath): SafeAppPath;
|
|
25
|
+
export declare function buildSafeRedirectUrl(path: SafeAppPath, baseUrl: string | URL): URL;
|
|
26
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
|
|
2
|
-
export declare function SiteChromeCustomizeButton({ surface, }: {
|
|
2
|
+
export declare function SiteChromeCustomizeButton({ surface, containerClassName, }: {
|
|
3
3
|
surface: SiteChromeEditableSurfaceKind;
|
|
4
|
+
containerClassName?: string;
|
|
4
5
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,6 +13,9 @@ type SiteChromeCustomizeSurfaceState = Readonly<{
|
|
|
13
13
|
kind: 'available';
|
|
14
14
|
surface: 'header';
|
|
15
15
|
label: string;
|
|
16
|
+
currentLayoutId: HeaderLayoutId;
|
|
17
|
+
currentLayoutLabel: string;
|
|
18
|
+
layoutOptions: readonly SiteChromeLookOption<HeaderLayoutId>[];
|
|
16
19
|
currentId: HeaderStyleId;
|
|
17
20
|
currentLabel: string;
|
|
18
21
|
options: readonly SiteChromeLookOption<HeaderStyleId>[];
|
|
@@ -35,6 +38,7 @@ type SiteChromeCustomizeSurfaceState = Readonly<{
|
|
|
35
38
|
type SiteChromeCustomizeContextValue = Readonly<{
|
|
36
39
|
getSurfaceState: (surface: SiteChromeEditableSurfaceKind) => SiteChromeCustomizeSurfaceState;
|
|
37
40
|
cycleSurfaceLook: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
|
|
41
|
+
cycleSurfaceLayout: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
|
|
38
42
|
}>;
|
|
39
43
|
export type SiteChromeCustomizeProviderProps = Readonly<{
|
|
40
44
|
children: ReactNode;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
import type { ViewportMode, ViewportWidth } from "./PreviewViewportControls";
|
|
3
|
+
type ZoomableStyle = CSSProperties & Readonly<{
|
|
4
|
+
zoom?: number;
|
|
5
|
+
}>;
|
|
6
|
+
export type PreviewDocumentFramePlan = Readonly<{
|
|
7
|
+
kind: "squeeze";
|
|
8
|
+
frameClassName: string;
|
|
9
|
+
frameDataProps: PreviewDocumentFrameDataProps;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: "fixed";
|
|
12
|
+
targetWidthPx: number;
|
|
13
|
+
wrapperStyle: CSSProperties;
|
|
14
|
+
contentStyle: ZoomableStyle;
|
|
15
|
+
siteDocumentStyle: CSSProperties;
|
|
16
|
+
frameClassName: string;
|
|
17
|
+
frameDataProps: PreviewDocumentFrameDataProps;
|
|
18
|
+
}>;
|
|
19
|
+
export type PreviewDocumentFrameDataProps = Readonly<{
|
|
20
|
+
"data-builder-preview-document-frame": "squeeze" | "fixed";
|
|
21
|
+
"data-builder-preview-document-scale": "none" | "scaled";
|
|
22
|
+
"data-builder-preview-fixed-header-behavior"?: "fixed-as-sticky";
|
|
23
|
+
}>;
|
|
24
|
+
export type PreviewDocumentFrameInput = Readonly<{
|
|
25
|
+
viewportMode: ViewportMode;
|
|
26
|
+
viewportWidth: ViewportWidth;
|
|
27
|
+
scale: number;
|
|
28
|
+
contentHeight: number;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function planPreviewDocumentFrame(input: PreviewDocumentFrameInput): PreviewDocumentFramePlan;
|
|
31
|
+
export {};
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Provides typed access to error details including code, message, request ID, and field errors.
|
|
6
6
|
*/
|
|
7
7
|
import type { ApiError, ApiErrorCode, FieldError } from '../public-api/contracts';
|
|
8
|
+
import type { ResilienceStatus } from './types';
|
|
8
9
|
/**
|
|
9
10
|
* Error options for creating RiverbankApiError
|
|
10
11
|
*/
|
|
@@ -147,3 +148,5 @@ export declare class RiverbankApiError extends Error {
|
|
|
147
148
|
*/
|
|
148
149
|
toDetailedString(): string;
|
|
149
150
|
}
|
|
151
|
+
export declare function attachResilienceStatusToError(error: unknown, resilienceStatus: ResilienceStatus): unknown;
|
|
152
|
+
export declare function getResilienceStatusFromError(error: unknown): ResilienceStatus | undefined;
|
|
@@ -13,6 +13,6 @@ import type { RiverbankClient, RiverbankClientConfig } from './types';
|
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
15
|
export declare function createRiverbankClient(config: RiverbankClientConfig): RiverbankClient;
|
|
16
|
-
export type {
|
|
17
|
-
export { RiverbankApiError } from './error';
|
|
16
|
+
export type { ApiKeyType, GetPageParams, GetSiteParams, ResilienceConfig, ResilienceStatus, ResilientData, RiverbankClient, RiverbankClientConfig, SdkAuthConfig, } from './types';
|
|
17
|
+
export { getResilienceStatusFromError, RiverbankApiError } from './error';
|
|
18
18
|
export { CircuitOpenError } from './resilience';
|
|
@@ -30,6 +30,24 @@ export interface SdkMethodOptions {
|
|
|
30
30
|
/** AbortSignal for cancelling the request */
|
|
31
31
|
signal?: AbortSignal;
|
|
32
32
|
}
|
|
33
|
+
export type GetSiteParams = {
|
|
34
|
+
slug?: string;
|
|
35
|
+
domain?: string;
|
|
36
|
+
id?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Bypass SDK in-memory cache and Next.js fetch caching (uses `cache: 'no-store'`).
|
|
39
|
+
*
|
|
40
|
+
* Useful right after `riverbankcms push-config` in development to avoid waiting
|
|
41
|
+
* for cache revalidation.
|
|
42
|
+
*/
|
|
43
|
+
force?: boolean;
|
|
44
|
+
currentPath?: string;
|
|
45
|
+
} & SdkMethodOptions;
|
|
46
|
+
export type GetPageParams = {
|
|
47
|
+
siteId: string;
|
|
48
|
+
path: string;
|
|
49
|
+
preview?: boolean;
|
|
50
|
+
} & SdkMethodOptions;
|
|
33
51
|
/**
|
|
34
52
|
* Base parameters for getEntries - shared across all overloads
|
|
35
53
|
*/
|
|
@@ -69,6 +87,7 @@ export interface ResilienceStatus {
|
|
|
69
87
|
error?: {
|
|
70
88
|
code?: string;
|
|
71
89
|
message: string;
|
|
90
|
+
status?: number;
|
|
72
91
|
};
|
|
73
92
|
/** Seconds since cache TTL expired (when source='stale') */
|
|
74
93
|
staleAgeSec?: number;
|
|
@@ -81,6 +100,13 @@ export interface ResilienceStatus {
|
|
|
81
100
|
/** Total request duration including retries (ms) */
|
|
82
101
|
durationMs?: number;
|
|
83
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Data returned with the resilience status for the exact request that produced it.
|
|
105
|
+
*/
|
|
106
|
+
export type ResilientData<T> = Readonly<{
|
|
107
|
+
data: T;
|
|
108
|
+
resilience: ResilienceStatus;
|
|
109
|
+
}>;
|
|
84
110
|
/**
|
|
85
111
|
* Circuit breaker state information
|
|
86
112
|
*/
|
|
@@ -201,7 +227,7 @@ export type SdkAuthConfig = {
|
|
|
201
227
|
token: string;
|
|
202
228
|
};
|
|
203
229
|
export declare const SDK_CORRELATION_HEADER_NAMES: readonly ["x-request-id", "x-correlation-id", "x-riverbank-monitor-run-id"];
|
|
204
|
-
export type SdkCorrelationHeaderName = typeof SDK_CORRELATION_HEADER_NAMES[number];
|
|
230
|
+
export type SdkCorrelationHeaderName = (typeof SDK_CORRELATION_HEADER_NAMES)[number];
|
|
205
231
|
export type SdkCorrelationHeaders = Readonly<Partial<Record<SdkCorrelationHeaderName, string>>>;
|
|
206
232
|
/**
|
|
207
233
|
* Configuration for creating a Riverbank CMS client
|
|
@@ -276,29 +302,21 @@ export interface RiverbankClient {
|
|
|
276
302
|
/**
|
|
277
303
|
* Fetch site data by slug, domain, or ID
|
|
278
304
|
*/
|
|
279
|
-
getSite(params:
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
* Bypass SDK in-memory cache and Next.js fetch caching (uses `cache: 'no-store'`).
|
|
285
|
-
*
|
|
286
|
-
* Useful right after `riverbankcms push-config` in development to avoid waiting
|
|
287
|
-
* for cache revalidation.
|
|
288
|
-
*/
|
|
289
|
-
force?: boolean;
|
|
290
|
-
currentPath?: string;
|
|
291
|
-
} & SdkMethodOptions): Promise<SiteResponse>;
|
|
305
|
+
getSite(params: GetSiteParams): Promise<SiteResponse>;
|
|
306
|
+
/**
|
|
307
|
+
* Fetch site data and return the resilience status for this exact request.
|
|
308
|
+
*/
|
|
309
|
+
getSiteWithResilience(params: GetSiteParams): Promise<ResilientData<SiteResponse>>;
|
|
292
310
|
/**
|
|
293
311
|
* Fetch a specific page by path
|
|
294
312
|
*
|
|
295
313
|
* @param params.preview - If true, returns draft content instead of published content (requires API key with site access)
|
|
296
314
|
*/
|
|
297
|
-
getPage(params:
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
315
|
+
getPage(params: GetPageParams): Promise<PageResponse>;
|
|
316
|
+
/**
|
|
317
|
+
* Fetch page content and return the resilience status for this exact request.
|
|
318
|
+
*/
|
|
319
|
+
getPageWithResilience(params: GetPageParams): Promise<ResilientData<PageResponse>>;
|
|
302
320
|
/**
|
|
303
321
|
* Fetch published content entries with optional pagination, sorting, and preview mode
|
|
304
322
|
*
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @packageDocumentation
|
|
19
19
|
*/
|
|
20
|
-
export { createRiverbankClient, RiverbankApiError } from './client/index';
|
|
20
|
+
export { createRiverbankClient, getResilienceStatusFromError, RiverbankApiError, } from './client/index';
|
|
21
21
|
export { SDK_CORRELATION_HEADER_NAMES } from './client/types';
|
|
22
|
-
export type { RiverbankClient, RiverbankClientConfig, SdkCorrelationHeaderName, SdkCorrelationHeaders, SdkAuthConfig, SiteResponse, PageResponse, EntriesResponse, EntriesResponseWithMeta, PaginationMeta, EntryResponse, ResilienceConfig, ResilienceStatus, ResilienceSource, CircuitState, RetryConfig, CircuitBreakerConfig, } from './client/types';
|
|
22
|
+
export type { RiverbankClient, RiverbankClientConfig, SdkCorrelationHeaderName, SdkCorrelationHeaders, SdkAuthConfig, SiteResponse, PageResponse, EntriesResponse, EntriesResponseWithMeta, GetPageParams, GetSiteParams, PaginationMeta, EntryResponse, ResilienceConfig, ResilienceStatus, ResilientData, ResilienceSource, CircuitState, RetryConfig, CircuitBreakerConfig, } from './client/types';
|
|
23
23
|
export { prebuildCache } from './prebuild/index';
|
|
24
24
|
export type { PrebuildOptions, PrebuildResult, PrebuildProgress, PrebuildManifest, PrebuildContentType, } from './prebuild/types';
|
|
25
25
|
export { PrebuildLoader, createPrebuildLoader, canUsePrebuild, } from './prebuild/loader';
|