@riverbankcms/sdk 0.8.0 → 0.9.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 (226) hide show
  1. package/README.md +298 -2
  2. package/dist/cli/index.js +2409 -595
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/init-docs/content/agents-section.md +11 -0
  5. package/dist/cli/init-docs/content/cli-reference.md +15 -1
  6. package/dist/cli/init-docs/content/workflow-add-block.md +7 -0
  7. package/dist/cli/init-docs/content/workflow-block-extensions.md +361 -0
  8. package/dist/cli/init-docs/content/workflow-cmsify-page.md +357 -0
  9. package/dist/cli/init-docs/content/workflow-content-types.md +328 -0
  10. package/dist/cli/init-docs/content/workflow-create-page.md +9 -0
  11. package/dist/cli/init-docs/content/workflow-custom-block.md +446 -0
  12. package/dist/client/client.d.mts +2 -2
  13. package/dist/client/client.d.ts +2 -2
  14. package/dist/client/client.js +386 -45
  15. package/dist/client/client.js.map +1 -1
  16. package/dist/client/client.mjs +386 -45
  17. package/dist/client/client.mjs.map +1 -1
  18. package/dist/client/hooks.d.mts +2 -2
  19. package/dist/client/hooks.d.ts +2 -2
  20. package/dist/client/hooks.js +40 -26
  21. package/dist/client/hooks.js.map +1 -1
  22. package/dist/client/hooks.mjs +40 -26
  23. package/dist/client/hooks.mjs.map +1 -1
  24. package/dist/client/rendering/client.js +210 -128
  25. package/dist/client/rendering/client.js.map +1 -1
  26. package/dist/client/rendering/client.mjs +202 -114
  27. package/dist/client/rendering/client.mjs.map +1 -1
  28. package/dist/client/usePage--LiGLbVz.d.mts +7195 -0
  29. package/dist/client/usePage-BwQJlxpe.d.mts +7218 -0
  30. package/dist/client/usePage-Ds-ow1-d.d.ts +7195 -0
  31. package/dist/client/usePage-Dsi39Exp.d.ts +6915 -0
  32. package/dist/client/usePage-Duc2GC-H.d.ts +7218 -0
  33. package/dist/client/usePage-DyzrgxqR.d.mts +7215 -0
  34. package/dist/client/usePage-Im82JRRe.d.mts +6915 -0
  35. package/dist/client/usePage-lTWkuVMZ.d.ts +7215 -0
  36. package/dist/server/{Layout-l2v4Qa6E.d.ts → Layout-BHGokJmV.d.ts} +1 -1
  37. package/dist/server/{Layout-D4J009eS.d.mts → Layout-CXkMcTR4.d.mts} +1 -1
  38. package/dist/server/chunk-274Y2CUE.js +341 -0
  39. package/dist/server/chunk-274Y2CUE.js.map +1 -0
  40. package/dist/server/{chunk-RVDS7VSP.js → chunk-2WL52ZOE.js} +8 -8
  41. package/dist/server/{chunk-RVDS7VSP.js.map → chunk-2WL52ZOE.js.map} +1 -1
  42. package/dist/server/{chunk-TT5JWA4X.js → chunk-5HGVBSWA.js} +9 -9
  43. package/dist/server/{chunk-TT5JWA4X.js.map → chunk-5HGVBSWA.js.map} +1 -1
  44. package/dist/server/{chunk-YXA4GAAQ.mjs → chunk-6VTKALLN.mjs} +2 -6
  45. package/dist/server/{chunk-YXA4GAAQ.mjs.map → chunk-6VTKALLN.mjs.map} +1 -1
  46. package/dist/server/chunk-7WJGJY3B.js +7 -0
  47. package/dist/server/chunk-7WJGJY3B.js.map +1 -0
  48. package/dist/server/chunk-AGAOKSPY.mjs +22 -0
  49. package/dist/server/chunk-AGAOKSPY.mjs.map +1 -0
  50. package/dist/server/{chunk-BYBJA6SP.mjs → chunk-BOYBN4KN.mjs} +37 -23
  51. package/dist/server/chunk-BOYBN4KN.mjs.map +1 -0
  52. package/dist/server/{chunk-LNOUXALA.mjs → chunk-CKZDJBMC.mjs} +126 -17
  53. package/dist/server/chunk-CKZDJBMC.mjs.map +1 -0
  54. package/dist/server/{chunk-RBJFXNDM.mjs → chunk-E4R5ILRE.mjs} +4 -4
  55. package/dist/server/{chunk-WM646WI3.js → chunk-EC2AA2IP.js} +275 -297
  56. package/dist/server/chunk-EC2AA2IP.js.map +1 -0
  57. package/dist/server/{chunk-2KCF2DNK.js → chunk-F4U4LC5D.js} +8 -8
  58. package/dist/server/{chunk-2KCF2DNK.js.map → chunk-F4U4LC5D.js.map} +1 -1
  59. package/dist/server/{chunk-ARNCLSQT.mjs → chunk-H44G72AB.mjs} +2 -2
  60. package/dist/server/{chunk-7BVRA5MY.js → chunk-JVLQDZTZ.js} +9 -9
  61. package/dist/server/{chunk-7BVRA5MY.js.map → chunk-JVLQDZTZ.js.map} +1 -1
  62. package/dist/server/{chunk-OSF34JTQ.mjs → chunk-KKUR3PDT.mjs} +4 -4
  63. package/dist/server/chunk-NTG7XP3E.js +264 -0
  64. package/dist/server/chunk-NTG7XP3E.js.map +1 -0
  65. package/dist/server/{chunk-P4K63SBZ.mjs → chunk-OSTUHBFE.mjs} +3 -3
  66. package/dist/server/{chunk-EIVISR62.js → chunk-P4O3WSAR.js} +2 -6
  67. package/dist/server/chunk-P4O3WSAR.js.map +1 -0
  68. package/dist/server/chunk-PAHSKNY5.mjs +264 -0
  69. package/dist/server/chunk-PAHSKNY5.mjs.map +1 -0
  70. package/dist/server/chunk-PSN6HXUD.js +22 -0
  71. package/dist/server/chunk-PSN6HXUD.js.map +1 -0
  72. package/dist/server/{chunk-65A5HAUZ.mjs → chunk-QS6ZTLLB.mjs} +243 -265
  73. package/dist/server/chunk-QS6ZTLLB.mjs.map +1 -0
  74. package/dist/server/{chunk-P3NNN73G.js → chunk-R6T3Z4W5.js} +3 -3
  75. package/dist/server/{chunk-P3NNN73G.js.map → chunk-R6T3Z4W5.js.map} +1 -1
  76. package/dist/server/{chunk-EIJ27EZQ.js → chunk-RIROJYPX.js} +10 -6
  77. package/dist/server/chunk-RIROJYPX.js.map +1 -0
  78. package/dist/server/chunk-SVEQVEA5.mjs +341 -0
  79. package/dist/server/chunk-SVEQVEA5.mjs.map +1 -0
  80. package/dist/server/{chunk-AEFWG657.mjs → chunk-TBN35TGI.mjs} +6 -6
  81. package/dist/server/{chunk-AEFWG657.mjs.map → chunk-TBN35TGI.mjs.map} +1 -1
  82. package/dist/server/{chunk-4YQJUL5W.mjs → chunk-TBX6CXBM.mjs} +8 -4
  83. package/dist/server/chunk-TBX6CXBM.mjs.map +1 -0
  84. package/dist/server/{chunk-YYO3RIFO.js → chunk-U2F4BWKW.js} +37 -23
  85. package/dist/server/chunk-U2F4BWKW.js.map +1 -0
  86. package/dist/server/{chunk-NFEGQTCC.mjs → chunk-WMJKH4XE.mjs} +8 -1
  87. package/dist/server/chunk-WWGVFOLS.mjs +7 -0
  88. package/dist/server/chunk-WWGVFOLS.mjs.map +1 -0
  89. package/dist/server/{chunk-T26N3P26.js → chunk-X4REO3S7.js} +4 -4
  90. package/dist/server/{chunk-T26N3P26.js.map → chunk-X4REO3S7.js.map} +1 -1
  91. package/dist/server/{chunk-C6FIJC7T.mjs → chunk-YUD7ONZG.mjs} +2 -2
  92. package/dist/server/{chunk-4CV4JOE5.js → chunk-Z6ZWNWWR.js} +9 -2
  93. package/dist/server/chunk-Z6ZWNWWR.js.map +1 -0
  94. package/dist/server/{chunk-7UPVCT3K.js → chunk-ZJXFRSTC.js} +270 -161
  95. package/dist/server/chunk-ZJXFRSTC.js.map +1 -0
  96. package/dist/server/{components-vtYEmmPF.d.mts → components-Bqn4xmR6.d.mts} +75 -6
  97. package/dist/server/{components-D2uCKCj7.d.ts → components-C7j9yzAt.d.ts} +75 -6
  98. package/dist/server/components.d.mts +6 -6
  99. package/dist/server/components.d.ts +6 -6
  100. package/dist/server/components.js +9 -7
  101. package/dist/server/components.js.map +1 -1
  102. package/dist/server/components.mjs +8 -6
  103. package/dist/server/config-validation.d.mts +3 -3
  104. package/dist/server/config-validation.d.ts +3 -3
  105. package/dist/server/config-validation.js +6 -6
  106. package/dist/server/config-validation.mjs +5 -5
  107. package/dist/server/config.d.mts +5 -5
  108. package/dist/server/config.d.ts +5 -5
  109. package/dist/server/config.js +6 -6
  110. package/dist/server/config.mjs +5 -5
  111. package/dist/server/data.d.mts +3 -3
  112. package/dist/server/data.d.ts +3 -3
  113. package/dist/server/data.js +4 -4
  114. package/dist/server/data.mjs +3 -3
  115. package/dist/server/env.js +1 -1
  116. package/dist/server/env.mjs +1 -1
  117. package/dist/server/{index-BxrAuL9K.d.ts → index-Bns_1a4N.d.ts} +2 -2
  118. package/dist/server/{index-CH_dvF6n.d.ts → index-CHp2kyp0.d.ts} +2 -2
  119. package/dist/server/{index-2qnY7VH_.d.mts → index-CPDT8kn9.d.mts} +2 -2
  120. package/dist/server/{index-DfWg1Qle.d.mts → index-Cm9nMPkf.d.mts} +2 -2
  121. package/dist/server/index.d.mts +195 -217
  122. package/dist/server/index.d.ts +195 -217
  123. package/dist/server/index.js +10 -289
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/index.mjs +11 -290
  126. package/dist/server/index.mjs.map +1 -1
  127. package/dist/server/{loadContent-DECnsp4k.d.ts → loadContent-DD7J5_WO.d.ts} +26 -4
  128. package/dist/server/{loadContent-Du5kS8UM.d.mts → loadContent-DTEgYI-l.d.mts} +26 -4
  129. package/dist/server/{loadPage-VBorKlWv.d.mts → loadPage-B578Xg2W.d.mts} +3 -3
  130. package/dist/server/{loadPage-BZohBxxf.d.ts → loadPage-Dkiimbsg.d.ts} +3 -3
  131. package/dist/server/loadPage-IBX7FXGH.mjs +11 -0
  132. package/dist/server/loadPage-KG74OG4V.js +11 -0
  133. package/dist/server/{loadPage-AXNAERDS.js.map → loadPage-KG74OG4V.js.map} +1 -1
  134. package/dist/server/metadata.d.mts +5 -5
  135. package/dist/server/metadata.d.ts +5 -5
  136. package/dist/server/metadata.js +1 -1
  137. package/dist/server/metadata.mjs +1 -1
  138. package/dist/server/navigation.d.mts +4 -8
  139. package/dist/server/navigation.d.ts +4 -8
  140. package/dist/server/navigation.js +3 -7
  141. package/dist/server/navigation.js.map +1 -1
  142. package/dist/server/navigation.mjs +2 -6
  143. package/dist/server/next/revalidate.js +1 -1
  144. package/dist/server/next/revalidate.mjs +1 -1
  145. package/dist/server/next/tags.js +1 -1
  146. package/dist/server/next/tags.mjs +1 -1
  147. package/dist/server/next.d.mts +7 -7
  148. package/dist/server/next.d.ts +7 -7
  149. package/dist/server/next.js +23 -16
  150. package/dist/server/next.js.map +1 -1
  151. package/dist/server/next.mjs +15 -8
  152. package/dist/server/next.mjs.map +1 -1
  153. package/dist/server/prebuild-loader.d.mts +87 -0
  154. package/dist/server/prebuild-loader.d.ts +87 -0
  155. package/dist/server/prebuild-loader.js +15 -0
  156. package/dist/server/prebuild-loader.js.map +1 -0
  157. package/dist/server/prebuild-loader.mjs +15 -0
  158. package/dist/server/prebuild-loader.mjs.map +1 -0
  159. package/dist/server/prebuild-types.d.mts +201 -0
  160. package/dist/server/prebuild-types.d.ts +201 -0
  161. package/dist/server/prebuild-types.js +1 -0
  162. package/dist/server/prebuild-types.js.map +1 -0
  163. package/dist/server/prebuild-types.mjs +1 -0
  164. package/dist/server/prebuild-types.mjs.map +1 -0
  165. package/dist/server/prebuild.d.mts +46 -0
  166. package/dist/server/prebuild.d.ts +46 -0
  167. package/dist/server/prebuild.js +10 -0
  168. package/dist/server/prebuild.js.map +1 -0
  169. package/dist/server/prebuild.mjs +10 -0
  170. package/dist/server/prebuild.mjs.map +1 -0
  171. package/dist/server/rendering/server.d.mts +5 -5
  172. package/dist/server/rendering/server.d.ts +5 -5
  173. package/dist/server/rendering/server.js +9 -9
  174. package/dist/server/rendering/server.mjs +8 -8
  175. package/dist/server/rendering.d.mts +9 -9
  176. package/dist/server/rendering.d.ts +9 -9
  177. package/dist/server/rendering.js +13 -11
  178. package/dist/server/rendering.js.map +1 -1
  179. package/dist/server/rendering.mjs +12 -10
  180. package/dist/server/routing.d.mts +5 -5
  181. package/dist/server/routing.d.ts +5 -5
  182. package/dist/server/routing.js +2 -2
  183. package/dist/server/routing.mjs +2 -2
  184. package/dist/server/{schema-Z6-afHJG.d.mts → schema-DYtW0zEu.d.mts} +40 -0
  185. package/dist/server/{schema-Z6-afHJG.d.ts → schema-DYtW0zEu.d.ts} +40 -0
  186. package/dist/server/server.d.mts +6 -6
  187. package/dist/server/server.d.ts +6 -6
  188. package/dist/server/server.js +10 -7
  189. package/dist/server/server.js.map +1 -1
  190. package/dist/server/server.mjs +9 -6
  191. package/dist/server/theme-bridge.js +9 -9
  192. package/dist/server/theme-bridge.mjs +3 -3
  193. package/dist/server/theme.js +1 -1
  194. package/dist/server/theme.mjs +1 -1
  195. package/dist/server/{types-DT30Qy7x.d.mts → types-B6P_iaDz.d.mts} +296 -2
  196. package/dist/server/{types-CgSO0yxg.d.ts → types-C4jfCjaP.d.ts} +296 -2
  197. package/dist/server/{types-D0rPF8l5.d.ts → types-CSvCkmYi.d.mts} +13 -4
  198. package/dist/server/{types-D8XqwoVd.d.ts → types-DVesWaB7.d.ts} +1 -1
  199. package/dist/server/{types-CJfJwcuL.d.mts → types-M0CviVW2.d.mts} +1 -1
  200. package/dist/server/{types-BRQ_6yOc.d.mts → types-gKcrQV09.d.ts} +13 -4
  201. package/dist/server/{validation-Pv3Zs6dP.d.mts → validation-BA1TKthZ.d.mts} +2 -2
  202. package/dist/server/{validation-D1LaY1kQ.d.ts → validation-js7BCPN8.d.ts} +2 -2
  203. package/dist/server/webhooks.js +1 -1
  204. package/dist/server/webhooks.mjs +1 -1
  205. package/dist/styles/index.css +419 -0
  206. package/package.json +17 -3
  207. package/dist/server/chunk-4CV4JOE5.js.map +0 -1
  208. package/dist/server/chunk-4YQJUL5W.mjs.map +0 -1
  209. package/dist/server/chunk-65A5HAUZ.mjs.map +0 -1
  210. package/dist/server/chunk-7UPVCT3K.js.map +0 -1
  211. package/dist/server/chunk-BYBJA6SP.mjs.map +0 -1
  212. package/dist/server/chunk-EIJ27EZQ.js.map +0 -1
  213. package/dist/server/chunk-EIVISR62.js.map +0 -1
  214. package/dist/server/chunk-LNOUXALA.mjs.map +0 -1
  215. package/dist/server/chunk-WM646WI3.js.map +0 -1
  216. package/dist/server/chunk-YYO3RIFO.js.map +0 -1
  217. package/dist/server/loadPage-AXNAERDS.js +0 -11
  218. package/dist/server/loadPage-XR7ORQ2E.mjs +0 -11
  219. package/src/styles/index.css +0 -10
  220. /package/dist/server/{chunk-RBJFXNDM.mjs.map → chunk-E4R5ILRE.mjs.map} +0 -0
  221. /package/dist/server/{chunk-ARNCLSQT.mjs.map → chunk-H44G72AB.mjs.map} +0 -0
  222. /package/dist/server/{chunk-OSF34JTQ.mjs.map → chunk-KKUR3PDT.mjs.map} +0 -0
  223. /package/dist/server/{chunk-P4K63SBZ.mjs.map → chunk-OSTUHBFE.mjs.map} +0 -0
  224. /package/dist/server/{chunk-NFEGQTCC.mjs.map → chunk-WMJKH4XE.mjs.map} +0 -0
  225. /package/dist/server/{chunk-C6FIJC7T.mjs.map → chunk-YUD7ONZG.mjs.map} +0 -0
  226. /package/dist/server/{loadPage-XR7ORQ2E.mjs.map → loadPage-IBX7FXGH.mjs.map} +0 -0
