@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.
Files changed (184) hide show
  1. package/dist/cli/index.js +4840 -9
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/client/bookings.d.mts +82 -2
  4. package/dist/client/bookings.d.ts +82 -2
  5. package/dist/client/bookings.js +1623 -3
  6. package/dist/client/bookings.js.map +1 -1
  7. package/dist/client/bookings.mjs +1610 -5
  8. package/dist/client/bookings.mjs.map +1 -1
  9. package/dist/client/client.d.mts +8 -5
  10. package/dist/client/client.d.ts +8 -5
  11. package/dist/client/client.js +16873 -322
  12. package/dist/client/client.js.map +1 -1
  13. package/dist/client/client.mjs +16855 -307
  14. package/dist/client/client.mjs.map +1 -1
  15. package/dist/client/hooks.d.mts +10 -7
  16. package/dist/client/hooks.d.ts +10 -7
  17. package/dist/client/hooks.js +5074 -4
  18. package/dist/client/hooks.js.map +1 -1
  19. package/dist/client/hooks.mjs +5074 -4
  20. package/dist/client/hooks.mjs.map +1 -1
  21. package/dist/client/rendering/client.d.mts +7 -1
  22. package/dist/client/rendering/client.d.ts +7 -1
  23. package/dist/client/rendering/client.js +17388 -2
  24. package/dist/client/rendering/client.js.map +1 -1
  25. package/dist/client/rendering/client.mjs +17382 -2
  26. package/dist/client/rendering/client.mjs.map +1 -1
  27. package/dist/client/resolver-BhueZVxZ.d.mts +61 -0
  28. package/dist/client/resolver-BhueZVxZ.d.ts +61 -0
  29. package/dist/client/usePage-BBcFCxOU.d.ts +6297 -0
  30. package/dist/client/usePage-BydHcMYB.d.mts +6297 -0
  31. package/dist/client/usePage-CrKw1H6Y.d.ts +6338 -0
  32. package/dist/client/usePage-DMI8ImsU.d.mts +6338 -0
  33. package/dist/server/Layout-BM_KmCxO.d.ts +44 -0
  34. package/dist/server/Layout-CsAQ-0Fv.d.mts +44 -0
  35. package/dist/server/{chunk-JB4LIEFS.js → chunk-5R4NMVXA.js} +15 -8
  36. package/dist/server/chunk-5R4NMVXA.js.map +1 -0
  37. package/dist/server/{chunk-ADREPXFU.js → chunk-62ZJI564.js} +3 -3
  38. package/dist/server/{chunk-ADREPXFU.js.map → chunk-62ZJI564.js.map} +1 -1
  39. package/dist/server/chunk-7DS4Q3GA.mjs +333 -0
  40. package/dist/server/chunk-7DS4Q3GA.mjs.map +1 -0
  41. package/dist/server/chunk-BJTO5JO5.mjs +11 -0
  42. package/dist/server/{chunk-4Z5FBFRL.mjs → chunk-BPKYRPCQ.mjs} +7 -3
  43. package/dist/server/{chunk-4Z5FBFRL.mjs.map → chunk-BPKYRPCQ.mjs.map} +1 -1
  44. package/dist/server/chunk-DGUM43GV.js +11 -0
  45. package/dist/server/chunk-DGUM43GV.js.map +1 -0
  46. package/dist/server/chunk-EGTDJ4PL.js +5461 -0
  47. package/dist/server/chunk-EGTDJ4PL.js.map +1 -0
  48. package/dist/server/chunk-FK64TZBT.mjs +831 -0
  49. package/dist/server/chunk-FK64TZBT.mjs.map +1 -0
  50. package/dist/server/chunk-HOY77YBF.js +333 -0
  51. package/dist/server/chunk-HOY77YBF.js.map +1 -0
  52. package/dist/server/chunk-INWKF3IC.js +831 -0
  53. package/dist/server/chunk-INWKF3IC.js.map +1 -0
  54. package/dist/server/{chunk-2RW5HAQQ.mjs → chunk-JTAERCX2.mjs} +2 -2
  55. package/dist/server/chunk-O5DC7MYW.mjs +9606 -0
  56. package/dist/server/chunk-O5DC7MYW.mjs.map +1 -0
  57. package/dist/server/{chunk-PEAXKTDU.mjs → chunk-OP2GHK27.mjs} +2 -2
  58. package/dist/server/{chunk-WKG57P2H.mjs → chunk-PN3CHDVX.mjs} +10 -3
  59. package/dist/server/{chunk-WKG57P2H.mjs.map → chunk-PN3CHDVX.mjs.map} +1 -1
  60. package/dist/server/chunk-QFFQTOY3.mjs +2128 -0
  61. package/dist/server/chunk-QFFQTOY3.mjs.map +1 -0
  62. package/dist/server/chunk-SF63XAX7.js +9606 -0
  63. package/dist/server/chunk-SF63XAX7.js.map +1 -0
  64. package/dist/server/{chunk-F472SMKX.js → chunk-TO7FD6TQ.js} +4 -4
  65. package/dist/server/{chunk-F472SMKX.js.map → chunk-TO7FD6TQ.js.map} +1 -1
  66. package/dist/server/chunk-UFVCBGBY.js +2128 -0
  67. package/dist/server/chunk-UFVCBGBY.js.map +1 -0
  68. package/dist/server/chunk-USQF2XTU.mjs +5461 -0
  69. package/dist/server/chunk-USQF2XTU.mjs.map +1 -0
  70. package/dist/server/{chunk-SW7LE4M3.js → chunk-XLVL5WPH.js} +12 -8
  71. package/dist/server/chunk-XLVL5WPH.js.map +1 -0
  72. package/dist/server/components-CI3JiOYA.d.mts +305 -0
  73. package/dist/server/components-DJBLu_yc.d.ts +305 -0
  74. package/dist/server/components.d.mts +14 -49
  75. package/dist/server/components.d.ts +14 -49
  76. package/dist/server/components.js +7 -4
  77. package/dist/server/components.js.map +1 -1
  78. package/dist/server/components.mjs +9 -6
  79. package/dist/server/components.mjs.map +1 -1
  80. package/dist/server/config-validation.d.mts +2 -2
  81. package/dist/server/config-validation.d.ts +2 -2
  82. package/dist/server/config-validation.js +6 -3
  83. package/dist/server/config-validation.js.map +1 -1
  84. package/dist/server/config-validation.mjs +5 -2
  85. package/dist/server/config.d.mts +3 -3
  86. package/dist/server/config.d.ts +3 -3
  87. package/dist/server/config.js +6 -3
  88. package/dist/server/config.js.map +1 -1
  89. package/dist/server/config.mjs +5 -2
  90. package/dist/server/config.mjs.map +1 -1
  91. package/dist/server/data.d.mts +10 -8
  92. package/dist/server/data.d.ts +10 -8
  93. package/dist/server/data.js +4 -2
  94. package/dist/server/data.js.map +1 -1
  95. package/dist/server/data.mjs +3 -1
  96. package/dist/server/{index-B0yI_V6Z.d.mts → index-DoX3ELQn.d.mts} +1 -1
  97. package/dist/server/{index-C6M0Wfjq.d.ts → index-Dus2gkY6.d.ts} +1 -1
  98. package/dist/server/index.d.mts +1568 -5
  99. package/dist/server/index.d.ts +1568 -5
  100. package/dist/server/index.js +4 -4
  101. package/dist/server/index.js.map +1 -1
  102. package/dist/server/index.mjs +4 -4
  103. package/dist/server/index.mjs.map +1 -1
  104. package/dist/server/{loadContent-CJcbYF3J.d.ts → loadContent-CdXDGsJM.d.ts} +5 -4
  105. package/dist/server/{loadContent-zhlL4YSE.d.mts → loadContent-v2n6pOlO.d.mts} +5 -4
  106. package/dist/server/loadPage-3ECPF426.js +11 -0
  107. package/dist/server/loadPage-3ECPF426.js.map +1 -0
  108. package/dist/server/loadPage-LW273NYO.mjs +11 -0
  109. package/dist/server/loadPage-LW273NYO.mjs.map +1 -0
  110. package/dist/server/{loadPage-CCf15nt8.d.mts → loadPage-bejlajm9.d.ts} +147 -5
  111. package/dist/server/{loadPage-BYmVMk0V.d.ts → loadPage-en10WQrt.d.mts} +147 -5
  112. package/dist/server/metadata.d.mts +10 -6
  113. package/dist/server/metadata.d.ts +10 -6
  114. package/dist/server/metadata.js +3 -1
  115. package/dist/server/metadata.js.map +1 -1
  116. package/dist/server/metadata.mjs +2 -0
  117. package/dist/server/metadata.mjs.map +1 -1
  118. package/dist/server/navigation.d.mts +100 -0
  119. package/dist/server/navigation.d.ts +100 -0
  120. package/dist/server/navigation.js +44 -0
  121. package/dist/server/navigation.js.map +1 -0
  122. package/dist/server/navigation.mjs +44 -0
  123. package/dist/server/navigation.mjs.map +1 -0
  124. package/dist/server/rendering/server.d.mts +10 -7
  125. package/dist/server/rendering/server.d.ts +10 -7
  126. package/dist/server/rendering/server.js +7 -4
  127. package/dist/server/rendering/server.js.map +1 -1
  128. package/dist/server/rendering/server.mjs +6 -3
  129. package/dist/server/rendering.d.mts +173 -9
  130. package/dist/server/rendering.d.ts +173 -9
  131. package/dist/server/rendering.js +12 -9
  132. package/dist/server/rendering.js.map +1 -1
  133. package/dist/server/rendering.mjs +14 -11
  134. package/dist/server/rendering.mjs.map +1 -1
  135. package/dist/server/routing.d.mts +10 -6
  136. package/dist/server/routing.d.ts +10 -6
  137. package/dist/server/routing.js +4 -2
  138. package/dist/server/routing.js.map +1 -1
  139. package/dist/server/routing.mjs +3 -1
  140. package/dist/server/routing.mjs.map +1 -1
  141. package/dist/server/schema-Bpy9N5ZI.d.mts +1870 -0
  142. package/dist/server/schema-Bpy9N5ZI.d.ts +1870 -0
  143. package/dist/server/server.d.mts +12 -8
  144. package/dist/server/server.d.ts +12 -8
  145. package/dist/server/server.js +7 -5
  146. package/dist/server/server.js.map +1 -1
  147. package/dist/server/server.mjs +6 -4
  148. package/dist/server/theme-bridge.js +13 -10
  149. package/dist/server/theme-bridge.js.map +1 -1
  150. package/dist/server/theme-bridge.mjs +10 -7
  151. package/dist/server/theme-bridge.mjs.map +1 -1
  152. package/dist/server/theme.js +3 -1
  153. package/dist/server/theme.js.map +1 -1
  154. package/dist/server/theme.mjs +2 -0
  155. package/dist/server/theme.mjs.map +1 -1
  156. package/dist/server/{types-BCeqWtI2.d.mts → types-Bq3520hK.d.mts} +3 -3
  157. package/dist/server/{types-C6gmRHLe.d.mts → types-CLusapsM.d.mts} +1 -1
  158. package/dist/server/types-Cc7lyPkN.d.ts +4043 -0
  159. package/dist/server/{types-BCeqWtI2.d.ts → types-D-rqOU5I.d.ts} +3 -3
  160. package/dist/server/{types-C6gmRHLe.d.ts → types-Ls6BkLKg.d.ts} +1 -1
  161. package/dist/server/{types-Bbo01M7P.d.mts → types-_nDnPHpv.d.mts} +27 -1
  162. package/dist/server/{types-Bbo01M7P.d.ts → types-_nDnPHpv.d.ts} +27 -1
  163. package/dist/server/types-nVerjjdv.d.mts +4043 -0
  164. package/package.json +22 -17
  165. package/dist/server/chunk-3KKZVGH4.mjs +0 -179
  166. package/dist/server/chunk-3KKZVGH4.mjs.map +0 -1
  167. package/dist/server/chunk-4Z3GPTCS.js +0 -179
  168. package/dist/server/chunk-4Z3GPTCS.js.map +0 -1
  169. package/dist/server/chunk-JB4LIEFS.js.map +0 -1
  170. package/dist/server/chunk-QQ6U4QX6.js +0 -120
  171. package/dist/server/chunk-QQ6U4QX6.js.map +0 -1
  172. package/dist/server/chunk-R5YGLRUG.mjs +0 -122
  173. package/dist/server/chunk-R5YGLRUG.mjs.map +0 -1
  174. package/dist/server/chunk-SW7LE4M3.js.map +0 -1
  175. package/dist/server/chunk-W3K7LVPS.mjs +0 -120
  176. package/dist/server/chunk-W3K7LVPS.mjs.map +0 -1
  177. package/dist/server/chunk-YHEZMVTS.js +0 -122
  178. package/dist/server/chunk-YHEZMVTS.js.map +0 -1
  179. package/dist/server/loadPage-DVH3DW6E.js +0 -9
  180. package/dist/server/loadPage-DVH3DW6E.js.map +0 -1
  181. package/dist/server/loadPage-PHQZ6XQZ.mjs +0 -9
  182. /package/dist/server/{loadPage-PHQZ6XQZ.mjs.map → chunk-BJTO5JO5.mjs.map} +0 -0
  183. /package/dist/server/{chunk-2RW5HAQQ.mjs.map → chunk-JTAERCX2.mjs.map} +0 -0
  184. /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, P as Page, b as PageProps, l as loadPage } from './loadPage-BYmVMk0V.js';
