@silverassist/recaptcha 0.1.0 → 0.2.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/CHANGELOG.md +40 -0
- package/README.md +209 -0
- package/dist/client/index.d.mts +58 -5
- package/dist/client/index.d.ts +58 -5
- package/dist/client/index.js +162 -21
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +164 -23
- package/dist/client/index.mjs.map +1 -1
- package/dist/constants/index.d.mts +7 -4
- package/dist/constants/index.d.ts +7 -4
- package/dist/constants/index.js +10 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/index.mjs +10 -0
- package/dist/constants/index.mjs.map +1 -1
- package/dist/index.d.mts +23 -3
- package/dist/index.d.ts +23 -3
- package/dist/index.js +208 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +210 -23
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +8 -5
- package/dist/server/index.d.ts +8 -5
- package/dist/server/index.js +21 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +21 -0
- package/dist/server/index.mjs.map +1 -1
- package/dist/types/index.d.mts +42 -6
- package/dist/types/index.d.ts +42 -6
- package/package.json +3 -2
package/dist/types/index.d.mts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @module @silverassist/recaptcha/types
|
|
3
|
+
* @description reCAPTCHA v3 Integration Types - Type definitions for Google
|
|
4
|
+
* reCAPTCHA v3 integration with Next.js.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
6
|
+
* @author Miguel Colmenares <me@miguelcolmenares.com>
|
|
7
|
+
* @license Polyform-Noncommercial-1.0.0
|
|
8
|
+
* @version 0.2.1
|
|
9
|
+
* @see {@link https://github.com/SilverAssist/recaptcha|GitHub Repository}
|
|
7
10
|
*/
|
|
8
11
|
/**
|
|
9
12
|
* reCAPTCHA v3 verification API response from Google
|
|
@@ -53,10 +56,34 @@ interface RecaptchaWrapperProps {
|
|
|
53
56
|
siteKey?: string;
|
|
54
57
|
/** Token refresh interval in ms (default: 90000 = 90 seconds) */
|
|
55
58
|
refreshInterval?: number;
|
|
56
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Callback when token is generated.
|
|
61
|
+
* @remarks Should be memoized with useCallback to prevent unnecessary re-renders.
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* const handleToken = useCallback((token: string) => {
|
|
65
|
+
* console.log('Token:', token);
|
|
66
|
+
* }, []);
|
|
67
|
+
* <RecaptchaWrapper action="form" onTokenGenerated={handleToken} />
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
57
70
|
onTokenGenerated?: (token: string) => void;
|
|
58
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Callback when an error occurs.
|
|
73
|
+
* @remarks Should be memoized with useCallback to prevent unnecessary re-renders.
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* const handleError = useCallback((error: Error) => {
|
|
77
|
+
* console.error('reCAPTCHA error:', error);
|
|
78
|
+
* }, []);
|
|
79
|
+
* <RecaptchaWrapper action="form" onError={handleError} />
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
59
82
|
onError?: (error: Error) => void;
|
|
83
|
+
/** Enable lazy loading (default: false for backward compatibility) */
|
|
84
|
+
lazy?: boolean;
|
|
85
|
+
/** IntersectionObserver rootMargin for lazy loading (default: "200px") */
|
|
86
|
+
lazyRootMargin?: string;
|
|
60
87
|
}
|
|
61
88
|
/**
|
|
62
89
|
* Configuration options for reCAPTCHA validation
|
|
@@ -91,6 +118,15 @@ declare global {
|
|
|
91
118
|
action: string;
|
|
92
119
|
}) => Promise<string>;
|
|
93
120
|
};
|
|
121
|
+
/** Flag to track if reCAPTCHA script has loaded */
|
|
122
|
+
__recaptchaLoaded?: boolean;
|
|
123
|
+
/** Flag to track if reCAPTCHA script is currently loading */
|
|
124
|
+
__recaptchaLoading?: boolean;
|
|
125
|
+
/** Callbacks to execute when script finishes loading */
|
|
126
|
+
__recaptchaCallbacks?: Array<{
|
|
127
|
+
onLoad: () => void;
|
|
128
|
+
onError: (error: Error) => void;
|
|
129
|
+
}>;
|
|
94
130
|
}
|
|
95
131
|
}
|
|
96
132
|
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @module @silverassist/recaptcha/types
|
|
3
|
+
* @description reCAPTCHA v3 Integration Types - Type definitions for Google
|
|
4
|
+
* reCAPTCHA v3 integration with Next.js.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
6
|
+
* @author Miguel Colmenares <me@miguelcolmenares.com>
|
|
7
|
+
* @license Polyform-Noncommercial-1.0.0
|
|
8
|
+
* @version 0.2.1
|
|
9
|
+
* @see {@link https://github.com/SilverAssist/recaptcha|GitHub Repository}
|
|
7
10
|
*/
|
|
8
11
|
/**
|
|
9
12
|
* reCAPTCHA v3 verification API response from Google
|
|
@@ -53,10 +56,34 @@ interface RecaptchaWrapperProps {
|
|
|
53
56
|
siteKey?: string;
|
|
54
57
|
/** Token refresh interval in ms (default: 90000 = 90 seconds) */
|
|
55
58
|
refreshInterval?: number;
|
|
56
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Callback when token is generated.
|
|
61
|
+
* @remarks Should be memoized with useCallback to prevent unnecessary re-renders.
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* const handleToken = useCallback((token: string) => {
|
|
65
|
+
* console.log('Token:', token);
|
|
66
|
+
* }, []);
|
|
67
|
+
* <RecaptchaWrapper action="form" onTokenGenerated={handleToken} />
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
57
70
|
onTokenGenerated?: (token: string) => void;
|
|
58
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Callback when an error occurs.
|
|
73
|
+
* @remarks Should be memoized with useCallback to prevent unnecessary re-renders.
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* const handleError = useCallback((error: Error) => {
|
|
77
|
+
* console.error('reCAPTCHA error:', error);
|
|
78
|
+
* }, []);
|
|
79
|
+
* <RecaptchaWrapper action="form" onError={handleError} />
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
59
82
|
onError?: (error: Error) => void;
|
|
83
|
+
/** Enable lazy loading (default: false for backward compatibility) */
|
|
84
|
+
lazy?: boolean;
|
|
85
|
+
/** IntersectionObserver rootMargin for lazy loading (default: "200px") */
|
|
86
|
+
lazyRootMargin?: string;
|
|
60
87
|
}
|
|
61
88
|
/**
|
|
62
89
|
* Configuration options for reCAPTCHA validation
|
|
@@ -91,6 +118,15 @@ declare global {
|
|
|
91
118
|
action: string;
|
|
92
119
|
}) => Promise<string>;
|
|
93
120
|
};
|
|
121
|
+
/** Flag to track if reCAPTCHA script has loaded */
|
|
122
|
+
__recaptchaLoaded?: boolean;
|
|
123
|
+
/** Flag to track if reCAPTCHA script is currently loading */
|
|
124
|
+
__recaptchaLoading?: boolean;
|
|
125
|
+
/** Callbacks to execute when script finishes loading */
|
|
126
|
+
__recaptchaCallbacks?: Array<{
|
|
127
|
+
onLoad: () => void;
|
|
128
|
+
onError: (error: Error) => void;
|
|
129
|
+
}>;
|
|
94
130
|
}
|
|
95
131
|
}
|
|
96
132
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silverassist/recaptcha",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Google reCAPTCHA v3 integration for Next.js applications with Server Actions support",
|
|
5
5
|
"author": "Miguel Colmenares <me@miguelcolmenares.com>",
|
|
6
6
|
"license": "Polyform-Noncommercial-1.0.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/SilverAssist/recaptcha.git"
|
|
9
|
+
"url": "git+https://github.com/SilverAssist/recaptcha.git"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/SilverAssist/recaptcha/issues"
|
|
@@ -105,6 +105,7 @@
|
|
|
105
105
|
"react-dom": ">=18.0.0"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
|
+
"@silverassist/copilot-prompts-kit": "^1.2.0",
|
|
108
109
|
"@testing-library/jest-dom": "^6.9.1",
|
|
109
110
|
"@testing-library/react": "^16.3.2",
|
|
110
111
|
"@types/jest": "^30.0.0",
|