@@ -1,246 +1,13 @@
1
1
  import {
2
- __esm,
3
- __export,
2
+ SDK_VERSION
3
+ } from "./chunk-WWGVFOLS.mjs";
4
+ import {
5
+ init_loader,
6
+ loader_exports
7
+ } from "./chunk-PAHSKNY5.mjs";
8
+ import {
4
9
  __toCommonJS
5
- } from "./chunk-NFEGQTCC.mjs";
6
-
7
- // src/constants.ts
8
- var PREBUILD_PAGE_SIZE, DEFAULT_MAX_PREBUILD_AGE_SEC, DEFAULT_PREBUILD_DIR;
9
- var init_constants = __esm({
10
- "src/constants.ts"() {
11
- "use strict";
12
- PREBUILD_PAGE_SIZE = 50;
13
- DEFAULT_MAX_PREBUILD_AGE_SEC = 86400;
14
- DEFAULT_PREBUILD_DIR = ".riverbank-cache";
15
- }
16
- });
17
-
18
- // src/prebuild/loader.ts
19
- var loader_exports = {};
20
- __export(loader_exports, {
21
- PrebuildLoader: () => PrebuildLoader,
22
- canUsePrebuild: () => canUsePrebuild,
23
- createPrebuildLoader: () => createPrebuildLoader
24
- });
25
- import * as fs from "fs";
26
- import * as path from "path";
27
- function loadManifest(prebuildDir) {
28
- if (cachedManifest?.dir === prebuildDir) {
29
- return cachedManifest.manifest;
30
- }
31
- const manifestPath = path.join(prebuildDir, "manifest.json");
32
- if (!fs.existsSync(manifestPath)) {
33
- return null;
34
- }
35
- try {
36
- const content = fs.readFileSync(manifestPath, "utf-8");
37
- const manifest = JSON.parse(content);
38
- cachedManifest = { manifest, dir: prebuildDir };
39
- return manifest;
40
- } catch {
41
- return null;
42
- }
43
- }
44
- function loadJsonFile(prebuildDir, relativePath) {
45
- const filePath = path.join(prebuildDir, relativePath);
46
- if (!fs.existsSync(filePath)) {
47
- return null;
48
- }
49
- try {
50
- const content = fs.readFileSync(filePath, "utf-8");
51
- return JSON.parse(content);
52
- } catch {
53
- return null;
54
- }
55
- }
56
- function isPrebuildExpired(manifest, maxAgeSec) {
57
- const ageMs = Date.now() - new Date(manifest.generatedAt).getTime();
58
- return ageMs > maxAgeSec * 1e3;
59
- }
60
- function getPrebuildAgeSec(manifest) {
61
- const ageMs = Date.now() - new Date(manifest.generatedAt).getTime();
62
- return Math.floor(ageMs / 1e3);
63
- }
64
- function canUsePrebuild() {
65
- if (typeof process === "undefined" || !process.versions?.node) {
66
- return false;
67
- }
68
- try {
69
- return typeof fs.existsSync === "function";
70
- } catch {
71
- return false;
72
- }
73
- }
74
- function createPrebuildLoader(config) {
75
- return new PrebuildLoader(config);
76
- }
77
- var cachedManifest, PrebuildLoader;
78
- var init_loader = __esm({
79
- "src/prebuild/loader.ts"() {
80
- "use strict";
81
- init_constants();
82
- cachedManifest = null;
83
- PrebuildLoader = class {
84
- constructor(config) {
85
- this.prebuildDir = config.prebuildDir ?? DEFAULT_PREBUILD_DIR;
86
- this.maxPrebuildAgeSec = config.maxPrebuildAgeSec ?? DEFAULT_MAX_PREBUILD_AGE_SEC;
87
- }
88
- /**
89
- * Check if prebuild is available and not expired.
90
- */
91
- isAvailable() {
92
- if (!canUsePrebuild()) {
93
- return false;
94
- }
95
- const manifest = loadManifest(this.prebuildDir);
96
- if (!manifest) {
97
- return false;
98
- }
99
- return !isPrebuildExpired(manifest, this.maxPrebuildAgeSec);
100
- }
101
- /**
102
- * Load site data from prebuild cache.
103
- */
104
- loadSite(siteId) {
105
- const manifest = loadManifest(this.prebuildDir);
106
- if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
107
- return null;
108
- }
109
- const cacheFile = loadJsonFile(this.prebuildDir, "site.json");
110
- if (!cacheFile || cacheFile.data.site.id !== siteId) {
111
- return null;
112
- }
113
- return {
114
- data: cacheFile.data,
115
- prebuildAgeSec: getPrebuildAgeSec(manifest)
116
- };
117
- }
118
- /**
119
- * Load page data from prebuild cache.
120
- */
121
- loadPage(siteId, pagePath) {
122
- const manifest = loadManifest(this.prebuildDir);
123
- if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
124
- return null;
125
- }
126
- const cacheKey = `page:${siteId}:${pagePath}:false`;
127
- const relativePath = manifest.keyToFile[cacheKey];
128
- if (!relativePath) {
129
- return null;
130
- }
131
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
132
- if (!cacheFile) {
133
- return null;
134
- }
135
- return {
136
- data: cacheFile.data,
137
- prebuildAgeSec: getPrebuildAgeSec(manifest)
138
- };
139
- }
140
- /**
141
- * Load entries from prebuild cache with runtime filtering.
142
- *
143
- * The prebuild stores ALL entries for each content type.
144
- * Filtering, ordering, and pagination are applied at runtime.
145
- */
146
- loadEntries(siteId, params) {
147
- if (params.preview) {
148
- return null;
149
- }
150
- if (params.mode === "manual" && params.entryIds?.length) {
151
- return null;
152
- }
153
- const manifest = loadManifest(this.prebuildDir);
154
- if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
155
- return null;
156
- }
157
- const cacheKey = `entries-all:${siteId}:${params.contentType}`;
158
- const relativePath = manifest.keyToFile[cacheKey];
159
- if (!relativePath) {
160
- return null;
161
- }
162
- const cacheFile = loadJsonFile(this.prebuildDir, relativePath);
163
- if (!cacheFile) {
164
- return null;
165
- }
166
- let entries = [...cacheFile.entries];
167
- if (params.order === "newest") {
168
- entries.sort((a, b) => {
169
- const aTime = a.publishedAt ? new Date(a.publishedAt).getTime() : 0;
170
- const bTime = b.publishedAt ? new Date(b.publishedAt).getTime() : 0;
171
- return bTime - aTime;
172
- });
173
- } else if (params.order === "oldest") {
174
- entries.sort((a, b) => {
175
- const aTime = a.publishedAt ? new Date(a.publishedAt).getTime() : 0;
176
- const bTime = b.publishedAt ? new Date(b.publishedAt).getTime() : 0;
177
- return aTime - bTime;
178
- });
179
- } else if (params.order === "title") {
180
- entries.sort((a, b) => (a.title || "").localeCompare(b.title || ""));
181
- }
182
- const total = entries.length;
183
- const offset = params.offset ?? 0;
184
- const limit = params.limit ?? 10;
185
- if (offset > 0) {
186
- entries = entries.slice(offset);
187
- }
188
- entries = entries.slice(0, limit);
189
- const prebuildAgeSec = getPrebuildAgeSec(manifest);
190
- if (params.includeMeta) {
191
- return {
192
- data: {
193
- entries,
194
- total,
195
- hasMore: offset + entries.length < total,
196
- limit,
197
- offset,
198
- totalPages: Math.ceil(total / limit),
199
- currentPage: Math.floor(offset / limit) + 1
200
- },
201
- prebuildAgeSec
202
- };
203
- }
204
- return {
205
- data: { entries },
206
- prebuildAgeSec
207
- };
208
- }
209
- /**
210
- * Load navigation data from prebuild cache.
211
- */
212
- loadNavigation() {
213
- const manifest = loadManifest(this.prebuildDir);
214
- if (!manifest || isPrebuildExpired(manifest, this.maxPrebuildAgeSec)) {
215
- return null;
216
- }
217
- const cacheFile = loadJsonFile(
218
- this.prebuildDir,
219
- "navigation/menus.json"
220
- );
221
- if (!cacheFile) {
222
- return null;
223
- }
224
- return {
225
- data: cacheFile.menus,
226
- prebuildAgeSec: getPrebuildAgeSec(manifest)
227
- };
228
- }
229
- /**
230
- * Get the manifest for inspection.
231
- */
232
- getManifest() {
233
- return loadManifest(this.prebuildDir);
234
- }
235
- /**
236
- * Clear the cached manifest (for testing).
237
- */
238
- clearCache() {
239
- cachedManifest = null;
240
- }
241
- };
242
- }
243
- });
10
+ } from "./chunk-WMJKH4XE.mjs";
244
11
 
