@riverbankcms/sdk 0.7.5 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -1
- package/dist/cli/index.js +3693 -39
- package/dist/cli/index.js.map +1 -1
- package/dist/client/client.d.mts +2 -2
- package/dist/client/client.d.ts +2 -2
- package/dist/client/client.js +105 -2
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +105 -2
- 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/usePage-CdnO2CP5.d.mts +6875 -0
- package/dist/client/usePage-_ksKXlUF.d.ts +6875 -0
- package/dist/server/{Layout-qWLdVm5-.d.mts → Layout-D4J009eS.d.mts} +1 -1
- package/dist/server/{Layout-Yluyb6sK.d.ts → Layout-l2v4Qa6E.d.ts} +1 -1
- package/dist/server/{chunk-2NBNOY3C.mjs → chunk-65A5HAUZ.mjs} +106 -3
- package/dist/server/chunk-65A5HAUZ.mjs.map +1 -0
- package/dist/server/{chunk-KH3EXBJM.js → chunk-WM646WI3.js} +106 -3
- package/dist/server/chunk-WM646WI3.js.map +1 -0
- package/dist/server/{components-Di5ME6He.d.ts → components-D2uCKCj7.d.ts} +3 -3
- package/dist/server/{components-DNHfSCML.d.mts → components-vtYEmmPF.d.mts} +3 -3
- package/dist/server/components.d.mts +5 -5
- package/dist/server/components.d.ts +5 -5
- package/dist/server/config-validation.d.mts +2 -2
- package/dist/server/config-validation.d.ts +2 -2
- package/dist/server/config.d.mts +3 -3
- package/dist/server/config.d.ts +3 -3
- package/dist/server/data.d.mts +2 -2
- package/dist/server/data.d.ts +2 -2
- package/dist/server/{index-Clm3skz_.d.mts → index-2qnY7VH_.d.mts} +1 -1
- package/dist/server/{index-DLvNddi-.d.ts → index-BxrAuL9K.d.ts} +1 -1
- package/dist/server/{index-C9Ra8dza.d.ts → index-CH_dvF6n.d.ts} +2 -2
- package/dist/server/{index--Oyunk_B.d.mts → index-DfWg1Qle.d.mts} +2 -2
- package/dist/server/index.d.mts +13 -5
- package/dist/server/index.d.ts +13 -5
- package/dist/server/index.js +10 -10
- package/dist/server/index.mjs +1 -1
- package/dist/server/{loadContent-D7LQwI0o.d.ts → loadContent-DECnsp4k.d.ts} +3 -3
- package/dist/server/{loadContent-DVfuBLiZ.d.mts → loadContent-Du5kS8UM.d.mts} +3 -3
- package/dist/server/{loadPage-BmYJCe_V.d.ts → loadPage-BZohBxxf.d.ts} +2 -2
- package/dist/server/{loadPage-BucnLHmE.d.mts → loadPage-VBorKlWv.d.mts} +2 -2
- package/dist/server/metadata.d.mts +4 -4
- package/dist/server/metadata.d.ts +4 -4
- package/dist/server/navigation.d.mts +2 -2
- package/dist/server/navigation.d.ts +2 -2
- package/dist/server/next.d.mts +38 -7
- package/dist/server/next.d.ts +38 -7
- package/dist/server/next.js +29 -11
- package/dist/server/next.js.map +1 -1
- package/dist/server/next.mjs +29 -11
- package/dist/server/next.mjs.map +1 -1
- package/dist/server/rendering/server.d.mts +4 -4
- package/dist/server/rendering/server.d.ts +4 -4
- package/dist/server/rendering.d.mts +7 -7
- package/dist/server/rendering.d.ts +7 -7
- package/dist/server/routing.d.mts +4 -4
- package/dist/server/routing.d.ts +4 -4
- package/dist/server/server.d.mts +5 -5
- package/dist/server/server.d.ts +5 -5
- package/dist/server/server.js +2 -2
- package/dist/server/server.mjs +1 -1
- package/dist/server/{types-C-LShyIg.d.mts → types-BRQ_6yOc.d.mts} +43 -1
- package/dist/server/{types-BjgZt8xJ.d.mts → types-CJfJwcuL.d.mts} +37 -0
- package/dist/server/{types-Dt98DeYa.d.ts → types-CgSO0yxg.d.ts} +8 -0
- package/dist/server/{types-BRQyLrQU.d.ts → types-D0rPF8l5.d.ts} +43 -1
- package/dist/server/{types-DLBhEPSt.d.ts → types-D8XqwoVd.d.ts} +37 -0
- package/dist/server/{types-BSV6Vc-P.d.mts → types-DT30Qy7x.d.mts} +8 -0
- package/dist/server/{validation-DU2YE7u5.d.ts → validation-D1LaY1kQ.d.ts} +1 -1
- package/dist/server/{validation-BGuRo8P1.d.mts → validation-Pv3Zs6dP.d.mts} +1 -1
- package/package.json +2 -1
- package/dist/server/chunk-2NBNOY3C.mjs.map +0 -1
- package/dist/server/chunk-KH3EXBJM.js.map +0 -1
package/dist/client/client.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RiverbankClient, P as PageProps, T as Theme, a as ResolvedBlockData, b as RiverbankClientConfig } from './usePage-
|
|
2
|
-
export { d as Page, U as UsePageParams, c as UsePageResult, u as usePage } from './usePage-
|
|
1
|
+
import { R as RiverbankClient, P as PageProps, T as Theme, a as ResolvedBlockData, b as RiverbankClientConfig } from './usePage-CdnO2CP5.mjs';
|
|
2
|
+
export { d as Page, U as UsePageParams, c as UsePageResult, u as usePage } from './usePage-CdnO2CP5.mjs';
|
|
3
3
|
import '@riverbankcms/ai';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '@riverbankcms/media-storage-supabase';
|
package/dist/client/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RiverbankClient, P as PageProps, T as Theme, a as ResolvedBlockData, b as RiverbankClientConfig } from './usePage-
|
|
2
|
-
export { d as Page, U as UsePageParams, c as UsePageResult, u as usePage } from './usePage-
|
|
1
|
+
import { R as RiverbankClient, P as PageProps, T as Theme, a as ResolvedBlockData, b as RiverbankClientConfig } from './usePage-_ksKXlUF.js';
|
|
2
|
+
export { d as Page, U as UsePageParams, c as UsePageResult, u as usePage } from './usePage-_ksKXlUF.js';
|
|
3
3
|
import '@riverbankcms/ai';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '@riverbankcms/media-storage-supabase';
|
package/dist/client/client.js
CHANGED
|
@@ -16704,6 +16704,15 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
16704
16704
|
auth: "user",
|
|
16705
16705
|
responseKind: "json"
|
|
16706
16706
|
},
|
|
16707
|
+
// Public routable content for SDK SSG
|
|
16708
|
+
getPublicRoutableContent: {
|
|
16709
|
+
path: "/public/sites/{siteId}/routable-content",
|
|
16710
|
+
method: "GET",
|
|
16711
|
+
revalidate: 60,
|
|
16712
|
+
tags: ["site-{siteId}", "routable-content-{siteId}"],
|
|
16713
|
+
auth: "public",
|
|
16714
|
+
responseKind: "json"
|
|
16715
|
+
},
|
|
16707
16716
|
// Generic public content preview (preferred)
|
|
16708
16717
|
getPublishedEntryPreview: {
|
|
16709
16718
|
path: "/public/content/{siteId}/{type}/{slug}/preview",
|
|
@@ -17764,13 +17773,16 @@ var SimpleCache = class {
|
|
|
17764
17773
|
};
|
|
17765
17774
|
|
|
17766
17775
|
// src/version.ts
|
|
17767
|
-
var SDK_VERSION = "0.
|
|
17776
|
+
var SDK_VERSION = "0.8.0";
|
|
17768
17777
|
|
|
17769
17778
|
// src/client/error.ts
|
|
17770
17779
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
17771
17780
|
constructor(apiError) {
|
|
17772
17781
|
super(apiError.message);
|
|
17773
17782
|
this.name = "RiverbankApiError";
|
|
17783
|
+
if ("cause" in apiError && apiError.cause) {
|
|
17784
|
+
this.cause = apiError.cause;
|
|
17785
|
+
}
|
|
17774
17786
|
this.code = apiError.code;
|
|
17775
17787
|
this.requestId = apiError.requestId;
|
|
17776
17788
|
this.status = apiError.status;
|
|
@@ -17919,13 +17931,75 @@ var DEFAULT_CIRCUIT_BREAKER_CONFIG = {
|
|
|
17919
17931
|
resetTimeoutMs: 3e4,
|
|
17920
17932
|
halfOpenMaxRequests: 2
|
|
17921
17933
|
};
|
|
17934
|
+
var PERMANENT_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
17935
|
+
"ECONNREFUSED",
|
|
17936
|
+
// Server is not running / port not listening
|
|
17937
|
+
"ENOTFOUND",
|
|
17938
|
+
// DNS lookup failed - hostname doesn't exist
|
|
17939
|
+
"EAI_AGAIN"
|
|
17940
|
+
// DNS lookup timeout (usually permanent for invalid hosts)
|
|
17941
|
+
]);
|
|
17942
|
+
var TRANSIENT_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
17943
|
+
"ECONNRESET",
|
|
17944
|
+
// Connection was reset mid-request (server dropped it)
|
|
17945
|
+
"EPIPE",
|
|
17946
|
+
// Broken pipe (connection closed while writing)
|
|
17947
|
+
"ETIMEDOUT",
|
|
17948
|
+
// Connection timed out (could be temporary congestion)
|
|
17949
|
+
"ESOCKETTIMEDOUT"
|
|
17950
|
+
// Socket timeout
|
|
17951
|
+
]);
|
|
17952
|
+
var NODE_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
17953
|
+
// Permanent
|
|
17954
|
+
"ECONNREFUSED",
|
|
17955
|
+
"ENOTFOUND",
|
|
17956
|
+
"EAI_AGAIN",
|
|
17957
|
+
// Transient
|
|
17958
|
+
"ECONNRESET",
|
|
17959
|
+
"EPIPE",
|
|
17960
|
+
"ETIMEDOUT",
|
|
17961
|
+
"ESOCKETTIMEDOUT"
|
|
17962
|
+
]);
|
|
17963
|
+
function isNodeNetworkErrorCode(code) {
|
|
17964
|
+
return !code.includes(":") && NODE_NETWORK_ERROR_CODES.has(code);
|
|
17965
|
+
}
|
|
17966
|
+
function getErrorCodeFromCause(error) {
|
|
17967
|
+
let current = error;
|
|
17968
|
+
while (current) {
|
|
17969
|
+
const nodeError = current;
|
|
17970
|
+
if (nodeError.code && typeof nodeError.code === "string") {
|
|
17971
|
+
if (isNodeNetworkErrorCode(nodeError.code)) {
|
|
17972
|
+
return nodeError.code;
|
|
17973
|
+
}
|
|
17974
|
+
}
|
|
17975
|
+
const errorWithCause = current;
|
|
17976
|
+
current = errorWithCause.cause;
|
|
17977
|
+
}
|
|
17978
|
+
return void 0;
|
|
17979
|
+
}
|
|
17922
17980
|
function isTransientError(error) {
|
|
17923
17981
|
if (error instanceof RiverbankApiError) {
|
|
17982
|
+
const errorCode = getErrorCodeFromCause(error);
|
|
17983
|
+
if (errorCode && PERMANENT_NETWORK_ERROR_CODES.has(errorCode)) {
|
|
17984
|
+
return false;
|
|
17985
|
+
}
|
|
17924
17986
|
if (error.status === 0) return true;
|
|
17925
17987
|
if (error.status === 429) return true;
|
|
17926
17988
|
if (error.status >= 500) return true;
|
|
17927
17989
|
return false;
|
|
17928
17990
|
}
|
|
17991
|
+
if (error instanceof TypeError) {
|
|
17992
|
+
const errorCode = getErrorCodeFromCause(error);
|
|
17993
|
+
if (errorCode) {
|
|
17994
|
+
if (PERMANENT_NETWORK_ERROR_CODES.has(errorCode)) {
|
|
17995
|
+
return false;
|
|
17996
|
+
}
|
|
17997
|
+
if (TRANSIENT_NETWORK_ERROR_CODES.has(errorCode)) {
|
|
17998
|
+
return true;
|
|
17999
|
+
}
|
|
18000
|
+
}
|
|
18001
|
+
return true;
|
|
18002
|
+
}
|
|
17929
18003
|
return true;
|
|
17930
18004
|
}
|
|
17931
18005
|
function calculateBackoff(attempt, config) {
|
|
@@ -18186,12 +18260,23 @@ function convertToTypedError(error) {
|
|
|
18186
18260
|
message: networkError.message || "Network request failed",
|
|
18187
18261
|
requestId: `local-${Date.now()}`,
|
|
18188
18262
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
18189
|
-
status: 0
|
|
18263
|
+
status: 0,
|
|
18190
18264
|
// No HTTP response received
|
|
18265
|
+
cause: networkError
|
|
18266
|
+
// Preserve original error for retry/circuit breaker classification
|
|
18191
18267
|
});
|
|
18192
18268
|
}
|
|
18193
18269
|
throw error;
|
|
18194
18270
|
}
|
|
18271
|
+
function detectKeyType(apiKey) {
|
|
18272
|
+
if (apiKey.startsWith("bld_live_sk_") || apiKey.startsWith("bld_test_sk_")) {
|
|
18273
|
+
return "content";
|
|
18274
|
+
}
|
|
18275
|
+
if (apiKey.startsWith("bld_preview_sk_")) {
|
|
18276
|
+
return "preview";
|
|
18277
|
+
}
|
|
18278
|
+
return "unknown";
|
|
18279
|
+
}
|
|
18195
18280
|
function createRiverbankClient(config) {
|
|
18196
18281
|
if (!config.baseUrl) {
|
|
18197
18282
|
throw new Error(
|
|
@@ -18222,6 +18307,7 @@ function createRiverbankClient(config) {
|
|
|
18222
18307
|
resetTimeoutMs: config.resilience?.circuitBreaker?.resetTimeoutMs ?? DEFAULT_CIRCUIT_BREAKER_CONFIG.resetTimeoutMs,
|
|
18223
18308
|
halfOpenMaxRequests: config.resilience?.circuitBreaker?.halfOpenMaxRequests ?? DEFAULT_CIRCUIT_BREAKER_CONFIG.halfOpenMaxRequests
|
|
18224
18309
|
};
|
|
18310
|
+
const keyType = detectKeyType(config.apiKey);
|
|
18225
18311
|
const apiClient = createBearerAPIClient(config.apiKey, config.baseUrl);
|
|
18226
18312
|
const cache = new SimpleCache({
|
|
18227
18313
|
maxSize: cacheMaxSize,
|
|
@@ -18517,9 +18603,26 @@ function createRiverbankClient(config) {
|
|
|
18517
18603
|
});
|
|
18518
18604
|
}, { signal });
|
|
18519
18605
|
},
|
|
18606
|
+
async getAllPublishedRoutes(params) {
|
|
18607
|
+
const { siteId, signal } = params;
|
|
18608
|
+
if (!siteId) {
|
|
18609
|
+
throw new Error("getAllPublishedRoutes() requires siteId");
|
|
18610
|
+
}
|
|
18611
|
+
const cacheKey = `routable-content:${siteId}:published`;
|
|
18612
|
+
return resilientFetch(cacheKey, async (sig) => {
|
|
18613
|
+
return await apiClient({
|
|
18614
|
+
endpoint: "getPublicRoutableContent",
|
|
18615
|
+
params: { siteId, publishedOnly: "true" },
|
|
18616
|
+
options: { signal: sig }
|
|
18617
|
+
});
|
|
18618
|
+
}, { signal });
|
|
18619
|
+
},
|
|
18520
18620
|
clearCache() {
|
|
18521
18621
|
cache.clear();
|
|
18522
18622
|
},
|
|
18623
|
+
getKeyType() {
|
|
18624
|
+
return keyType;
|
|
18625
|
+
},
|
|
18523
18626
|
getLastEmittedStatus() {
|
|
18524
18627
|
return lastStatus;
|
|
18525
18628
|
},
|