@riverbankcms/sdk 0.7.2 → 0.7.3

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 (187) hide show
  1. package/README.md +54 -0
  2. package/dist/client/bookings.d.mts +2 -0
  3. package/dist/client/bookings.d.ts +2 -0
  4. package/dist/client/bookings.js +2956 -104
  5. package/dist/client/bookings.js.map +1 -1
  6. package/dist/client/bookings.mjs +2929 -70
  7. package/dist/client/bookings.mjs.map +1 -1
  8. package/dist/client/client.d.mts +2 -2
  9. package/dist/client/client.d.ts +2 -2
  10. package/dist/client/client.js +80 -11
  11. package/dist/client/client.js.map +1 -1
  12. package/dist/client/client.mjs +87 -11
  13. package/dist/client/client.mjs.map +1 -1
  14. package/dist/client/hooks.d.mts +2 -2
  15. package/dist/client/hooks.d.ts +2 -2
  16. package/dist/client/rendering/client.js +3070 -259
  17. package/dist/client/rendering/client.js.map +1 -1
  18. package/dist/client/rendering/client.mjs +3212 -395
  19. package/dist/client/rendering/client.mjs.map +1 -1
  20. package/dist/client/spam-protection.d.mts +55 -0
  21. package/dist/client/spam-protection.d.ts +55 -0
  22. package/dist/client/spam-protection.js +2915 -0
  23. package/dist/client/spam-protection.js.map +1 -0
  24. package/dist/client/spam-protection.mjs +2893 -0
  25. package/dist/client/spam-protection.mjs.map +1 -0
  26. package/dist/client/{usePage-Db9kzA41.d.ts → usePage-BYmJCCm1.d.ts} +14 -2
  27. package/dist/client/{usePage-C9tJpuKa.d.mts → usePage-DZtrWajy.d.mts} +14 -2
  28. package/dist/server/{Layout-Ce7PU9I5.d.ts → Layout-Yluyb6sK.d.ts} +1 -1
  29. package/dist/server/{Layout-WllR8Zug.d.mts → Layout-qWLdVm5-.d.mts} +1 -1
  30. package/dist/server/chunk-2IZ6S225.js +122 -0
  31. package/dist/server/chunk-2IZ6S225.js.map +1 -0
  32. package/dist/server/chunk-4CV4JOE5.js +27 -0
  33. package/dist/server/chunk-4CV4JOE5.js.map +1 -0
  34. package/dist/server/{chunk-AET56TQX.mjs → chunk-5LRR64Y6.mjs} +32 -5
  35. package/dist/server/chunk-5LRR64Y6.mjs.map +1 -0
  36. package/dist/server/{chunk-VODFQMUW.js → chunk-NBTRDLCM.js} +32 -5
  37. package/dist/server/chunk-NBTRDLCM.js.map +1 -0
  38. package/dist/server/chunk-NFEGQTCC.mjs +27 -0
  39. package/dist/server/{chunk-5JT452F2.mjs → chunk-NFQLH5IA.mjs} +340 -19
  40. package/dist/server/chunk-NFQLH5IA.mjs.map +1 -0
  41. package/dist/server/chunk-PPHZV6YD.mjs +122 -0
  42. package/dist/server/chunk-PPHZV6YD.mjs.map +1 -0
  43. package/dist/server/{chunk-HMENX4Y7.js → chunk-VLXTNB2C.js} +370 -49
  44. package/dist/server/chunk-VLXTNB2C.js.map +1 -0
  45. package/dist/server/{components-RPzRQve6.d.mts → components-DNHfSCML.d.mts} +3 -3
  46. package/dist/server/{components--LT61IKp.d.ts → components-Di5ME6He.d.ts} +3 -3
  47. package/dist/server/components.d.mts +5 -5
  48. package/dist/server/components.d.ts +5 -5
  49. package/dist/server/components.js +1 -0
  50. package/dist/server/components.js.map +1 -1
  51. package/dist/server/components.mjs +1 -0
  52. package/dist/server/config-validation.js +1 -0
  53. package/dist/server/config-validation.js.map +1 -1
  54. package/dist/server/config-validation.mjs +1 -0
  55. package/dist/server/config.js +1 -0
  56. package/dist/server/config.js.map +1 -1
  57. package/dist/server/config.mjs +1 -0
  58. package/dist/server/config.mjs.map +1 -1
  59. package/dist/server/data.d.mts +2 -2
  60. package/dist/server/data.d.ts +2 -2
  61. package/dist/server/data.js +1 -0
  62. package/dist/server/data.js.map +1 -1
  63. package/dist/server/data.mjs +1 -0
  64. package/dist/server/env.d.mts +91 -5
  65. package/dist/server/env.d.ts +91 -5
  66. package/dist/server/env.js +9 -2
  67. package/dist/server/env.js.map +1 -1
  68. package/dist/server/env.mjs +8 -1
  69. package/dist/server/{index-BL66CU6d.d.mts → index--Oyunk_B.d.mts} +2 -2
  70. package/dist/server/{index-CJk9iQQW.d.ts → index-C9Ra8dza.d.ts} +2 -2
  71. package/dist/server/{index-Bkva0WAj.d.mts → index-Clm3skz_.d.mts} +1 -1
  72. package/dist/server/{index-CSBWKA3r.d.ts → index-DLvNddi-.d.ts} +1 -1
  73. package/dist/server/index.d.mts +215 -4
  74. package/dist/server/index.d.ts +215 -4
  75. package/dist/server/index.js +301 -3
  76. package/dist/server/index.js.map +1 -1
  77. package/dist/server/index.mjs +301 -3
  78. package/dist/server/index.mjs.map +1 -1
  79. package/dist/server/{loadContent-CXUWMuzY.d.ts → loadContent-D7LQwI0o.d.ts} +3 -3
  80. package/dist/server/{loadContent-F_tAS0Nl.d.mts → loadContent-DVfuBLiZ.d.mts} +3 -3
  81. package/dist/server/{loadPage-6I7F6GRF.js → loadPage-AXNAERDS.js} +2 -1
  82. package/dist/server/loadPage-AXNAERDS.js.map +1 -0
  83. package/dist/server/{loadPage-i2r-X5b9.d.ts → loadPage-BmYJCe_V.d.ts} +2 -2
  84. package/dist/server/{loadPage-CxlYLe5K.d.mts → loadPage-BucnLHmE.d.mts} +2 -2
  85. package/dist/server/{loadPage-JI2SML4M.mjs → loadPage-XR7ORQ2E.mjs} +2 -1
  86. package/dist/server/loadPage-XR7ORQ2E.mjs.map +1 -0
  87. package/dist/server/metadata.d.mts +4 -4
  88. package/dist/server/metadata.d.ts +4 -4
  89. package/dist/server/metadata.js +1 -0
  90. package/dist/server/metadata.js.map +1 -1
  91. package/dist/server/metadata.mjs +1 -0
  92. package/dist/server/navigation.d.mts +2 -2
  93. package/dist/server/navigation.d.ts +2 -2
  94. package/dist/server/navigation.js +1 -0
  95. package/dist/server/navigation.js.map +1 -1
  96. package/dist/server/navigation.mjs +1 -0
  97. package/dist/server/next/revalidate.js +5 -4
  98. package/dist/server/next/revalidate.js.map +1 -1
  99. package/dist/server/next/revalidate.mjs +3 -2
  100. package/dist/server/next/revalidate.mjs.map +1 -1
  101. package/dist/server/next/tags.d.mts +3 -0
  102. package/dist/server/next/tags.d.ts +3 -0
  103. package/dist/server/next/tags.js +3 -1
  104. package/dist/server/next/tags.js.map +1 -1
  105. package/dist/server/next/tags.mjs +2 -0
  106. package/dist/server/next/tags.mjs.map +1 -1
  107. package/dist/server/next.d.mts +5 -5
  108. package/dist/server/next.d.ts +5 -5
  109. package/dist/server/next.js +5 -4
  110. package/dist/server/next.js.map +1 -1
  111. package/dist/server/next.mjs +3 -2
  112. package/dist/server/next.mjs.map +1 -1
  113. package/dist/server/rendering/server.d.mts +4 -4
  114. package/dist/server/rendering/server.d.ts +4 -4
  115. package/dist/server/rendering/server.js +1 -0
  116. package/dist/server/rendering/server.js.map +1 -1
  117. package/dist/server/rendering/server.mjs +1 -0
  118. package/dist/server/rendering.d.mts +7 -7
  119. package/dist/server/rendering.d.ts +7 -7
  120. package/dist/server/rendering.js +1 -0
  121. package/dist/server/rendering.js.map +1 -1
  122. package/dist/server/rendering.mjs +1 -0
  123. package/dist/server/routing.d.mts +3 -3
  124. package/dist/server/routing.d.ts +3 -3
  125. package/dist/server/routing.js +4 -2
  126. package/dist/server/routing.js.map +1 -1
  127. package/dist/server/routing.mjs +3 -1
  128. package/dist/server/routing.mjs.map +1 -1
  129. package/dist/server/server.d.mts +5 -5
  130. package/dist/server/server.d.ts +5 -5
  131. package/dist/server/server.js +3 -2
  132. package/dist/server/server.js.map +1 -1
  133. package/dist/server/server.mjs +2 -1
  134. package/dist/server/theme-bridge.js +1 -0
  135. package/dist/server/theme-bridge.js.map +1 -1
  136. package/dist/server/theme-bridge.mjs +1 -0
  137. package/dist/server/theme-bridge.mjs.map +1 -1
  138. package/dist/server/theme.js +3 -1
  139. package/dist/server/theme.js.map +1 -1
  140. package/dist/server/theme.mjs +2 -0
  141. package/dist/server/theme.mjs.map +1 -1
  142. package/dist/server/{types-DnkRh0UL.d.ts → types-BRQyLrQU.d.ts} +14 -2
  143. package/dist/server/{types-Dsu9wsUh.d.mts → types-BSV6Vc-P.d.mts} +2 -2
  144. package/dist/server/{types-MF2AWoKv.d.mts → types-C-LShyIg.d.mts} +14 -2
  145. package/dist/server/{types-CVykEqXN.d.ts → types-Dt98DeYa.d.ts} +2 -2
  146. package/dist/server/webhooks.d.mts +8 -2
  147. package/dist/server/webhooks.d.ts +8 -2
  148. package/dist/server/webhooks.js +3 -2
  149. package/dist/server/webhooks.js.map +1 -1
  150. package/dist/server/webhooks.mjs +2 -1
  151. package/package.json +7 -1
  152. package/dist/client/resolver-BhueZVxZ.d.mts +0 -61
  153. package/dist/client/resolver-BhueZVxZ.d.ts +0 -61
  154. package/dist/client/usePage--fGlyrgj.d.mts +0 -6439
  155. package/dist/client/usePage-BBcFCxOU.d.ts +0 -6297
  156. package/dist/client/usePage-BC8Q2E3t.d.mts +0 -6431
  157. package/dist/client/usePage-BTPnCuWC.d.mts +0 -6511
  158. package/dist/client/usePage-BXjk8BhD.d.mts +0 -6704
  159. package/dist/client/usePage-BafOS9UT.d.mts +0 -6512
  160. package/dist/client/usePage-BcjWPXvh.d.mts +0 -6388
  161. package/dist/client/usePage-BiOReg0_.d.ts +0 -6704
  162. package/dist/client/usePage-Bnx-kA6x.d.mts +0 -6670
  163. package/dist/client/usePage-BvKAa3Zw.d.mts +0 -366
  164. package/dist/client/usePage-BvKAa3Zw.d.ts +0 -366
  165. package/dist/client/usePage-BydHcMYB.d.mts +0 -6297
  166. package/dist/client/usePage-C3ZKNwY7.d.mts +0 -6393
  167. package/dist/client/usePage-CE7X5NcN.d.ts +0 -6439
  168. package/dist/client/usePage-CHEybPMD.d.ts +0 -6429
  169. package/dist/client/usePage-CrKw1H6Y.d.ts +0 -6338
  170. package/dist/client/usePage-CyYpOJud.d.ts +0 -6388
  171. package/dist/client/usePage-D4fxZbRR.d.mts +0 -6429
  172. package/dist/client/usePage-DMI8ImsU.d.mts +0 -6338
  173. package/dist/client/usePage-DoPI6b8V.d.ts +0 -6511
  174. package/dist/client/usePage-DpRNZUtP.d.ts +0 -6431
  175. package/dist/client/usePage-QNWArrVO.d.ts +0 -6670
  176. package/dist/client/usePage-fBgPB6Oq.d.ts +0 -6512
  177. package/dist/client/usePage-gpVaeWDy.d.ts +0 -6393
  178. package/dist/server/chunk-5JT452F2.mjs.map +0 -1
  179. package/dist/server/chunk-AET56TQX.mjs.map +0 -1
  180. package/dist/server/chunk-HMENX4Y7.js.map +0 -1
  181. package/dist/server/chunk-LQUKXIW7.mjs +0 -13
  182. package/dist/server/chunk-LQUKXIW7.mjs.map +0 -1
  183. package/dist/server/chunk-VODFQMUW.js.map +0 -1
  184. package/dist/server/chunk-WYNEYDXO.js +0 -13
  185. package/dist/server/chunk-WYNEYDXO.js.map +0 -1
  186. package/dist/server/loadPage-6I7F6GRF.js.map +0 -1
  187. /package/dist/server/{loadPage-JI2SML4M.mjs.map → chunk-NFEGQTCC.mjs.map} +0 -0