245
12
  // ../api/src/endpoints.ts
246
13
  var ENDPOINT_DEFINITIONS = {
@@ -1685,6 +1452,15 @@ var ENDPOINT_DEFINITIONS = {
1685
1452
  auth: "public",
1686
1453
  responseKind: "json"
1687
1454
  },
1455
+ // List all forms for a site (for prebuild cache)
1456
+ listPublicForms: {
1457
+ path: "/public/sites/{siteId}/forms",
1458
+ method: "GET",
1459
+ revalidate: 60,
1460
+ tags: ["site-forms-{siteId}"],
1461
+ auth: "public",
1462
+ responseKind: "json"
1463
+ },
1688
1464
  // Public booking services
1689
1465
  getPublicBookingServices: {
1690
1466
  path: "/public/bookings/services",
@@ -1871,6 +1647,194 @@ var ENDPOINT_DEFINITIONS = {
1871
1647
  tags: ["admin", "billing", "price-override"],
1872
1648
  auth: "admin",
1873
1649
  responseKind: "json"
1650
+ },
1651
+ // Bookings - Event Series
1652
+ listEventSeries: {
1653
+ path: "/sites/{siteId}/bookings/event-series",
1654
+ method: "GET",
1655
+ tags: ["site-{siteId}", "event-series-{siteId}"],
1656
+ auth: "user",
1657
+ responseKind: "json"
1658
+ },
1659
+ createEventSeries: {
1660
+ path: "/sites/{siteId}/bookings/event-series",
1661
+ method: "POST",
1662
+ tags: ["site-{siteId}", "event-series-{siteId}"],
1663
+ auth: "user",
1664
+ responseKind: "json"
1665
+ },
1666
+ getEventSeries: {
1667
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}",
1668
+ method: "GET",
1669
+ tags: ["site-{siteId}", "event-series-{seriesId}"],
1670
+ auth: "user",
1671
+ responseKind: "json"
1672
+ },
1673
+ updateEventSeries: {
1674
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}",
1675
+ method: "PATCH",
1676
+ tags: ["site-{siteId}", "event-series-{seriesId}", "event-series-{siteId}"],
1677
+ auth: "user",
1678
+ responseKind: "json"
1679
+ },
1680
+ deleteEventSeries: {
1681
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}",
1682
+ method: "DELETE",
1683
+ tags: ["site-{siteId}", "event-series-{seriesId}", "event-series-{siteId}"],
1684
+ auth: "user",
1685
+ responseKind: "json"
1686
+ },
1687
+ listEventSeriesAttendees: {
1688
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/attendees",
1689
+ method: "GET",
1690
+ tags: ["site-{siteId}", "event-series-{seriesId}"],
1691
+ auth: "user",
1692
+ responseKind: "json"
1693
+ },
1694
+ listEventSeriesOccurrences: {
1695
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences",
1696
+ method: "GET",
1697
+ tags: ["site-{siteId}", "event-series-{seriesId}", "occurrences-{seriesId}"],
1698
+ auth: "user",
1699
+ responseKind: "json"
1700
+ },
1701
+ generateEventOccurrences: {
1702
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences/generate",
1703
+ method: "POST",
1704
+ tags: ["site-{siteId}", "event-series-{seriesId}", "occurrences-{seriesId}"],
1705
+ auth: "user",
1706
+ responseKind: "json"
1707
+ },
1708
+ updateEventOccurrence: {
1709
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences/{occurrenceId}",
1710
+ method: "PATCH",
1711
+ tags: ["site-{siteId}", "event-series-{seriesId}", "occurrences-{seriesId}"],
1712
+ auth: "user",
1713
+ responseKind: "json"
1714
+ },
1715
+ // Bookings - Venues
1716
+ listVenues: {
1717
+ path: "/sites/{siteId}/bookings/venues",
1718
+ method: "GET",
1719
+ tags: ["site-{siteId}", "venues-{siteId}"],
1720
+ auth: "user",
1721
+ responseKind: "json"
1722
+ },
1723
+ createVenue: {
1724
+ path: "/sites/{siteId}/bookings/venues",
1725
+ method: "POST",
1726
+ tags: ["site-{siteId}", "venues-{siteId}"],
1727
+ auth: "user",
1728
+ responseKind: "json"
1729
+ },
1730
+ // AI Playground
1731
+ aiPlaygroundApply: {
1732
+ path: "/sites/{siteId}/ai/playground/apply",
1733
+ method: "POST",
1734
+ tags: ["site-{siteId}"],
1735
+ auth: "user",
1736
+ responseKind: "json"
1737
+ },
1738
+ // Billing status endpoints
1739
+ billingStatus: {
1740
+ path: "/billing/status",
1741
+ method: "GET",
1742
+ auth: "user",
1743
+ responseKind: "json"
1744
+ },
1745
+ billingSummary: {
1746
+ path: "/billing/summary",
1747
+ method: "GET",
1748
+ auth: "user",
1749
+ responseKind: "json"
1750
+ },
1751
+ siteBillingCost: {
1752
+ path: "/sites/{siteId}/billing/cost",
1753
+ method: "GET",
1754
+ tags: ["site-{siteId}", "billing"],
1755
+ auth: "user",
1756
+ responseKind: "json"
1757
+ },
1758
+ // Account
1759
+ deleteAccount: {
1760
+ path: "/account/delete",
1761
+ method: "POST",
1762
+ auth: "user",
1763
+ responseKind: "json"
1764
+ },
1765
+ // Fonts
1766
+ listFonts: {
1767
+ path: "/fonts",
1768
+ method: "GET",
1769
+ revalidate: 3600,
1770
+ // 1 hour - fonts rarely change
1771
+ auth: "public",
1772
+ responseKind: "json"
1773
+ },
1774
+ // Binary download endpoints
1775
+ exportSiteBackup: {
1776
+ path: "/sites/{siteId}/backup/export",
1777
+ method: "POST",
1778
+ tags: ["site-{siteId}", "backup"],
1779
+ auth: "user",
1780
+ responseKind: "blob"
1781
+ },
1782
+ downloadMediaAsset: {
1783
+ path: "/media/{mediaId}/download",
1784
+ method: "GET",
1785
+ auth: "user",
1786
+ responseKind: "blob"
1787
+ },
1788
+ exportSeoCsv: {
1789
+ path: "/sites/{siteId}/seo/export",
1790
+ method: "GET",
1791
+ tags: ["site-{siteId}", "seo"],
1792
+ auth: "user",
1793
+ responseKind: "blob"
1794
+ },
1795
+ // Admin site cost (for admin panel)
1796
+ adminSiteCost: {
1797
+ path: "/admin/sites/{siteId}/cost",
1798
+ method: "GET",
1799
+ tags: ["admin", "site-{siteId}", "billing"],
1800
+ auth: "admin",
1801
+ responseKind: "json"
1802
+ },
1803
+ adminUpdateSiteCost: {
1804
+ path: "/admin/sites/{siteId}/cost",
1805
+ method: "POST",
1806
+ tags: ["admin", "site-{siteId}", "billing"],
1807
+ auth: "admin",
1808
+ responseKind: "json"
1809
+ },
1810
+ // Admin GSC/SEO endpoints
1811
+ adminGscVerifyStart: {
1812
+ path: "/admin/seo/gsc/properties/verify/start",
1813
+ method: "POST",
1814
+ tags: ["admin", "seo"],
1815
+ auth: "admin",
1816
+ responseKind: "json"
1817
+ },
1818
+ adminGscVerifyConfirm: {
1819
+ path: "/admin/seo/gsc/properties/verify/confirm",
1820
+ method: "POST",
1821
+ tags: ["admin", "seo"],
1822
+ auth: "admin",
1823
+ responseKind: "json"
1824
+ },
1825
+ adminGscMetaPersist: {
1826
+ path: "/admin/seo/gsc/meta/persist",
1827
+ method: "POST",
1828
+ tags: ["admin", "seo"],
1829
+ auth: "admin",
1830
+ responseKind: "json"
1831
+ },
1832
+ adminSeoIngestRun: {
1833
+ path: "/admin/seo/ingest/run",
1834
+ method: "POST",
1835
+ tags: ["admin", "seo"],
1836
+ auth: "admin",
1837
+ responseKind: "json"
1874
1838
  }
