@riverbankcms/sdk 0.6.1 → 0.7.2
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 +175 -0
- package/dist/cli/index.js +42 -95
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-docs/content/agents-section.md +50 -0
- package/dist/cli/init-docs/content/cli-reference.md +574 -0
- package/dist/cli/init-docs/content/content-management.md +384 -0
- package/dist/cli/init-docs/content/context-brand.md +125 -0
- package/dist/cli/init-docs/content/context-brief.md +77 -0
- package/dist/cli/init-docs/content/context-knowledge.md +111 -0
- package/dist/cli/init-docs/content/getting-started.md +130 -0
- package/dist/cli/init-docs/content/site-workflows-readme.md +96 -0
- package/dist/cli/init-docs/content/workflow-add-block.md +228 -0
- package/dist/cli/init-docs/content/workflow-create-page.md +193 -0
- package/dist/cli/init-docs/content/workflow-publish.md +280 -0
- package/dist/client/client.d.mts +2 -2
- package/dist/client/client.d.ts +2 -2
- package/dist/client/client.js +536 -71
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +536 -78
- 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-C9tJpuKa.d.mts +6813 -0
- package/dist/client/usePage-Db9kzA41.d.ts +6813 -0
- package/dist/server/{Layout-wBtJLTVX.d.ts → Layout-Ce7PU9I5.d.ts} +1 -1
- package/dist/server/{Layout-B7cvis7r.d.mts → Layout-WllR8Zug.d.mts} +1 -1
- package/dist/server/{chunk-I7ZR2WO3.mjs → chunk-5JT452F2.mjs} +537 -76
- package/dist/server/chunk-5JT452F2.mjs.map +1 -0
- package/dist/server/{chunk-Z5ZA6Q4D.mjs → chunk-74XUVNOO.mjs} +5 -3
- package/dist/server/chunk-74XUVNOO.mjs.map +1 -0
- package/dist/server/{chunk-3B364WO2.js → chunk-7BVRA5MY.js} +4 -49
- package/dist/server/chunk-7BVRA5MY.js.map +1 -0
- package/dist/server/chunk-AET56TQX.mjs +45 -0
- package/dist/server/chunk-AET56TQX.mjs.map +1 -0
- package/dist/server/chunk-ARNCLSQT.mjs +52 -0
- package/dist/server/chunk-ARNCLSQT.mjs.map +1 -0
- package/dist/server/chunk-BNQV3PXP.js +69 -0
- package/dist/server/chunk-BNQV3PXP.js.map +1 -0
- package/dist/server/{chunk-IVHIQFJH.js → chunk-HMENX4Y7.js} +543 -82
- package/dist/server/chunk-HMENX4Y7.js.map +1 -0
- package/dist/server/{chunk-I2D7KOEA.js → chunk-JWRNMNWI.js} +5 -3
- package/dist/server/chunk-JWRNMNWI.js.map +1 -0
- package/dist/server/chunk-LQUKXIW7.mjs +13 -0
- package/dist/server/chunk-LQUKXIW7.mjs.map +1 -0
- package/dist/server/{chunk-XXFF4RVR.mjs → chunk-RBJFXNDM.mjs} +1 -46
- package/dist/server/chunk-RBJFXNDM.mjs.map +1 -0
- package/dist/server/chunk-SWYWZT3L.mjs +69 -0
- package/dist/server/chunk-SWYWZT3L.mjs.map +1 -0
- package/dist/server/chunk-T26N3P26.js +52 -0
- package/dist/server/chunk-T26N3P26.js.map +1 -0
- package/dist/server/chunk-VODFQMUW.js +45 -0
- package/dist/server/chunk-VODFQMUW.js.map +1 -0
- package/dist/server/chunk-WYNEYDXO.js +13 -0
- package/dist/server/chunk-WYNEYDXO.js.map +1 -0
- package/dist/server/{components-CICSJyp_.d.ts → components--LT61IKp.d.ts} +2 -2
- package/dist/server/{components-CMMwDXTW.d.mts → components-RPzRQve6.d.mts} +2 -2
- package/dist/server/components.d.mts +4 -4
- package/dist/server/components.d.ts +4 -4
- package/dist/server/components.js +5 -4
- package/dist/server/components.js.map +1 -1
- package/dist/server/components.mjs +5 -4
- package/dist/server/config-validation.js +0 -1
- package/dist/server/config-validation.js.map +1 -1
- package/dist/server/config-validation.mjs +0 -1
- package/dist/server/config.js +0 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs +0 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/data.d.mts +1 -1
- package/dist/server/data.d.ts +1 -1
- package/dist/server/data.js +0 -1
- package/dist/server/data.js.map +1 -1
- package/dist/server/data.mjs +0 -1
- package/dist/server/env.d.mts +23 -0
- package/dist/server/env.d.ts +23 -0
- package/dist/server/env.js +7 -0
- package/dist/server/env.js.map +1 -0
- package/dist/server/env.mjs +7 -0
- package/dist/server/index-BL66CU6d.d.mts +130 -0
- package/dist/server/{index-Bucs6UqG.d.mts → index-Bkva0WAj.d.mts} +1 -1
- package/dist/server/index-CJk9iQQW.d.ts +130 -0
- package/dist/server/{index-Cp7tJuRt.d.ts → index-CSBWKA3r.d.ts} +1 -1
- package/dist/server/index.d.mts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +2 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1 -2
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/{loadContent-Buvmudee.d.ts → loadContent-CXUWMuzY.d.ts} +11 -3
- package/dist/server/{loadContent-BS-3wesN.d.mts → loadContent-F_tAS0Nl.d.mts} +11 -3
- package/dist/server/{loadPage-IDGVDFBB.js → loadPage-6I7F6GRF.js} +1 -2
- package/dist/server/loadPage-6I7F6GRF.js.map +1 -0
- package/dist/server/{loadPage-B8mQUUSo.d.mts → loadPage-CxlYLe5K.d.mts} +1 -1
- package/dist/server/{loadPage-DNQTTRHL.mjs → loadPage-JI2SML4M.mjs} +1 -2
- package/dist/server/{loadPage-DP3nrHBi.d.ts → loadPage-i2r-X5b9.d.ts} +1 -1
- package/dist/server/metadata.d.mts +8 -135
- package/dist/server/metadata.d.ts +8 -135
- package/dist/server/metadata.js +4 -65
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/metadata.mjs +4 -65
- package/dist/server/metadata.mjs.map +1 -1
- package/dist/server/navigation.js +0 -1
- package/dist/server/navigation.js.map +1 -1
- package/dist/server/navigation.mjs +0 -1
- package/dist/server/next/revalidate.d.mts +66 -0
- package/dist/server/next/revalidate.d.ts +66 -0
- package/dist/server/next/revalidate.js +59 -0
- package/dist/server/next/revalidate.js.map +1 -0
- package/dist/server/next/revalidate.mjs +59 -0
- package/dist/server/next/revalidate.mjs.map +1 -0
- package/dist/server/next/tags.d.mts +78 -0
- package/dist/server/next/tags.d.ts +78 -0
- package/dist/server/next/tags.js +34 -0
- package/dist/server/next/tags.js.map +1 -0
- package/dist/server/next/tags.mjs +34 -0
- package/dist/server/next/tags.mjs.map +1 -0
- package/dist/server/next.d.mts +432 -0
- package/dist/server/next.d.ts +432 -0
- package/dist/server/next.js +217 -0
- package/dist/server/next.js.map +1 -0
- package/dist/server/next.mjs +217 -0
- package/dist/server/next.mjs.map +1 -0
- package/dist/server/rendering/server.d.mts +3 -3
- package/dist/server/rendering/server.d.ts +3 -3
- package/dist/server/rendering/server.js +5 -4
- package/dist/server/rendering/server.js.map +1 -1
- package/dist/server/rendering/server.mjs +5 -4
- package/dist/server/rendering.d.mts +6 -6
- package/dist/server/rendering.d.ts +6 -6
- package/dist/server/rendering.js +7 -6
- package/dist/server/rendering.js.map +1 -1
- package/dist/server/rendering.mjs +9 -8
- package/dist/server/routing.d.mts +2 -2
- package/dist/server/routing.d.ts +2 -2
- package/dist/server/routing.js +2 -4
- package/dist/server/routing.js.map +1 -1
- package/dist/server/routing.mjs +1 -3
- package/dist/server/routing.mjs.map +1 -1
- package/dist/server/server.d.mts +4 -4
- package/dist/server/server.d.ts +4 -4
- package/dist/server/server.js +4 -5
- package/dist/server/server.js.map +1 -1
- package/dist/server/server.mjs +5 -6
- package/dist/server/theme-bridge.js +0 -1
- package/dist/server/theme-bridge.js.map +1 -1
- package/dist/server/theme-bridge.mjs +0 -1
- package/dist/server/theme-bridge.mjs.map +1 -1
- package/dist/server/theme.js +1 -3
- package/dist/server/theme.js.map +1 -1
- package/dist/server/theme.mjs +0 -2
- package/dist/server/theme.mjs.map +1 -1
- package/dist/server/{types-BvcJU7zk.d.ts → types-DnkRh0UL.d.ts} +118 -9
- package/dist/server/{types-1cLz0vnq.d.mts → types-MF2AWoKv.d.mts} +118 -9
- package/dist/server/webhooks.d.mts +75 -0
- package/dist/server/webhooks.d.ts +75 -0
- package/dist/server/webhooks.js +11 -0
- package/dist/server/webhooks.js.map +1 -0
- package/dist/server/webhooks.mjs +11 -0
- package/dist/server/webhooks.mjs.map +1 -0
- package/package.json +33 -1
- package/dist/server/chunk-3B364WO2.js.map +0 -1
- package/dist/server/chunk-BJTO5JO5.mjs +0 -11
- package/dist/server/chunk-DGUM43GV.js +0 -11
- package/dist/server/chunk-DGUM43GV.js.map +0 -1
- package/dist/server/chunk-I2D7KOEA.js.map +0 -1
- package/dist/server/chunk-I7ZR2WO3.mjs.map +0 -1
- package/dist/server/chunk-IVHIQFJH.js.map +0 -1
- package/dist/server/chunk-XXFF4RVR.mjs.map +0 -1
- package/dist/server/chunk-Z5ZA6Q4D.mjs.map +0 -1
- package/dist/server/loadPage-IDGVDFBB.js.map +0 -1
- /package/dist/server/{chunk-BJTO5JO5.mjs.map → env.mjs.map} +0 -0
- /package/dist/server/{loadPage-DNQTTRHL.mjs.map → loadPage-JI2SML4M.mjs.map} +0 -0
|
@@ -1,142 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import '
|
|
4
|
-
import 'react';
|
|
5
|
-
import './schema-Z6-afHJG.mjs';
|
|
6
|
-
import 'zod';
|
|
7
|
-
import './core-DsNWrl3o.mjs';
|
|
1
|
+
export { P as PageMetadataInput, g as generatePageMetadata, a as generatePreviewMetadata } from './index-BL66CU6d.mjs';
|
|
2
|
+
import './loadPage-CxlYLe5K.mjs';
|
|
3
|
+
import './types-MF2AWoKv.mjs';
|
|
8
4
|
import './types-Dsu9wsUh.mjs';
|
|
9
5
|
import '@riverbankcms/ai';
|
|
6
|
+
import './schema-Z6-afHJG.mjs';
|
|
7
|
+
import 'zod';
|
|
10
8
|
import './link-DjxLyC82.mjs';
|
|
11
9
|
import '@riverbankcms/media-storage-supabase';
|
|
12
10
|
import '@riverbankcms/db';
|
|
11
|
+
import 'react/jsx-runtime';
|
|
12
|
+
import 'react';
|
|
13
|
+
import './core-DsNWrl3o.mjs';
|
|
13
14
|
import './types-CbagRQ_7.mjs';
|
|
14
15
|
import './blockKinds-B6MWzNWp.mjs';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Metadata generation helper for Next.js pages
|
|
18
|
-
*
|
|
19
|
-
* Generates SEO-optimized metadata from Builder page data for use in
|
|
20
|
-
* Next.js generateMetadata() functions.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Next.js Metadata type
|
|
25
|
-
* Simplified version to avoid requiring Next.js as a dependency
|
|
26
|
-
*/
|
|
27
|
-
type Metadata = {
|
|
28
|
-
title?: string;
|
|
29
|
-
description?: string;
|
|
30
|
-
alternates?: {
|
|
31
|
-
canonical?: string;
|
|
32
|
-
};
|
|
33
|
-
openGraph?: {
|
|
34
|
-
title?: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
url?: string;
|
|
37
|
-
siteName?: string;
|
|
38
|
-
type?: string;
|
|
39
|
-
images?: Array<{
|
|
40
|
-
url: string;
|
|
41
|
-
alt?: string;
|
|
42
|
-
}>;
|
|
43
|
-
};
|
|
44
|
-
twitter?: {
|
|
45
|
-
card?: string;
|
|
46
|
-
title?: string;
|
|
47
|
-
description?: string;
|
|
48
|
-
images?: string[];
|
|
49
|
-
};
|
|
50
|
-
robots?: {
|
|
51
|
-
index?: boolean;
|
|
52
|
-
follow?: boolean;
|
|
53
|
-
};
|
|
54
|
-
verification?: {
|
|
55
|
-
google?: string;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
type PageMetadataInput = {
|
|
59
|
-
/**
|
|
60
|
-
* Page data from loadPage() or custom page object
|
|
61
|
-
*/
|
|
62
|
-
page: LoadPageResult['page'] | {
|
|
63
|
-
name: string;
|
|
64
|
-
purpose?: string;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Site data from client.getSite()
|
|
68
|
-
*/
|
|
69
|
-
site: SiteResponse['site'];
|
|
70
|
-
/**
|
|
71
|
-
* Current URL path (e.g., '/about', '/blog/post-1')
|
|
72
|
-
*/
|
|
73
|
-
path: string;
|
|
74
|
-
/**
|
|
75
|
-
* Full site URL for canonical and OG URLs
|
|
76
|
-
* Example: 'https://example.com'
|
|
77
|
-
*/
|
|
78
|
-
siteUrl: string;
|
|
79
|
-
/**
|
|
80
|
-
* Optional custom metadata overrides
|
|
81
|
-
*/
|
|
82
|
-
overrides?: {
|
|
83
|
-
title?: string;
|
|
84
|
-
description?: string;
|
|
85
|
-
ogImage?: string;
|
|
86
|
-
canonicalUrl?: string;
|
|
87
|
-
robots?: {
|
|
88
|
-
index?: boolean;
|
|
89
|
-
follow?: boolean;
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Optional Google site verification token
|
|
94
|
-
*/
|
|
95
|
-
googleSiteVerification?: string;
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Generate Next.js Metadata object from Builder page data
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```tsx
|
|
102
|
-
* import { generatePageMetadata } from '@riverbankcms/sdk/metadata';
|
|
103
|
-
* import { loadPage } from '@riverbankcms/sdk';
|
|
104
|
-
*
|
|
105
|
-
* export async function generateMetadata({ params }) {
|
|
106
|
-
* const pageData = await loadPage({ client, siteId, path: params.slug });
|
|
107
|
-
* const siteData = await client.getSite({ id: siteId });
|
|
108
|
-
*
|
|
109
|
-
* return generatePageMetadata({
|
|
110
|
-
* page: pageData.page,
|
|
111
|
-
* site: siteData.site,
|
|
112
|
-
* path: params.slug,
|
|
113
|
-
* siteUrl: 'https://example.com',
|
|
114
|
-
* });
|
|
115
|
-
* }
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
declare function generatePageMetadata(input: PageMetadataInput): Metadata;
|
|
119
|
-
/**
|
|
120
|
-
* Generate metadata for preview/staging environments
|
|
121
|
-
*
|
|
122
|
-
* This helper adds noindex/nofollow robots tags to prevent search engines
|
|
123
|
-
* from indexing preview or staging URLs.
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```tsx
|
|
127
|
-
* export async function generateMetadata({ params }) {
|
|
128
|
-
* const pageData = await loadPage({ client, siteId, path: params.slug });
|
|
129
|
-
* const isPreview = process.env.VERCEL_ENV !== 'production';
|
|
130
|
-
*
|
|
131
|
-
* return generatePreviewMetadata({
|
|
132
|
-
* page: pageData.page,
|
|
133
|
-
* site: siteData.site,
|
|
134
|
-
* path: params.slug,
|
|
135
|
-
* siteUrl: 'https://example.com',
|
|
136
|
-
* });
|
|
137
|
-
* }
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
declare function generatePreviewMetadata(input: PageMetadataInput): Metadata;
|
|
141
|
-
|
|
142
|
-
export { type PageMetadataInput, generatePageMetadata, generatePreviewMetadata };
|
|
@@ -1,142 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import '
|
|
4
|
-
import 'react';
|
|
5
|
-
import './schema-Z6-afHJG.js';
|
|
6
|
-
import 'zod';
|
|
7
|
-
import './core-DsNWrl3o.js';
|
|
1
|
+
export { P as PageMetadataInput, g as generatePageMetadata, a as generatePreviewMetadata } from './index-CJk9iQQW.js';
|
|
2
|
+
import './loadPage-i2r-X5b9.js';
|
|
3
|
+
import './types-DnkRh0UL.js';
|
|
8
4
|
import './types-CVykEqXN.js';
|
|
9
5
|
import '@riverbankcms/ai';
|
|
6
|
+
import './schema-Z6-afHJG.js';
|
|
7
|
+
import 'zod';
|
|
10
8
|
import './link-DjxLyC82.js';
|
|
11
9
|
import '@riverbankcms/media-storage-supabase';
|
|
12
10
|
import '@riverbankcms/db';
|
|
11
|
+
import 'react/jsx-runtime';
|
|
12
|
+
import 'react';
|
|
13
|
+
import './core-DsNWrl3o.js';
|
|
13
14
|
import './types-DuQCNVV0.js';
|
|
14
15
|
import './blockKinds-B6MWzNWp.js';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Metadata generation helper for Next.js pages
|
|
18
|
-
*
|
|
19
|
-
* Generates SEO-optimized metadata from Builder page data for use in
|
|
20
|
-
* Next.js generateMetadata() functions.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Next.js Metadata type
|
|
25
|
-
* Simplified version to avoid requiring Next.js as a dependency
|
|
26
|
-
*/
|
|
27
|
-
type Metadata = {
|
|
28
|
-
title?: string;
|
|
29
|
-
description?: string;
|
|
30
|
-
alternates?: {
|
|
31
|
-
canonical?: string;
|
|
32
|
-
};
|
|
33
|
-
openGraph?: {
|
|
34
|
-
title?: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
url?: string;
|
|
37
|
-
siteName?: string;
|
|
38
|
-
type?: string;
|
|
39
|
-
images?: Array<{
|
|
40
|
-
url: string;
|
|
41
|
-
alt?: string;
|
|
42
|
-
}>;
|
|
43
|
-
};
|
|
44
|
-
twitter?: {
|
|
45
|
-
card?: string;
|
|
46
|
-
title?: string;
|
|
47
|
-
description?: string;
|
|
48
|
-
images?: string[];
|
|
49
|
-
};
|
|
50
|
-
robots?: {
|
|
51
|
-
index?: boolean;
|
|
52
|
-
follow?: boolean;
|
|
53
|
-
};
|
|
54
|
-
verification?: {
|
|
55
|
-
google?: string;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
type PageMetadataInput = {
|
|
59
|
-
/**
|
|
60
|
-
* Page data from loadPage() or custom page object
|
|
61
|
-
*/
|
|
62
|
-
page: LoadPageResult['page'] | {
|
|
63
|
-
name: string;
|
|
64
|
-
purpose?: string;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Site data from client.getSite()
|
|
68
|
-
*/
|
|
69
|
-
site: SiteResponse['site'];
|
|
70
|
-
/**
|
|
71
|
-
* Current URL path (e.g., '/about', '/blog/post-1')
|
|
72
|
-
*/
|
|
73
|
-
path: string;
|
|
74
|
-
/**
|
|
75
|
-
* Full site URL for canonical and OG URLs
|
|
76
|
-
* Example: 'https://example.com'
|
|
77
|
-
*/
|
|
78
|
-
siteUrl: string;
|
|
79
|
-
/**
|
|
80
|
-
* Optional custom metadata overrides
|
|
81
|
-
*/
|
|
82
|
-
overrides?: {
|
|
83
|
-
title?: string;
|
|
84
|
-
description?: string;
|
|
85
|
-
ogImage?: string;
|
|
86
|
-
canonicalUrl?: string;
|
|
87
|
-
robots?: {
|
|
88
|
-
index?: boolean;
|
|
89
|
-
follow?: boolean;
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Optional Google site verification token
|
|
94
|
-
*/
|
|
95
|
-
googleSiteVerification?: string;
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Generate Next.js Metadata object from Builder page data
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```tsx
|
|
102
|
-
* import { generatePageMetadata } from '@riverbankcms/sdk/metadata';
|
|
103
|
-
* import { loadPage } from '@riverbankcms/sdk';
|
|
104
|
-
*
|
|
105
|
-
* export async function generateMetadata({ params }) {
|
|
106
|
-
* const pageData = await loadPage({ client, siteId, path: params.slug });
|
|
107
|
-
* const siteData = await client.getSite({ id: siteId });
|
|
108
|
-
*
|
|
109
|
-
* return generatePageMetadata({
|
|
110
|
-
* page: pageData.page,
|
|
111
|
-
* site: siteData.site,
|
|
112
|
-
* path: params.slug,
|
|
113
|
-
* siteUrl: 'https://example.com',
|
|
114
|
-
* });
|
|
115
|
-
* }
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
declare function generatePageMetadata(input: PageMetadataInput): Metadata;
|
|
119
|
-
/**
|
|
120
|
-
* Generate metadata for preview/staging environments
|
|
121
|
-
*
|
|
122
|
-
* This helper adds noindex/nofollow robots tags to prevent search engines
|
|
123
|
-
* from indexing preview or staging URLs.
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```tsx
|
|
127
|
-
* export async function generateMetadata({ params }) {
|
|
128
|
-
* const pageData = await loadPage({ client, siteId, path: params.slug });
|
|
129
|
-
* const isPreview = process.env.VERCEL_ENV !== 'production';
|
|
130
|
-
*
|
|
131
|
-
* return generatePreviewMetadata({
|
|
132
|
-
* page: pageData.page,
|
|
133
|
-
* site: siteData.site,
|
|
134
|
-
* path: params.slug,
|
|
135
|
-
* siteUrl: 'https://example.com',
|
|
136
|
-
* });
|
|
137
|
-
* }
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
declare function generatePreviewMetadata(input: PageMetadataInput): Metadata;
|
|
141
|
-
|
|
142
|
-
export { type PageMetadataInput, generatePageMetadata, generatePreviewMetadata };
|
package/dist/server/metadata.js
CHANGED
|
@@ -1,70 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
// src/metadata/generatePageMetadata.ts
|
|
4
|
-
function generatePageMetadata(input) {
|
|
5
|
-
const { page, site, path, siteUrl, overrides, googleSiteVerification } = input;
|
|
6
|
-
const pageTitle = _nullishCoalesce(_optionalChain([overrides, 'optionalAccess', _ => _.title]), () => ( page.name));
|
|
7
|
-
const fullTitle = pageTitle === site.title ? pageTitle : `${pageTitle} | ${site.title}`;
|
|
8
|
-
const description = _nullishCoalesce(_optionalChain([overrides, 'optionalAccess', _2 => _2.description]), () => ( page.purpose));
|
|
9
|
-
const canonicalUrl = _nullishCoalesce(_optionalChain([overrides, 'optionalAccess', _3 => _3.canonicalUrl]), () => ( `${siteUrl}${path}`));
|
|
10
|
-
const fullUrl = `${siteUrl}${path}`;
|
|
11
|
-
const metadata = {
|
|
12
|
-
title: fullTitle,
|
|
13
|
-
description: _nullishCoalesce(description, () => ( void 0)),
|
|
14
|
-
alternates: {
|
|
15
|
-
canonical: canonicalUrl
|
|
16
|
-
},
|
|
17
|
-
openGraph: {
|
|
18
|
-
title: pageTitle,
|
|
19
|
-
description: _nullishCoalesce(description, () => ( void 0)),
|
|
20
|
-
url: fullUrl,
|
|
21
|
-
siteName: site.title,
|
|
22
|
-
type: "website",
|
|
23
|
-
..._optionalChain([overrides, 'optionalAccess', _4 => _4.ogImage]) ? {
|
|
24
|
-
images: [
|
|
25
|
-
{
|
|
26
|
-
url: overrides.ogImage,
|
|
27
|
-
alt: pageTitle
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
} : {}
|
|
31
|
-
},
|
|
32
|
-
twitter: {
|
|
33
|
-
card: "summary_large_image",
|
|
34
|
-
title: pageTitle,
|
|
35
|
-
description: _nullishCoalesce(description, () => ( void 0)),
|
|
36
|
-
..._optionalChain([overrides, 'optionalAccess', _5 => _5.ogImage]) ? {
|
|
37
|
-
images: [overrides.ogImage]
|
|
38
|
-
} : {}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
if (_optionalChain([overrides, 'optionalAccess', _6 => _6.robots])) {
|
|
42
|
-
metadata.robots = {
|
|
43
|
-
index: _nullishCoalesce(overrides.robots.index, () => ( true)),
|
|
44
|
-
follow: _nullishCoalesce(overrides.robots.follow, () => ( true))
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (googleSiteVerification) {
|
|
48
|
-
metadata.verification = {
|
|
49
|
-
google: googleSiteVerification
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return metadata;
|
|
53
|
-
}
|
|
54
|
-
function generatePreviewMetadata(input) {
|
|
55
|
-
return generatePageMetadata({
|
|
56
|
-
...input,
|
|
57
|
-
overrides: {
|
|
58
|
-
...input.overrides,
|
|
59
|
-
robots: {
|
|
60
|
-
index: false,
|
|
61
|
-
follow: false
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
3
|
|
|
4
|
+
var _chunkBNQV3PXPjs = require('./chunk-BNQV3PXP.js');
|
|
67
5
|
|
|
68
6
|
|
|
69
|
-
|
|
7
|
+
|
|
8
|
+
exports.generatePageMetadata = _chunkBNQV3PXPjs.generatePageMetadata; exports.generatePreviewMetadata = _chunkBNQV3PXPjs.generatePreviewMetadata;
|
|
70
9
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/metadata.js"
|
|
1
|
+
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/metadata.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,iJAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/metadata.js"}
|
package/dist/server/metadata.mjs
CHANGED
|
@@ -1,68 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { page, site, path, siteUrl, overrides, googleSiteVerification } = input;
|
|
6
|
-
const pageTitle = overrides?.title ?? page.name;
|
|
7
|
-
const fullTitle = pageTitle === site.title ? pageTitle : `${pageTitle} | ${site.title}`;
|
|
8
|
-
const description = overrides?.description ?? page.purpose;
|
|
9
|
-
const canonicalUrl = overrides?.canonicalUrl ?? `${siteUrl}${path}`;
|
|
10
|
-
const fullUrl = `${siteUrl}${path}`;
|
|
11
|
-
const metadata = {
|
|
12
|
-
title: fullTitle,
|
|
13
|
-
description: description ?? void 0,
|
|
14
|
-
alternates: {
|
|
15
|
-
canonical: canonicalUrl
|
|
16
|
-
},
|
|
17
|
-
openGraph: {
|
|
18
|
-
title: pageTitle,
|
|
19
|
-
description: description ?? void 0,
|
|
20
|
-
url: fullUrl,
|
|
21
|
-
siteName: site.title,
|
|
22
|
-
type: "website",
|
|
23
|
-
...overrides?.ogImage ? {
|
|
24
|
-
images: [
|
|
25
|
-
{
|
|
26
|
-
url: overrides.ogImage,
|
|
27
|
-
alt: pageTitle
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
} : {}
|
|
31
|
-
},
|
|
32
|
-
twitter: {
|
|
33
|
-
card: "summary_large_image",
|
|
34
|
-
title: pageTitle,
|
|
35
|
-
description: description ?? void 0,
|
|
36
|
-
...overrides?.ogImage ? {
|
|
37
|
-
images: [overrides.ogImage]
|
|
38
|
-
} : {}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
if (overrides?.robots) {
|
|
42
|
-
metadata.robots = {
|
|
43
|
-
index: overrides.robots.index ?? true,
|
|
44
|
-
follow: overrides.robots.follow ?? true
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (googleSiteVerification) {
|
|
48
|
-
metadata.verification = {
|
|
49
|
-
google: googleSiteVerification
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return metadata;
|
|
53
|
-
}
|
|
54
|
-
function generatePreviewMetadata(input) {
|
|
55
|
-
return generatePageMetadata({
|
|
56
|
-
...input,
|
|
57
|
-
overrides: {
|
|
58
|
-
...input.overrides,
|
|
59
|
-
robots: {
|
|
60
|
-
index: false,
|
|
61
|
-
follow: false
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
generatePageMetadata,
|
|
3
|
+
generatePreviewMetadata
|
|
4
|
+
} from "./chunk-SWYWZT3L.mjs";
|
|
66
5
|
export {
|
|
67
6
|
generatePageMetadata,
|
|
68
7
|
generatePreviewMetadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/navigation.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B
|
|
1
|
+
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/navigation.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,mxBAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/navigation.js"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { WebhookPayload } from '../webhooks.mjs';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Next.js revalidation handler for webhook-based cache invalidation
|
|
6
|
+
*
|
|
7
|
+
* This module provides a pre-built API route handler for processing
|
|
8
|
+
* CMS webhooks and revalidating Next.js cache entries.
|
|
9
|
+
*
|
|
10
|
+
* @example One-line setup in consumer site
|
|
11
|
+
* ```ts
|
|
12
|
+
* // app/api/revalidate/route.ts
|
|
13
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
14
|
+
* export const POST = createRevalidateHandler();
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example With custom options
|
|
18
|
+
* ```ts
|
|
19
|
+
* // app/api/revalidate/route.ts
|
|
20
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
21
|
+
*
|
|
22
|
+
* export const POST = createRevalidateHandler({
|
|
23
|
+
* onRevalidate: (payload, items) => {
|
|
24
|
+
* console.log(`Revalidated ${items.length} items for ${payload.event}`);
|
|
25
|
+
* },
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Options for the revalidation handler.
|
|
32
|
+
*/
|
|
33
|
+
interface RevalidateHandlerOptions {
|
|
34
|
+
/**
|
|
35
|
+
* Override the webhook secret. Defaults to RIVERBANK_WEBHOOK_SECRET env var.
|
|
36
|
+
*/
|
|
37
|
+
secret?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Callback called after successful revalidation.
|
|
40
|
+
* Useful for logging or analytics.
|
|
41
|
+
*/
|
|
42
|
+
onRevalidate?: (payload: WebhookPayload, revalidatedItems: string[]) => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a Next.js API route handler for webhook revalidation.
|
|
46
|
+
*
|
|
47
|
+
* The handler:
|
|
48
|
+
* 1. Verifies the webhook signature using HMAC-SHA256
|
|
49
|
+
* 2. Calls `revalidateTag()` for each tag in the payload
|
|
50
|
+
* 3. Calls `revalidatePath()` if a path is included in the data
|
|
51
|
+
* 4. Returns a JSON response with the revalidation results
|
|
52
|
+
*
|
|
53
|
+
* @param options - Configuration options
|
|
54
|
+
* @returns A Next.js Route Handler function
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* // app/api/revalidate/route.ts
|
|
59
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
60
|
+
*
|
|
61
|
+
* export const POST = createRevalidateHandler();
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
declare function createRevalidateHandler(options?: RevalidateHandlerOptions): (request: Request) => Promise<Response>;
|
|
65
|
+
|
|
66
|
+
export { type RevalidateHandlerOptions, createRevalidateHandler };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { WebhookPayload } from '../webhooks.js';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Next.js revalidation handler for webhook-based cache invalidation
|
|
6
|
+
*
|
|
7
|
+
* This module provides a pre-built API route handler for processing
|
|
8
|
+
* CMS webhooks and revalidating Next.js cache entries.
|
|
9
|
+
*
|
|
10
|
+
* @example One-line setup in consumer site
|
|
11
|
+
* ```ts
|
|
12
|
+
* // app/api/revalidate/route.ts
|
|
13
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
14
|
+
* export const POST = createRevalidateHandler();
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example With custom options
|
|
18
|
+
* ```ts
|
|
19
|
+
* // app/api/revalidate/route.ts
|
|
20
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
21
|
+
*
|
|
22
|
+
* export const POST = createRevalidateHandler({
|
|
23
|
+
* onRevalidate: (payload, items) => {
|
|
24
|
+
* console.log(`Revalidated ${items.length} items for ${payload.event}`);
|
|
25
|
+
* },
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Options for the revalidation handler.
|
|
32
|
+
*/
|
|
33
|
+
interface RevalidateHandlerOptions {
|
|
34
|
+
/**
|
|
35
|
+
* Override the webhook secret. Defaults to RIVERBANK_WEBHOOK_SECRET env var.
|
|
36
|
+
*/
|
|
37
|
+
secret?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Callback called after successful revalidation.
|
|
40
|
+
* Useful for logging or analytics.
|
|
41
|
+
*/
|
|
42
|
+
onRevalidate?: (payload: WebhookPayload, revalidatedItems: string[]) => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a Next.js API route handler for webhook revalidation.
|
|
46
|
+
*
|
|
47
|
+
* The handler:
|
|
48
|
+
* 1. Verifies the webhook signature using HMAC-SHA256
|
|
49
|
+
* 2. Calls `revalidateTag()` for each tag in the payload
|
|
50
|
+
* 3. Calls `revalidatePath()` if a path is included in the data
|
|
51
|
+
* 4. Returns a JSON response with the revalidation results
|
|
52
|
+
*
|
|
53
|
+
* @param options - Configuration options
|
|
54
|
+
* @returns A Next.js Route Handler function
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* // app/api/revalidate/route.ts
|
|
59
|
+
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
60
|
+
*
|
|
61
|
+
* export const POST = createRevalidateHandler();
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
declare function createRevalidateHandler(options?: RevalidateHandlerOptions): (request: Request) => Promise<Response>;
|
|
65
|
+
|
|
66
|
+
export { type RevalidateHandlerOptions, createRevalidateHandler };
|