@@ -1,6 +1,7 @@
1
- export { c as createRiverbankClient } from './index-Bkva0WAj.mjs';
2
- export { E as EntriesResponse, c as EntriesResponseWithMeta, b as EntryResponse, P as PageResponse, d as PaginationMeta, R as RiverbankClient, a as RiverbankClientConfig, S as SiteResponse } from './types-MF2AWoKv.mjs';
3
- import { A as APIEndpoints, b as APICallParams } from './types-Dsu9wsUh.mjs';
1
+ export { c as createRiverbankClient } from './index-Clm3skz_.mjs';
2
+ import { R as RiverbankClient, S as SiteResponse, P as PageResponse, G as GetEntriesBaseParams, E as EntriesResponse, d as EntriesResponseWithMeta } from './types-C-LShyIg.mjs';
3
+ export { j as CircuitBreakerConfig, C as CircuitState, b as EntryResponse, e as PaginationMeta, f as ResilienceConfig, h as ResilienceSource, g as ResilienceStatus, i as RetryConfig, a as RiverbankClientConfig } from './types-C-LShyIg.mjs';
4
+ import { A as APIEndpoints, b as APICallParams, a as NavigationItemRecord } from './types-BSV6Vc-P.mjs';
4
5
  import './schema-Z6-afHJG.mjs';