1875
1839
  };
1876
1840
  var API_ENDPOINTS = ENDPOINT_DEFINITIONS;
@@ -2065,6 +2029,10 @@ async function parseSuccessResponse(endpoint, response, config) {
2065
2029
  const stream = body;
2066
2030
  return buildSuccessEnvelope(stream, requestId);
2067
2031
  }
2032
+ case "blob": {
2033
+ const blob = await response.blob();
2034
+ return buildSuccessEnvelope(blob, requestId);
2035
+ }
2068
2036
  case "void": {
2069
2037
  return buildSuccessEnvelope(void 0, requestId);
2070
2038
  }
@@ -2339,9 +2307,6 @@ var SimpleCache = class {
2339
2307
  }
2340
2308
  };
2341
2309
 
2342
- // src/version.ts
2343
- var SDK_VERSION = "0.8.0";
2344
-
2345
2310
  // src/client/error.ts
2346
2311
  var RiverbankApiError = class _RiverbankApiError extends Error {
2347
2312
  constructor(apiError) {
@@ -2884,7 +2849,8 @@ function createRiverbankClient(config) {
2884
2849
  const circuitBreaker = new CircuitBreaker(circuitBreakerConfig);
2885
2850
  const prebuildDir = config.resilience?.prebuildDir;
2886
2851
  const prebuildMod = prebuildDir ? getPrebuildModule() : null;
2887
- const prebuildLoader = prebuildMod?.canUsePrebuild() && prebuildDir ? new prebuildMod.PrebuildLoader({
2852
+ const canUsePrebuild = prebuildMod?.canUsePrebuild() ?? false;
2853
+ const prebuildLoader = canUsePrebuild && prebuildMod && prebuildDir ? new prebuildMod.PrebuildLoader({
2888
2854
  prebuildDir,
2889
2855
  maxPrebuildAgeSec: config.resilience?.maxPrebuildAgeSec
2890
2856
  }) : null;
@@ -3049,15 +3015,15 @@ function createRiverbankClient(config) {
3049
3015
  });
3050
3016
  },
3051
3017
  async getPage(params) {
3052
- const { siteId, path: path2, preview = false, signal } = params;
3053
- const cacheKey = `page:${siteId}:${path2}:${preview}`;
3018
+ const { siteId, path, preview = false, signal } = params;
3019
+ const cacheKey = `page:${siteId}:${path}:${preview}`;
3054
3020
  return resilientFetch(cacheKey, async (sig) => {
3055
- return await apiClient({ endpoint: "getContentByPath", params: { siteId }, body: { path: path2, preview }, options: { signal: sig } });
3021
+ return await apiClient({ endpoint: "getContentByPath", params: { siteId }, body: { path, preview }, options: { signal: sig } });
3056
3022
  }, {
3057
3023
  preview,
3058
3024
  signal,
3059
3025
  // Prebuild fallback only for published pages (not preview)
3060
- prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path2) : void 0
3026
+ prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path) : void 0
3061
3027
  });
3062
3028
  },
3063
3029
  async getEntries(params) {
@@ -3102,15 +3068,35 @@ function createRiverbankClient(config) {
3102
3068
  }, { signal });
3103
3069
  },
