@riverbankcms/sdk 0.7.2 → 0.7.4
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 +54 -0
- package/dist/client/bookings.d.mts +2 -0
- package/dist/client/bookings.d.ts +2 -0
- package/dist/client/bookings.js +2956 -104
- package/dist/client/bookings.js.map +1 -1
- package/dist/client/bookings.mjs +2929 -70
- 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 +80 -11
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +87 -11
- 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/rendering/client.js +3070 -259
- package/dist/client/rendering/client.js.map +1 -1
- package/dist/client/rendering/client.mjs +3212 -395
- package/dist/client/rendering/client.mjs.map +1 -1
- package/dist/client/spam-protection.d.mts +55 -0
- package/dist/client/spam-protection.d.ts +55 -0
- package/dist/client/spam-protection.js +2915 -0
- package/dist/client/spam-protection.js.map +1 -0
- package/dist/client/spam-protection.mjs +2893 -0
- package/dist/client/spam-protection.mjs.map +1 -0
- package/dist/client/{usePage-Db9kzA41.d.ts → usePage-BYmJCCm1.d.ts} +14 -2
- package/dist/client/{usePage-C9tJpuKa.d.mts → usePage-DZtrWajy.d.mts} +14 -2
- package/dist/server/{Layout-Ce7PU9I5.d.ts → Layout-Yluyb6sK.d.ts} +1 -1
- package/dist/server/{Layout-WllR8Zug.d.mts → Layout-qWLdVm5-.d.mts} +1 -1
- package/dist/server/chunk-2IZ6S225.js +122 -0
- package/dist/server/chunk-2IZ6S225.js.map +1 -0
- package/dist/server/chunk-4CV4JOE5.js +27 -0
- package/dist/server/chunk-4CV4JOE5.js.map +1 -0
- package/dist/server/{chunk-AET56TQX.mjs → chunk-5LRR64Y6.mjs} +32 -5
- package/dist/server/chunk-5LRR64Y6.mjs.map +1 -0
- package/dist/server/{chunk-HMENX4Y7.js → chunk-6Z4MQG47.js} +370 -49
- package/dist/server/chunk-6Z4MQG47.js.map +1 -0
- package/dist/server/{chunk-5JT452F2.mjs → chunk-JNU7ZS2V.mjs} +340 -19
- package/dist/server/chunk-JNU7ZS2V.mjs.map +1 -0
- package/dist/server/{chunk-VODFQMUW.js → chunk-NBTRDLCM.js} +32 -5
- package/dist/server/chunk-NBTRDLCM.js.map +1 -0
- package/dist/server/chunk-NFEGQTCC.mjs +27 -0
- package/dist/server/chunk-PPHZV6YD.mjs +122 -0
- package/dist/server/chunk-PPHZV6YD.mjs.map +1 -0
- package/dist/server/{components-RPzRQve6.d.mts → components-DNHfSCML.d.mts} +3 -3
- package/dist/server/{components--LT61IKp.d.ts → components-Di5ME6He.d.ts} +3 -3
- package/dist/server/components.d.mts +5 -5
- package/dist/server/components.d.ts +5 -5
- package/dist/server/components.js +1 -0
- package/dist/server/components.js.map +1 -1
- package/dist/server/components.mjs +1 -0
- package/dist/server/config-validation.js +1 -0
- package/dist/server/config-validation.js.map +1 -1
- package/dist/server/config-validation.mjs +1 -0
- package/dist/server/config.js +1 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs +1 -0
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/data.d.mts +2 -2
- package/dist/server/data.d.ts +2 -2
- package/dist/server/data.js +1 -0
- package/dist/server/data.js.map +1 -1
- package/dist/server/data.mjs +1 -0
- package/dist/server/env.d.mts +91 -5
- package/dist/server/env.d.ts +91 -5
- package/dist/server/env.js +9 -2
- package/dist/server/env.js.map +1 -1
- package/dist/server/env.mjs +8 -1
- package/dist/server/{index-BL66CU6d.d.mts → index--Oyunk_B.d.mts} +2 -2
- package/dist/server/{index-CJk9iQQW.d.ts → index-C9Ra8dza.d.ts} +2 -2
- package/dist/server/{index-Bkva0WAj.d.mts → index-Clm3skz_.d.mts} +1 -1
- package/dist/server/{index-CSBWKA3r.d.ts → index-DLvNddi-.d.ts} +1 -1
- package/dist/server/index.d.mts +215 -4
- package/dist/server/index.d.ts +215 -4
- package/dist/server/index.js +301 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +301 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/{loadContent-CXUWMuzY.d.ts → loadContent-D7LQwI0o.d.ts} +3 -3
- package/dist/server/{loadContent-F_tAS0Nl.d.mts → loadContent-DVfuBLiZ.d.mts} +3 -3
- package/dist/server/{loadPage-6I7F6GRF.js → loadPage-AXNAERDS.js} +2 -1
- package/dist/server/loadPage-AXNAERDS.js.map +1 -0
- package/dist/server/{loadPage-i2r-X5b9.d.ts → loadPage-BmYJCe_V.d.ts} +2 -2
- package/dist/server/{loadPage-CxlYLe5K.d.mts → loadPage-BucnLHmE.d.mts} +2 -2
- package/dist/server/{loadPage-JI2SML4M.mjs → loadPage-XR7ORQ2E.mjs} +2 -1
- package/dist/server/loadPage-XR7ORQ2E.mjs.map +1 -0
- package/dist/server/metadata.d.mts +4 -4
- package/dist/server/metadata.d.ts +4 -4
- package/dist/server/metadata.js +1 -0
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/metadata.mjs +1 -0
- package/dist/server/navigation.d.mts +2 -2
- package/dist/server/navigation.d.ts +2 -2
- package/dist/server/navigation.js +1 -0
- package/dist/server/navigation.js.map +1 -1
- package/dist/server/navigation.mjs +1 -0
- package/dist/server/next/revalidate.js +5 -4
- package/dist/server/next/revalidate.js.map +1 -1
- package/dist/server/next/revalidate.mjs +3 -2
- package/dist/server/next/revalidate.mjs.map +1 -1
- package/dist/server/next/tags.d.mts +3 -0
- package/dist/server/next/tags.d.ts +3 -0
- package/dist/server/next/tags.js +3 -1
- package/dist/server/next/tags.js.map +1 -1
- package/dist/server/next/tags.mjs +2 -0
- package/dist/server/next/tags.mjs.map +1 -1
- package/dist/server/next.d.mts +5 -5
- package/dist/server/next.d.ts +5 -5
- package/dist/server/next.js +5 -4
- package/dist/server/next.js.map +1 -1
- package/dist/server/next.mjs +3 -2
- 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/server.js +1 -0
- package/dist/server/rendering/server.js.map +1 -1
- package/dist/server/rendering/server.mjs +1 -0
- package/dist/server/rendering.d.mts +7 -7
- package/dist/server/rendering.d.ts +7 -7
- package/dist/server/rendering.js +1 -0
- package/dist/server/rendering.js.map +1 -1
- package/dist/server/rendering.mjs +1 -0
- package/dist/server/routing.d.mts +3 -3
- package/dist/server/routing.d.ts +3 -3
- package/dist/server/routing.js +4 -2
- package/dist/server/routing.js.map +1 -1
- package/dist/server/routing.mjs +3 -1
- package/dist/server/routing.mjs.map +1 -1
- package/dist/server/server.d.mts +5 -5
- package/dist/server/server.d.ts +5 -5
- package/dist/server/server.js +3 -2
- package/dist/server/server.js.map +1 -1
- package/dist/server/server.mjs +2 -1
- package/dist/server/theme-bridge.js +1 -0
- package/dist/server/theme-bridge.js.map +1 -1
- package/dist/server/theme-bridge.mjs +1 -0
- package/dist/server/theme-bridge.mjs.map +1 -1
- package/dist/server/theme.js +3 -1
- package/dist/server/theme.js.map +1 -1
- package/dist/server/theme.mjs +2 -0
- package/dist/server/theme.mjs.map +1 -1
- package/dist/server/{types-DnkRh0UL.d.ts → types-BRQyLrQU.d.ts} +14 -2
- package/dist/server/{types-Dsu9wsUh.d.mts → types-BSV6Vc-P.d.mts} +2 -2
- package/dist/server/{types-MF2AWoKv.d.mts → types-C-LShyIg.d.mts} +14 -2
- package/dist/server/{types-CVykEqXN.d.ts → types-Dt98DeYa.d.ts} +2 -2
- package/dist/server/webhooks.d.mts +8 -2
- package/dist/server/webhooks.d.ts +8 -2
- package/dist/server/webhooks.js +3 -2
- package/dist/server/webhooks.js.map +1 -1
- package/dist/server/webhooks.mjs +2 -1
- package/package.json +7 -1
- package/dist/client/resolver-BhueZVxZ.d.mts +0 -61
- package/dist/client/resolver-BhueZVxZ.d.ts +0 -61
- package/dist/client/usePage--fGlyrgj.d.mts +0 -6439
- package/dist/client/usePage-BBcFCxOU.d.ts +0 -6297
- package/dist/client/usePage-BC8Q2E3t.d.mts +0 -6431
- package/dist/client/usePage-BTPnCuWC.d.mts +0 -6511
- package/dist/client/usePage-BXjk8BhD.d.mts +0 -6704
- package/dist/client/usePage-BafOS9UT.d.mts +0 -6512
- package/dist/client/usePage-BcjWPXvh.d.mts +0 -6388
- package/dist/client/usePage-BiOReg0_.d.ts +0 -6704
- package/dist/client/usePage-Bnx-kA6x.d.mts +0 -6670
- package/dist/client/usePage-BvKAa3Zw.d.mts +0 -366
- package/dist/client/usePage-BvKAa3Zw.d.ts +0 -366
- package/dist/client/usePage-BydHcMYB.d.mts +0 -6297
- package/dist/client/usePage-C3ZKNwY7.d.mts +0 -6393
- package/dist/client/usePage-CE7X5NcN.d.ts +0 -6439
- package/dist/client/usePage-CHEybPMD.d.ts +0 -6429
- package/dist/client/usePage-CrKw1H6Y.d.ts +0 -6338
- package/dist/client/usePage-CyYpOJud.d.ts +0 -6388
- package/dist/client/usePage-D4fxZbRR.d.mts +0 -6429
- package/dist/client/usePage-DMI8ImsU.d.mts +0 -6338
- package/dist/client/usePage-DoPI6b8V.d.ts +0 -6511
- package/dist/client/usePage-DpRNZUtP.d.ts +0 -6431
- package/dist/client/usePage-QNWArrVO.d.ts +0 -6670
- package/dist/client/usePage-fBgPB6Oq.d.ts +0 -6512
- package/dist/client/usePage-gpVaeWDy.d.ts +0 -6393
- package/dist/server/chunk-5JT452F2.mjs.map +0 -1
- package/dist/server/chunk-AET56TQX.mjs.map +0 -1
- package/dist/server/chunk-HMENX4Y7.js.map +0 -1
- package/dist/server/chunk-LQUKXIW7.mjs +0 -13
- package/dist/server/chunk-LQUKXIW7.mjs.map +0 -1
- package/dist/server/chunk-VODFQMUW.js.map +0 -1
- package/dist/server/chunk-WYNEYDXO.js +0 -13
- package/dist/server/chunk-WYNEYDXO.js.map +0 -1
- package/dist/server/loadPage-6I7F6GRF.js.map +0 -1
- /package/dist/server/{loadPage-JI2SML4M.mjs.map → chunk-NFEGQTCC.mjs.map} +0 -0
package/README.md
CHANGED
|
@@ -2703,6 +2703,59 @@ export default async function CustomPage({ params }) {
|
|
|
2703
2703
|
}
|
|
2704
2704
|
```
|
|
2705
2705
|
|
|
2706
|
+
## Spam Protection
|
|
2707
|
+
|
|
2708
|
+
Add ALTCHA proof-of-work spam protection to forms. The widget runs entirely client-side and requires no API keys.
|
|
2709
|
+
|
|
2710
|
+
### Setup
|
|
2711
|
+
|
|
2712
|
+
```tsx
|
|
2713
|
+
'use client'
|
|
2714
|
+
|
|
2715
|
+
import { useSpamProtection, getChallengeUrl } from '@riverbankcms/sdk/spam-protection'
|
|
2716
|
+
|
|
2717
|
+
function ContactForm() {
|
|
2718
|
+
const { solution, isReady, reset, Widget } = useSpamProtection(getChallengeUrl())
|
|
2719
|
+
|
|
2720
|
+
const handleSubmit = async (e: React.FormEvent) => {
|
|
2721
|
+
e.preventDefault()
|
|
2722
|
+
if (!isReady) return
|
|
2723
|
+
|
|
2724
|
+
await fetch('/api/contact', {
|
|
2725
|
+
method: 'POST',
|
|
2726
|
+
body: JSON.stringify({
|
|
2727
|
+
...formData,
|
|
2728
|
+
altchaSolution: solution, // Include with submission
|
|
2729
|
+
}),
|
|
2730
|
+
})
|
|
2731
|
+
reset() // Reset for another submission
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
return (
|
|
2735
|
+
<form onSubmit={handleSubmit}>
|
|
2736
|
+
{/* form fields */}
|
|
2737
|
+
<Widget />
|
|
2738
|
+
<button disabled={!isReady}>Submit</button>
|
|
2739
|
+
</form>
|
|
2740
|
+
)
|
|
2741
|
+
}
|
|
2742
|
+
```
|
|
2743
|
+
|
|
2744
|
+
### Environment
|
|
2745
|
+
|
|
2746
|
+
Set `NEXT_PUBLIC_DASHBOARD_URL` so `getChallengeUrl()` resolves correctly.
|
|
2747
|
+
|
|
2748
|
+
### Exports
|
|
2749
|
+
|
|
2750
|
+
```tsx
|
|
2751
|
+
import {
|
|
2752
|
+
useSpamProtection, // Hook for solution state management
|
|
2753
|
+
getChallengeUrl, // Returns challenge endpoint URL
|
|
2754
|
+
hasSpamProtection, // Check if spam protection is enabled (server-only)
|
|
2755
|
+
AltchaWidget, // Low-level widget component
|
|
2756
|
+
} from '@riverbankcms/sdk/spam-protection'
|
|
2757
|
+
```
|
|
2758
|
+
|
|
2706
2759
|
## Additional Exports
|
|
2707
2760
|
|
|
2708
2761
|
- `@riverbankcms/sdk/rendering` - Low-level rendering components
|
|
@@ -2716,3 +2769,4 @@ export default async function CustomPage({ params }) {
|
|
|
2716
2769
|
- `@riverbankcms/sdk/analytics` - Analytics tracking helpers
|
|
2717
2770
|
- `@riverbankcms/sdk/config` - Site configuration utilities (includes `defineConfig`, `defineContentConfig`, `RiverbankSiteConfig`, `ContentConfig`, etc.)
|
|
2718
2771
|
- `@riverbankcms/sdk/next` - Next.js integration utilities (`createCatchAllPage`)
|
|
2772
|
+
- `@riverbankcms/sdk/spam-protection` - ALTCHA spam protection (`useSpamProtection`, `getChallengeUrl`, `AltchaWidget`)
|
|
@@ -23,6 +23,8 @@ type BookingFormProps = {
|
|
|
23
23
|
className?: string;
|
|
24
24
|
form?: FormConfig | null;
|
|
25
25
|
services?: Service$2[];
|
|
26
|
+
/** Server-passed spam protection flag. Falls back to NEXT_PUBLIC_SPAM_PROTECTION_ENABLED. */
|
|
27
|
+
spamProtectionEnabled?: boolean;
|
|
26
28
|
};
|
|
27
29
|
/**
|
|
28
30
|
* BookingFormClient Component
|
|
@@ -23,6 +23,8 @@ type BookingFormProps = {
|
|
|
23
23
|
className?: string;
|
|
24
24
|
form?: FormConfig | null;
|
|
25
25
|
services?: Service$2[];
|
|
26
|
+
/** Server-passed spam protection flag. Falls back to NEXT_PUBLIC_SPAM_PROTECTION_ENABLED. */
|
|
27
|
+
spamProtectionEnabled?: boolean;
|
|
26
28
|
};
|
|
27
29
|
/**
|
|
28
30
|
* BookingFormClient Component
|