@prosopo/procaptcha-puzzle 2.13.3 → 2.14.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/.turbo/turbo-build$colon$cjs.log +6 -6
- package/.turbo/turbo-build$colon$tsc.log +19 -19
- package/.turbo/turbo-build.log +7 -7
- package/CHANGELOG.md +41 -0
- package/dist/cjs/components/procaptchaPuzzle.cjs +22 -0
- package/dist/cjs/components/procaptchaWidget.cjs +225 -0
- package/dist/cjs/components/puzzleCanvas.cjs +450 -0
- package/dist/cjs/index.cjs +7 -2
- package/dist/components/procaptchaPuzzle.d.ts +7 -0
- package/dist/components/procaptchaPuzzle.d.ts.map +1 -0
- package/dist/components/procaptchaPuzzle.js +21 -0
- package/dist/components/procaptchaPuzzle.js.map +1 -0
- package/dist/components/procaptchaWidget.d.ts +7 -0
- package/dist/components/procaptchaWidget.d.ts.map +1 -0
- package/dist/components/procaptchaWidget.js +225 -0
- package/dist/components/procaptchaWidget.js.map +1 -0
- package/dist/components/{PuzzleCanvas.d.ts → puzzleCanvas.d.ts} +6 -4
- package/dist/components/puzzleCanvas.d.ts.map +1 -0
- package/dist/components/puzzleCanvas.js +450 -0
- package/dist/components/puzzleCanvas.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/tests/domHarness.d.ts +20 -0
- package/dist/tests/domHarness.d.ts.map +1 -0
- package/dist/tests/domHarness.js +56 -0
- package/dist/tests/domHarness.js.map +1 -0
- package/dist/tests/procaptchaPuzzle.test-d.js +13 -10
- package/dist/tests/procaptchaPuzzle.test-d.js.map +1 -1
- package/dist/tests/procaptchaPuzzle.unit.test.js +44 -33
- package/dist/tests/procaptchaPuzzle.unit.test.js.map +1 -1
- package/dist/tests/procaptchaWidget.unit.test.js +108 -175
- package/dist/tests/procaptchaWidget.unit.test.js.map +1 -1
- package/dist/tests/puzzleCanvas.unit.test.js +47 -80
- package/dist/tests/puzzleCanvas.unit.test.js.map +1 -1
- package/package.json +8 -12
- package/src/components/procaptchaPuzzle.ts +54 -0
- package/src/components/procaptchaWidget.ts +392 -0
- package/src/components/puzzleCanvas.ts +653 -0
- package/src/index.ts +3 -2
- package/src/tests/domHarness.ts +122 -0
- package/src/tests/procaptchaPuzzle.test-d.ts +33 -17
- package/src/tests/procaptchaPuzzle.unit.test.ts +59 -44
- package/src/tests/procaptchaWidget.unit.test.ts +145 -258
- package/src/tests/puzzleCanvas.unit.test.ts +76 -120
- package/tsconfig.cjs.json +1 -2
- package/tsconfig.json +1 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.test.config.ts +3 -4
- package/dist/cjs/components/ProcaptchaPuzzle.cjs +0 -7
- package/dist/cjs/components/ProcaptchaWidget.cjs +0 -206
- package/dist/cjs/components/PuzzleCanvas.cjs +0 -476
- package/dist/components/ProcaptchaPuzzle.d.ts +0 -3
- package/dist/components/ProcaptchaPuzzle.d.ts.map +0 -1
- package/dist/components/ProcaptchaPuzzle.js +0 -7
- package/dist/components/ProcaptchaPuzzle.js.map +0 -1
- package/dist/components/ProcaptchaWidget.d.ts +0 -4
- package/dist/components/ProcaptchaWidget.d.ts.map +0 -1
- package/dist/components/ProcaptchaWidget.js +0 -207
- package/dist/components/ProcaptchaWidget.js.map +0 -1
- package/dist/components/PuzzleCanvas.d.ts.map +0 -1
- package/dist/components/PuzzleCanvas.js +0 -476
- package/dist/components/PuzzleCanvas.js.map +0 -1
- package/dist/tests/setup.d.ts +0 -5
- package/dist/tests/setup.d.ts.map +0 -1
- package/dist/tests/setup.js +0 -3
- package/dist/tests/setup.js.map +0 -1
- package/src/components/ProcaptchaPuzzle.tsx +0 -36
- package/src/components/ProcaptchaWidget.tsx +0 -320
- package/src/components/PuzzleCanvas.tsx +0 -638
- package/src/tests/setup.ts +0 -26
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcaptchaPuzzle.d.ts","sourceRoot":"","sources":["../../src/components/ProcaptchaPuzzle.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiBtD,eAAO,MAAM,gBAAgB,UAAW,eAAe,qDAItD,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Suspense, lazy } from "react";
|
|
2
|
-
import { jsx } from "@emotion/react/jsx-runtime";
|
|
3
|
-
//#region src/components/ProcaptchaPuzzle.tsx
|
|
4
|
-
var ProcaptchaWidget = lazy(async () => import("./ProcaptchaWidget.js"));
|
|
5
|
-
var ProcaptchaPuzzle = (props) => /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(ProcaptchaWidget, { ...props }) });
|
|
6
|
-
//#endregion
|
|
7
|
-
export { ProcaptchaPuzzle };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcaptchaPuzzle.js","sourceRoot":"","sources":["../../src/components/ProcaptchaPuzzle.tsx"],"names":[],"mappings":";AAeA,OAAO,EAA4B,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AASjE,MAAM,gBAAgB,GAAmD,IAAI,CAC5E,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAC3C,CAAC;AAKF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAC3D,KAAC,QAAQ,cACR,KAAC,gBAAgB,OAAK,KAAK,GAAI,GACrB,CACX,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcaptchaWidget.d.ts","sourceRoot":"","sources":["../../src/components/ProcaptchaWidget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAGN,KAAK,eAAe,EAEpB,MAAM,gBAAgB,CAAC;AAWxB,QAAA,MAAM,UAAU,UAAW,eAAe,qDA4RzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import "../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { Manager } from "../services/Manager.js";
|
|
3
|
-
import { PuzzleCanvas } from "./PuzzleCanvas.js";
|
|
4
|
-
import { loadI18next, useTranslation } from "@prosopo/locale";
|
|
5
|
-
import { Checkbox, Honeypot, buildUpdateState, isEventTrusted, useProcaptcha } from "@prosopo/procaptcha-common";
|
|
6
|
-
import { ModeEnum } from "@prosopo/types";
|
|
7
|
-
import { darkTheme, lightTheme } from "@prosopo/widget-skeleton";
|
|
8
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
9
|
-
import { Fragment, jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
10
|
-
//#region src/components/ProcaptchaWidget.tsx
|
|
11
|
-
var PROCAPTCHA_EXECUTE_EVENT = "procaptcha:execute";
|
|
12
|
-
var Procaptcha = (props) => {
|
|
13
|
-
const { t, ready: isTranslationReady } = useTranslation();
|
|
14
|
-
const config = props.config;
|
|
15
|
-
const i18n = props.i18n;
|
|
16
|
-
const theme = "light" === config.theme ? lightTheme : darkTheme;
|
|
17
|
-
const frictionlessState = props.frictionlessState;
|
|
18
|
-
const callbacks = props.callbacks || {};
|
|
19
|
-
const [state, _updateState] = useProcaptcha(useState, useRef);
|
|
20
|
-
const [loading, setLoading] = useState(false);
|
|
21
|
-
const [puzzlePhase, setPuzzlePhase] = useState("checkbox");
|
|
22
|
-
const [challengeData, setChallengeData] = useState(null);
|
|
23
|
-
const [showRetry, setShowRetry] = useState(false);
|
|
24
|
-
const updateState = buildUpdateState(state, _updateState);
|
|
25
|
-
const hpRef = useRef(null);
|
|
26
|
-
const manager = useRef(Manager(config, state, updateState, callbacks, frictionlessState, () => hpRef.current?.value || void 0));
|
|
27
|
-
const lastCoordsRef = useRef(null);
|
|
28
|
-
const sessionInvalidatedFiredRef = useRef(false);
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (!config.language) return;
|
|
31
|
-
if (i18n) {
|
|
32
|
-
if (i18n.language !== config.language) i18n.changeLanguage(config.language);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
loadI18next(false, config.language);
|
|
36
|
-
}, [i18n, config.language]);
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (!props.autoStart) return;
|
|
39
|
-
setLoading(true);
|
|
40
|
-
setShowRetry(false);
|
|
41
|
-
const coords = props.startCoords;
|
|
42
|
-
lastCoordsRef.current = coords ?? null;
|
|
43
|
-
manager.current.start(coords?.x ?? 0, coords?.y ?? 0).then((challenge) => {
|
|
44
|
-
if (challenge) {
|
|
45
|
-
setChallengeData(challenge);
|
|
46
|
-
setPuzzlePhase("dragging");
|
|
47
|
-
}
|
|
48
|
-
setLoading(false);
|
|
49
|
-
}, () => setLoading(false));
|
|
50
|
-
}, [props.autoStart, props.startCoords]);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
if (!state.error) return void 0;
|
|
53
|
-
setLoading(false);
|
|
54
|
-
setPuzzlePhase("checkbox");
|
|
55
|
-
setChallengeData(null);
|
|
56
|
-
setShowRetry(false);
|
|
57
|
-
if (state.error.key !== "CAPTCHA.NO_SESSION_FOUND") return void 0;
|
|
58
|
-
if (props.onSessionInvalidated && !sessionInvalidatedFiredRef.current) {
|
|
59
|
-
sessionInvalidatedFiredRef.current = true;
|
|
60
|
-
const coords = lastCoordsRef.current;
|
|
61
|
-
props.onSessionInvalidated(coords?.x, coords?.y);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (frictionlessState) {
|
|
65
|
-
const timer = setTimeout(() => {
|
|
66
|
-
frictionlessState.restart();
|
|
67
|
-
}, 100);
|
|
68
|
-
return () => clearTimeout(timer);
|
|
69
|
-
}
|
|
70
|
-
}, [
|
|
71
|
-
state.error,
|
|
72
|
-
frictionlessState,
|
|
73
|
-
props.onSessionInvalidated
|
|
74
|
-
]);
|
|
75
|
-
useEffect(() => {
|
|
76
|
-
const handleExecuteEvent = async () => {
|
|
77
|
-
if (loading) return;
|
|
78
|
-
setLoading(true);
|
|
79
|
-
setShowRetry(false);
|
|
80
|
-
try {
|
|
81
|
-
const challenge = await manager.current.start();
|
|
82
|
-
if (challenge) {
|
|
83
|
-
setChallengeData(challenge);
|
|
84
|
-
setPuzzlePhase("dragging");
|
|
85
|
-
}
|
|
86
|
-
} catch (error) {
|
|
87
|
-
callbacks.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
88
|
-
} finally {
|
|
89
|
-
setLoading(false);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
const container = props.container;
|
|
93
|
-
const invisible = config.mode === ModeEnum.invisible;
|
|
94
|
-
container?.addEventListener(PROCAPTCHA_EXECUTE_EVENT, handleExecuteEvent);
|
|
95
|
-
if (invisible) document.addEventListener(PROCAPTCHA_EXECUTE_EVENT, handleExecuteEvent);
|
|
96
|
-
return () => {
|
|
97
|
-
container?.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, handleExecuteEvent);
|
|
98
|
-
if (invisible) document.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, handleExecuteEvent);
|
|
99
|
-
};
|
|
100
|
-
}, [
|
|
101
|
-
config.mode,
|
|
102
|
-
callbacks.onError,
|
|
103
|
-
loading,
|
|
104
|
-
props.container
|
|
105
|
-
]);
|
|
106
|
-
const handlePuzzleComplete = useCallback(async (finalX, finalY, puzzleEvents) => {
|
|
107
|
-
setPuzzlePhase("submitting");
|
|
108
|
-
let verified = false;
|
|
109
|
-
try {
|
|
110
|
-
verified = await manager.current.submitSolution(finalX, finalY, puzzleEvents);
|
|
111
|
-
} catch (error) {
|
|
112
|
-
callbacks.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
113
|
-
}
|
|
114
|
-
if (verified) {
|
|
115
|
-
setPuzzlePhase("checkbox");
|
|
116
|
-
setChallengeData(null);
|
|
117
|
-
setShowRetry(false);
|
|
118
|
-
setLoading(false);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
setShowRetry(true);
|
|
122
|
-
setPuzzlePhase("dragging");
|
|
123
|
-
try {
|
|
124
|
-
const newChallenge = await manager.current.start();
|
|
125
|
-
if (newChallenge) setChallengeData(newChallenge);
|
|
126
|
-
else {
|
|
127
|
-
setPuzzlePhase("checkbox");
|
|
128
|
-
setChallengeData(null);
|
|
129
|
-
setShowRetry(false);
|
|
130
|
-
}
|
|
131
|
-
} catch {
|
|
132
|
-
setPuzzlePhase("checkbox");
|
|
133
|
-
setChallengeData(null);
|
|
134
|
-
setShowRetry(false);
|
|
135
|
-
}
|
|
136
|
-
setLoading(false);
|
|
137
|
-
}, [callbacks.onError]);
|
|
138
|
-
const isInvisible = config.mode === ModeEnum.invisible;
|
|
139
|
-
const handleDismiss = useCallback(() => {
|
|
140
|
-
setPuzzlePhase("checkbox");
|
|
141
|
-
setChallengeData(null);
|
|
142
|
-
setShowRetry(false);
|
|
143
|
-
setLoading(false);
|
|
144
|
-
}, []);
|
|
145
|
-
const showPuzzleOverlay = (puzzlePhase === "dragging" || puzzlePhase === "submitting") && challengeData;
|
|
146
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
147
|
-
frictionlessState?.hp && /* @__PURE__ */ jsx(Honeypot, {
|
|
148
|
-
ref: hpRef,
|
|
149
|
-
encodedQuestion: frictionlessState.hp
|
|
150
|
-
}),
|
|
151
|
-
showPuzzleOverlay && /* @__PURE__ */ jsx(PuzzleCanvas, {
|
|
152
|
-
originX: challengeData.originX,
|
|
153
|
-
originY: challengeData.originY,
|
|
154
|
-
background: challengeData.background,
|
|
155
|
-
piece: challengeData.piece,
|
|
156
|
-
pieceSize: challengeData.pieceSize,
|
|
157
|
-
onComplete: handlePuzzleComplete,
|
|
158
|
-
showRetry,
|
|
159
|
-
submitting: puzzlePhase === "submitting",
|
|
160
|
-
theme,
|
|
161
|
-
placement: config.placement,
|
|
162
|
-
anchor: props.container,
|
|
163
|
-
onDismiss: handleDismiss
|
|
164
|
-
}),
|
|
165
|
-
!isInvisible && /* @__PURE__ */ jsx(Checkbox, {
|
|
166
|
-
checked: state.isHuman,
|
|
167
|
-
theme,
|
|
168
|
-
onChange: async (event) => {
|
|
169
|
-
if (loading) return;
|
|
170
|
-
setLoading(true);
|
|
171
|
-
setShowRetry(false);
|
|
172
|
-
let x = 0;
|
|
173
|
-
let y = 0;
|
|
174
|
-
const mouseOrTouchEvent = event.nativeEvent;
|
|
175
|
-
if (!isEventTrusted(mouseOrTouchEvent)) {} else if ("touches" in mouseOrTouchEvent && mouseOrTouchEvent.touches.length > 0 && mouseOrTouchEvent.touches[0]) {
|
|
176
|
-
x = mouseOrTouchEvent.touches[0].clientX;
|
|
177
|
-
y = mouseOrTouchEvent.touches[0].clientY;
|
|
178
|
-
} else if ("clientX" in mouseOrTouchEvent && "clientY" in mouseOrTouchEvent) {
|
|
179
|
-
x = mouseOrTouchEvent.clientX;
|
|
180
|
-
y = mouseOrTouchEvent.clientY;
|
|
181
|
-
}
|
|
182
|
-
lastCoordsRef.current = {
|
|
183
|
-
x,
|
|
184
|
-
y
|
|
185
|
-
};
|
|
186
|
-
try {
|
|
187
|
-
const challenge = await manager.current.start(x, y);
|
|
188
|
-
if (challenge) {
|
|
189
|
-
setChallengeData(challenge);
|
|
190
|
-
setPuzzlePhase("dragging");
|
|
191
|
-
}
|
|
192
|
-
} catch (error) {
|
|
193
|
-
callbacks.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
194
|
-
} finally {
|
|
195
|
-
setLoading(false);
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
labelText: isTranslationReady ? t("WIDGET.I_AM_HUMAN") : "",
|
|
199
|
-
error: state.error?.message,
|
|
200
|
-
"aria-label": "human checkbox",
|
|
201
|
-
loadingText: t("WIDGET.CHECKING", { defaultValue: "Checking that you are human" }),
|
|
202
|
-
loading: loading || puzzlePhase === "submitting"
|
|
203
|
-
})
|
|
204
|
-
] });
|
|
205
|
-
};
|
|
206
|
-
//#endregion
|
|
207
|
-
export { Procaptcha as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProcaptchaWidget.js","sourceRoot":"","sources":["../../src/components/ProcaptchaWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PuzzleCanvas.d.ts","sourceRoot":"","sources":["../../src/components/PuzzleCanvas.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAUtD,UAAU,iBAAiB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EAAE,KACvB,IAAI,CAAC;IACV,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA4CD,eAAO,MAAM,YAAY,gIAatB,iBAAiB,qDAqhBnB,CAAC"}
|