5
6
  export { g as ContainerAlignment, f as ContainerMaxWidth, d as ContainerOptionsConfig, R as RiverbankSiteConfig, b as SectionBackground, c as SectionOptionsConfig, e as SectionSpacing, S as SiteStyleConfig } from './types-BjgZt8xJ.mjs';
6
7
  export { B as BlockKind, C as CustomBlockKind, S as SYSTEM_BLOCK_KINDS, a as SystemBlockKind } from './blockKinds-B6MWzNWp.mjs';
@@ -1644,4 +1645,214 @@ declare const API_ENDPOINTS: {
1644
1645
  };
1645
1646
  declare function buildEndpointURL(baseURL: string, endpoint: keyof APIEndpoints): string;
1646
1647
 
1647
- export { API_ENDPOINTS, type ApiClient, buildEndpointURL };
1648
+ /**
1649
+ * Types for prebuild cache functionality
1650
+ *
1651
+ * The prebuild cache generates static JSON files at build time that serve
1652
+ * as a last-resort fallback when the CMS is unavailable.
1653
+ */
1654
+
1655
+ /**
1656
+ * Content types that can be included in the prebuild cache.
1657
+ */
1658
+ type PrebuildContentType = 'site' | 'pages' | 'entries' | 'navigation';
1659
+ /**
1660
+ * Progress callback data for prebuild operations.
1661
+ */
1662
+ interface PrebuildProgress {
1663
+ /** Current item number (1-indexed) */
1664
+ current: number;
1665
+ /** Total items to process */
1666
+ total: number;
1667
+ /** Description of current item being processed */
1668
+ item: string;
1669
+ /** Content type being processed */
1670
+ contentType: PrebuildContentType;
1671
+ }
1672
+ /**
1673
+ * Options for the prebuildCache function.
1674
+ */
1675
+ interface PrebuildOptions {
1676
+ /** Configured Riverbank client */
1677
+ client: RiverbankClient;
1678
+ /** Site ID to prebuild */
1679
+ siteId: string;
1680
+ /** Output directory for prebuild cache (e.g., '.riverbank-cache') */
1681
+ outputDir: string;
1682
+ /** Content types to include (default: all) */
1683
+ include?: PrebuildContentType[];
1684
+ /** Filter entries to specific content types (default: all configured) */
1685
+ contentTypes?: string[];
1686
+ /** Gzip compress output files (default: false) */
1687
+ compress?: boolean;
1688
+ /** Progress callback fired during generation */
1689
+ onProgress?: (progress: PrebuildProgress) => void;
1690
+ }
1691
+ /**
1692
+ * Result from prebuildCache function.
1693
+ */
1694
+ interface PrebuildResult {
1695
+ /** Whether prebuild completed successfully */
1696
+ success: boolean;
1697
+ /** Output directory path */
1698
+ outputDir: string;
1699
+ /** List of generated files (relative to outputDir) */
1700
+ files: string[];
1701
+ /** Total size of all files in bytes */
1702
+ totalSize: number;
1703
+ /** ISO timestamp when prebuild was generated */
1704
+ generatedAt: string;
1705
+ /** SHA256 checksum of manifest for validation */
1706
+ checksum: string;
1707
+ /** Any errors encountered (partial success possible) */
1708
+ errors?: string[];
1709
+ }
1710
+ /**
1711
+ * Manifest file structure for prebuild cache.
1712
+ */
1713
+ interface PrebuildManifest {
1714
+ /** Manifest version for compatibility checking */
1715
+ version: string;
1716
+ /** ISO timestamp when prebuild was generated */
1717
+ generatedAt: string;
1718
+ /** SHA256 checksum of manifest contents (excluding checksum field) */
1719
+ checksum: string;
1720
+ /** Site ID this prebuild is for */
1721
+ siteId: string;
1722
+ /** SDK version used to generate prebuild */
1723
+ sdkVersion: string;
1724
+ /** Mapping of cache keys to file paths */
1725
+ keyToFile: Record<string, string>;
1726
+ /** Content types included in this prebuild */
1727
+ includedTypes: PrebuildContentType[];
1728
+ /** Total number of files generated */
1729
+ fileCount: number;
1730
+ /** Total size in bytes */
1731
+ totalSize: number;
1732
+ }
1733
+ /**
1734
+ * Navigation cache file structure.
1735
+ */
1736
+ interface NavigationCacheFile {
1737
+ /** Navigation menu data */
1738
+ menus: Array<{
1739
+ /** Menu identifier (used as lookup key) */
1740
+ identifier: string | null;
1741
+ /** Menu ID (fallback if no identifier) */
1742
+ id: string;
1743
+ /** Menu display name */
1744
+ name: string;
1745
+ /** Navigation items in this menu */
1746
+ items: NavigationItemRecord[];
1747
+ }>;
1748
+ /** When this was generated */
1749
+ generatedAt: string;
1750
+ }
1751
+
1752
+ /**
1753
+ * Prebuild cache generation
1754
+ *
1755
+ * Exports static content at build time for use as a last-resort fallback
1756
+ * when the CMS is unavailable.
1757
+ */
1758
+
1759
+ /**
1760
+ * Generate a prebuild cache for the specified site.
1761
+ *
1762
+ * The prebuild cache contains static JSON files that can serve as a
1763
+ * last-resort fallback when the CMS is unavailable.
1764
+ *
1765
+ * @param options - Prebuild configuration
1766
+ * @returns Result with generated files and metadata
1767
+ *
1768
+ * @example
1769
+ * ```typescript
1770
+ * import { createRiverbankClient, prebuildCache } from '@riverbankcms/sdk';
1771
+ *
1772
+ * const client = createRiverbankClient({ apiKey, baseUrl });
1773
+ *
1774
+ * const result = await prebuildCache({
1775
+ * client,
1776
+ * siteId: 'your-site-id',
1777
+ * outputDir: '.riverbank-cache',
1778
+ * onProgress: (p) => console.log(`${p.current}/${p.total}: ${p.item}`),
1779
+ * });
1780
+ *
1781
+ * console.log(`Generated ${result.files.length} files (${result.totalSize} bytes)`);
1782
+ * ```
1783
+ */
1784
+ declare function prebuildCache(options: PrebuildOptions): Promise<PrebuildResult>;
1785
+
1786
+ /**
1787
+ * Prebuild cache loader
1788
+ *
1789
+ * Loads content from the prebuild cache at runtime as a last-resort fallback.
1790
+ */
1791
+
1792
+ interface PrebuildLoaderConfig {
1793
+ /** Path to prebuild cache directory */
1794
+ prebuildDir: string;
1795
+ /** Maximum age in seconds for prebuild cache */
1796
+ maxPrebuildAgeSec?: number;
1797
+ }
1798
+ interface LoadResult<T> {
1799
+ /** Loaded data */
1800
+ data: T;
1801
+ /** Age of prebuild in seconds */
1802
+ prebuildAgeSec: number;
1803
+ }
1804
+ /**
1805
+ * Check if we're running in a Node.js environment with filesystem access.
1806
+ * Edge runtimes (Vercel Edge, Cloudflare Workers) don't have fs access.
1807
+ */
1808
+ declare function canUsePrebuild(): boolean;
1809
+ /**
1810
+ * Loader for reading data from the prebuild cache.
1811
+ *
1812
+ * Used as a last-resort fallback when the CMS is unavailable and
1813
+ * there's no cached data.
1814
+ */
1815
+ declare class PrebuildLoader {
1816
+ private readonly prebuildDir;
1817
+ private readonly maxPrebuildAgeSec;
1818
+ constructor(config: PrebuildLoaderConfig);
1819
+ /**
1820
+ * Check if prebuild is available and not expired.
1821
+ */
1822
+ isAvailable(): boolean;
1823
+ /**
1824
+ * Load site data from prebuild cache.
1825
+ */
1826
+ loadSite(siteId: string): LoadResult<SiteResponse> | null;
1827
+ /**
1828
+ * Load page data from prebuild cache.
1829
+ */
1830
+ loadPage(siteId: string, pagePath: string): LoadResult<PageResponse> | null;
1831
+ /**
1832
+ * Load entries from prebuild cache with runtime filtering.
1833
+ *
1834
+ * The prebuild stores ALL entries for each content type.
1835
+ * Filtering, ordering, and pagination are applied at runtime.
1836
+ */
1837
+ loadEntries(siteId: string, params: GetEntriesBaseParams & {
1838
+ includeMeta?: boolean;
1839
+ }): LoadResult<EntriesResponse | EntriesResponseWithMeta> | null;
1840
+ /**
1841
+ * Load navigation data from prebuild cache.
1842
+ */
1843
+ loadNavigation(): LoadResult<NavigationCacheFile['menus']> | null;
1844
+ /**
1845
+ * Get the manifest for inspection.
1846
+ */
1847
+ getManifest(): PrebuildManifest | null;
1848
+ /**
1849
+ * Clear the cached manifest (for testing).
1850
+ */
1851
+ clearCache(): void;
1852
+ }
1853
+ /**
1854
+ * Create a prebuild loader instance.
1855
+ */
1856
+ declare function createPrebuildLoader(config: PrebuildLoaderConfig): PrebuildLoader;
1857
+
1858
+ export { API_ENDPOINTS, type ApiClient, EntriesResponse, EntriesResponseWithMeta, type LoadResult, PageResponse, type PrebuildContentType, PrebuildLoader, type PrebuildLoaderConfig, type PrebuildManifest, type PrebuildOptions, type PrebuildProgress, type PrebuildResult, RiverbankClient, SiteResponse, buildEndpointURL, canUsePrebuild, createPrebuildLoader, prebuildCache };
@@ -1,6 +1,7 @@
1
- export { c as createRiverbankClient } from './index-CSBWKA3r.js';
2
- export { E as EntriesResponse, c as EntriesResponseWithMeta, b as EntryResponse, P as PageResponse, d as PaginationMeta, R as RiverbankClient, a as RiverbankClientConfig, S as SiteResponse } from './types-DnkRh0UL.js';
3
- import { A as APIEndpoints, b as APICallParams } from './types-CVykEqXN.js';
1
+ export { c as createRiverbankClient } from './index-DLvNddi-.js';
2
+ import { R as RiverbankClient, S as SiteResponse, P as PageResponse, G as GetEntriesBaseParams, E as EntriesResponse, d as EntriesResponseWithMeta } from './types-BRQyLrQU.js';
3
+ export { j as CircuitBreakerConfig, C as CircuitState, b as EntryResponse, e as PaginationMeta, f as ResilienceConfig, h as ResilienceSource, g as ResilienceStatus, i as RetryConfig, a as RiverbankClientConfig } from './types-BRQyLrQU.js';
4
+ import { A as APIEndpoints, b as APICallParams, a as NavigationItemRecord } from './types-Dt98DeYa.js';
4
5
  import './schema-Z6-afHJG.js';
