@marvalt/wadapter 2.3.5 → 2.3.6
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/dist/gravity-forms/gravity-forms-client.d.ts +1 -1
- package/dist/gravity-forms/gravity-forms-client.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +138 -68
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +138 -67
- package/dist/index.js.map +1 -1
- package/dist/react/components/GravityForm.d.ts.map +1 -1
- package/dist/react/components/TurnstileWidget.d.ts +50 -0
- package/dist/react/components/TurnstileWidget.d.ts.map +1 -0
- package/dist/server/gravity-forms-proxy.d.ts +22 -0
- package/dist/server/gravity-forms-proxy.d.ts.map +1 -0
- package/dist/server/index.d.ts +23 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/turnstile.d.ts +24 -0
- package/dist/server/turnstile.d.ts.map +1 -0
- package/dist/server.cjs +212 -0
- package/dist/server.cjs.map +1 -0
- package/dist/server.esm.js +209 -0
- package/dist/server.esm.js.map +1 -0
- package/dist/types/gravity-forms.d.ts +1 -0
- package/dist/types/gravity-forms.d.ts.map +1 -1
- package/package.json +9 -2
- package/scripts/postinstall.cjs +96 -0
- package/templates/gravity-forms-submit.ts +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GravityForm.d.ts","sourceRoot":"","sources":["../../../src/react/components/GravityForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"GravityForm.d.ts","sourceRoot":"","sources":["../../../src/react/components/GravityForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAyB,MAAM,2BAA2B,CAAC;AAGtF,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAuMlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license GPL-3.0-or-later
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the MarVAlt Open SDK.
|
|
5
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
6
|
+
*
|
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
* (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU General Public License for more details.
|
|
16
|
+
*/
|
|
17
|
+
import React from 'react';
|
|
18
|
+
declare global {
|
|
19
|
+
interface Window {
|
|
20
|
+
turnstile: {
|
|
21
|
+
render: (container: string | HTMLElement, options: {
|
|
22
|
+
sitekey: string;
|
|
23
|
+
action?: string;
|
|
24
|
+
cData?: string;
|
|
25
|
+
callback?: (token: string) => void;
|
|
26
|
+
'error-callback'?: () => void;
|
|
27
|
+
'expired-callback'?: () => void;
|
|
28
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
29
|
+
size?: 'normal' | 'compact';
|
|
30
|
+
tabindex?: number;
|
|
31
|
+
}) => string;
|
|
32
|
+
reset: (widgetId: string) => void;
|
|
33
|
+
remove: (widgetId: string) => void;
|
|
34
|
+
getResponse: (widgetId: string) => string | undefined;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export interface TurnstileWidgetProps {
|
|
39
|
+
siteKey: string;
|
|
40
|
+
action?: string;
|
|
41
|
+
cData?: string;
|
|
42
|
+
onSuccess: (token: string) => void;
|
|
43
|
+
onError?: () => void;
|
|
44
|
+
onExpire?: () => void;
|
|
45
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
46
|
+
size?: 'normal' | 'compact';
|
|
47
|
+
tabIndex?: number;
|
|
48
|
+
}
|
|
49
|
+
export declare const TurnstileWidget: React.FC<TurnstileWidgetProps>;
|
|
50
|
+
//# sourceMappingURL=TurnstileWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnstileWidget.d.ts","sourceRoot":"","sources":["../../../src/react/components/TurnstileWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,EAAE;YACT,MAAM,EAAE,CACN,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC;gBAChB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;gBACnC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAC9B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;gBAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;gBAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;aACnB,KACE,MAAM,CAAC;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;YAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;YACnC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;SACvD,CAAC;KACH;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoE1D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license GPL-3.0-or-later
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the MarVAlt Open SDK.
|
|
5
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
6
|
+
*
|
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
* (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU General Public License for more details.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Cloudflare Pages Function handler for Gravity Forms API proxy
|
|
19
|
+
* Handles WordPress Basic Auth server-side to keep credentials secure
|
|
20
|
+
*/
|
|
21
|
+
export declare function handleGravityFormsProxy(context: any): Promise<Response>;
|
|
22
|
+
//# sourceMappingURL=gravity-forms-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gravity-forms-proxy.d.ts","sourceRoot":"","sources":["../../src/server/gravity-forms-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,GAAG,qBAsLzD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license GPL-3.0-or-later
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the MarVAlt Open SDK.
|
|
5
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
6
|
+
*
|
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
* (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU General Public License for more details.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Server-side exports for Cloudflare Pages Functions
|
|
19
|
+
* Do NOT import this in browser code!
|
|
20
|
+
*/
|
|
21
|
+
export * from './gravity-forms-proxy';
|
|
22
|
+
export * from './turnstile';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license GPL-3.0-or-later
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the MarVAlt Open SDK.
|
|
5
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
6
|
+
*
|
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
* (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU General Public License for more details.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Verifies a Cloudflare Turnstile token server-side.
|
|
19
|
+
* @param token The Turnstile token received from the client.
|
|
20
|
+
* @param secretKey Your Turnstile secret key.
|
|
21
|
+
* @returns True if the token is valid, false otherwise.
|
|
22
|
+
*/
|
|
23
|
+
export declare function verifyTurnstile(token: string, secretKey: string): Promise<boolean>;
|
|
24
|
+
//# sourceMappingURL=turnstile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turnstile.d.ts","sourceRoot":"","sources":["../../src/server/turnstile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWxF"}
|
package/dist/server.cjs
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @license GPL-3.0-or-later
|
|
5
|
+
*
|
|
6
|
+
* This file is part of the MarVAlt Open SDK.
|
|
7
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
8
|
+
*
|
|
9
|
+
* This program is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
17
|
+
* See the GNU General Public License for more details.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Verifies a Cloudflare Turnstile token server-side.
|
|
21
|
+
* @param token The Turnstile token received from the client.
|
|
22
|
+
* @param secretKey Your Turnstile secret key.
|
|
23
|
+
* @returns True if the token is valid, false otherwise.
|
|
24
|
+
*/
|
|
25
|
+
async function verifyTurnstile(token, secretKey) {
|
|
26
|
+
const response = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: {
|
|
29
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
30
|
+
},
|
|
31
|
+
body: `secret=${encodeURIComponent(secretKey)}&response=${encodeURIComponent(token)}`,
|
|
32
|
+
});
|
|
33
|
+
const data = await response.json();
|
|
34
|
+
return data.success;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @license GPL-3.0-or-later
|
|
39
|
+
*
|
|
40
|
+
* This file is part of the MarVAlt Open SDK.
|
|
41
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
42
|
+
*
|
|
43
|
+
* This program is free software: you can redistribute it and/or modify
|
|
44
|
+
* it under the terms of the GNU General Public License as published by
|
|
45
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
46
|
+
* (at your option) any later version.
|
|
47
|
+
*
|
|
48
|
+
* This program is distributed in the hope that it will be useful,
|
|
49
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
50
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
51
|
+
* See the GNU General Public License for more details.
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* Cloudflare Pages Function handler for Gravity Forms API proxy
|
|
55
|
+
* Handles WordPress Basic Auth server-side to keep credentials secure
|
|
56
|
+
*/
|
|
57
|
+
async function handleGravityFormsProxy(context) {
|
|
58
|
+
const { request, env } = context;
|
|
59
|
+
try {
|
|
60
|
+
const url = new URL(request.url);
|
|
61
|
+
const endpoint = url.searchParams.get('endpoint');
|
|
62
|
+
if (!endpoint) {
|
|
63
|
+
return new Response('Missing endpoint parameter', { status: 400 });
|
|
64
|
+
}
|
|
65
|
+
// ============================================
|
|
66
|
+
// SECURITY LAYER 1: Origin Validation
|
|
67
|
+
// ============================================
|
|
68
|
+
const origin = request.headers.get('Origin');
|
|
69
|
+
const referer = request.headers.get('Referer');
|
|
70
|
+
const allowedOriginsStr = env.ALLOWED_ORIGINS || env.VITE_ALLOWED_ORIGINS || '';
|
|
71
|
+
const allowedOrigins = allowedOriginsStr
|
|
72
|
+
.split(',')
|
|
73
|
+
.map((o) => o.trim())
|
|
74
|
+
.filter(Boolean);
|
|
75
|
+
if (allowedOrigins.length === 0) {
|
|
76
|
+
allowedOrigins.push('http://localhost:8080', 'http://localhost:5173');
|
|
77
|
+
console.log('⚠️ No ALLOWED_ORIGINS configured, defaulting to localhost');
|
|
78
|
+
}
|
|
79
|
+
const isAllowedOrigin = allowedOrigins.some((allowed) => origin?.startsWith(allowed) || referer?.startsWith(allowed));
|
|
80
|
+
if ((origin || referer) && !isAllowedOrigin) {
|
|
81
|
+
console.warn('🚫 Blocked request from unauthorized origin:', origin || referer);
|
|
82
|
+
return new Response(JSON.stringify({
|
|
83
|
+
error: 'Forbidden origin',
|
|
84
|
+
message: 'This endpoint can only be accessed from authorized domains'
|
|
85
|
+
}), {
|
|
86
|
+
status: 403,
|
|
87
|
+
headers: { 'Content-Type': 'application/json' }
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// ============================================
|
|
91
|
+
// SECURITY LAYER 2: Endpoint Whitelisting
|
|
92
|
+
// ============================================
|
|
93
|
+
const allowedPatterns = [
|
|
94
|
+
/^\/forms\/\d+\/submit$/, // Form submissions only
|
|
95
|
+
];
|
|
96
|
+
const isAllowedEndpoint = allowedPatterns.some(pattern => pattern.test(endpoint));
|
|
97
|
+
if (!isAllowedEndpoint) {
|
|
98
|
+
console.warn('🚫 Blocked unauthorized endpoint:', endpoint);
|
|
99
|
+
return new Response(JSON.stringify({
|
|
100
|
+
error: 'Forbidden endpoint',
|
|
101
|
+
message: 'Only form submission endpoints are allowed'
|
|
102
|
+
}), {
|
|
103
|
+
status: 403,
|
|
104
|
+
headers: { 'Content-Type': 'application/json' }
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// ============================================
|
|
108
|
+
// SECURITY LAYER 3: Turnstile Verification
|
|
109
|
+
// ============================================
|
|
110
|
+
const turnstileSecretKey = env.TURNSTILE_SECRET_KEY || env.VITE_TURNSTILE_SECRET_KEY;
|
|
111
|
+
const turnstileEnabled = !!turnstileSecretKey;
|
|
112
|
+
if (turnstileEnabled && request.method === 'POST') {
|
|
113
|
+
const turnstileToken = request.headers.get('cf-turnstile-response');
|
|
114
|
+
if (!turnstileToken) {
|
|
115
|
+
console.warn('🚫 Missing Turnstile token for POST request');
|
|
116
|
+
return new Response(JSON.stringify({
|
|
117
|
+
error: 'Missing verification',
|
|
118
|
+
message: 'Bot verification required'
|
|
119
|
+
}), {
|
|
120
|
+
status: 403,
|
|
121
|
+
headers: { 'Content-Type': 'application/json' }
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const isValid = await verifyTurnstile(turnstileToken, turnstileSecretKey);
|
|
125
|
+
if (!isValid) {
|
|
126
|
+
console.warn('🚫 Invalid Turnstile token');
|
|
127
|
+
return new Response(JSON.stringify({
|
|
128
|
+
error: 'Verification failed',
|
|
129
|
+
message: 'Bot verification failed'
|
|
130
|
+
}), {
|
|
131
|
+
status: 403,
|
|
132
|
+
headers: { 'Content-Type': 'application/json' }
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
console.log('✅ Turnstile verification passed');
|
|
136
|
+
}
|
|
137
|
+
else if (turnstileEnabled) {
|
|
138
|
+
console.log('ℹ️ Turnstile enabled but skipped for non-POST request');
|
|
139
|
+
}
|
|
140
|
+
// ============================================
|
|
141
|
+
// SECURITY LAYER 4: WordPress Basic Auth
|
|
142
|
+
// ============================================
|
|
143
|
+
const wpUrl = env.VITE_WORDPRESS_API_URL || env.WORDPRESS_API_URL;
|
|
144
|
+
const username = env.VITE_WP_API_USERNAME || env.WP_API_USERNAME;
|
|
145
|
+
const password = env.VITE_WP_APP_PASSWORD || env.WP_APP_PASSWORD;
|
|
146
|
+
if (!wpUrl || !username || !password) {
|
|
147
|
+
console.error('❌ WordPress credentials not configured', {
|
|
148
|
+
wpUrl: !!wpUrl,
|
|
149
|
+
username: !!username,
|
|
150
|
+
password: !!password
|
|
151
|
+
});
|
|
152
|
+
return new Response('WordPress credentials not configured', { status: 500 });
|
|
153
|
+
}
|
|
154
|
+
// Create Basic Auth header
|
|
155
|
+
const authHeader = 'Basic ' + btoa(`${username}:${password}`);
|
|
156
|
+
const headers = {
|
|
157
|
+
'Authorization': authHeader,
|
|
158
|
+
};
|
|
159
|
+
// Preserve Content-Type from original request
|
|
160
|
+
const contentType = request.headers.get('Content-Type');
|
|
161
|
+
if (contentType) {
|
|
162
|
+
headers['Content-Type'] = contentType;
|
|
163
|
+
}
|
|
164
|
+
// ============================================
|
|
165
|
+
// SECURITY LAYER 5: CF Access (Optional)
|
|
166
|
+
// ============================================
|
|
167
|
+
const cfAccessClientId = env.CF_ACCESS_CLIENT_ID || env.VITE_CF_ACCESS_CLIENT_ID;
|
|
168
|
+
const cfAccessClientSecret = env.CF_ACCESS_CLIENT_SECRET || env.VITE_CF_ACCESS_CLIENT_SECRET;
|
|
169
|
+
if (cfAccessClientId && cfAccessClientSecret) {
|
|
170
|
+
headers['CF-Access-Client-Id'] = cfAccessClientId;
|
|
171
|
+
headers['CF-Access-Client-Secret'] = cfAccessClientSecret;
|
|
172
|
+
console.log('🔐 Added CF Access headers to WordPress request');
|
|
173
|
+
}
|
|
174
|
+
// Build target URL
|
|
175
|
+
const targetUrl = `${wpUrl}/wp-json/gf-api/v1${endpoint}`;
|
|
176
|
+
const init = {
|
|
177
|
+
method: request.method,
|
|
178
|
+
headers,
|
|
179
|
+
};
|
|
180
|
+
if (request.method !== 'GET' && request.method !== 'HEAD') {
|
|
181
|
+
init.body = await request.text();
|
|
182
|
+
}
|
|
183
|
+
console.log(`📤 Proxying ${request.method} request to WordPress:`, {
|
|
184
|
+
endpoint,
|
|
185
|
+
targetUrl
|
|
186
|
+
});
|
|
187
|
+
const response = await fetch(targetUrl, init);
|
|
188
|
+
console.log(`📥 WordPress response: ${response.status} ${response.statusText}`);
|
|
189
|
+
const responseBody = await response.text();
|
|
190
|
+
return new Response(responseBody, {
|
|
191
|
+
status: response.status,
|
|
192
|
+
statusText: response.statusText,
|
|
193
|
+
headers: {
|
|
194
|
+
'Content-Type': response.headers.get('Content-Type') || 'application/json',
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.error('❌ Gravity Forms proxy error:', error);
|
|
200
|
+
return new Response(JSON.stringify({
|
|
201
|
+
success: false,
|
|
202
|
+
error: error?.message || 'Unknown error',
|
|
203
|
+
}), {
|
|
204
|
+
status: 500,
|
|
205
|
+
headers: { 'Content-Type': 'application/json' },
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
exports.handleGravityFormsProxy = handleGravityFormsProxy;
|
|
211
|
+
exports.verifyTurnstile = verifyTurnstile;
|
|
212
|
+
//# sourceMappingURL=server.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs","sources":["../src/server/turnstile.ts","../src/server/gravity-forms-proxy.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license GPL-3.0-or-later
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the MarVAlt Open SDK.
|
|
5
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
6
|
+
*
|
|
7
|
+
* This program is free software: you can redistribute it and/or modify
|
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
* (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* This program is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
15
|
+
* See the GNU General Public License for more details.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Verifies a Cloudflare Turnstile token server-side.
|
|
19
|
+
* @param token The Turnstile token received from the client.
|
|
20
|
+
* @param secretKey Your Turnstile secret key.
|
|
21
|
+
* @returns True if the token is valid, false otherwise.
|
|
22
|
+
*/
|
|
23
|
+
async function verifyTurnstile(token, secretKey) {
|
|
24
|
+
const response = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
headers: {
|
|
27
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
28
|
+
},
|
|
29
|
+
body: `secret=${encodeURIComponent(secretKey)}&response=${encodeURIComponent(token)}`,
|
|
30
|
+
});
|
|
31
|
+
const data = await response.json();
|
|
32
|
+
return data.success;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @license GPL-3.0-or-later
|
|
37
|
+
*
|
|
38
|
+
* This file is part of the MarVAlt Open SDK.
|
|
39
|
+
* Copyright (c) 2025 Vibune Pty Ltd.
|
|
40
|
+
*
|
|
41
|
+
* This program is free software: you can redistribute it and/or modify
|
|
42
|
+
* it under the terms of the GNU General Public License as published by
|
|
43
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
44
|
+
* (at your option) any later version.
|
|
45
|
+
*
|
|
46
|
+
* This program is distributed in the hope that it will be useful,
|
|
47
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
48
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
49
|
+
* See the GNU General Public License for more details.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* Cloudflare Pages Function handler for Gravity Forms API proxy
|
|
53
|
+
* Handles WordPress Basic Auth server-side to keep credentials secure
|
|
54
|
+
*/
|
|
55
|
+
async function handleGravityFormsProxy(context) {
|
|
56
|
+
const { request, env } = context;
|
|
57
|
+
try {
|
|
58
|
+
const url = new URL(request.url);
|
|
59
|
+
const endpoint = url.searchParams.get('endpoint');
|
|
60
|
+
if (!endpoint) {
|
|
61
|
+
return new Response('Missing endpoint parameter', { status: 400 });
|
|
62
|
+
}
|
|
63
|
+
// ============================================
|
|
64
|
+
// SECURITY LAYER 1: Origin Validation
|
|
65
|
+
// ============================================
|
|
66
|
+
const origin = request.headers.get('Origin');
|
|
67
|
+
const referer = request.headers.get('Referer');
|
|
68
|
+
const allowedOriginsStr = env.ALLOWED_ORIGINS || env.VITE_ALLOWED_ORIGINS || '';
|
|
69
|
+
const allowedOrigins = allowedOriginsStr
|
|
70
|
+
.split(',')
|
|
71
|
+
.map((o) => o.trim())
|
|
72
|
+
.filter(Boolean);
|
|
73
|
+
if (allowedOrigins.length === 0) {
|
|
74
|
+
allowedOrigins.push('http://localhost:8080', 'http://localhost:5173');
|
|
75
|
+
console.log('⚠️ No ALLOWED_ORIGINS configured, defaulting to localhost');
|
|
76
|
+
}
|
|
77
|
+
const isAllowedOrigin = allowedOrigins.some((allowed) => origin?.startsWith(allowed) || referer?.startsWith(allowed));
|
|
78
|
+
if ((origin || referer) && !isAllowedOrigin) {
|
|
79
|
+
console.warn('🚫 Blocked request from unauthorized origin:', origin || referer);
|
|
80
|
+
return new Response(JSON.stringify({
|
|
81
|
+
error: 'Forbidden origin',
|
|
82
|
+
message: 'This endpoint can only be accessed from authorized domains'
|
|
83
|
+
}), {
|
|
84
|
+
status: 403,
|
|
85
|
+
headers: { 'Content-Type': 'application/json' }
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// ============================================
|
|
89
|
+
// SECURITY LAYER 2: Endpoint Whitelisting
|
|
90
|
+
// ============================================
|
|
91
|
+
const allowedPatterns = [
|
|
92
|
+
/^\/forms\/\d+\/submit$/, // Form submissions only
|
|
93
|
+
];
|
|
94
|
+
const isAllowedEndpoint = allowedPatterns.some(pattern => pattern.test(endpoint));
|
|
95
|
+
if (!isAllowedEndpoint) {
|
|
96
|
+
console.warn('🚫 Blocked unauthorized endpoint:', endpoint);
|
|
97
|
+
return new Response(JSON.stringify({
|
|
98
|
+
error: 'Forbidden endpoint',
|
|
99
|
+
message: 'Only form submission endpoints are allowed'
|
|
100
|
+
}), {
|
|
101
|
+
status: 403,
|
|
102
|
+
headers: { 'Content-Type': 'application/json' }
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// ============================================
|
|
106
|
+
// SECURITY LAYER 3: Turnstile Verification
|
|
107
|
+
// ============================================
|
|
108
|
+
const turnstileSecretKey = env.TURNSTILE_SECRET_KEY || env.VITE_TURNSTILE_SECRET_KEY;
|
|
109
|
+
const turnstileEnabled = !!turnstileSecretKey;
|
|
110
|
+
if (turnstileEnabled && request.method === 'POST') {
|
|
111
|
+
const turnstileToken = request.headers.get('cf-turnstile-response');
|
|
112
|
+
if (!turnstileToken) {
|
|
113
|
+
console.warn('🚫 Missing Turnstile token for POST request');
|
|
114
|
+
return new Response(JSON.stringify({
|
|
115
|
+
error: 'Missing verification',
|
|
116
|
+
message: 'Bot verification required'
|
|
117
|
+
}), {
|
|
118
|
+
status: 403,
|
|
119
|
+
headers: { 'Content-Type': 'application/json' }
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const isValid = await verifyTurnstile(turnstileToken, turnstileSecretKey);
|
|
123
|
+
if (!isValid) {
|
|
124
|
+
console.warn('🚫 Invalid Turnstile token');
|
|
125
|
+
return new Response(JSON.stringify({
|
|
126
|
+
error: 'Verification failed',
|
|
127
|
+
message: 'Bot verification failed'
|
|
128
|
+
}), {
|
|
129
|
+
status: 403,
|
|
130
|
+
headers: { 'Content-Type': 'application/json' }
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
console.log('✅ Turnstile verification passed');
|
|
134
|
+
}
|
|
135
|
+
else if (turnstileEnabled) {
|
|
136
|
+
console.log('ℹ️ Turnstile enabled but skipped for non-POST request');
|
|
137
|
+
}
|
|
138
|
+
// ============================================
|
|
139
|
+
// SECURITY LAYER 4: WordPress Basic Auth
|
|
140
|
+
// ============================================
|
|
141
|
+
const wpUrl = env.VITE_WORDPRESS_API_URL || env.WORDPRESS_API_URL;
|
|
142
|
+
const username = env.VITE_WP_API_USERNAME || env.WP_API_USERNAME;
|
|
143
|
+
const password = env.VITE_WP_APP_PASSWORD || env.WP_APP_PASSWORD;
|
|
144
|
+
if (!wpUrl || !username || !password) {
|
|
145
|
+
console.error('❌ WordPress credentials not configured', {
|
|
146
|
+
wpUrl: !!wpUrl,
|
|
147
|
+
username: !!username,
|
|
148
|
+
password: !!password
|
|
149
|
+
});
|
|
150
|
+
return new Response('WordPress credentials not configured', { status: 500 });
|
|
151
|
+
}
|
|
152
|
+
// Create Basic Auth header
|
|
153
|
+
const authHeader = 'Basic ' + btoa(`${username}:${password}`);
|
|
154
|
+
const headers = {
|
|
155
|
+
'Authorization': authHeader,
|
|
156
|
+
};
|
|
157
|
+
// Preserve Content-Type from original request
|
|
158
|
+
const contentType = request.headers.get('Content-Type');
|
|
159
|
+
if (contentType) {
|
|
160
|
+
headers['Content-Type'] = contentType;
|
|
161
|
+
}
|
|
162
|
+
// ============================================
|
|
163
|
+
// SECURITY LAYER 5: CF Access (Optional)
|
|
164
|
+
// ============================================
|
|
165
|
+
const cfAccessClientId = env.CF_ACCESS_CLIENT_ID || env.VITE_CF_ACCESS_CLIENT_ID;
|
|
166
|
+
const cfAccessClientSecret = env.CF_ACCESS_CLIENT_SECRET || env.VITE_CF_ACCESS_CLIENT_SECRET;
|
|
167
|
+
if (cfAccessClientId && cfAccessClientSecret) {
|
|
168
|
+
headers['CF-Access-Client-Id'] = cfAccessClientId;
|
|
169
|
+
headers['CF-Access-Client-Secret'] = cfAccessClientSecret;
|
|
170
|
+
console.log('🔐 Added CF Access headers to WordPress request');
|
|
171
|
+
}
|
|
172
|
+
// Build target URL
|
|
173
|
+
const targetUrl = `${wpUrl}/wp-json/gf-api/v1${endpoint}`;
|
|
174
|
+
const init = {
|
|
175
|
+
method: request.method,
|
|
176
|
+
headers,
|
|
177
|
+
};
|
|
178
|
+
if (request.method !== 'GET' && request.method !== 'HEAD') {
|
|
179
|
+
init.body = await request.text();
|
|
180
|
+
}
|
|
181
|
+
console.log(`📤 Proxying ${request.method} request to WordPress:`, {
|
|
182
|
+
endpoint,
|
|
183
|
+
targetUrl
|
|
184
|
+
});
|
|
185
|
+
const response = await fetch(targetUrl, init);
|
|
186
|
+
console.log(`📥 WordPress response: ${response.status} ${response.statusText}`);
|
|
187
|
+
const responseBody = await response.text();
|
|
188
|
+
return new Response(responseBody, {
|
|
189
|
+
status: response.status,
|
|
190
|
+
statusText: response.statusText,
|
|
191
|
+
headers: {
|
|
192
|
+
'Content-Type': response.headers.get('Content-Type') || 'application/json',
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
console.error('❌ Gravity Forms proxy error:', error);
|
|
198
|
+
return new Response(JSON.stringify({
|
|
199
|
+
success: false,
|
|
200
|
+
error: error?.message || 'Unknown error',
|
|
201
|
+
}), {
|
|
202
|
+
status: 500,
|
|
203
|
+
headers: { 'Content-Type': 'application/json' },
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export { handleGravityFormsProxy, verifyTurnstile };
|
|
209
|
+
//# sourceMappingURL=server.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.esm.js","sources":["../src/server/turnstile.ts","../src/server/gravity-forms-proxy.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gravity-forms.d.ts","sourceRoot":"","sources":["../../src/types/gravity-forms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yBAAyB,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"gravity-forms.d.ts","sourceRoot":"","sources":["../../src/types/gravity-forms.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marvalt/wadapter",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.6",
|
|
4
4
|
"description": "WordPress and Gravity Forms integration package for React applications with static data generation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -10,10 +10,16 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.esm.js",
|
|
12
12
|
"require": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./server": {
|
|
15
|
+
"import": "./dist/server.esm.js",
|
|
16
|
+
"require": "./dist/server.cjs"
|
|
13
17
|
}
|
|
14
18
|
},
|
|
15
19
|
"files": [
|
|
16
20
|
"dist",
|
|
21
|
+
"templates",
|
|
22
|
+
"scripts",
|
|
17
23
|
"README.md",
|
|
18
24
|
"LICENSE"
|
|
19
25
|
],
|
|
@@ -27,7 +33,8 @@
|
|
|
27
33
|
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
28
34
|
"type-check": "tsc --noEmit",
|
|
29
35
|
"clean": "rimraf dist",
|
|
30
|
-
"prepublishOnly": "npm run clean && npm run build"
|
|
36
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
37
|
+
"postinstall": "node scripts/postinstall.cjs"
|
|
31
38
|
},
|
|
32
39
|
"keywords": [
|
|
33
40
|
"wordpress",
|