@prosopo/procaptcha-puzzle 2.10.39 → 2.10.41
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 -11
- package/.turbo/turbo-build$colon$tsc.log +19 -19
- package/.turbo/turbo-build.log +15 -12
- package/CHANGELOG.md +41 -0
- package/dist/_virtual/_rolldown/runtime.js +3 -0
- package/dist/cjs/components/ProcaptchaPuzzle.cjs +6 -9
- package/dist/cjs/components/ProcaptchaWidget.cjs +191 -213
- package/dist/cjs/components/PuzzleCanvas.cjs +228 -270
- package/dist/cjs/index.cjs +2 -4
- package/dist/cjs/services/Manager.cjs +209 -289
- package/dist/components/ProcaptchaPuzzle.js +6 -8
- package/dist/components/ProcaptchaWidget.d.ts.map +1 -1
- package/dist/components/ProcaptchaWidget.js +190 -212
- package/dist/components/ProcaptchaWidget.js.map +1 -1
- package/dist/components/PuzzleCanvas.js +229 -271
- package/dist/index.js +2 -4
- package/dist/services/Manager.d.ts.map +1 -1
- package/dist/services/Manager.js +205 -286
- package/dist/services/Manager.js.map +1 -1
- package/dist/tests/manager.unit.test.d.ts +2 -0
- package/dist/tests/manager.unit.test.d.ts.map +1 -0
- package/dist/tests/manager.unit.test.js +506 -0
- package/dist/tests/manager.unit.test.js.map +1 -0
- package/dist/tests/managerHarness.d.ts +20 -0
- package/dist/tests/managerHarness.d.ts.map +1 -0
- package/dist/tests/managerHarness.js +86 -0
- package/dist/tests/managerHarness.js.map +1 -0
- package/dist/tests/procaptchaPuzzle.test-d.d.ts +2 -0
- package/dist/tests/procaptchaPuzzle.test-d.d.ts.map +1 -0
- package/dist/tests/procaptchaPuzzle.test-d.js +97 -0
- package/dist/tests/procaptchaPuzzle.test-d.js.map +1 -0
- package/dist/tests/procaptchaPuzzle.unit.test.d.ts +2 -0
- package/dist/tests/procaptchaPuzzle.unit.test.d.ts.map +1 -0
- package/dist/tests/procaptchaPuzzle.unit.test.js +81 -0
- package/dist/tests/procaptchaPuzzle.unit.test.js.map +1 -0
- package/dist/tests/procaptchaWidget.unit.test.d.ts +2 -0
- package/dist/tests/procaptchaWidget.unit.test.d.ts.map +1 -0
- package/dist/tests/procaptchaWidget.unit.test.js +547 -0
- package/dist/tests/procaptchaWidget.unit.test.js.map +1 -0
- package/dist/tests/puzzleCanvas.unit.test.d.ts +2 -0
- package/dist/tests/puzzleCanvas.unit.test.d.ts.map +1 -0
- package/dist/tests/puzzleCanvas.unit.test.js +312 -0
- package/dist/tests/puzzleCanvas.unit.test.js.map +1 -0
- package/dist/tests/setup.d.ts +5 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/tests/setup.js +3 -0
- package/dist/tests/setup.js.map +1 -0
- package/package.json +17 -12
- package/src/components/ProcaptchaWidget.tsx +17 -6
- package/src/services/Manager.ts +14 -10
- package/src/tests/manager.unit.test.ts +763 -0
- package/src/tests/managerHarness.ts +169 -0
- package/src/tests/procaptchaPuzzle.test-d.ts +191 -0
- package/src/tests/procaptchaPuzzle.unit.test.ts +123 -0
- package/src/tests/procaptchaWidget.unit.test.ts +789 -0
- package/src/tests/puzzleCanvas.unit.test.ts +418 -0
- package/src/tests/setup.ts +26 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.test.config.ts +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managerHarness.js","sourceRoot":"","sources":["../../src/tests/managerHarness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaPuzzle.test-d.d.ts","sourceRoot":"","sources":["../../src/tests/procaptchaPuzzle.test-d.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { assertType, describe, expectTypeOf, test } from "vitest";
|
|
2
|
+
import { PuzzleCanvas } from "../components/PuzzleCanvas.js";
|
|
3
|
+
import { ProcaptchaPuzzle } from "../index.js";
|
|
4
|
+
import { Manager } from "../services/Manager.js";
|
|
5
|
+
import { challengeResponse, config, frictionless, puzzleEvents, state, } from "./managerHarness.js";
|
|
6
|
+
const i18n = () => undefined;
|
|
7
|
+
describe("the package entrypoint's types", () => {
|
|
8
|
+
test("ProcaptchaPuzzle takes the shared widget props and renders an element", () => {
|
|
9
|
+
expectTypeOf(ProcaptchaPuzzle).parameters.toEqualTypeOf();
|
|
10
|
+
expectTypeOf(ProcaptchaPuzzle).returns.toExtend();
|
|
11
|
+
});
|
|
12
|
+
test("the inner widget's default export is not re-exported", () => {
|
|
13
|
+
expectTypeOf().toEqualTypeOf();
|
|
14
|
+
});
|
|
15
|
+
test("config, callbacks and i18n are all required", () => {
|
|
16
|
+
assertType({ callbacks: {}, i18n: i18n() });
|
|
17
|
+
assertType({ config: config(), i18n: i18n() });
|
|
18
|
+
assertType({
|
|
19
|
+
config: config(),
|
|
20
|
+
callbacks: {},
|
|
21
|
+
i18n: i18n(),
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe("Manager's types", () => {
|
|
26
|
+
const updateState = () => undefined;
|
|
27
|
+
const callbacks = {};
|
|
28
|
+
test("only the first four arguments are required", () => {
|
|
29
|
+
assertType(Manager(config(), state(), updateState, callbacks));
|
|
30
|
+
Manager(config(), state(), updateState);
|
|
31
|
+
});
|
|
32
|
+
test("the optional arguments keep their positions", () => {
|
|
33
|
+
expectTypeOf(Manager)
|
|
34
|
+
.parameter(4)
|
|
35
|
+
.toEqualTypeOf();
|
|
36
|
+
expectTypeOf(Manager)
|
|
37
|
+
.parameter(5)
|
|
38
|
+
.toEqualTypeOf();
|
|
39
|
+
});
|
|
40
|
+
test("it exposes exactly start, submitSolution and resetState", () => {
|
|
41
|
+
expectTypeOf().toEqualTypeOf();
|
|
42
|
+
});
|
|
43
|
+
test("start hands back the challenge the canvas needs to draw", () => {
|
|
44
|
+
expectTypeOf().toEqualTypeOf();
|
|
45
|
+
});
|
|
46
|
+
test("submitSolution takes the drop point and the full event trail", () => {
|
|
47
|
+
expectTypeOf().toEqualTypeOf();
|
|
48
|
+
expectTypeOf().toEqualTypeOf();
|
|
49
|
+
});
|
|
50
|
+
test("resetState takes the frictionless restart callback and nothing else", () => {
|
|
51
|
+
expectTypeOf().toEqualTypeOf();
|
|
52
|
+
expectTypeOf().toEqualTypeOf();
|
|
53
|
+
});
|
|
54
|
+
test("coordinates come off DOM events, so they are numbers", () => {
|
|
55
|
+
const manager = Manager(config(), state(), updateState, callbacks, frictionless());
|
|
56
|
+
manager.start("1", "2");
|
|
57
|
+
manager.submitSolution(1, 2);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe("PuzzleCanvas' types", () => {
|
|
61
|
+
const onComplete = (_finalX, _finalY, _events) => undefined;
|
|
62
|
+
test("every prop is required, since none has a sensible default", () => {
|
|
63
|
+
PuzzleCanvas({ originX: 0, originY: 0 });
|
|
64
|
+
PuzzleCanvas({
|
|
65
|
+
originX: 0,
|
|
66
|
+
originY: 0,
|
|
67
|
+
targetX: 1,
|
|
68
|
+
targetY: 1,
|
|
69
|
+
onComplete,
|
|
70
|
+
showRetry: false,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
test("the full prop set renders an element", () => {
|
|
74
|
+
expectTypeOf(PuzzleCanvas({
|
|
75
|
+
originX: 0,
|
|
76
|
+
originY: 0,
|
|
77
|
+
targetX: 1,
|
|
78
|
+
targetY: 1,
|
|
79
|
+
onComplete,
|
|
80
|
+
showRetry: false,
|
|
81
|
+
submitting: false,
|
|
82
|
+
})).toExtend();
|
|
83
|
+
});
|
|
84
|
+
test("the drop is reported synchronously, not as a promise", () => {
|
|
85
|
+
expectTypeOf(onComplete).returns.toEqualTypeOf();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe("the harness fixtures match the shared types", () => {
|
|
89
|
+
test("they build the real shapes, not lookalikes", () => {
|
|
90
|
+
expectTypeOf(config()).toEqualTypeOf();
|
|
91
|
+
expectTypeOf(state()).toEqualTypeOf();
|
|
92
|
+
expectTypeOf(frictionless()).toEqualTypeOf();
|
|
93
|
+
expectTypeOf(challengeResponse()).toEqualTypeOf();
|
|
94
|
+
expectTypeOf(puzzleEvents()).toEqualTypeOf();
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=procaptchaPuzzle.test-d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaPuzzle.test-d.js","sourceRoot":"","sources":["../../src/tests/procaptchaPuzzle.test-d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaPuzzle.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptchaPuzzle.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { act, createElement } from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
|
|
4
|
+
import * as entrypoint from "../index.js";
|
|
5
|
+
import { config } from "./managerHarness.js";
|
|
6
|
+
const mocks = vi.hoisted(() => ({
|
|
7
|
+
received: [],
|
|
8
|
+
}));
|
|
9
|
+
vi.mock("../components/ProcaptchaWidget.js", async () => {
|
|
10
|
+
const { createElement: create } = await import("react");
|
|
11
|
+
return {
|
|
12
|
+
default: (props) => {
|
|
13
|
+
mocks.received.push(props);
|
|
14
|
+
return create("div", { "data-testid": "widget" });
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
let container;
|
|
19
|
+
let root;
|
|
20
|
+
const props = (overrides = {}) => ({
|
|
21
|
+
config: config(),
|
|
22
|
+
callbacks: {},
|
|
23
|
+
i18n: undefined,
|
|
24
|
+
...overrides,
|
|
25
|
+
});
|
|
26
|
+
const render = async (widgetProps) => {
|
|
27
|
+
await act(async () => {
|
|
28
|
+
root.render(createElement(entrypoint.ProcaptchaPuzzle, widgetProps));
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
mocks.received.length = 0;
|
|
33
|
+
container = document.createElement("div");
|
|
34
|
+
document.body.appendChild(container);
|
|
35
|
+
act(() => {
|
|
36
|
+
root = createRoot(container);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
act(() => {
|
|
41
|
+
root.unmount();
|
|
42
|
+
});
|
|
43
|
+
container.remove();
|
|
44
|
+
});
|
|
45
|
+
describe("ProcaptchaPuzzle", () => {
|
|
46
|
+
test("renders the widget once it has loaded", async () => {
|
|
47
|
+
await render(props());
|
|
48
|
+
expect(container.querySelector('[data-testid="widget"]')).not.toBeNull();
|
|
49
|
+
});
|
|
50
|
+
test("passes on the props the widget needs but never names", async () => {
|
|
51
|
+
const onSessionInvalidated = vi.fn();
|
|
52
|
+
await render(props({
|
|
53
|
+
autoStart: true,
|
|
54
|
+
startCoords: { x: 1, y: 2 },
|
|
55
|
+
onSessionInvalidated,
|
|
56
|
+
}));
|
|
57
|
+
expect(mocks.received[0]).toMatchObject({
|
|
58
|
+
autoStart: true,
|
|
59
|
+
startCoords: { x: 1, y: 2 },
|
|
60
|
+
onSessionInvalidated,
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
test("passes on the props it does name, too", async () => {
|
|
64
|
+
const callbacks = { onHuman: vi.fn() };
|
|
65
|
+
await render(props({ callbacks }));
|
|
66
|
+
expect(mocks.received[0]?.callbacks).toBe(callbacks);
|
|
67
|
+
expect(mocks.received[0]?.config).toEqual(config());
|
|
68
|
+
});
|
|
69
|
+
test("mounts one widget per render, not one per prop change", async () => {
|
|
70
|
+
await render(props());
|
|
71
|
+
await render(props({ autoStart: true }));
|
|
72
|
+
expect(container.querySelectorAll('[data-testid="widget"]')).toHaveLength(1);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("the package entrypoint", () => {
|
|
76
|
+
test("exports the wrapper a consumer mounts", () => {
|
|
77
|
+
expect(typeof entrypoint.ProcaptchaPuzzle).toBe("function");
|
|
78
|
+
expect(Object.keys(entrypoint)).toEqual(["ProcaptchaPuzzle"]);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=procaptchaPuzzle.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaPuzzle.unit.test.js","sourceRoot":"","sources":["../../src/tests/procaptchaPuzzle.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaWidget.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptchaWidget.unit.test.ts"],"names":[],"mappings":""}
|