3104
3070
  async getPublicFormById(params) {
3105
- const { formId, signal } = params;
3071
+ const { formId, siteId, signal } = params;
3106
3072
  if (!formId) {
3107
3073
  throw new Error("getPublicFormById() requires formId");
3108
3074
  }
3109
- const cacheKey = `public-form:${formId}`;
3075
+ const cacheKey = siteId ? `public-form:${siteId}:${formId}` : `public-form:${formId}`;
3110
3076
  return resilientFetch(cacheKey, async (sig) => {
3111
- return await apiClient({ endpoint: "getPublicFormById", params: { formId }, options: { signal: sig } });
3077
+ const apiParams = siteId ? { formId, siteId } : { formId };
3078
+ return await apiClient({ endpoint: "getPublicFormById", params: apiParams, options: { signal: sig } });
3112
3079
  }, { signal });
3113
3080
  },
3081
+ async getForms(params) {
3082
+ const { siteId, signal } = params;
3083
+ if (!siteId) {
3084
+ throw new Error("getForms() requires siteId");
3085
+ }
3086
+ const cacheKey = `forms:${siteId}`;
3087
+ return resilientFetch(cacheKey, async (sig) => {
3088
+ return await apiClient({ endpoint: "listPublicForms", params: { siteId }, options: { signal: sig } });
3089
+ }, {
3090
+ signal,
3091
+ prebuildFallback: prebuildLoader ? () => {
3092
+ const result = prebuildLoader.loadForms();
3093
+ if (result) {
3094
+ return { data: { forms: result.data }, prebuildAgeSec: result.prebuildAgeSec };
3095
+ }
3096
+ return null;
3097
+ } : void 0
3098
+ });
3099
+ },
3114
3100
  async getPublicBookingServices(params) {
3115
3101
  const { siteId, ids, signal } = params;
3116
3102
  if (!siteId) {
@@ -3157,15 +3143,15 @@ function createRiverbankClient(config) {
3157
3143
  }, { signal });
3158
3144
  },