5
6
  export { g as ContainerAlignment, f as ContainerMaxWidth, d as ContainerOptionsConfig, R as RiverbankSiteConfig, b as SectionBackground, c as SectionOptionsConfig, e as SectionSpacing, S as SiteStyleConfig } from './types-DLBhEPSt.js';
6
7
  export { B as BlockKind, C as CustomBlockKind, S as SYSTEM_BLOCK_KINDS, a as SystemBlockKind } from './blockKinds-B6MWzNWp.js';
@@ -1644,4 +1645,214 @@ declare const API_ENDPOINTS: {
1644
1645
  };
1645
1646
  declare function buildEndpointURL(baseURL: string, endpoint: keyof APIEndpoints): string;
1646
1647
 
1647
- export { API_ENDPOINTS, type ApiClient, buildEndpointURL };
1648
+ /**
1649
+ * Types for prebuild cache functionality
1650
+ *
1651
+ * The prebuild cache generates static JSON files at build time that serve
1652
+ * as a last-resort fallback when the CMS is unavailable.
1653
+ */
1654
+
1655
+ /**
1656
+ * Content types that can be included in the prebuild cache.
1657
+ */
1658
+ type PrebuildContentType = 'site' | 'pages' | 'entries' | 'navigation';
1659
+ /**
1660
+ * Progress callback data for prebuild operations.
1661
+ */
1662
+ interface PrebuildProgress {
1663
+ /** Current item number (1-indexed) */
1664
+ current: number;
1665
+ /** Total items to process */
1666
+ total: number;
1667
+ /** Description of current item being processed */
1668
+ item: string;
1669
+ /** Content type being processed */
1670
+ contentType: PrebuildContentType;
1671
+ }
1672
+ /**
1673
+ * Options for the prebuildCache function.
1674
+ */
1675
+ interface PrebuildOptions {
1676
+ /** Configured Riverbank client */
1677
+ client: RiverbankClient;
1678
+ /** Site ID to prebuild */
1679
+ siteId: string;
1680
+ /** Output directory for prebuild cache (e.g., '.riverbank-cache') */
1681
+ outputDir: string;
1682
+ /** Content types to include (default: all) */
1683
+ include?: PrebuildContentType[];
1684
+ /** Filter entries to specific content types (default: all configured) */
1685
+ contentTypes?: string[];
1686
+ /** Gzip compress output files (default: false) */
1687
+ compress?: boolean;
1688
+ /** Progress callback fired during generation */
1689
+ onProgress?: (progress: PrebuildProgress) => void;
1690
+ }
1691
+ /**
1692
+ * Result from prebuildCache function.
1693
+ */
1694
+ interface PrebuildResult {
1695
+ /** Whether prebuild completed successfully */
1696
+ success: boolean;
1697
+ /** Output directory path */
1698
+ outputDir: string;
1699
+ /** List of generated files (relative to outputDir) */
1700
+ files: string[];
1701
+ /** Total size of all files in bytes */
1702
+ totalSize: number;
1703
+ /** ISO timestamp when prebuild was generated */
1704
+ generatedAt: string;
1705
+ /** SHA256 checksum of manifest for validation */
1706
+ checksum: string;
1707
+ /** Any errors encountered (partial success possible) */
1708
+ errors?: string[];
1709
+ }
1710
+ /**
1711
+ * Manifest file structure for prebuild cache.
1712
+ */
1713
+ interface PrebuildManifest {
1714
+ /** Manifest version for compatibility checking */
1715
+ version: string;
1716
+ /** ISO timestamp when prebuild was generated */
1717
+ generatedAt: string;
1718
+ /** SHA256 checksum of manifest contents (excluding checksum field) */
1719
+ checksum: string;
1720
+ /** Site ID this prebuild is for */
1721
+ siteId: string;
1722
+ /** SDK version used to generate prebuild */
1723
+ sdkVersion: string;
1724
+ /** Mapping of cache keys to file paths */
1725
+ keyToFile: Record<string, string>;
1726
+ /** Content types included in this prebuild */
1727
+ includedTypes: PrebuildContentType[];
1728
+ /** Total number of files generated */
1729
+ fileCount: number;
1730
+ /** Total size in bytes */
1731
+ totalSize: number;
1732
+ }
1733
+ /**
1734
+ * Navigation cache file structure.
1735
+ */
1736
+ interface NavigationCacheFile {
1737
+ /** Navigation menu data */
1738
+ menus: Array<{
1739
+ /** Menu identifier (used as lookup key) */
1740
+ identifier: string | null;
1741
+ /** Menu ID (fallback if no identifier) */
1742
+ id: string;
1743
+ /** Menu display name */
1744
+ name: string;
1745
+ /** Navigation items in this menu */
1746
+ items: NavigationItemRecord[];
1747
+ }>;
1748
+ /** When this was generated */
1749
+ generatedAt: string;
1750
+ }
1751
+
1752
+ /**
1753
+ * Prebuild cache generation
1754
+ *
1755
+ * Exports static content at build time for use as a last-resort fallback
1756
+ * when the CMS is unavailable.
1757
+ */
1758
+
1759
+ /**
1760
+ * Generate a prebuild cache for the specified site.
1761
+ *
1762
+ * The prebuild cache contains static JSON files that can serve as a
1763
+ * last-resort fallback when the CMS is unavailable.
1764
+ *
1765
+ * @param options - Prebuild configuration
1766
+ * @returns Result with generated files and metadata
1767
+ *
1768
+ * @example
1769
+ * ```typescript
1770
+ * import { createRiverbankClient, prebuildCache } from '@riverbankcms/sdk';
1771
+ *
1772
+ * const client = createRiverbankClient({ apiKey, baseUrl });
1773
+ *
1774
+ * const result = await prebuildCache({
1775
+ * client,
1776
+ * siteId: 'your-site-id',
1777
+ * outputDir: '.riverbank-cache',
1778
+ * onProgress: (p) => console.log(`${p.current}/${p.total}: ${p.item}`),
1779
+ * });
1780
+ *
1781
+ * console.log(`Generated ${result.files.length} files (${result.totalSize} bytes)`);
1782
+ * ```
1783
+ */
1784
+ declare function prebuildCache(options: PrebuildOptions): Promise<PrebuildResult>;
1785
+
1786
+ /**
1787
+ * Prebuild cache loader
1788
+ *
1789
+ * Loads content from the prebuild cache at runtime as a last-resort fallback.
1790
+ */
1791
+
1792
+ interface PrebuildLoaderConfig {
1793
+ /** Path to prebuild cache directory */
1794
+ prebuildDir: string;
1795
+ /** Maximum age in seconds for prebuild cache */
1796
+ maxPrebuildAgeSec?: number;
1797
+ }
1798
+ interface LoadResult<T> {
1799
+ /** Loaded data */
1800
+ data: T;
1801
+ /** Age of prebuild in seconds */
1802
+ prebuildAgeSec: number;
1803
+ }
1804
+ /**
1805
+ * Check if we're running in a Node.js environment with filesystem access.
1806
+ * Edge runtimes (Vercel Edge, Cloudflare Workers) don't have fs access.
1807
+ */
1808
+ declare function canUsePrebuild(): boolean;
1809
+ /**
1810
+ * Loader for reading data from the prebuild cache.
1811
+ *
1812
+ * Used as a last-resort fallback when the CMS is unavailable and
1813
+ * there's no cached data.
1814
+ */
1815
+ declare class PrebuildLoader {
1816
+ private readonly prebuildDir;
1817
+ private readonly maxPrebuildAgeSec;
1818
+ constructor(config: PrebuildLoaderConfig);
1819
+ /**
1820
+ * Check if prebuild is available and not expired.
1821
+ */
1822
+ isAvailable(): boolean;
1823
+ /**
1824
+ * Load site data from prebuild cache.
1825
+ */
1826
+ loadSite(siteId: string): LoadResult<SiteResponse> | null;
1827
+ /**
1828
+ * Load page data from prebuild cache.
1829
+ */
1830
+ loadPage(siteId: string, pagePath: string): LoadResult<PageResponse> | null;
1831
+ /**
1832
+ * Load entries from prebuild cache with runtime filtering.
1833
+ *
1834
+ * The prebuild stores ALL entries for each content type.
1835
+ * Filtering, ordering, and pagination are applied at runtime.
1836
+ */
1837
+ loadEntries(siteId: string, params: GetEntriesBaseParams & {
1838
+ includeMeta?: boolean;
1839
+ }): LoadResult<EntriesResponse | EntriesResponseWithMeta> | null;
1840
+ /**
1841
+ * Load navigation data from prebuild cache.
1842
+ */
1843
+ loadNavigation(): LoadResult<NavigationCacheFile['menus']> | null;
1844
+ /**
1845
+ * Get the manifest for inspection.
1846
+ */
1847
+ getManifest(): PrebuildManifest | null;
1848
+ /**
1849
+ * Clear the cached manifest (for testing).
1850
+ */
1851
+ clearCache(): void;
1852
+ }
1853
+ /**
1854
+ * Create a prebuild loader instance.
1855
+ */
1856
+ declare function createPrebuildLoader(config: PrebuildLoaderConfig): PrebuildLoader;
1857
+
1858
+ export { API_ENDPOINTS, type ApiClient, EntriesResponse, EntriesResponseWithMeta, type LoadResult, PageResponse, type PrebuildContentType, PrebuildLoader, type PrebuildLoaderConfig, type PrebuildManifest, type PrebuildOptions, type PrebuildProgress, type PrebuildResult, RiverbankClient, SiteResponse, buildEndpointURL, canUsePrebuild, createPrebuildLoader, prebuildCache };