2
- export { HeaderData, Layout, LayoutProps } from './components.js';
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-CJcbYF3J.js';
5
- export { AppointmentBookingContent, BackgroundInput, BlockOverrideComponent, BlockOverrides, BlogListingContent, BlogPlaceholderContent, BlogPostContent, BodyTextContent, ColumnsContent, CtaFullContent, CustomLinkValue, EventCalendarContent, EventRegistrationContent, ExternalLinkValue, FaqContent, FormBlockContent, HeroContent, HeroMedia, InternalLinkValue, LinkValue, Media, PageOutline, PageRenderer, ResolvedBackground, RichText, RichTextPrimitiveProps, RouteMap, SectionBackground, SectionBackgroundProps, SiteFooterContent, SiteHeaderContent, SystemBlockComponentProps, TestimonialEntryContent, TestimonialsBlockContent, Theme, ThemeTokens, TipTapNode, buildThemeRuntime, resolveBackground, resolveImageUrl } from '@riverbankcms/blocks';
6
- import './types-C6gmRHLe.js';
7
- import '@riverbankcms/api';
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 };
@@ -2,27 +2,30 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkF472SMKXjs = require('./chunk-F472SMKX.js');
5
+ var _chunkTO7FD6TQjs = require('./chunk-TO7FD6TQ.js');
6
6
 
