@riverbankcms/sdk 0.4.3 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -0
- package/dist/cli/index.js +3463 -120
- package/dist/cli/index.js.map +1 -1
- package/dist/client/analytics.js +1 -1
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/analytics.mjs.map +1 -1
- package/dist/client/bookings.js +6 -6
- package/dist/client/bookings.js.map +1 -1
- package/dist/client/bookings.mjs +6 -6
- package/dist/client/bookings.mjs.map +1 -1
- package/dist/client/client.d.mts +2 -2
- package/dist/client/client.d.ts +2 -2
- package/dist/client/client.js +1379 -519
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +1379 -519
- package/dist/client/client.mjs.map +1 -1
- package/dist/client/hooks.d.mts +2 -2
- package/dist/client/hooks.d.ts +2 -2
- package/dist/client/hooks.js +26 -11
- package/dist/client/hooks.js.map +1 -1
- package/dist/client/hooks.mjs +26 -11
- package/dist/client/hooks.mjs.map +1 -1
- package/dist/client/rendering/client.js +20 -14
- package/dist/client/rendering/client.js.map +1 -1
- package/dist/client/rendering/client.mjs +20 -14
- package/dist/client/rendering/client.mjs.map +1 -1
- package/dist/client/usePage-BTPnCuWC.d.mts +6511 -0
- package/dist/client/usePage-BXjk8BhD.d.mts +6704 -0
- package/dist/client/usePage-BafOS9UT.d.mts +6512 -0
- package/dist/client/usePage-BiOReg0_.d.ts +6704 -0
- package/dist/client/usePage-Bnx-kA6x.d.mts +6670 -0
- package/dist/client/usePage-DoPI6b8V.d.ts +6511 -0
- package/dist/client/usePage-QNWArrVO.d.ts +6670 -0
- package/dist/client/usePage-fBgPB6Oq.d.ts +6512 -0
- package/dist/server/{Layout-CXI_VkhN.d.ts → Layout-BClXUTsd.d.mts} +4 -4
- package/dist/server/{Layout-p6f3TLw9.d.mts → Layout-UXGjXv8M.d.ts} +4 -4
- package/dist/server/{chunk-6JBKKV3G.js → chunk-2KCF2DNK.js} +30 -10
- package/dist/server/chunk-2KCF2DNK.js.map +1 -0
- package/dist/server/chunk-5STV4MWD.js +189 -0
- package/dist/server/chunk-5STV4MWD.js.map +1 -0
- package/dist/server/{chunk-VHDDXCK6.js → chunk-7UPVCT3K.js} +1206 -496
- package/dist/server/chunk-7UPVCT3K.js.map +1 -0
- package/dist/server/{chunk-7DS4Q3GA.mjs → chunk-AEFWG657.mjs} +3 -3
- package/dist/server/chunk-AEFWG657.mjs.map +1 -0
- package/dist/server/{chunk-USQF2XTU.mjs → chunk-BYBJA6SP.mjs} +26 -11
- package/dist/server/chunk-BYBJA6SP.mjs.map +1 -0
- package/dist/server/{chunk-ES6QDZUX.mjs → chunk-C6FIJC7T.mjs} +2 -2
- package/dist/server/{chunk-N3PX76AP.mjs → chunk-CMABGYGI.mjs} +269 -135
- package/dist/server/chunk-CMABGYGI.mjs.map +1 -0
- package/dist/server/{chunk-TO7FD6TQ.js → chunk-I2D7KOEA.js} +4 -4
- package/dist/server/{chunk-TO7FD6TQ.js.map → chunk-I2D7KOEA.js.map} +1 -1
- package/dist/server/{chunk-R5B6IOFQ.js → chunk-KA74YRK6.js} +269 -135
- package/dist/server/chunk-KA74YRK6.js.map +1 -0
- package/dist/server/chunk-KFLZGNPO.mjs +189 -0
- package/dist/server/chunk-KFLZGNPO.mjs.map +1 -0
- package/dist/server/chunk-L5EA4FXU.mjs +134 -0
- package/dist/server/chunk-L5EA4FXU.mjs.map +1 -0
- package/dist/server/{chunk-U2NI3TS3.mjs → chunk-LNOUXALA.mjs} +1135 -425
- package/dist/server/chunk-LNOUXALA.mjs.map +1 -0
- package/dist/server/{chunk-24F6FTCI.mjs → chunk-OSF34JTQ.mjs} +4 -4
- package/dist/server/{chunk-G35R7N7B.js → chunk-P3NNN73G.js} +3 -3
- package/dist/server/{chunk-G35R7N7B.js.map → chunk-P3NNN73G.js.map} +1 -1
- package/dist/server/{chunk-I6K5REFT.mjs → chunk-P4K63SBZ.mjs} +24 -4
- package/dist/server/chunk-P4K63SBZ.mjs.map +1 -0
- package/dist/server/{chunk-HOY77YBF.js → chunk-RVDS7VSP.js} +5 -5
- package/dist/server/chunk-RVDS7VSP.js.map +1 -0
- package/dist/server/{chunk-2SSEBAHC.js → chunk-TT5JWA4X.js} +9 -9
- package/dist/server/{chunk-2SSEBAHC.js.map → chunk-TT5JWA4X.js.map} +1 -1
- package/dist/server/chunk-VSFQRHYZ.js +134 -0
- package/dist/server/chunk-VSFQRHYZ.js.map +1 -0
- package/dist/server/{chunk-EGTDJ4PL.js → chunk-YYO3RIFO.js} +26 -11
- package/dist/server/chunk-YYO3RIFO.js.map +1 -0
- package/dist/server/{chunk-OP2GHK27.mjs → chunk-Z5ZA6Q4D.mjs} +2 -2
- package/dist/server/{components-Dhiemsjd.d.ts → components-BmaJxgCV.d.mts} +20 -75
- package/dist/server/{components-C75e4poV.d.mts → components-DppHY5oD.d.ts} +20 -75
- package/dist/server/components.d.mts +11 -8
- package/dist/server/components.d.ts +11 -8
- package/dist/server/components.js +5 -4
- package/dist/server/components.js.map +1 -1
- package/dist/server/components.mjs +4 -3
- package/dist/server/config-validation.d.mts +3 -3
- package/dist/server/config-validation.d.ts +3 -3
- package/dist/server/config-validation.js +9 -5
- package/dist/server/config-validation.js.map +1 -1
- package/dist/server/config-validation.mjs +8 -4
- package/dist/server/config.d.mts +243 -5
- package/dist/server/config.d.ts +243 -5
- package/dist/server/config.js +72 -5
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs +72 -5
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/core-DsNWrl3o.d.mts +44 -0
- package/dist/server/core-DsNWrl3o.d.ts +44 -0
- package/dist/server/data.d.mts +4 -3
- package/dist/server/data.d.ts +4 -3
- package/dist/server/data.js +3 -3
- package/dist/server/data.mjs +2 -2
- package/dist/server/{index-CAwBj3-A.d.ts → index-Bucs6UqG.d.mts} +2 -1
- package/dist/server/{index-C6o9LPvq.d.mts → index-Cp7tJuRt.d.ts} +2 -1
- package/dist/server/index.d.mts +84 -6
- package/dist/server/index.d.ts +84 -6
- package/dist/server/index.js +91 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +90 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/link-DjxLyC82.d.mts +23 -0
- package/dist/server/link-DjxLyC82.d.ts +23 -0
- package/dist/server/{loadContent-CdXfuCuE.d.mts → loadContent-BS-3wesN.d.mts} +4 -4
- package/dist/server/{loadContent-CsvQRoxb.d.ts → loadContent-Buvmudee.d.ts} +4 -4
- package/dist/server/{loadPage-p3AWwwrd.d.mts → loadPage-B8mQUUSo.d.mts} +5 -46
- package/dist/server/loadPage-DNQTTRHL.mjs +11 -0
- package/dist/server/{loadPage-BA0HiT-6.d.ts → loadPage-DP3nrHBi.d.ts} +5 -46
- package/dist/server/loadPage-IDGVDFBB.js +11 -0
- package/dist/server/{loadPage-DLC7DJZP.js.map → loadPage-IDGVDFBB.js.map} +1 -1
- package/dist/server/metadata.d.mts +6 -4
- package/dist/server/metadata.d.ts +6 -4
- package/dist/server/navigation.d.mts +199 -29
- package/dist/server/navigation.d.ts +199 -29
- package/dist/server/navigation.js +27 -43
- package/dist/server/navigation.js.map +1 -1
- package/dist/server/navigation.mjs +20 -36
- package/dist/server/navigation.mjs.map +1 -1
- package/dist/server/rendering/server.d.mts +8 -6
- package/dist/server/rendering/server.d.ts +8 -6
- package/dist/server/rendering/server.js +7 -6
- package/dist/server/rendering/server.js.map +1 -1
- package/dist/server/rendering/server.mjs +6 -5
- package/dist/server/rendering.d.mts +14 -10
- package/dist/server/rendering.d.ts +14 -10
- package/dist/server/rendering.js +9 -8
- package/dist/server/rendering.js.map +1 -1
- package/dist/server/rendering.mjs +8 -7
- package/dist/server/richTextSchema-DURiozvD.d.mts +62 -0
- package/dist/server/richTextSchema-DURiozvD.d.ts +62 -0
- package/dist/server/routing.d.mts +178 -11
- package/dist/server/routing.d.ts +178 -11
- package/dist/server/routing.js +95 -2
- package/dist/server/routing.js.map +1 -1
- package/dist/server/routing.mjs +94 -1
- package/dist/server/routing.mjs.map +1 -1
- package/dist/server/{schema-Bpy9N5ZI.d.mts → schema-Z6-afHJG.d.mts} +1 -1
- package/dist/server/{schema-Bpy9N5ZI.d.ts → schema-Z6-afHJG.d.ts} +1 -1
- package/dist/server/server.d.mts +9 -7
- package/dist/server/server.d.ts +9 -7
- package/dist/server/server.js +6 -6
- package/dist/server/server.mjs +5 -5
- package/dist/server/theme-bridge.js +8 -8
- package/dist/server/theme-bridge.mjs +2 -2
- package/dist/server/{types-Dj8B3QRb.d.ts → types-1cLz0vnq.d.mts} +55 -2
- package/dist/server/{types-txWsSxN7.d.mts → types-BjgZt8xJ.d.mts} +63 -2
- package/dist/server/{types-CdhKJrB0.d.mts → types-BvcJU7zk.d.ts} +55 -2
- package/dist/server/{types-BWQ-TohG.d.ts → types-CVykEqXN.d.ts} +289 -83
- package/dist/server/{types-CL916r6x.d.ts → types-DLBhEPSt.d.ts} +63 -2
- package/dist/server/{types-BLf-hE50.d.mts → types-Dsu9wsUh.d.mts} +289 -83
- package/dist/server/{validation-DzvDwwRo.d.mts → validation-BGuRo8P1.d.mts} +18 -5
- package/dist/server/{validation-CoU8uAiu.d.ts → validation-DU2YE7u5.d.ts} +18 -5
- package/package.json +5 -1
- package/dist/server/chunk-6JBKKV3G.js.map +0 -1
- package/dist/server/chunk-7DS4Q3GA.mjs.map +0 -1
- package/dist/server/chunk-EGTDJ4PL.js.map +0 -1
- package/dist/server/chunk-HOY77YBF.js.map +0 -1
- package/dist/server/chunk-I6K5REFT.mjs.map +0 -1
- package/dist/server/chunk-LCYGQDAB.mjs +0 -835
- package/dist/server/chunk-LCYGQDAB.mjs.map +0 -1
- package/dist/server/chunk-N3PX76AP.mjs.map +0 -1
- package/dist/server/chunk-R5B6IOFQ.js.map +0 -1
- package/dist/server/chunk-TNYU5EIO.js +0 -835
- package/dist/server/chunk-TNYU5EIO.js.map +0 -1
- package/dist/server/chunk-U2NI3TS3.mjs.map +0 -1
- package/dist/server/chunk-USQF2XTU.mjs.map +0 -1
- package/dist/server/chunk-VHDDXCK6.js.map +0 -1
- package/dist/server/loadPage-DLC7DJZP.js +0 -11
- package/dist/server/loadPage-GEGN4UAL.mjs +0 -11
- /package/dist/server/{chunk-ES6QDZUX.mjs.map → chunk-C6FIJC7T.mjs.map} +0 -0
- /package/dist/server/{chunk-24F6FTCI.mjs.map → chunk-OSF34JTQ.mjs.map} +0 -0
- /package/dist/server/{chunk-OP2GHK27.mjs.map → chunk-Z5ZA6Q4D.mjs.map} +0 -0
- /package/dist/server/{loadPage-GEGN4UAL.mjs.map → loadPage-DNQTTRHL.mjs.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-A2FZMRDW.mjs";
|
|
5
5
|
import {
|
|
6
6
|
prefetchBlockData
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AEFWG657.mjs";
|
|
8
8
|
|
|
9
9
|
// src/rendering/helpers/loadPage.ts
|
|
10
10
|
async function loadPage(params) {
|
|
@@ -85,4 +85,4 @@ async function loadPage(params) {
|
|
|
85
85
|
export {
|
|
86
86
|
loadPage
|
|
87
87
|
};
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-C6FIJC7T.mjs.map
|
|
@@ -182,6 +182,28 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
182
182
|
tags: ["site-{siteId}", "api-keys", "access-logs"],
|
|
183
183
|
responseKind: "json"
|
|
184
184
|
},
|
|
185
|
+
// Management API Keys (SDK write operations)
|
|
186
|
+
listManagementKeys: {
|
|
187
|
+
path: "/sites/{siteId}/api-keys/management",
|
|
188
|
+
method: "GET",
|
|
189
|
+
auth: "user",
|
|
190
|
+
tags: ["site-{siteId}", "api-keys", "management-keys"],
|
|
191
|
+
responseKind: "json"
|
|
192
|
+
},
|
|
193
|
+
createManagementKey: {
|
|
194
|
+
path: "/sites/{siteId}/api-keys/management",
|
|
195
|
+
method: "POST",
|
|
196
|
+
auth: "user",
|
|
197
|
+
tags: ["site-{siteId}", "api-keys", "management-keys"],
|
|
198
|
+
responseKind: "json"
|
|
199
|
+
},
|
|
200
|
+
revokeManagementKey: {
|
|
201
|
+
path: "/sites/{siteId}/api-keys/management",
|
|
202
|
+
method: "DELETE",
|
|
203
|
+
auth: "user",
|
|
204
|
+
tags: ["site-{siteId}", "api-keys", "management-keys"],
|
|
205
|
+
responseKind: "json"
|
|
206
|
+
},
|
|
185
207
|
getBookingSettings: {
|
|
186
208
|
path: "/sites/{siteId}/bookings/settings",
|
|
187
209
|
method: "GET",
|
|
@@ -1457,6 +1479,15 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1457
1479
|
auth: "public",
|
|
1458
1480
|
responseKind: "json"
|
|
1459
1481
|
},
|
|
1482
|
+
// Resolve event occurrence by URL segment (date or UUID)
|
|
1483
|
+
resolveEventOccurrence: {
|
|
1484
|
+
path: "/public/sites/{siteId}/events/occurrences/resolve",
|
|
1485
|
+
method: "GET",
|
|
1486
|
+
revalidate: 60,
|
|
1487
|
+
tags: ["public-events-{siteId}", "event-occurrence"],
|
|
1488
|
+
auth: "public",
|
|
1489
|
+
responseKind: "json"
|
|
1490
|
+
},
|
|
1460
1491
|
// Public event registration
|
|
1461
1492
|
registerForEvent: {
|
|
1462
1493
|
path: "/public/sites/{siteId}/events/register",
|
|
@@ -1634,6 +1665,20 @@ if (typeof window === "undefined") {
|
|
|
1634
1665
|
revalidateTag = null;
|
|
1635
1666
|
}
|
|
1636
1667
|
}
|
|
1668
|
+
var sdkVersion;
|
|
1669
|
+
function generateRequestId() {
|
|
1670
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
1671
|
+
return crypto.randomUUID();
|
|
1672
|
+
}
|
|
1673
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
1674
|
+
const r = Math.random() * 16 | 0;
|
|
1675
|
+
const v = c === "x" ? r : r & 3 | 8;
|
|
1676
|
+
return v.toString(16);
|
|
1677
|
+
});
|
|
1678
|
+
}
|
|
1679
|
+
function setSdkVersion(version) {
|
|
1680
|
+
sdkVersion = version;
|
|
1681
|
+
}
|
|
1637
1682
|
var ApiRequestError = class extends Error {
|
|
1638
1683
|
constructor(message, options) {
|
|
1639
1684
|
super(message);
|
|
@@ -1645,6 +1690,7 @@ var ApiRequestError = class extends Error {
|
|
|
1645
1690
|
this.requestId = options.requestId;
|
|
1646
1691
|
this.body = options.body;
|
|
1647
1692
|
this.cause = options.cause;
|
|
1693
|
+
this.errorCode = options.errorCode;
|
|
1648
1694
|
}
|
|
1649
1695
|
};
|
|
1650
1696
|
function buildEndpointURL2(baseURL, endpoint) {
|
|
@@ -1681,6 +1727,29 @@ async function parseErrorBody(response) {
|
|
|
1681
1727
|
return null;
|
|
1682
1728
|
}
|
|
1683
1729
|
}
|
|
1730
|
+
function buildSuccessEnvelope(data, requestId) {
|
|
1731
|
+
return {
|
|
1732
|
+
success: true,
|
|
1733
|
+
data,
|
|
1734
|
+
meta: {
|
|
1735
|
+
requestId: requestId ?? generateRequestId(),
|
|
1736
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1737
|
+
apiVersion: "2025-01-01"
|
|
1738
|
+
}
|
|
1739
|
+
};
|
|
1740
|
+
}
|
|
1741
|
+
function buildErrorEnvelope(code, message, status, requestId) {
|
|
1742
|
+
return {
|
|
1743
|
+
success: false,
|
|
1744
|
+
error: {
|
|
1745
|
+
code,
|
|
1746
|
+
message,
|
|
1747
|
+
requestId: requestId ?? generateRequestId(),
|
|
1748
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1749
|
+
status
|
|
1750
|
+
}
|
|
1751
|
+
};
|
|
1752
|
+
}
|
|
1684
1753
|
async function parseSuccessResponse(endpoint, response, config) {
|
|
1685
1754
|
const responseKind = config.responseKind ?? "json";
|
|
1686
1755
|
const auth = config.auth ?? "user";
|
|
@@ -1688,14 +1757,15 @@ async function parseSuccessResponse(endpoint, response, config) {
|
|
|
1688
1757
|
switch (responseKind) {
|
|
1689
1758
|
case "json": {
|
|
1690
1759
|
if (response.status === 204 || response.status === 205 || response.status === 304) {
|
|
1691
|
-
return void 0;
|
|
1760
|
+
return buildSuccessEnvelope(void 0, requestId);
|
|
1692
1761
|
}
|
|
1693
1762
|
const raw = await response.text();
|
|
1694
1763
|
if (!raw.trim()) {
|
|
1695
|
-
return void 0;
|
|
1764
|
+
return buildSuccessEnvelope(void 0, requestId);
|
|
1696
1765
|
}
|
|
1766
|
+
let parsed;
|
|
1697
1767
|
try {
|
|
1698
|
-
|
|
1768
|
+
parsed = JSON.parse(raw);
|
|
1699
1769
|
} catch (cause) {
|
|
1700
1770
|
throw new ApiRequestError(
|
|
1701
1771
|
`Failed to parse JSON response for endpoint ${String(endpoint)}`,
|
|
@@ -1710,32 +1780,33 @@ async function parseSuccessResponse(endpoint, response, config) {
|
|
|
1710
1780
|
}
|
|
1711
1781
|
);
|
|
1712
1782
|
}
|
|
1783
|
+
if (parsed && typeof parsed === "object" && "success" in parsed && typeof parsed.success === "boolean") {
|
|
1784
|
+
return parsed;
|
|
1785
|
+
}
|
|
1786
|
+
return buildSuccessEnvelope(parsed, requestId);
|
|
1713
1787
|
}
|
|
1714
1788
|
case "text": {
|
|
1715
|
-
|
|
1789
|
+
const text = await response.text();
|
|
1790
|
+
return buildSuccessEnvelope(text, requestId);
|
|
1716
1791
|
}
|
|
1717
1792
|
case "stream": {
|
|
1718
1793
|
const body = response.body;
|
|
1719
1794
|
if (!body) {
|
|
1720
|
-
|
|
1795
|
+
return buildErrorEnvelope(
|
|
1796
|
+
"server:internal_error",
|
|
1721
1797
|
`Expected a streamed body for endpoint ${String(endpoint)}`,
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
status: response.status,
|
|
1725
|
-
method: config.method,
|
|
1726
|
-
auth,
|
|
1727
|
-
requestId
|
|
1728
|
-
}
|
|
1798
|
+
response.status,
|
|
1799
|
+
requestId
|
|
1729
1800
|
);
|
|
1730
1801
|
}
|
|
1731
1802
|
const stream = body;
|
|
1732
|
-
return stream;
|
|
1803
|
+
return buildSuccessEnvelope(stream, requestId);
|
|
1733
1804
|
}
|
|
1734
1805
|
case "void": {
|
|
1735
|
-
return void 0;
|
|
1806
|
+
return buildSuccessEnvelope(void 0, requestId);
|
|
1736
1807
|
}
|
|
1737
1808
|
default: {
|
|
1738
|
-
return void 0;
|
|
1809
|
+
return buildSuccessEnvelope(void 0, requestId);
|
|
1739
1810
|
}
|
|
1740
1811
|
}
|
|
1741
1812
|
}
|
|
@@ -1801,11 +1872,15 @@ function createRawCMSClient(headers = {}, baseUrl) {
|
|
|
1801
1872
|
const requestInit = {
|
|
1802
1873
|
method,
|
|
1803
1874
|
...options,
|
|
1875
|
+
// Include credentials for same-origin requests (sends cookies for auth)
|
|
1876
|
+
credentials: "same-origin",
|
|
1804
1877
|
// Don't include body for GET/HEAD requests
|
|
1805
1878
|
body: isGetOrHead ? void 0 : isFormData ? body : body ? JSON.stringify(body) : void 0,
|
|
1806
1879
|
headers: {
|
|
1807
1880
|
...options.headers,
|
|
1808
1881
|
...headers,
|
|
1882
|
+
// Include SDK version if set
|
|
1883
|
+
...sdkVersion && { "x-sdk-version": sdkVersion },
|
|
1809
1884
|
// Don't set Content-Type for GET/HEAD requests without body
|
|
1810
1885
|
...isGetOrHead ? {} : isFormData ? {} : { "Content-Type": "application/json" }
|
|
1811
1886
|
},
|
|
@@ -1859,94 +1934,30 @@ function createBearerAPIClient(token, baseUrl) {
|
|
|
1859
1934
|
return createCMSClient(authHeaders, baseUrl);
|
|
1860
1935
|
}
|
|
1861
1936
|
|
|
1862
|
-
// ../api/src/
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
op: z.literal("copy"),
|
|
1887
|
-
from: z.string(),
|
|
1888
|
-
path: z.string()
|
|
1889
|
-
}),
|
|
1890
|
-
// Block-level operations (Phase 2)
|
|
1891
|
-
z.object({
|
|
1892
|
-
op: z.literal("add_block"),
|
|
1893
|
-
blockKind: z.string(),
|
|
1894
|
-
afterBlockId: z.string().nullable(),
|
|
1895
|
-
content: z.record(z.string(), z.unknown()),
|
|
1896
|
-
rationale: z.string()
|
|
1897
|
-
}),
|
|
1898
|
-
z.object({
|
|
1899
|
-
op: z.literal("delete_block"),
|
|
1900
|
-
blockId: z.string(),
|
|
1901
|
-
rationale: z.string()
|
|
1902
|
-
}),
|
|
1903
|
-
z.object({
|
|
1904
|
-
op: z.literal("reorder_block"),
|
|
1905
|
-
blockId: z.string(),
|
|
1906
|
-
afterBlockId: z.string().nullable(),
|
|
1907
|
-
rationale: z.string()
|
|
1908
|
-
})
|
|
1909
|
-
]);
|
|
1910
|
-
var PatchEnvelope = z.object({
|
|
1911
|
-
blockId: z.string(),
|
|
1912
|
-
blockKind: z.string().optional(),
|
|
1913
|
-
blockPurpose: z.string().optional().nullable(),
|
|
1914
|
-
ops: z.array(Rfc6902PatchOp),
|
|
1915
|
-
rationale: z.string(),
|
|
1916
|
-
currentContent: z.record(z.string(), z.unknown()).optional()
|
|
1917
|
-
});
|
|
1918
|
-
var ContentUpdateResponse = z.object({
|
|
1919
|
-
patches: z.array(PatchEnvelope),
|
|
1920
|
-
assistantMessage: z.string()
|
|
1921
|
-
});
|
|
1922
|
-
var PlaygroundProposeRequest = z.object({
|
|
1923
|
-
request: z.string().min(1).max(2e3)
|
|
1924
|
-
});
|
|
1925
|
-
var PlaygroundProposeResponse = z.object({
|
|
1926
|
-
patches: z.array(PatchEnvelope),
|
|
1927
|
-
assistantMessage: z.string(),
|
|
1928
|
-
validation: z.object({
|
|
1929
|
-
valid: z.boolean(),
|
|
1930
|
-
issues: z.array(z.string()),
|
|
1931
|
-
filtered: z.number()
|
|
1932
|
-
})
|
|
1933
|
-
});
|
|
1934
|
-
var MultiPagePatchEnvelope = z.object({
|
|
1935
|
-
pageId: z.string(),
|
|
1936
|
-
blockId: z.string().optional(),
|
|
1937
|
-
// Not present for page-level ops
|
|
1938
|
-
blockKind: z.string().optional(),
|
|
1939
|
-
blockPurpose: z.string().optional().nullable(),
|
|
1940
|
-
ops: z.array(Rfc6902PatchOp),
|
|
1941
|
-
rationale: z.string(),
|
|
1942
|
-
currentContent: z.record(z.string(), z.unknown()).optional()
|
|
1943
|
-
});
|
|
1944
|
-
var MultiPageUpdateResponse = z.object({
|
|
1945
|
-
patches: z.array(MultiPagePatchEnvelope),
|
|
1946
|
-
assistantMessage: z.string(),
|
|
1947
|
-
pagesModified: z.number(),
|
|
1948
|
-
toolCallsUsed: z.number()
|
|
1949
|
-
});
|
|
1937
|
+
// ../api/src/common/envelope.ts
|
|
1938
|
+
function isApiError(result) {
|
|
1939
|
+
return result.success === false;
|
|
1940
|
+
}
|
|
1941
|
+
function isApiSuccess(result) {
|
|
1942
|
+
return result.success === true;
|
|
1943
|
+
}
|
|
1944
|
+
var ApiEnvelopeError = class extends Error {
|
|
1945
|
+
constructor(error) {
|
|
1946
|
+
super(error.message);
|
|
1947
|
+
this.name = "ApiEnvelopeError";
|
|
1948
|
+
this.code = error.code;
|
|
1949
|
+
this.requestId = error.requestId;
|
|
1950
|
+
this.timestamp = error.timestamp;
|
|
1951
|
+
this.status = error.status;
|
|
1952
|
+
this.fieldErrors = error.fieldErrors;
|
|
1953
|
+
}
|
|
1954
|
+
};
|
|
1955
|
+
function unwrapResponse(result) {
|
|
1956
|
+
if (isApiSuccess(result)) {
|
|
1957
|
+
return result.data;
|
|
1958
|
+
}
|
|
1959
|
+
throw new ApiEnvelopeError(result.error);
|
|
1960
|
+
}
|
|
1950
1961
|
|
|
1951
1962
|
// src/client/cache.ts
|
|
1952
1963
|
var SimpleCache = class {
|
|
@@ -1984,7 +1995,100 @@ var SimpleCache = class {
|
|
|
1984
1995
|
}
|
|
1985
1996
|
};
|
|
1986
1997
|
|
|
1998
|
+
// src/version.ts
|
|
1999
|
+
var SDK_VERSION = "0.5.0";
|
|
2000
|
+
|
|
2001
|
+
// src/client/error.ts
|
|
2002
|
+
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
2003
|
+
constructor(apiError) {
|
|
2004
|
+
super(apiError.message);
|
|
2005
|
+
this.name = "RiverbankApiError";
|
|
2006
|
+
this.code = apiError.code;
|
|
2007
|
+
this.requestId = apiError.requestId;
|
|
2008
|
+
this.status = apiError.status;
|
|
2009
|
+
this.fieldErrors = apiError.fieldErrors;
|
|
2010
|
+
this.timestamp = apiError.timestamp;
|
|
2011
|
+
Object.setPrototypeOf(this, _RiverbankApiError.prototype);
|
|
2012
|
+
}
|
|
2013
|
+
/**
|
|
2014
|
+
* Check if this error matches a specific error code
|
|
2015
|
+
*
|
|
2016
|
+
* @example
|
|
2017
|
+
* ```ts
|
|
2018
|
+
* if (error.is('auth:unauthenticated')) {
|
|
2019
|
+
* // Redirect to login
|
|
2020
|
+
* }
|
|
2021
|
+
* ```
|
|
2022
|
+
*/
|
|
2023
|
+
is(code) {
|
|
2024
|
+
return this.code === code;
|
|
2025
|
+
}
|
|
2026
|
+
/**
|
|
2027
|
+
* Check if this is an authentication or authorization error
|
|
2028
|
+
*
|
|
2029
|
+
* Matches: auth:unauthenticated, auth:token_expired, auth:token_invalid,
|
|
2030
|
+
* auth:forbidden, auth:mfa_required, auth:insufficient_permissions
|
|
2031
|
+
*/
|
|
2032
|
+
isAuthError() {
|
|
2033
|
+
return this.code.startsWith("auth:");
|
|
2034
|
+
}
|
|
2035
|
+
/**
|
|
2036
|
+
* Check if this is a validation error
|
|
2037
|
+
*
|
|
2038
|
+
* Matches: validation:invalid_input, validation:missing_field, validation:invalid_format
|
|
2039
|
+
*/
|
|
2040
|
+
isValidationError() {
|
|
2041
|
+
return this.code.startsWith("validation:");
|
|
2042
|
+
}
|
|
2043
|
+
/**
|
|
2044
|
+
* Check if this is a resource error (not found, conflict, etc.)
|
|
2045
|
+
*
|
|
2046
|
+
* Matches: resource:not_found, resource:already_exists, resource:conflict, resource:gone
|
|
2047
|
+
*/
|
|
2048
|
+
isResourceError() {
|
|
2049
|
+
return this.code.startsWith("resource:");
|
|
2050
|
+
}
|
|
2051
|
+
/**
|
|
2052
|
+
* Check if this is a rate limiting error
|
|
2053
|
+
*/
|
|
2054
|
+
isRateLimitError() {
|
|
2055
|
+
return this.code.startsWith("rate_limit:");
|
|
2056
|
+
}
|
|
2057
|
+
/**
|
|
2058
|
+
* Check if this is a billing/payment error
|
|
2059
|
+
*/
|
|
2060
|
+
isBillingError() {
|
|
2061
|
+
return this.code.startsWith("billing:");
|
|
2062
|
+
}
|
|
2063
|
+
/**
|
|
2064
|
+
* Check if this is a server error
|
|
2065
|
+
*/
|
|
2066
|
+
isServerError() {
|
|
2067
|
+
return this.code.startsWith("server:");
|
|
2068
|
+
}
|
|
2069
|
+
};
|
|
2070
|
+
|
|
1987
2071
|
// src/client/index.ts
|
|
2072
|
+
setSdkVersion(SDK_VERSION);
|
|
2073
|
+
function convertToTypedError(error) {
|
|
2074
|
+
if (error instanceof ApiEnvelopeError) {
|
|
2075
|
+
throw new RiverbankApiError({
|
|
2076
|
+
code: error.code,
|
|
2077
|
+
message: error.message,
|
|
2078
|
+
requestId: error.requestId,
|
|
2079
|
+
timestamp: error.timestamp,
|
|
2080
|
+
status: error.status,
|
|
2081
|
+
fieldErrors: error.fieldErrors
|
|
2082
|
+
});
|
|
2083
|
+
}
|
|
2084
|
+
if (error instanceof ApiRequestError && error.body && typeof error.body === "object") {
|
|
2085
|
+
const body = error.body;
|
|
2086
|
+
if (isApiError(body)) {
|
|
2087
|
+
throw new RiverbankApiError(body.error);
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
throw error;
|
|
2091
|
+
}
|
|
1988
2092
|
function createRiverbankClient(config) {
|
|
1989
2093
|
if (!config.baseUrl) {
|
|
1990
2094
|
throw new Error(
|
|
@@ -2011,7 +2115,13 @@ function createRiverbankClient(config) {
|
|
|
2011
2115
|
return cached;
|
|
2012
2116
|
}
|
|
2013
2117
|
}
|
|
2014
|
-
|
|
2118
|
+
let data;
|
|
2119
|
+
try {
|
|
2120
|
+
const response = await fetcher();
|
|
2121
|
+
data = unwrapResponse(response);
|
|
2122
|
+
} catch (error) {
|
|
2123
|
+
convertToTypedError(error);
|
|
2124
|
+
}
|
|
2015
2125
|
if (cacheEnabled) {
|
|
2016
2126
|
cache.set(cacheKey, data);
|
|
2017
2127
|
}
|
|
@@ -2046,33 +2156,27 @@ function createRiverbankClient(config) {
|
|
|
2046
2156
|
const entryIdsCacheKey = mode === "manual" && entryIds?.length ? entryIds.join(",") : "";
|
|
2047
2157
|
const cacheKey = `entries:${siteId}:${contentType}:${limit ?? ""}:${offset ?? ""}:${order ?? ""}:${preview}:${mode ?? ""}:${entryIdsCacheKey}:${includeMeta ?? ""}`;
|
|
2048
2158
|
return cachedFetch(cacheKey, async () => {
|
|
2049
|
-
|
|
2050
|
-
siteId,
|
|
2051
|
-
type: contentType
|
|
2052
|
-
};
|
|
2053
|
-
if (typeof limit === "number") {
|
|
2054
|
-
apiParams.limit = String(limit);
|
|
2055
|
-
}
|
|
2056
|
-
if (typeof offset === "number") {
|
|
2057
|
-
apiParams.offset = String(offset);
|
|
2058
|
-
}
|
|
2059
|
-
if (includeMeta) {
|
|
2060
|
-
apiParams.meta = "true";
|
|
2061
|
-
}
|
|
2159
|
+
let orderParam;
|
|
2062
2160
|
if (order === "newest") {
|
|
2063
|
-
|
|
2161
|
+
orderParam = "published_at.desc";
|
|
2064
2162
|
} else if (order === "oldest") {
|
|
2065
|
-
|
|
2163
|
+
orderParam = "published_at.asc";
|
|
2066
2164
|
} else if (order === "title") {
|
|
2067
|
-
|
|
2068
|
-
}
|
|
2069
|
-
if (preview) {
|
|
2070
|
-
apiParams.stage = "preview";
|
|
2071
|
-
}
|
|
2072
|
-
if (mode === "manual" && entryIds?.length) {
|
|
2073
|
-
apiParams.mode = "manual";
|
|
2074
|
-
apiParams.entryIds = JSON.stringify(entryIds);
|
|
2165
|
+
orderParam = "title.asc";
|
|
2075
2166
|
}
|
|
2167
|
+
const apiParams = {
|
|
2168
|
+
siteId,
|
|
2169
|
+
type: contentType,
|
|
2170
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
2171
|
+
...typeof offset === "number" && { offset: String(offset) },
|
|
2172
|
+
...includeMeta && { meta: "true" },
|
|
2173
|
+
...orderParam && { order: orderParam },
|
|
2174
|
+
...preview && { stage: "preview" },
|
|
2175
|
+
...mode === "manual" && entryIds?.length && {
|
|
2176
|
+
mode: "manual",
|
|
2177
|
+
entryIds: JSON.stringify(entryIds)
|
|
2178
|
+
}
|
|
2179
|
+
};
|
|
2076
2180
|
return await apiClient({ endpoint: "listPublishedEntries", params: apiParams });
|
|
2077
2181
|
});
|
|
2078
2182
|
},
|
|
@@ -2100,8 +2204,10 @@ function createRiverbankClient(config) {
|
|
|
2100
2204
|
}
|
|
2101
2205
|
const cacheKey = `public-booking-services:${siteId}:${ids ?? ""}`;
|
|
2102
2206
|
return cachedFetch(cacheKey, async () => {
|
|
2103
|
-
const apiParams = {
|
|
2104
|
-
|
|
2207
|
+
const apiParams = {
|
|
2208
|
+
siteId,
|
|
2209
|
+
...ids && { ids }
|
|
2210
|
+
};
|
|
2105
2211
|
return await apiClient({ endpoint: "getPublicBookingServices", params: apiParams });
|
|
2106
2212
|
});
|
|
2107
2213
|
},
|
|
@@ -2112,14 +2218,42 @@ function createRiverbankClient(config) {
|
|
|
2112
2218
|
}
|
|
2113
2219
|
const cacheKey = `public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${stage ?? ""}`;
|
|
2114
2220
|
return cachedFetch(cacheKey, async () => {
|
|
2115
|
-
const apiParams = {
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2221
|
+
const apiParams = {
|
|
2222
|
+
siteId,
|
|
2223
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
2224
|
+
...from && { from },
|
|
2225
|
+
...to && { to },
|
|
2226
|
+
...stage && { stage }
|
|
2227
|
+
};
|
|
2120
2228
|
return await apiClient({ endpoint: "listPublicEvents", params: apiParams });
|
|
2121
2229
|
});
|
|
2122
2230
|
},
|
|
2231
|
+
async resolveEventOccurrence(params) {
|
|
2232
|
+
const { siteId, entryId, segment } = params;
|
|
2233
|
+
if (!siteId || !entryId || !segment) {
|
|
2234
|
+
throw new Error("resolveEventOccurrence() requires siteId, entryId, and segment");
|
|
2235
|
+
}
|
|
2236
|
+
const cacheKey = `event-occurrence:${siteId}:${entryId}:${segment}`;
|
|
2237
|
+
return cachedFetch(cacheKey, async () => {
|
|
2238
|
+
return await apiClient({
|
|
2239
|
+
endpoint: "resolveEventOccurrence",
|
|
2240
|
+
params: { siteId, entryId, segment }
|
|
2241
|
+
});
|
|
2242
|
+
});
|
|
2243
|
+
},
|
|
2244
|
+
async checkRedirect(params) {
|
|
2245
|
+
const { siteId, path } = params;
|
|
2246
|
+
if (!siteId || !path) {
|
|
2247
|
+
throw new Error("checkRedirect() requires siteId and path");
|
|
2248
|
+
}
|
|
2249
|
+
const cacheKey = `redirect:${siteId}:${path}`;
|
|
2250
|
+
return cachedFetch(cacheKey, async () => {
|
|
2251
|
+
return await apiClient({
|
|
2252
|
+
endpoint: "checkRedirect",
|
|
2253
|
+
params: { site: siteId, path }
|
|
2254
|
+
});
|
|
2255
|
+
});
|
|
2256
|
+
},
|
|
2123
2257
|
clearCache() {
|
|
2124
2258
|
cache.clear();
|
|
2125
2259
|
}
|
|
@@ -2133,4 +2267,4 @@ export {
|
|
|
2133
2267
|
buildEndpointURL,
|
|
2134
2268
|
createRiverbankClient
|
|
2135
2269
|
};
|
|
2136
|
-
//# sourceMappingURL=chunk-
|
|
2270
|
+
//# sourceMappingURL=chunk-CMABGYGI.mjs.map
|