@riverbankcms/sdk 0.2.0 → 0.3.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/cli/index.js +4840 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/client/bookings.d.mts +82 -2
- package/dist/client/bookings.d.ts +82 -2
- package/dist/client/bookings.js +1623 -3
- package/dist/client/bookings.js.map +1 -1
- package/dist/client/bookings.mjs +1610 -5
- package/dist/client/bookings.mjs.map +1 -1
- package/dist/client/client.d.mts +8 -5
- package/dist/client/client.d.ts +8 -5
- package/dist/client/client.js +16873 -322
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +16855 -307
- package/dist/client/client.mjs.map +1 -1
- package/dist/client/hooks.d.mts +10 -7
- package/dist/client/hooks.d.ts +10 -7
- package/dist/client/hooks.js +5074 -4
- package/dist/client/hooks.js.map +1 -1
- package/dist/client/hooks.mjs +5074 -4
- package/dist/client/hooks.mjs.map +1 -1
- package/dist/client/rendering/client.d.mts +7 -1
- package/dist/client/rendering/client.d.ts +7 -1
- package/dist/client/rendering/client.js +17388 -2
- package/dist/client/rendering/client.js.map +1 -1
- package/dist/client/rendering/client.mjs +17382 -2
- package/dist/client/rendering/client.mjs.map +1 -1
- package/dist/client/resolver-BhueZVxZ.d.mts +61 -0
- package/dist/client/resolver-BhueZVxZ.d.ts +61 -0
- package/dist/client/usePage-BBcFCxOU.d.ts +6297 -0
- package/dist/client/usePage-BydHcMYB.d.mts +6297 -0
- package/dist/client/usePage-CrKw1H6Y.d.ts +6338 -0
- package/dist/client/usePage-DMI8ImsU.d.mts +6338 -0
- package/dist/server/Layout-BM_KmCxO.d.ts +44 -0
- package/dist/server/Layout-CsAQ-0Fv.d.mts +44 -0
- package/dist/server/{chunk-JB4LIEFS.js → chunk-5R4NMVXA.js} +15 -8
- package/dist/server/chunk-5R4NMVXA.js.map +1 -0
- package/dist/server/{chunk-ADREPXFU.js → chunk-62ZJI564.js} +3 -3
- package/dist/server/{chunk-ADREPXFU.js.map → chunk-62ZJI564.js.map} +1 -1
- package/dist/server/chunk-7DS4Q3GA.mjs +333 -0
- package/dist/server/chunk-7DS4Q3GA.mjs.map +1 -0
- package/dist/server/chunk-BJTO5JO5.mjs +11 -0
- package/dist/server/{chunk-4Z5FBFRL.mjs → chunk-BPKYRPCQ.mjs} +7 -3
- package/dist/server/{chunk-4Z5FBFRL.mjs.map → chunk-BPKYRPCQ.mjs.map} +1 -1
- package/dist/server/chunk-DGUM43GV.js +11 -0
- package/dist/server/chunk-DGUM43GV.js.map +1 -0
- package/dist/server/chunk-EGTDJ4PL.js +5461 -0
- package/dist/server/chunk-EGTDJ4PL.js.map +1 -0
- package/dist/server/chunk-FK64TZBT.mjs +831 -0
- package/dist/server/chunk-FK64TZBT.mjs.map +1 -0
- package/dist/server/chunk-HOY77YBF.js +333 -0
- package/dist/server/chunk-HOY77YBF.js.map +1 -0
- package/dist/server/chunk-INWKF3IC.js +831 -0
- package/dist/server/chunk-INWKF3IC.js.map +1 -0
- package/dist/server/{chunk-2RW5HAQQ.mjs → chunk-JTAERCX2.mjs} +2 -2
- package/dist/server/chunk-O5DC7MYW.mjs +9606 -0
- package/dist/server/chunk-O5DC7MYW.mjs.map +1 -0
- package/dist/server/{chunk-PEAXKTDU.mjs → chunk-OP2GHK27.mjs} +2 -2
- package/dist/server/{chunk-WKG57P2H.mjs → chunk-PN3CHDVX.mjs} +10 -3
- package/dist/server/{chunk-WKG57P2H.mjs.map → chunk-PN3CHDVX.mjs.map} +1 -1
- package/dist/server/chunk-QFFQTOY3.mjs +2128 -0
- package/dist/server/chunk-QFFQTOY3.mjs.map +1 -0
- package/dist/server/chunk-SF63XAX7.js +9606 -0
- package/dist/server/chunk-SF63XAX7.js.map +1 -0
- package/dist/server/{chunk-F472SMKX.js → chunk-TO7FD6TQ.js} +4 -4
- package/dist/server/{chunk-F472SMKX.js.map → chunk-TO7FD6TQ.js.map} +1 -1
- package/dist/server/chunk-UFVCBGBY.js +2128 -0
- package/dist/server/chunk-UFVCBGBY.js.map +1 -0
- package/dist/server/chunk-USQF2XTU.mjs +5461 -0
- package/dist/server/chunk-USQF2XTU.mjs.map +1 -0
- package/dist/server/{chunk-SW7LE4M3.js → chunk-XLVL5WPH.js} +12 -8
- package/dist/server/chunk-XLVL5WPH.js.map +1 -0
- package/dist/server/components-CI3JiOYA.d.mts +305 -0
- package/dist/server/components-DJBLu_yc.d.ts +305 -0
- package/dist/server/components.d.mts +14 -49
- package/dist/server/components.d.ts +14 -49
- package/dist/server/components.js +7 -4
- package/dist/server/components.js.map +1 -1
- package/dist/server/components.mjs +9 -6
- package/dist/server/components.mjs.map +1 -1
- package/dist/server/config-validation.d.mts +2 -2
- package/dist/server/config-validation.d.ts +2 -2
- package/dist/server/config-validation.js +6 -3
- package/dist/server/config-validation.js.map +1 -1
- package/dist/server/config-validation.mjs +5 -2
- package/dist/server/config.d.mts +3 -3
- package/dist/server/config.d.ts +3 -3
- package/dist/server/config.js +6 -3
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs +5 -2
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/data.d.mts +10 -8
- package/dist/server/data.d.ts +10 -8
- package/dist/server/data.js +4 -2
- package/dist/server/data.js.map +1 -1
- package/dist/server/data.mjs +3 -1
- package/dist/server/{index-B0yI_V6Z.d.mts → index-DoX3ELQn.d.mts} +1 -1
- package/dist/server/{index-C6M0Wfjq.d.ts → index-Dus2gkY6.d.ts} +1 -1
- package/dist/server/index.d.mts +1568 -5
- package/dist/server/index.d.ts +1568 -5
- package/dist/server/index.js +4 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +4 -4
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/{loadContent-CJcbYF3J.d.ts → loadContent-CdXDGsJM.d.ts} +5 -4
- package/dist/server/{loadContent-zhlL4YSE.d.mts → loadContent-v2n6pOlO.d.mts} +5 -4
- package/dist/server/loadPage-3ECPF426.js +11 -0
- package/dist/server/loadPage-3ECPF426.js.map +1 -0
- package/dist/server/loadPage-LW273NYO.mjs +11 -0
- package/dist/server/loadPage-LW273NYO.mjs.map +1 -0
- package/dist/server/{loadPage-CCf15nt8.d.mts → loadPage-bejlajm9.d.ts} +147 -5
- package/dist/server/{loadPage-BYmVMk0V.d.ts → loadPage-en10WQrt.d.mts} +147 -5
- package/dist/server/metadata.d.mts +10 -6
- package/dist/server/metadata.d.ts +10 -6
- package/dist/server/metadata.js +3 -1
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/metadata.mjs +2 -0
- package/dist/server/metadata.mjs.map +1 -1
- package/dist/server/navigation.d.mts +100 -0
- package/dist/server/navigation.d.ts +100 -0
- package/dist/server/navigation.js +44 -0
- package/dist/server/navigation.js.map +1 -0
- package/dist/server/navigation.mjs +44 -0
- package/dist/server/navigation.mjs.map +1 -0
- package/dist/server/rendering/server.d.mts +10 -7
- package/dist/server/rendering/server.d.ts +10 -7
- package/dist/server/rendering/server.js +7 -4
- package/dist/server/rendering/server.js.map +1 -1
- package/dist/server/rendering/server.mjs +6 -3
- package/dist/server/rendering.d.mts +173 -9
- package/dist/server/rendering.d.ts +173 -9
- package/dist/server/rendering.js +12 -9
- package/dist/server/rendering.js.map +1 -1
- package/dist/server/rendering.mjs +14 -11
- package/dist/server/rendering.mjs.map +1 -1
- package/dist/server/routing.d.mts +10 -6
- package/dist/server/routing.d.ts +10 -6
- package/dist/server/routing.js +4 -2
- package/dist/server/routing.js.map +1 -1
- package/dist/server/routing.mjs +3 -1
- package/dist/server/routing.mjs.map +1 -1
- package/dist/server/schema-Bpy9N5ZI.d.mts +1870 -0
- package/dist/server/schema-Bpy9N5ZI.d.ts +1870 -0
- package/dist/server/server.d.mts +12 -8
- package/dist/server/server.d.ts +12 -8
- package/dist/server/server.js +7 -5
- package/dist/server/server.js.map +1 -1
- package/dist/server/server.mjs +6 -4
- package/dist/server/theme-bridge.js +13 -10
- package/dist/server/theme-bridge.js.map +1 -1
- package/dist/server/theme-bridge.mjs +10 -7
- package/dist/server/theme-bridge.mjs.map +1 -1
- package/dist/server/theme.js +3 -1
- package/dist/server/theme.js.map +1 -1
- package/dist/server/theme.mjs +2 -0
- package/dist/server/theme.mjs.map +1 -1
- package/dist/server/{types-BCeqWtI2.d.mts → types-Bq3520hK.d.mts} +3 -3
- package/dist/server/{types-C6gmRHLe.d.mts → types-CLusapsM.d.mts} +1 -1
- package/dist/server/types-Cc7lyPkN.d.ts +4043 -0
- package/dist/server/{types-BCeqWtI2.d.ts → types-D-rqOU5I.d.ts} +3 -3
- package/dist/server/{types-C6gmRHLe.d.ts → types-Ls6BkLKg.d.ts} +1 -1
- package/dist/server/{types-Bbo01M7P.d.mts → types-_nDnPHpv.d.mts} +27 -1
- package/dist/server/{types-Bbo01M7P.d.ts → types-_nDnPHpv.d.ts} +27 -1
- package/dist/server/types-nVerjjdv.d.mts +4043 -0
- package/package.json +22 -17
- package/dist/server/chunk-3KKZVGH4.mjs +0 -179
- package/dist/server/chunk-3KKZVGH4.mjs.map +0 -1
- package/dist/server/chunk-4Z3GPTCS.js +0 -179
- package/dist/server/chunk-4Z3GPTCS.js.map +0 -1
- package/dist/server/chunk-JB4LIEFS.js.map +0 -1
- package/dist/server/chunk-QQ6U4QX6.js +0 -120
- package/dist/server/chunk-QQ6U4QX6.js.map +0 -1
- package/dist/server/chunk-R5YGLRUG.mjs +0 -122
- package/dist/server/chunk-R5YGLRUG.mjs.map +0 -1
- package/dist/server/chunk-SW7LE4M3.js.map +0 -1
- package/dist/server/chunk-W3K7LVPS.mjs +0 -120
- package/dist/server/chunk-W3K7LVPS.mjs.map +0 -1
- package/dist/server/chunk-YHEZMVTS.js +0 -122
- package/dist/server/chunk-YHEZMVTS.js.map +0 -1
- package/dist/server/loadPage-DVH3DW6E.js +0 -9
- package/dist/server/loadPage-DVH3DW6E.js.map +0 -1
- package/dist/server/loadPage-PHQZ6XQZ.mjs +0 -9
- /package/dist/server/{loadPage-PHQZ6XQZ.mjs.map → chunk-BJTO5JO5.mjs.map} +0 -0
- /package/dist/server/{chunk-2RW5HAQQ.mjs.map → chunk-JTAERCX2.mjs.map} +0 -0
- /package/dist/server/{chunk-PEAXKTDU.mjs.map → chunk-OP2GHK27.mjs.map} +0 -0
|
@@ -1,12 +1,176 @@
|
|
|
1
|
-
export { L as LoadPageParams, a as LoadPageResult,
|
|
2
|
-
export { HeaderData, Layout, LayoutProps } from './
|
|
1
|
+
export { e as BlockOverrideComponent, B as BlockOverrides, L as LoadPageParams, a as LoadPageResult, b as Page, P as PageProps, c as PageRenderer, d as RouteMap, S as SystemBlockComponentProps, T as ThemeTokens, l as loadPage } from './loadPage-bejlajm9.js';
|
|
2
|
+
export { H as HeaderData, L as Layout, a as LayoutProps } from './Layout-BM_KmCxO.js';
|
|
3
3
|
export { Block, BlockProps } from './rendering/server.js';
|
|
4
|
-
export { C as ContentEntryData, L as LoadContentParams, b as LoadContentResult, a as isEntryContent, i as isPageContent, l as loadContent } from './loadContent-
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
import '
|
|
4
|
+
export { C as ContentEntryData, L as LoadContentParams, b as LoadContentResult, a as isEntryContent, i as isPageContent, l as loadContent } from './loadContent-CdXDGsJM.js';
|
|
5
|
+
export { C as CustomLinkValue, E as ExternalLinkValue, I as InternalLinkValue, d as LinkValue, c as SiteFooterContent, S as SiteHeaderContent, T as Theme } from './types-Cc7lyPkN.js';
|
|
6
|
+
export { P as PageOutline } from './schema-Bpy9N5ZI.js';
|
|
7
|
+
import { G as GradientConfig, M as Media } from './components-DJBLu_yc.js';
|
|
8
|
+
export { e as BackgroundInput, B as BodyTextContent, H as HeroContent, a as HeroMedia, f as ResolvedBackground, R as RichText, c as RichTextPrimitiveProps, S as SectionBackground, g as SectionBackgroundProps, T as TipTapNode, b as buildThemeRuntime, d as resolveBackground, r as resolveImageUrl } from './components-DJBLu_yc.js';
|
|
9
|
+
import './types-Ls6BkLKg.js';
|
|
8
10
|
import 'react/jsx-runtime';
|
|
9
|
-
import '@riverbankcms/blocks/system/data';
|
|
10
|
-
import './types-Bbo01M7P.js';
|
|
11
|
-
import '@riverbankcms/site-renderer';
|
|
12
11
|
import 'react';
|
|
12
|
+
import 'zod';
|
|
13
|
+
import './types-_nDnPHpv.js';
|
|
14
|
+
import '@riverbankcms/site-renderer';
|
|
15
|
+
import '@riverbankcms/ai';
|
|
16
|
+
import '@riverbankcms/media-storage-supabase';
|
|
17
|
+
import '@riverbankcms/db';
|
|
18
|
+
|
|
19
|
+
type BlogPostContent = {
|
|
20
|
+
title?: string | null;
|
|
21
|
+
postSlug?: string | null;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type BlogPlaceholderCard = {
|
|
25
|
+
title: string;
|
|
26
|
+
summary: string;
|
|
27
|
+
};
|
|
28
|
+
type BlogPlaceholderContent = {
|
|
29
|
+
eyebrow?: string | null;
|
|
30
|
+
heading?: string | null;
|
|
31
|
+
description?: string | null;
|
|
32
|
+
cards?: BlogPlaceholderCard[];
|
|
33
|
+
note?: string | null;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
type BlogListingContent = {
|
|
37
|
+
layout?: "grid" | "stack" | null;
|
|
38
|
+
columns?: "2" | "3" | "4" | null;
|
|
39
|
+
postsPerPage?: "6" | "12" | "24" | "48" | null;
|
|
40
|
+
showImages?: boolean | null;
|
|
41
|
+
showExcerpts?: boolean | null;
|
|
42
|
+
showDates?: boolean | null;
|
|
43
|
+
readMoreText?: string | null;
|
|
44
|
+
readMoreVariant?: "link" | "primary" | "secondary" | "outline" | null;
|
|
45
|
+
emptyMessage?: string | null;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
type CtaFullContent = {
|
|
49
|
+
eyebrow?: string | null;
|
|
50
|
+
title: string;
|
|
51
|
+
content?: unknown;
|
|
52
|
+
_sectionStyles?: {
|
|
53
|
+
background?: {
|
|
54
|
+
type: 'color' | 'gradient' | 'image';
|
|
55
|
+
color?: string | null;
|
|
56
|
+
gradient?: GradientConfig | null;
|
|
57
|
+
image?: Media | null;
|
|
58
|
+
textColor?: string | null;
|
|
59
|
+
} | null;
|
|
60
|
+
spacing?: string | null;
|
|
61
|
+
} | null;
|
|
62
|
+
ctas?: Array<{
|
|
63
|
+
label?: string | null;
|
|
64
|
+
href?: string | null;
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Rich text document structure (ProseMirror format)
|
|
70
|
+
*/
|
|
71
|
+
type RichTextDoc = {
|
|
72
|
+
type: 'doc';
|
|
73
|
+
content?: Array<{
|
|
74
|
+
type: string;
|
|
75
|
+
content?: Array<{
|
|
76
|
+
type: string;
|
|
77
|
+
text?: string;
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
}>;
|
|
80
|
+
[key: string]: unknown;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
type FormBlockContent = {
|
|
84
|
+
title?: string | null;
|
|
85
|
+
intro?: RichTextDoc | null;
|
|
86
|
+
formId: string;
|
|
87
|
+
submitLabel?: string | null;
|
|
88
|
+
successMessage?: string | null;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
type FaqItem = {
|
|
92
|
+
question: string;
|
|
93
|
+
answer: unknown;
|
|
94
|
+
};
|
|
95
|
+
type FaqContent = {
|
|
96
|
+
eyebrow?: string | null;
|
|
97
|
+
title?: string | null;
|
|
98
|
+
description?: unknown;
|
|
99
|
+
items?: FaqItem[] | null;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
type TestimonialsBlockContent = {
|
|
103
|
+
heading?: string | null;
|
|
104
|
+
subheading?: string | null;
|
|
105
|
+
slidesToShow?: number | string | null;
|
|
106
|
+
transition?: 'slide' | 'fade' | null;
|
|
107
|
+
maxEntries?: number | string | null;
|
|
108
|
+
_sectionStyles?: {
|
|
109
|
+
background?: {
|
|
110
|
+
type: 'color' | 'gradient' | 'image';
|
|
111
|
+
color?: string | null;
|
|
112
|
+
gradient?: GradientConfig | null;
|
|
113
|
+
image?: Media | null;
|
|
114
|
+
textColor?: string | null;
|
|
115
|
+
} | null;
|
|
116
|
+
spacing?: string | null;
|
|
117
|
+
} | null;
|
|
118
|
+
};
|
|
119
|
+
type TestimonialEntryContent = {
|
|
120
|
+
name?: string | null;
|
|
121
|
+
jobTitle?: string | null;
|
|
122
|
+
company?: string | null;
|
|
123
|
+
headshot?: {
|
|
124
|
+
url?: string | null;
|
|
125
|
+
alt?: string | null;
|
|
126
|
+
} | null;
|
|
127
|
+
body?: unknown;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
type ColumnsContent = {
|
|
131
|
+
gap?: 'sm' | 'md' | 'lg';
|
|
132
|
+
columns: Array<{
|
|
133
|
+
_type: 'card';
|
|
134
|
+
media?: unknown;
|
|
135
|
+
aspectRatio?: '16/9' | '4/3' | '1/1' | '3/4' | 'auto';
|
|
136
|
+
title: string;
|
|
137
|
+
body?: unknown;
|
|
138
|
+
ctas?: Array<unknown>;
|
|
139
|
+
variant?: string;
|
|
140
|
+
} | {
|
|
141
|
+
_type: 'columnContent';
|
|
142
|
+
items: Array<{
|
|
143
|
+
_type: string;
|
|
144
|
+
[key: string]: unknown;
|
|
145
|
+
}>;
|
|
146
|
+
}>;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
type AppointmentBookingContent = {
|
|
150
|
+
formId: string;
|
|
151
|
+
heading?: string | null;
|
|
152
|
+
description?: unknown;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
type EventRegistrationContent = {
|
|
156
|
+
heading?: string | null;
|
|
157
|
+
description?: unknown;
|
|
158
|
+
maxTickets?: "1" | "2" | "3" | "5" | "10" | null;
|
|
159
|
+
showVenue?: boolean | null;
|
|
160
|
+
showCapacity?: boolean | null;
|
|
161
|
+
successMessage?: string | null;
|
|
162
|
+
waitlistMessage?: string | null;
|
|
163
|
+
buttonText?: string | null;
|
|
164
|
+
buttonVariant?: "primary" | "secondary" | "outline" | null;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
type EventCalendarContent = {
|
|
168
|
+
heading?: string | null;
|
|
169
|
+
description?: unknown;
|
|
170
|
+
calendarView?: "month" | "week" | null;
|
|
171
|
+
startOfWeek?: "sunday" | "monday" | null;
|
|
172
|
+
buttonVariant?: "primary" | "secondary" | "outline" | "link" | null;
|
|
173
|
+
emptyMessage?: string | null;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export { type AppointmentBookingContent, type BlogListingContent, type BlogPlaceholderContent, type BlogPostContent, type ColumnsContent, type CtaFullContent, type EventCalendarContent, type EventRegistrationContent, type FaqContent, type FormBlockContent, Media, type TestimonialEntryContent, type TestimonialsBlockContent };
|
package/dist/server/rendering.js
CHANGED
|
@@ -2,27 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkTO7FD6TQjs = require('./chunk-TO7FD6TQ.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunk62ZJI564js = require('./chunk-62ZJI564.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunk5R4NMVXAjs = require('./chunk-5R4NMVXA.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
require('./chunk-QQ6U4QX6.js');
|
|
15
|
+
var _chunkINWKF3ICjs = require('./chunk-INWKF3IC.js');
|
|
16
|
+
|
|
18
17
|
|
|
19
|
-
// src/rendering/index.ts
|
|
20
|
-
var _blocks = require('@riverbankcms/blocks');
|
|
21
18
|
|
|
22
19
|
|
|
23
20
|
|
|
24
21
|
|
|
25
22
|
|
|
23
|
+
var _chunkSF63XAX7js = require('./chunk-SF63XAX7.js');
|
|
24
|
+
require('./chunk-YXDDFG3N.js');
|
|
25
|
+
require('./chunk-HOY77YBF.js');
|
|
26
|
+
require('./chunk-EGTDJ4PL.js');
|
|
27
|
+
require('./chunk-DGUM43GV.js');
|
|
28
|
+
|
|
26
29
|
|
|
27
30
|
|
|
28
31
|
|
|
@@ -36,5 +39,5 @@ var _blocks = require('@riverbankcms/blocks');
|
|
|
36
39
|
|
|
37
40
|
|
|
38
41
|
|
|
39
|
-
exports.Block =
|
|
42
|
+
exports.Block = _chunk5R4NMVXAjs.Block; exports.Layout = _chunkINWKF3ICjs.Layout; exports.Page = _chunkINWKF3ICjs.Page; exports.PageRenderer = _chunkSF63XAX7js.PageRenderer; exports.RichText = _chunkSF63XAX7js.RichText; exports.SectionBackground = _chunkSF63XAX7js.SectionBackground; exports.buildThemeRuntime = _chunkSF63XAX7js.buildThemeRuntime; exports.isEntryContent = _chunkTO7FD6TQjs.isEntryContent; exports.isPageContent = _chunkTO7FD6TQjs.isPageContent; exports.loadContent = _chunkTO7FD6TQjs.loadContent; exports.loadPage = _chunk62ZJI564js.loadPage; exports.resolveBackground = _chunkSF63XAX7js.resolveBackground; exports.resolveImageUrl = _chunkSF63XAX7js.resolveImageUrl;
|
|
40
43
|
//# sourceMappingURL=rendering.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering.js"
|
|
1
|
+
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,2qBAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering.js"}
|
|
@@ -2,26 +2,29 @@ import {
|
|
|
2
2
|
isEntryContent,
|
|
3
3
|
isPageContent,
|
|
4
4
|
loadContent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OP2GHK27.mjs";
|
|
6
6
|
import {
|
|
7
7
|
loadPage
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JTAERCX2.mjs";
|
|
9
9
|
import {
|
|
10
10
|
Block
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PN3CHDVX.mjs";
|
|
12
12
|
import {
|
|
13
13
|
Layout,
|
|
14
14
|
Page
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-GWBMJPLH.mjs";
|
|
17
|
-
import "./chunk-W3K7LVPS.mjs";
|
|
18
|
-
|
|
19
|
-
// src/rendering/index.ts
|
|
20
|
-
import { PageRenderer, buildThemeRuntime, RichText, resolveImageUrl } from "@riverbankcms/blocks";
|
|
15
|
+
} from "./chunk-FK64TZBT.mjs";
|
|
21
16
|
import {
|
|
17
|
+
PageRenderer,
|
|
18
|
+
RichText,
|
|
19
|
+
SectionBackground,
|
|
20
|
+
buildThemeRuntime,
|
|
22
21
|
resolveBackground,
|
|
23
|
-
|
|
24
|
-
} from "
|
|
22
|
+
resolveImageUrl
|
|
23
|
+
} from "./chunk-O5DC7MYW.mjs";
|
|
24
|
+
import "./chunk-GWBMJPLH.mjs";
|
|
25
|
+
import "./chunk-7DS4Q3GA.mjs";
|
|
26
|
+
import "./chunk-USQF2XTU.mjs";
|
|
27
|
+
import "./chunk-BJTO5JO5.mjs";
|
|
25
28
|
export {
|
|
26
29
|
Block,
|
|
27
30
|
Layout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { R as RiverbankClient } from './types-
|
|
2
|
-
import { a as LoadPageResult } from './loadPage-
|
|
3
|
-
import '
|
|
1
|
+
import { R as RiverbankClient } from './types-CLusapsM.mjs';
|
|
2
|
+
import { a as LoadPageResult } from './loadPage-en10WQrt.mjs';
|
|
3
|
+
import './types-nVerjjdv.mjs';
|
|
4
|
+
import '@riverbankcms/ai';
|
|
5
|
+
import './schema-Bpy9N5ZI.mjs';
|
|
6
|
+
import 'zod';
|
|
7
|
+
import '@riverbankcms/media-storage-supabase';
|
|
8
|
+
import '@riverbankcms/db';
|
|
4
9
|
import 'react/jsx-runtime';
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import './types-Bbo01M7P.mjs';
|
|
10
|
+
import 'react';
|
|
11
|
+
import './types-_nDnPHpv.mjs';
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
* Route resolution helper for dynamic page routing
|
package/dist/server/routing.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { R as RiverbankClient } from './types-
|
|
2
|
-
import { a as LoadPageResult } from './loadPage-
|
|
3
|
-
import '
|
|
1
|
+
import { R as RiverbankClient } from './types-Ls6BkLKg.js';
|
|
2
|
+
import { a as LoadPageResult } from './loadPage-bejlajm9.js';
|
|
3
|
+
import './types-Cc7lyPkN.js';
|
|
4
|
+
import '@riverbankcms/ai';
|
|
5
|
+
import './schema-Bpy9N5ZI.js';
|
|
6
|
+
import 'zod';
|
|
7
|
+
import '@riverbankcms/media-storage-supabase';
|
|
8
|
+
import '@riverbankcms/db';
|
|
4
9
|
import 'react/jsx-runtime';
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import './types-Bbo01M7P.js';
|
|
10
|
+
import 'react';
|
|
11
|
+
import './types-_nDnPHpv.js';
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
14
|
* Route resolution helper for dynamic page routing
|
package/dist/server/routing.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }require('./chunk-DGUM43GV.js');
|
|
2
|
+
|
|
3
|
+
// src/routing/resolveRoute.ts
|
|
2
4
|
async function resolveRoute(params) {
|
|
3
5
|
const { client, siteId, path, preview = false } = params;
|
|
4
6
|
try {
|
|
@@ -8,7 +10,7 @@ async function resolveRoute(params) {
|
|
|
8
10
|
preview
|
|
9
11
|
});
|
|
10
12
|
if (pageResponse) {
|
|
11
|
-
const { loadPage } = await Promise.resolve().then(() => _interopRequireWildcard(require("./loadPage-
|
|
13
|
+
const { loadPage } = await Promise.resolve().then(() => _interopRequireWildcard(require("./loadPage-3ECPF426.js")));
|
|
12
14
|
const pageData = await loadPage({
|
|
13
15
|
client,
|
|
14
16
|
siteId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/routing.js","../../src/routing/resolveRoute.ts"],"names":[],"mappings":"AAAA;
|
|
1
|
+
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/routing.js","../../src/routing/resolveRoute.ts"],"names":[],"mappings":"AAAA,0XAA4B;AAC5B;AACA;ACgFA,MAAA,SAAsB,YAAA,CACpB,MAAA,EAC0B;AAC1B,EAAA,MAAM,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,MAAM,EAAA,EAAI,MAAA;AAElD,EAAA,IAAI;AAEF,IAAA,MAAM,aAAA,EAAe,MAAM,MAAA,CAAO,OAAA,CAAQ;AAAA,MACxC,MAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,IACF,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,YAAA,EAAc;AAEhB,MAAA,MAAM,EAAE,SAAS,EAAA,EAAI,MAAM,4DAAA,CAAO,wBAA+B,GAAA;AACjE,MAAA,MAAM,SAAA,EAAW,MAAM,QAAA,CAAS;AAAA,QAC9B,MAAA;AAAA,QACA,MAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,MACF,CAAC,CAAA;AAED,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN;AAAA,MACF,CAAA;AAAA,IACF;AAAA,EACF,EAAA,MAAA,CAAS,KAAA,EAAO;AAEd,IAAA,MAAM,MAAA,EAAQ,MAAA,WAAiB,MAAA,GAAA,CAC5B,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,KAAK,EAAA,GAC5B,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,EAAA,GAClC,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,CAAA;AAErC,IAAA,GAAA,CAAI,KAAA,EAAO;AACT,MAAA,OAAA,CAAQ,KAAA,CAAM,+BAAA,EAAiC,EAAE,KAAK,CAAC,CAAA;AAAA,IACzD,EAAA,KAAO;AAEL,MAAA,OAAA,CAAQ,IAAA,CAAK,qCAAA,EAAuC;AAAA,QAClD,IAAA;AAAA,QACA,KAAA,EAAO,MAAA,WAAiB,MAAA,EAAQ,KAAA,CAAM,QAAA,EAAU,MAAA,CAAO,KAAK;AAAA,MAC9D,CAAC,CAAA;AAAA,IACH;AAAA,EACF;AAIA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,EACR,CAAA;AACF;AA0BA,MAAA,SAAsB,aAAA,CAAc,MAAA,EAK8B;AAChE,EAAA,MAAM,EAAE,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,QAAQ,EAAA,EAAI,MAAA;AAE3C,EAAA,MAAM,YAAA,EAAc,MAAM,OAAA,CAAQ,GAAA;AAAA,IAChC,KAAA,CAAM,GAAA,CAAI,MAAA,CAAO,IAAA,EAAA,GAAS;AACxB,MAAA,MAAM,WAAA,EAAa,MAAM,YAAA,CAAa;AAAA,QACpC,MAAA;AAAA,QACA,MAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,MACF,CAAC,CAAA;AAED,MAAA,OAAO,EAAE,IAAA,EAAM,WAAW,CAAA;AAAA,IAC5B,CAAC;AAAA,EACH,CAAA;AAEA,EAAA,OAAO,WAAA;AACT;AD/HA;AACE;AACA;AACF,2EAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/routing.js","sourcesContent":[null,"/**\n * Route resolution helper for dynamic page routing\n *\n * Resolves URL paths to pages, entries, redirects, or 404s.\n */\n\nimport type { RiverbankClient } from '../client/types';\nimport type { LoadPageResult } from '../rendering/helpers/loadPage';\n\nexport type RouteResolution =\n | {\n type: 'page';\n pageData: LoadPageResult;\n }\n | {\n type: 'redirect';\n destination: string;\n permanent: boolean;\n }\n | {\n type: 'not-found';\n };\n\nexport type ResolveRouteParams = {\n /**\n * Builder client instance\n */\n client: RiverbankClient;\n\n /**\n * Site ID\n */\n siteId: string;\n\n /**\n * URL path to resolve (e.g., '/about', '/blog/post-1')\n */\n path: string;\n\n /**\n * If true, fetches draft/unpublished content instead of published content.\n * @default false\n */\n preview?: boolean;\n};\n\n/**\n * Resolve a URL path to page data, redirect, or 404\n *\n * This helper attempts to fetch the page at the given path and returns\n * a discriminated union indicating whether the page was found or not.\n *\n * **Note:** Redirect support is not yet implemented. The `redirect` type\n * exists in the return type for future compatibility, but this function\n * currently only returns `page` or `not-found` types.\n *\n * @example\n * ```tsx\n * import { resolveRoute } from '@riverbankcms/sdk/routing';\n * import { notFound, redirect } from 'next/navigation';\n *\n * export default async function DynamicPage({ params }) {\n * const path = `/${params.slug?.join('/') || ''}`;\n * const resolution = await resolveRoute({\n * client,\n * siteId: 'your-site-id',\n * path,\n * });\n *\n * if (resolution.type === 'redirect') {\n * redirect(resolution.destination);\n * }\n *\n * if (resolution.type === 'not-found') {\n * notFound();\n * }\n *\n * // resolution.type === 'page'\n * return <Page {...resolution.pageData} />;\n * }\n * ```\n */\nexport async function resolveRoute(\n params: ResolveRouteParams\n): Promise<RouteResolution> {\n const { client, siteId, path, preview = false } = params;\n\n try {\n // Attempt to fetch page data\n const pageResponse = await client.getPage({\n siteId,\n path,\n preview,\n });\n\n if (pageResponse) {\n // Successfully found page - load full page data\n const { loadPage } = await import('../rendering/helpers/loadPage');\n const pageData = await loadPage({\n client,\n siteId,\n path,\n preview,\n });\n\n return {\n type: 'page',\n pageData,\n };\n }\n } catch (error) {\n // Distinguish between expected 404s and unexpected errors\n const is404 = error instanceof Error &&\n (error.message.includes('404') ||\n error.message.includes('Not Found') ||\n error.message.includes('not found'));\n\n if (is404) {\n console.debug('[resolveRoute] Page not found', { path });\n } else {\n // Unexpected error - log as warning for visibility\n console.warn('[resolveRoute] Failed to fetch page', {\n path,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n // No page found - return not-found\n // Note: Redirect support will be added when client.getRedirect() API is available\n return {\n type: 'not-found',\n };\n}\n\n/**\n * Batch resolve multiple routes in parallel\n *\n * Useful for pre-fetching multiple routes or validating a sitemap.\n *\n * @example\n * ```tsx\n * const resolutions = await resolveRoutes({\n * client,\n * siteId: 'your-site-id',\n * paths: ['/', '/about', '/blog', '/contact'],\n * });\n *\n * resolutions.forEach(({ path, resolution }) => {\n * if (resolution.type === 'page') {\n * console.log(`${path} → Page: ${resolution.pageData.page.name}`);\n * } else if (resolution.type === 'redirect') {\n * console.log(`${path} → Redirect to ${resolution.destination}`);\n * } else {\n * console.log(`${path} → Not found`);\n * }\n * });\n * ```\n */\nexport async function resolveRoutes(params: {\n client: RiverbankClient;\n siteId: string;\n paths: string[];\n preview?: boolean;\n}): Promise<Array<{ path: string; resolution: RouteResolution }>> {\n const { client, siteId, paths, preview } = params;\n\n const resolutions = await Promise.all(\n paths.map(async (path) => {\n const resolution = await resolveRoute({\n client,\n siteId,\n path,\n preview,\n });\n\n return { path, resolution };\n })\n );\n\n return resolutions;\n}\n"]}
|
package/dist/server/routing.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import "./chunk-BJTO5JO5.mjs";
|
|
2
|
+
|
|
1
3
|
// src/routing/resolveRoute.ts
|
|
2
4
|
async function resolveRoute(params) {
|
|
3
5
|
const { client, siteId, path, preview = false } = params;
|
|
@@ -8,7 +10,7 @@ async function resolveRoute(params) {
|
|
|
8
10
|
preview
|
|
9
11
|
});
|
|
10
12
|
if (pageResponse) {
|
|
11
|
-
const { loadPage } = await import("./loadPage-
|
|
13
|
+
const { loadPage } = await import("./loadPage-LW273NYO.mjs");
|
|
12
14
|
const pageData = await loadPage({
|
|
13
15
|
client,
|
|
14
16
|
siteId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routing/resolveRoute.ts"],"sourcesContent":["/**\n * Route resolution helper for dynamic page routing\n *\n * Resolves URL paths to pages, entries, redirects, or 404s.\n */\n\nimport type { RiverbankClient } from '../client/types';\nimport type { LoadPageResult } from '../rendering/helpers/loadPage';\n\nexport type RouteResolution =\n | {\n type: 'page';\n pageData: LoadPageResult;\n }\n | {\n type: 'redirect';\n destination: string;\n permanent: boolean;\n }\n | {\n type: 'not-found';\n };\n\nexport type ResolveRouteParams = {\n /**\n * Builder client instance\n */\n client: RiverbankClient;\n\n /**\n * Site ID\n */\n siteId: string;\n\n /**\n * URL path to resolve (e.g., '/about', '/blog/post-1')\n */\n path: string;\n\n /**\n * If true, fetches draft/unpublished content instead of published content.\n * @default false\n */\n preview?: boolean;\n};\n\n/**\n * Resolve a URL path to page data, redirect, or 404\n *\n * This helper attempts to fetch the page at the given path and returns\n * a discriminated union indicating whether the page was found or not.\n *\n * **Note:** Redirect support is not yet implemented. The `redirect` type\n * exists in the return type for future compatibility, but this function\n * currently only returns `page` or `not-found` types.\n *\n * @example\n * ```tsx\n * import { resolveRoute } from '@riverbankcms/sdk/routing';\n * import { notFound, redirect } from 'next/navigation';\n *\n * export default async function DynamicPage({ params }) {\n * const path = `/${params.slug?.join('/') || ''}`;\n * const resolution = await resolveRoute({\n * client,\n * siteId: 'your-site-id',\n * path,\n * });\n *\n * if (resolution.type === 'redirect') {\n * redirect(resolution.destination);\n * }\n *\n * if (resolution.type === 'not-found') {\n * notFound();\n * }\n *\n * // resolution.type === 'page'\n * return <Page {...resolution.pageData} />;\n * }\n * ```\n */\nexport async function resolveRoute(\n params: ResolveRouteParams\n): Promise<RouteResolution> {\n const { client, siteId, path, preview = false } = params;\n\n try {\n // Attempt to fetch page data\n const pageResponse = await client.getPage({\n siteId,\n path,\n preview,\n });\n\n if (pageResponse) {\n // Successfully found page - load full page data\n const { loadPage } = await import('../rendering/helpers/loadPage');\n const pageData = await loadPage({\n client,\n siteId,\n path,\n preview,\n });\n\n return {\n type: 'page',\n pageData,\n };\n }\n } catch (error) {\n // Distinguish between expected 404s and unexpected errors\n const is404 = error instanceof Error &&\n (error.message.includes('404') ||\n error.message.includes('Not Found') ||\n error.message.includes('not found'));\n\n if (is404) {\n console.debug('[resolveRoute] Page not found', { path });\n } else {\n // Unexpected error - log as warning for visibility\n console.warn('[resolveRoute] Failed to fetch page', {\n path,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n // No page found - return not-found\n // Note: Redirect support will be added when client.getRedirect() API is available\n return {\n type: 'not-found',\n };\n}\n\n/**\n * Batch resolve multiple routes in parallel\n *\n * Useful for pre-fetching multiple routes or validating a sitemap.\n *\n * @example\n * ```tsx\n * const resolutions = await resolveRoutes({\n * client,\n * siteId: 'your-site-id',\n * paths: ['/', '/about', '/blog', '/contact'],\n * });\n *\n * resolutions.forEach(({ path, resolution }) => {\n * if (resolution.type === 'page') {\n * console.log(`${path} → Page: ${resolution.pageData.page.name}`);\n * } else if (resolution.type === 'redirect') {\n * console.log(`${path} → Redirect to ${resolution.destination}`);\n * } else {\n * console.log(`${path} → Not found`);\n * }\n * });\n * ```\n */\nexport async function resolveRoutes(params: {\n client: RiverbankClient;\n siteId: string;\n paths: string[];\n preview?: boolean;\n}): Promise<Array<{ path: string; resolution: RouteResolution }>> {\n const { client, siteId, paths, preview } = params;\n\n const resolutions = await Promise.all(\n paths.map(async (path) => {\n const resolution = await resolveRoute({\n client,\n siteId,\n path,\n preview,\n });\n\n return { path, resolution };\n })\n );\n\n return resolutions;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/routing/resolveRoute.ts"],"sourcesContent":["/**\n * Route resolution helper for dynamic page routing\n *\n * Resolves URL paths to pages, entries, redirects, or 404s.\n */\n\nimport type { RiverbankClient } from '../client/types';\nimport type { LoadPageResult } from '../rendering/helpers/loadPage';\n\nexport type RouteResolution =\n | {\n type: 'page';\n pageData: LoadPageResult;\n }\n | {\n type: 'redirect';\n destination: string;\n permanent: boolean;\n }\n | {\n type: 'not-found';\n };\n\nexport type ResolveRouteParams = {\n /**\n * Builder client instance\n */\n client: RiverbankClient;\n\n /**\n * Site ID\n */\n siteId: string;\n\n /**\n * URL path to resolve (e.g., '/about', '/blog/post-1')\n */\n path: string;\n\n /**\n * If true, fetches draft/unpublished content instead of published content.\n * @default false\n */\n preview?: boolean;\n};\n\n/**\n * Resolve a URL path to page data, redirect, or 404\n *\n * This helper attempts to fetch the page at the given path and returns\n * a discriminated union indicating whether the page was found or not.\n *\n * **Note:** Redirect support is not yet implemented. The `redirect` type\n * exists in the return type for future compatibility, but this function\n * currently only returns `page` or `not-found` types.\n *\n * @example\n * ```tsx\n * import { resolveRoute } from '@riverbankcms/sdk/routing';\n * import { notFound, redirect } from 'next/navigation';\n *\n * export default async function DynamicPage({ params }) {\n * const path = `/${params.slug?.join('/') || ''}`;\n * const resolution = await resolveRoute({\n * client,\n * siteId: 'your-site-id',\n * path,\n * });\n *\n * if (resolution.type === 'redirect') {\n * redirect(resolution.destination);\n * }\n *\n * if (resolution.type === 'not-found') {\n * notFound();\n * }\n *\n * // resolution.type === 'page'\n * return <Page {...resolution.pageData} />;\n * }\n * ```\n */\nexport async function resolveRoute(\n params: ResolveRouteParams\n): Promise<RouteResolution> {\n const { client, siteId, path, preview = false } = params;\n\n try {\n // Attempt to fetch page data\n const pageResponse = await client.getPage({\n siteId,\n path,\n preview,\n });\n\n if (pageResponse) {\n // Successfully found page - load full page data\n const { loadPage } = await import('../rendering/helpers/loadPage');\n const pageData = await loadPage({\n client,\n siteId,\n path,\n preview,\n });\n\n return {\n type: 'page',\n pageData,\n };\n }\n } catch (error) {\n // Distinguish between expected 404s and unexpected errors\n const is404 = error instanceof Error &&\n (error.message.includes('404') ||\n error.message.includes('Not Found') ||\n error.message.includes('not found'));\n\n if (is404) {\n console.debug('[resolveRoute] Page not found', { path });\n } else {\n // Unexpected error - log as warning for visibility\n console.warn('[resolveRoute] Failed to fetch page', {\n path,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n // No page found - return not-found\n // Note: Redirect support will be added when client.getRedirect() API is available\n return {\n type: 'not-found',\n };\n}\n\n/**\n * Batch resolve multiple routes in parallel\n *\n * Useful for pre-fetching multiple routes or validating a sitemap.\n *\n * @example\n * ```tsx\n * const resolutions = await resolveRoutes({\n * client,\n * siteId: 'your-site-id',\n * paths: ['/', '/about', '/blog', '/contact'],\n * });\n *\n * resolutions.forEach(({ path, resolution }) => {\n * if (resolution.type === 'page') {\n * console.log(`${path} → Page: ${resolution.pageData.page.name}`);\n * } else if (resolution.type === 'redirect') {\n * console.log(`${path} → Redirect to ${resolution.destination}`);\n * } else {\n * console.log(`${path} → Not found`);\n * }\n * });\n * ```\n */\nexport async function resolveRoutes(params: {\n client: RiverbankClient;\n siteId: string;\n paths: string[];\n preview?: boolean;\n}): Promise<Array<{ path: string; resolution: RouteResolution }>> {\n const { client, siteId, paths, preview } = params;\n\n const resolutions = await Promise.all(\n paths.map(async (path) => {\n const resolution = await resolveRoute({\n client,\n siteId,\n path,\n preview,\n });\n\n return { path, resolution };\n })\n );\n\n return resolutions;\n}\n"],"mappings":";;;AAkFA,eAAsB,aACpB,QAC0B;AAC1B,QAAM,EAAE,QAAQ,QAAQ,MAAM,UAAU,MAAM,IAAI;AAElD,MAAI;AAEF,UAAM,eAAe,MAAM,OAAO,QAAQ;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,cAAc;AAEhB,YAAM,EAAE,SAAS,IAAI,MAAM,OAAO,yBAA+B;AACjE,YAAM,WAAW,MAAM,SAAS;AAAA,QAC9B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,aAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AAEd,UAAM,QAAQ,iBAAiB,UAC5B,MAAM,QAAQ,SAAS,KAAK,KAC5B,MAAM,QAAQ,SAAS,WAAW,KAClC,MAAM,QAAQ,SAAS,WAAW;AAErC,QAAI,OAAO;AACT,cAAQ,MAAM,iCAAiC,EAAE,KAAK,CAAC;AAAA,IACzD,OAAO;AAEL,cAAQ,KAAK,uCAAuC;AAAA,QAClD;AAAA,QACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAC9D,CAAC;AAAA,IACH;AAAA,EACF;AAIA,SAAO;AAAA,IACL,MAAM;AAAA,EACR;AACF;AA0BA,eAAsB,cAAc,QAK8B;AAChE,QAAM,EAAE,QAAQ,QAAQ,OAAO,QAAQ,IAAI;AAE3C,QAAM,cAAc,MAAM,QAAQ;AAAA,IAChC,MAAM,IAAI,OAAO,SAAS;AACxB,YAAM,aAAa,MAAM,aAAa;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,aAAO,EAAE,MAAM,WAAW;AAAA,IAC5B,CAAC;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
|