7
7
 
8
- var _chunkADREPXFUjs = require('./chunk-ADREPXFU.js');
8
+ var _chunk62ZJI564js = require('./chunk-62ZJI564.js');
9
9
 
10
10
 
11
- var _chunkJB4LIEFSjs = require('./chunk-JB4LIEFS.js');
11
+ var _chunk5R4NMVXAjs = require('./chunk-5R4NMVXA.js');
12
12
 
13
13
 
14
14
 
15
- var _chunkYHEZMVTSjs = require('./chunk-YHEZMVTS.js');
16
- require('./chunk-YXDDFG3N.js');
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 = _chunkJB4LIEFSjs.Block; exports.Layout = _chunkYHEZMVTSjs.Layout; exports.Page = _chunkYHEZMVTSjs.Page; exports.PageRenderer = _blocks.PageRenderer; exports.RichText = _blocks.RichText; exports.SectionBackground = _blocks.SectionBackground; exports.buildThemeRuntime = _blocks.buildThemeRuntime; exports.isEntryContent = _chunkF472SMKXjs.isEntryContent; exports.isPageContent = _chunkF472SMKXjs.isPageContent; exports.loadContent = _chunkF472SMKXjs.loadContent; exports.loadPage = _chunkADREPXFUjs.loadPage; exports.resolveBackground = _blocks.resolveBackground; exports.resolveImageUrl = _blocks.resolveImageUrl;
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","../../src/rendering/index.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACMA,8CAA2E;AAyC3E;AACE;AACA;AAAA;AD3CF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,qnBAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering.js","sourcesContent":[null,"/**\n * Rendering components and utilities for Riverbank CMS\n *\n * These components allow you to render Builder pages and blocks\n * in your own application with ergonomic data fetching helpers.\n */\n\n// High-level components (recommended)\nexport { Page } from './components/Page';\nexport type { PageProps } from './components/Page';\n\nexport { Layout } from './components/Layout';\nexport type { LayoutProps, HeaderData } from './components/Layout';\n\nexport { Block } from './components/Block';\nexport type { BlockProps } from './components/Block';\n\n// Server-side helpers (also available via @riverbankcms/sdk/server)\nexport { loadPage } from './helpers/loadPage';\nexport type { LoadPageParams, LoadPageResult } from './helpers/loadPage';\nexport { loadContent, isPageContent, isEntryContent } from './helpers/loadContent';\nexport type { LoadContentParams, LoadContentResult, ContentEntryData } from './helpers/loadContent';\n\n// Low-level re-exports from @riverbankcms/blocks (for advanced usage)\nexport { PageRenderer, buildThemeRuntime, RichText, resolveImageUrl } from '@riverbankcms/blocks';\nexport type {\n PageOutline,\n RouteMap,\n Theme,\n ThemeTokens,\n BlockOverrides,\n BlockOverrideComponent,\n // For creating typed custom block components\n SystemBlockComponentProps,\n // Block content types - all system blocks\n HeroContent,\n HeroMedia,\n BodyTextContent,\n ColumnsContent,\n CtaFullContent,\n FaqContent,\n FormBlockContent,\n TestimonialsBlockContent,\n TestimonialEntryContent,\n BlogPostContent,\n BlogListingContent,\n BlogPlaceholderContent,\n SiteHeaderContent,\n SiteFooterContent,\n AppointmentBookingContent,\n EventCalendarContent,\n EventRegistrationContent,\n // Link types for block props\n LinkValue,\n InternalLinkValue,\n ExternalLinkValue,\n CustomLinkValue,\n // Media type\n Media,\n // Rich text types\n RichTextPrimitiveProps,\n TipTapNode,\n} from '@riverbankcms/blocks';\n\n// Helpers for custom block components\nexport {\n resolveBackground,\n SectionBackground,\n type BackgroundInput,\n type ResolvedBackground,\n type SectionBackgroundProps,\n} from '@riverbankcms/blocks';\n\n/**\n * @example Server-side rendering (Next.js App Router)\n * ```tsx\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { loadPage, Page } from '@riverbankcms/sdk/rendering';\n *\n * // Note: baseUrl must include the /api path\n * const client = createRiverbankClient({\n * apiKey: process.env.RIVERBANK_API_KEY,\n * baseUrl: process.env.NEXT_PUBLIC_DASHBOARD_URL + '/api',\n * });\n *\n * export default async function PageRoute({ params }) {\n * const pageData = await loadPage({\n * client,\n * siteId: 'site-id',\n * path: `/${params.slug || ''}`,\n * });\n *\n * return <Page {...pageData} />;\n * }\n * ```\n *\n * @example Client-side rendering\n * ```tsx\n * 'use client';\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { usePage } from '@riverbankcms/sdk/hooks';\n * import { Page } from '@riverbankcms/sdk/rendering';\n *\n * const client = createRiverbankClient({\n * apiKey: process.env.NEXT_PUBLIC_RIVERBANK_API_KEY,\n * baseUrl: process.env.NEXT_PUBLIC_DASHBOARD_URL + '/api',\n * });\n *\n * function MyPage({ path }) {\n * const pageData = usePage({ client, siteId: 'site-id', path });\n *\n * if (pageData.loading) return <div>Loading...</div>;\n * if (pageData.error) return <div>Error: {pageData.error.message}</div>;\n *\n * return <Page {...pageData} />;\n * }\n * ```\n */\n"]}
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-PEAXKTDU.mjs";
5
+ } from "./chunk-OP2GHK27.mjs";
6
6
  import {
7
7
  loadPage
8
- } from "./chunk-2RW5HAQQ.mjs";
8
+ } from "./chunk-JTAERCX2.mjs";
9
9
  import {
10
10
  Block
11
- } from "./chunk-WKG57P2H.mjs";
11
+ } from "./chunk-PN3CHDVX.mjs";
12
12
  import {
13
13
  Layout,
14
14
  Page
15
- } from "./chunk-R5YGLRUG.mjs";
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
- SectionBackground
24
- } from "@riverbankcms/blocks";
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":["../../src/rendering/index.ts"],"sourcesContent":["/**\n * Rendering components and utilities for Riverbank CMS\n *\n * These components allow you to render Builder pages and blocks\n * in your own application with ergonomic data fetching helpers.\n */\n\n// High-level components (recommended)\nexport { Page } from './components/Page';\nexport type { PageProps } from './components/Page';\n\nexport { Layout } from './components/Layout';\nexport type { LayoutProps, HeaderData } from './components/Layout';\n\nexport { Block } from './components/Block';\nexport type { BlockProps } from './components/Block';\n\n// Server-side helpers (also available via @riverbankcms/sdk/server)\nexport { loadPage } from './helpers/loadPage';\nexport type { LoadPageParams, LoadPageResult } from './helpers/loadPage';\nexport { loadContent, isPageContent, isEntryContent } from './helpers/loadContent';\nexport type { LoadContentParams, LoadContentResult, ContentEntryData } from './helpers/loadContent';\n\n// Low-level re-exports from @riverbankcms/blocks (for advanced usage)\nexport { PageRenderer, buildThemeRuntime, RichText, resolveImageUrl } from '@riverbankcms/blocks';\nexport type {\n PageOutline,\n RouteMap,\n Theme,\n ThemeTokens,\n BlockOverrides,\n BlockOverrideComponent,\n // For creating typed custom block components\n SystemBlockComponentProps,\n // Block content types - all system blocks\n HeroContent,\n HeroMedia,\n BodyTextContent,\n ColumnsContent,\n CtaFullContent,\n FaqContent,\n FormBlockContent,\n TestimonialsBlockContent,\n TestimonialEntryContent,\n BlogPostContent,\n BlogListingContent,\n BlogPlaceholderContent,\n SiteHeaderContent,\n SiteFooterContent,\n AppointmentBookingContent,\n EventCalendarContent,\n EventRegistrationContent,\n // Link types for block props\n LinkValue,\n InternalLinkValue,\n ExternalLinkValue,\n CustomLinkValue,\n // Media type\n Media,\n // Rich text types\n RichTextPrimitiveProps,\n TipTapNode,\n} from '@riverbankcms/blocks';\n\n// Helpers for custom block components\nexport {\n resolveBackground,\n SectionBackground,\n type BackgroundInput,\n type ResolvedBackground,\n type SectionBackgroundProps,\n} from '@riverbankcms/blocks';\n\n/**\n * @example Server-side rendering (Next.js App Router)\n * ```tsx\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { loadPage, Page } from '@riverbankcms/sdk/rendering';\n *\n * // Note: baseUrl must include the /api path\n * const client = createRiverbankClient({\n * apiKey: process.env.RIVERBANK_API_KEY,\n * baseUrl: process.env.NEXT_PUBLIC_DASHBOARD_URL + '/api',\n * });\n *\n * export default async function PageRoute({ params }) {\n * const pageData = await loadPage({\n * client,\n * siteId: 'site-id',\n * path: `/${params.slug || ''}`,\n * });\n *\n * return <Page {...pageData} />;\n * }\n * ```\n *\n * @example Client-side rendering\n * ```tsx\n * 'use client';\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { usePage } from '@riverbankcms/sdk/hooks';\n * import { Page } from '@riverbankcms/sdk/rendering';\n *\n * const client = createRiverbankClient({\n * apiKey: process.env.NEXT_PUBLIC_RIVERBANK_API_KEY,\n * baseUrl: process.env.NEXT_PUBLIC_DASHBOARD_URL + '/api',\n * });\n *\n * function MyPage({ path }) {\n * const pageData = usePage({ client, siteId: 'site-id', path });\n *\n * if (pageData.loading) return <div>Loading...</div>;\n * if (pageData.error) return <div>Error: {pageData.error.message}</div>;\n *\n * return <Page {...pageData} />;\n * }\n * ```\n */\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,SAAS,cAAc,mBAAmB,UAAU,uBAAuB;AAyC3E;AAAA,EACE;AAAA,EACA;AAAA,OAIK;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,10 +1,14 @@
1
- import { R as RiverbankClient } from './types-C6gmRHLe.mjs';
2
- import { a as LoadPageResult } from './loadPage-CCf15nt8.mjs';
3
- import '@riverbankcms/api';
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 '@riverbankcms/blocks';
6
- import '@riverbankcms/blocks/system/data';
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
@@ -1,10 +1,14 @@
1
- import { R as RiverbankClient } from './types-C6gmRHLe.js';
2
- import { a as LoadPageResult } from './loadPage-BYmVMk0V.js';
3
- import '@riverbankcms/api';
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 '@riverbankcms/blocks';
6
- import '@riverbankcms/blocks/system/data';
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
@@ -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; } }// src/routing/resolveRoute.ts
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-DVH3DW6E.js")));
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;ACkFA,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;ADjIA;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"]}
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"]}
@@ -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-PHQZ6XQZ.mjs");
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":";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":[]}
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":[]}