3159
3145
  async checkRedirect(params) {
3160
- const { siteId, path: path2, signal } = params;
3161
- if (!siteId || !path2) {
3146
+ const { siteId, path, signal } = params;
3147
+ if (!siteId || !path) {
3162
3148
  throw new Error("checkRedirect() requires siteId and path");
3163
3149
  }
3164
- const cacheKey = `redirect:${siteId}:${path2}`;
3150
+ const cacheKey = `redirect:${siteId}:${path}`;
3165
3151
  return resilientFetch(cacheKey, async (sig) => {
3166
3152
  return await apiClient({
3167
3153
  endpoint: "checkRedirect",
3168
- params: { site: siteId, path: path2 },
3154
+ params: { site: siteId, path },
3169
3155
  options: { signal: sig }
3170
3156
  });
3171
3157
  }, { signal });
@@ -3202,14 +3188,6 @@ function createRiverbankClient(config) {
3202
3188
  export {
3203
3189
  API_ENDPOINTS,
3204
3190
  buildEndpointURL,
3205
- SDK_VERSION,
3206
- PREBUILD_PAGE_SIZE,
3207
- DEFAULT_PREBUILD_DIR,
3208
- init_constants,
3209
- canUsePrebuild,
3210
- PrebuildLoader,
3211
- createPrebuildLoader,
3212
- init_loader,
3213
3191
  createRiverbankClient
3214
3192
  };
3215
- //# sourceMappingURL=chunk-65A5HAUZ.mjs.map
3193
+ //# sourceMappingURL=chunk-QS6ZTLLB.mjs.map