@prosopo/procaptcha-frictionless 2.12.20 → 2.12.22
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 +13 -12
- package/.turbo/turbo-build$colon$tsc.log +25 -25
- package/.turbo/turbo-build.log +15 -12
- package/CHANGELOG.md +31 -0
- package/dist/ProcaptchaFrictionless.js +165 -236
- package/dist/_virtual/_rolldown/runtime.js +3 -0
- package/dist/cjs/ProcaptchaFrictionless.cjs +166 -259
- package/dist/cjs/customDetectBot.cjs +102 -137
- package/dist/cjs/detectorLoader.cjs +3 -25
- package/dist/cjs/index.cjs +2 -3
- package/dist/cjs/sessionInvalidatedRecovery.cjs +43 -16
- package/dist/customDetectBot.js +101 -137
- package/dist/detectorLoader.js +4 -4
- package/dist/index.js +2 -3
- package/dist/sessionInvalidatedRecovery.js +44 -18
- package/dist/tests/customDetectBotSimd.test.js +5 -3
- package/dist/tests/customDetectBotSimd.test.js.map +1 -1
- package/package.json +14 -14
- package/src/tests/customDetectBotSimd.test.ts +8 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,20 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
//#region src/sessionInvalidatedRecovery.ts
|
|
2
|
+
/**
|
|
3
|
+
* Semantics of the outer recovery handler. Returns whether the caller
|
|
4
|
+
* should proceed to re-run the frictionless flow (`start()`), and mutates
|
|
5
|
+
* the passed refs to record the one-shot fire + pending coords.
|
|
6
|
+
*
|
|
7
|
+
* - Second calls are ignored (one-shot per outer widget lifetime) so a
|
|
8
|
+
* persistently broken session doesn't loop.
|
|
9
|
+
* - Coords are recorded only for a real trusted checkbox click. A partial
|
|
10
|
+
* pair (only x or only y numeric) is treated as "no coords" so we
|
|
11
|
+
* never accidentally embed `NaN` into the solution salt.
|
|
12
|
+
* - `(0, 0)` is treated as "no coords" too — that's what the widgets
|
|
13
|
+
* emit for an `autoStart` mount (post-PoW escalation) or an untrusted
|
|
14
|
+
* pointer event on the checkbox, neither of which is a real click. The
|
|
15
|
+
* resumed widget re-uses the same default and the outcome on the wire
|
|
16
|
+
* is identical; we discard the pair here so future readers can tell
|
|
17
|
+
* the two apart.
|
|
18
|
+
*/
|
|
19
|
+
var handleSessionInvalidated = (x, y, firedRef, pendingCoordsRef) => {
|
|
20
|
+
if (firedRef.current) return { shouldRestart: false };
|
|
21
|
+
firedRef.current = true;
|
|
22
|
+
pendingCoordsRef.current = typeof x === "number" && typeof y === "number" && (x !== 0 || y !== 0) ? {
|
|
23
|
+
x,
|
|
24
|
+
y
|
|
25
|
+
} : null;
|
|
26
|
+
return { shouldRestart: true };
|
|
8
27
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Compute the props a resumed inner widget mounts with. Consumes the
|
|
30
|
+
* pending coords ref (sets it back to `null`) so the next render doesn't
|
|
31
|
+
* accidentally re-inject stale coords into a fresh escalation.
|
|
32
|
+
*
|
|
33
|
+
* `escalationAutoStart` reflects the caller's own `autoStart` argument to
|
|
34
|
+
* `renderForCaptchaType` — post-PoW escalations keep the historic
|
|
35
|
+
* autoStart=true behaviour when no retry coords are pending.
|
|
36
|
+
*/
|
|
37
|
+
var consumeRetryMountProps = (pendingCoordsRef, escalationAutoStart) => {
|
|
38
|
+
const startCoords = pendingCoordsRef.current ?? void 0;
|
|
39
|
+
pendingCoordsRef.current = null;
|
|
40
|
+
return {
|
|
41
|
+
autoStart: escalationAutoStart || Boolean(startCoords),
|
|
42
|
+
startCoords
|
|
43
|
+
};
|
|
20
44
|
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { consumeRetryMountProps, handleSessionInvalidated };
|
|
@@ -5,9 +5,11 @@ const mocks = vi.hoisted(() => ({
|
|
|
5
5
|
detect: vi.fn(),
|
|
6
6
|
}));
|
|
7
7
|
vi.mock("@prosopo/api", () => ({
|
|
8
|
-
ProviderApi: vi.fn(()
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
ProviderApi: vi.fn(function () {
|
|
9
|
+
return {
|
|
10
|
+
getFrictionlessCaptcha: mocks.getFrictionlessCaptcha,
|
|
11
|
+
};
|
|
12
|
+
}),
|
|
11
13
|
}));
|
|
12
14
|
vi.mock("@prosopo/procaptcha-common", () => ({
|
|
13
15
|
ExtensionLoader: vi.fn(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customDetectBotSimd.test.js","sourceRoot":"","sources":["../../src/tests/customDetectBotSimd.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAI9D,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/B,iCAAiC,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1C,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;CACf,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"customDetectBotSimd.test.js","sourceRoot":"","sources":["../../src/tests/customDetectBotSimd.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAI9D,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/B,iCAAiC,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1C,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;CACf,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAI9B,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;QAClB,OAAO;YACN,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;SACpD,CAAC;IACH,CAAC,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACjC,OAAO,MAAM,aAAa;YACzB,UAAU;gBACT,OAAO,OAAO,CAAC,OAAO,CAAC;oBACtB,OAAO,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE;iBAC/C,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC,CAAC;IACF,iCAAiC,EAAE,KAAK,CAAC,iCAAiC;IAC1E,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;CAClC,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CAC/C,CAAC,CAAC,CAAC;AAEJ,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAEpD,MAAM,UAAU,GAAG;IAClB,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;IACpC,kBAAkB,EAAE,YAAqB;IACzC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,cAAuB;CACuB,CAAC;AAEtD,MAAM,mBAAmB,GAAG,CAC3B,eAAoE,EACnE,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE;IAChE,eAAe;IACf,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;CACvB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG;IACvB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;CACZ,CAAC;AAEF,UAAU,CAAC,GAAG,EAAE;IACf,KAAK,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;IACzC,KAAK,CAAC,iCAAiC,CAAC,SAAS,EAAE,CAAC;IACpD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACzB,KAAK,CAAC,iCAAiC,CAAC,iBAAiB,CAAC;QACzD,eAAe,EAAE,YAAY;QAC7B,QAAQ,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE;KAC1C,CAAC,CAAC;IACH,KAAK,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,0GAA0G,EAAE,KAAK,IAAI,EAAE;QACzH,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClE,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAErE,MAAM,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACpD,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACvD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAErE,MAAM,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE9D,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEjD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CACrD,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC/E,IAAI,WAAiC,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,WAAW,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7D,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;QAGrE,MAAM,MAAM,GAAG,MAAM,eAAe,CACnC,UAAU,EACV,SAAS,EACT,GAAG,EAAE,CAAC,SAAS,CACf,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACxF,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,eAAe,CACnC,UAAU,EACV,SAAS,EACT,GAAG,EAAE,CAAC,SAAS,CACf,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/procaptcha-frictionless",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.22",
|
|
4
4
|
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,31 +30,31 @@
|
|
|
30
30
|
},
|
|
31
31
|
"browserslist": ["> 0.5%, last 2 versions, not dead"],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@prosopo/api": "3.5.
|
|
34
|
-
"@prosopo/common": "3.1.
|
|
35
|
-
"@prosopo/detector": "3.5.
|
|
36
|
-
"@prosopo/locale": "3.2.
|
|
37
|
-
"@prosopo/procaptcha-common": "2.11.
|
|
38
|
-
"@prosopo/procaptcha-pow": "2.10.
|
|
39
|
-
"@prosopo/procaptcha-puzzle": "2.10.
|
|
40
|
-
"@prosopo/procaptcha-react": "2.9.
|
|
41
|
-
"@prosopo/types": "4.
|
|
33
|
+
"@prosopo/api": "3.5.20",
|
|
34
|
+
"@prosopo/common": "3.1.48",
|
|
35
|
+
"@prosopo/detector": "3.5.14",
|
|
36
|
+
"@prosopo/locale": "3.2.8",
|
|
37
|
+
"@prosopo/procaptcha-common": "2.11.18",
|
|
38
|
+
"@prosopo/procaptcha-pow": "2.10.24",
|
|
39
|
+
"@prosopo/procaptcha-puzzle": "2.10.40",
|
|
40
|
+
"@prosopo/procaptcha-react": "2.9.97",
|
|
41
|
+
"@prosopo/types": "4.10.0",
|
|
42
42
|
"@prosopo/widget-skeleton": "2.8.4",
|
|
43
43
|
"dotenv": "16.4.5",
|
|
44
44
|
"react": "18.3.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@prosopo/config": "3.3.
|
|
47
|
+
"@prosopo/config": "3.3.5",
|
|
48
48
|
"@types/node": "22.10.2",
|
|
49
|
-
"@vitest/coverage-v8": "
|
|
49
|
+
"@vitest/coverage-v8": "4.1.10",
|
|
50
50
|
"concurrently": "9.0.1",
|
|
51
51
|
"del-cli": "6.0.0",
|
|
52
52
|
"npm-run-all": "4.1.5",
|
|
53
53
|
"tslib": "2.7.0",
|
|
54
54
|
"tsx": "4.20.3",
|
|
55
55
|
"typescript": "5.6.2",
|
|
56
|
-
"vite": "
|
|
57
|
-
"vitest": "
|
|
56
|
+
"vite": "8.1.5",
|
|
57
|
+
"vitest": "4.1.10"
|
|
58
58
|
},
|
|
59
59
|
"repository": {
|
|
60
60
|
"type": "git",
|
|
@@ -23,9 +23,14 @@ const mocks = vi.hoisted(() => ({
|
|
|
23
23
|
}));
|
|
24
24
|
|
|
25
25
|
vi.mock("@prosopo/api", () => ({
|
|
26
|
-
ProviderApi
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
// customDetectBot does `new ProviderApi(...)`, so the implementation has to
|
|
27
|
+
// be constructible. vitest 3 tolerated an arrow function here; under vitest 4
|
|
28
|
+
// it throws "is not a constructor" — arrows have no [[Construct]] slot.
|
|
29
|
+
ProviderApi: vi.fn(function () {
|
|
30
|
+
return {
|
|
31
|
+
getFrictionlessCaptcha: mocks.getFrictionlessCaptcha,
|
|
32
|
+
};
|
|
33
|
+
}),
|
|
29
34
|
}));
|
|
30
35
|
|
|
31
36
|
vi.mock("@prosopo/procaptcha-common", () => ({
|