@prosopo/procaptcha-react 2.14.9 → 2.14.10
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 +1 -1
- package/.turbo/{turbo-build.log → turbo-build$colon$esm.log} +13 -14
- package/.turbo/turbo-build$colon$tsc.log +20 -20
- package/.turbo/turbo-build$colon$types.log +1 -0
- package/CHANGELOG.md +18 -0
- package/dist/tsc/components/button.d.ts.map +1 -0
- package/dist/tsc/components/button.js +106 -0
- package/dist/tsc/components/button.js.map +1 -0
- package/dist/tsc/components/captchaComponent.d.ts.map +1 -0
- package/dist/tsc/components/captchaComponent.js +234 -0
- package/dist/tsc/components/captchaComponent.js.map +1 -0
- package/dist/tsc/components/captchaWidget.d.ts.map +1 -0
- package/dist/tsc/components/captchaWidget.js +213 -0
- package/dist/tsc/components/captchaWidget.js.map +1 -0
- package/dist/tsc/components/collector.d.ts.map +1 -0
- package/dist/tsc/components/collector.js +43 -0
- package/dist/tsc/components/collector.js.map +1 -0
- package/dist/tsc/components/index.d.ts.map +1 -0
- package/dist/tsc/components/index.js +8 -0
- package/dist/tsc/components/index.js.map +1 -0
- package/dist/tsc/components/modal.d.ts.map +1 -0
- package/dist/tsc/components/modal.js +36 -0
- package/dist/tsc/components/modal.js.map +1 -0
- package/dist/tsc/components/procaptcha.d.ts.map +1 -0
- package/dist/tsc/components/procaptcha.js +19 -0
- package/dist/tsc/components/procaptcha.js.map +1 -0
- package/dist/tsc/components/procaptchaWidget.d.ts.map +1 -0
- package/dist/tsc/components/procaptchaWidget.js +218 -0
- package/dist/tsc/components/procaptchaWidget.js.map +1 -0
- package/dist/tsc/errorSites.d.ts.map +1 -0
- package/dist/{errorSites.js.map → tsc/errorSites.js.map} +1 -1
- package/dist/tsc/index.d.ts.map +1 -0
- package/dist/tsc/index.js +3 -0
- package/dist/tsc/index.js.map +1 -0
- package/dist/tsc/tests/button.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/button.unit.test.js.map +1 -0
- package/dist/tsc/tests/captchaComponent.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/captchaComponent.unit.test.js.map +1 -0
- package/dist/tsc/tests/captchaWidget.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/captchaWidget.unit.test.js.map +1 -0
- package/dist/tsc/tests/collector.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/collector.unit.test.js.map +1 -0
- package/dist/tsc/tests/harness.d.ts.map +1 -0
- package/dist/tsc/tests/harness.js.map +1 -0
- package/dist/tsc/tests/modal.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/modal.unit.test.js.map +1 -0
- package/dist/tsc/tests/procaptcha.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/procaptcha.unit.test.js.map +1 -0
- package/dist/tsc/tests/procaptchaReact.test-d.d.ts.map +1 -0
- package/dist/tsc/tests/procaptchaReact.test-d.js.map +1 -0
- package/dist/tsc/tests/procaptchaWidget.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/procaptchaWidget.unit.test.js.map +1 -0
- package/dist/tsc/tests/render.d.ts.map +1 -0
- package/dist/tsc/tests/render.js.map +1 -0
- package/dist/tsc/tests/util.unit.test.d.ts.map +1 -0
- package/dist/tsc/tests/util.unit.test.js.map +1 -0
- package/dist/tsc/util/index.d.ts.map +1 -0
- package/dist/tsc/util/index.js +19 -0
- package/dist/tsc/util/index.js.map +1 -0
- package/dist/types/components/button.d.ts +9 -0
- package/dist/types/components/button.d.ts.map +1 -0
- package/dist/types/components/captchaComponent.d.ts +18 -0
- package/dist/types/components/captchaComponent.d.ts.map +1 -0
- package/dist/types/components/captchaWidget.d.ts +10 -0
- package/dist/types/components/captchaWidget.d.ts.map +1 -0
- package/dist/types/components/collector.d.ts +10 -0
- package/dist/types/components/collector.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +8 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/modal.d.ts +14 -0
- package/dist/types/components/modal.d.ts.map +1 -0
- package/dist/types/components/procaptcha.d.ts +7 -0
- package/dist/types/components/procaptcha.d.ts.map +1 -0
- package/dist/types/components/procaptchaWidget.d.ts +7 -0
- package/dist/types/components/procaptchaWidget.d.ts.map +1 -0
- package/dist/types/errorSites.d.ts +7 -0
- package/dist/types/errorSites.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/tests/button.unit.test.d.ts +2 -0
- package/dist/types/tests/button.unit.test.d.ts.map +1 -0
- package/dist/types/tests/captchaComponent.unit.test.d.ts +2 -0
- package/dist/types/tests/captchaComponent.unit.test.d.ts.map +1 -0
- package/dist/types/tests/captchaWidget.unit.test.d.ts +2 -0
- package/dist/types/tests/captchaWidget.unit.test.d.ts.map +1 -0
- package/dist/types/tests/collector.unit.test.d.ts +2 -0
- package/dist/types/tests/collector.unit.test.d.ts.map +1 -0
- package/dist/types/tests/harness.d.ts +14 -0
- package/dist/types/tests/harness.d.ts.map +1 -0
- package/dist/types/tests/modal.unit.test.d.ts +2 -0
- package/dist/types/tests/modal.unit.test.d.ts.map +1 -0
- package/dist/types/tests/procaptcha.unit.test.d.ts +2 -0
- package/dist/types/tests/procaptcha.unit.test.d.ts.map +1 -0
- package/dist/types/tests/procaptchaReact.test-d.d.ts +2 -0
- package/dist/types/tests/procaptchaReact.test-d.d.ts.map +1 -0
- package/dist/types/tests/procaptchaWidget.unit.test.d.ts +2 -0
- package/dist/types/tests/procaptchaWidget.unit.test.d.ts.map +1 -0
- package/dist/types/tests/render.d.ts +23 -0
- package/dist/types/tests/render.d.ts.map +1 -0
- package/dist/types/tests/util.unit.test.d.ts +2 -0
- package/dist/types/tests/util.unit.test.d.ts.map +1 -0
- package/dist/types/util/index.d.ts +10 -0
- package/dist/types/util/index.d.ts.map +1 -0
- package/package.json +16 -17
- package/dist/components/button.d.ts.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/captchaComponent.d.ts.map +0 -1
- package/dist/components/captchaComponent.js.map +0 -1
- package/dist/components/captchaWidget.d.ts.map +0 -1
- package/dist/components/captchaWidget.js.map +0 -1
- package/dist/components/collector.d.ts.map +0 -1
- package/dist/components/collector.js.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/modal.d.ts.map +0 -1
- package/dist/components/modal.js.map +0 -1
- package/dist/components/procaptcha.d.ts.map +0 -1
- package/dist/components/procaptcha.js.map +0 -1
- package/dist/components/procaptchaWidget.d.ts.map +0 -1
- package/dist/components/procaptchaWidget.js.map +0 -1
- package/dist/errorSites.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/tests/button.unit.test.d.ts.map +0 -1
- package/dist/tests/button.unit.test.js.map +0 -1
- package/dist/tests/captchaComponent.unit.test.d.ts.map +0 -1
- package/dist/tests/captchaComponent.unit.test.js.map +0 -1
- package/dist/tests/captchaWidget.unit.test.d.ts.map +0 -1
- package/dist/tests/captchaWidget.unit.test.js.map +0 -1
- package/dist/tests/collector.unit.test.d.ts.map +0 -1
- package/dist/tests/collector.unit.test.js.map +0 -1
- package/dist/tests/harness.d.ts.map +0 -1
- package/dist/tests/harness.js.map +0 -1
- package/dist/tests/modal.unit.test.d.ts.map +0 -1
- package/dist/tests/modal.unit.test.js.map +0 -1
- package/dist/tests/procaptcha.unit.test.d.ts.map +0 -1
- package/dist/tests/procaptcha.unit.test.js.map +0 -1
- package/dist/tests/procaptchaReact.test-d.d.ts.map +0 -1
- package/dist/tests/procaptchaReact.test-d.js.map +0 -1
- package/dist/tests/procaptchaWidget.unit.test.d.ts.map +0 -1
- package/dist/tests/procaptchaWidget.unit.test.js.map +0 -1
- package/dist/tests/render.d.ts.map +0 -1
- package/dist/tests/render.js.map +0 -1
- package/dist/tests/util.unit.test.d.ts.map +0 -1
- package/dist/tests/util.unit.test.js.map +0 -1
- package/dist/util/index.d.ts.map +0 -1
- package/dist/util/index.js.map +0 -1
- /package/dist/{_virtual → esm/_virtual}/_rolldown/runtime.js +0 -0
- /package/dist/{components → esm/components}/button.js +0 -0
- /package/dist/{components → esm/components}/captchaComponent.js +0 -0
- /package/dist/{components → esm/components}/captchaWidget.js +0 -0
- /package/dist/{components → esm/components}/collector.js +0 -0
- /package/dist/{components → esm/components}/index.js +0 -0
- /package/dist/{components → esm/components}/modal.js +0 -0
- /package/dist/{components → esm/components}/procaptcha.js +0 -0
- /package/dist/{components → esm/components}/procaptchaWidget.js +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{util → esm/util}/index.js +0 -0
- /package/dist/{components → tsc/components}/button.d.ts +0 -0
- /package/dist/{components → tsc/components}/captchaComponent.d.ts +0 -0
- /package/dist/{components → tsc/components}/captchaWidget.d.ts +0 -0
- /package/dist/{components → tsc/components}/collector.d.ts +0 -0
- /package/dist/{components → tsc/components}/index.d.ts +0 -0
- /package/dist/{components → tsc/components}/modal.d.ts +0 -0
- /package/dist/{components → tsc/components}/procaptcha.d.ts +0 -0
- /package/dist/{components → tsc/components}/procaptchaWidget.d.ts +0 -0
- /package/dist/{errorSites.d.ts → tsc/errorSites.d.ts} +0 -0
- /package/dist/{errorSites.js → tsc/errorSites.js} +0 -0
- /package/dist/{index.d.ts → tsc/index.d.ts} +0 -0
- /package/dist/{tests → tsc/tests}/button.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/button.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/captchaComponent.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/captchaComponent.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/captchaWidget.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/captchaWidget.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/collector.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/collector.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/harness.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/harness.js +0 -0
- /package/dist/{tests → tsc/tests}/modal.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/modal.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/procaptcha.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/procaptcha.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/procaptchaReact.test-d.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/procaptchaReact.test-d.js +0 -0
- /package/dist/{tests → tsc/tests}/procaptchaWidget.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/procaptchaWidget.unit.test.js +0 -0
- /package/dist/{tests → tsc/tests}/render.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/render.js +0 -0
- /package/dist/{tests → tsc/tests}/util.unit.test.d.ts +0 -0
- /package/dist/{tests → tsc/tests}/util.unit.test.js +0 -0
- /package/dist/{util → tsc/util}/index.d.ts +0 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { ProsopoError } from "@prosopo/common";
|
|
2
|
+
import { Teardown, activationOf, applyStyles, clearElement, createControl, createElement, createSvgElement, threeColumnBasis, wrapRandomly, } from "@prosopo/procaptcha-common";
|
|
3
|
+
import { darkTheme, lightTheme, randomInt, } from "@prosopo/widget-skeleton";
|
|
4
|
+
const getHash = (item) => {
|
|
5
|
+
if (!item.hash) {
|
|
6
|
+
throw new ProsopoError({
|
|
7
|
+
code: "INVALID_DATA",
|
|
8
|
+
errorSite: "PREA-1",
|
|
9
|
+
message: "missing item hash",
|
|
10
|
+
context: { item },
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return item.hash;
|
|
14
|
+
};
|
|
15
|
+
const cellStyle = (gap) => ({
|
|
16
|
+
flexGrow: 1,
|
|
17
|
+
flexBasis: threeColumnBasis(gap),
|
|
18
|
+
boxSizing: "border-box",
|
|
19
|
+
});
|
|
20
|
+
const MIN_GRID_GAP = 8;
|
|
21
|
+
const MAX_GRID_GAP = 15;
|
|
22
|
+
const GRID_PADDING_JITTER = 4;
|
|
23
|
+
const MIN_WRAPPER_DEPTH = 0;
|
|
24
|
+
const MAX_WRAPPER_DEPTH = 2;
|
|
25
|
+
const CHECK_ICON_PATH = "M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
|
|
26
|
+
const retrySrc = (url) => url.includes("token=")
|
|
27
|
+
? url
|
|
28
|
+
: `${url}${url.includes("?") ? "&" : "?"}retry=${Date.now()}`;
|
|
29
|
+
const themeOf = (themeColor) => "light" === themeColor ? lightTheme : darkTheme;
|
|
30
|
+
const generateMetrics = (theme) => ({
|
|
31
|
+
gap: randomInt(MIN_GRID_GAP, MAX_GRID_GAP),
|
|
32
|
+
paddingTop: Math.max(0, theme.spacing.unit + randomInt(-GRID_PADDING_JITTER, GRID_PADDING_JITTER)),
|
|
33
|
+
paddingBottom: Math.max(0, theme.spacing.unit + randomInt(-GRID_PADDING_JITTER, GRID_PADDING_JITTER)),
|
|
34
|
+
});
|
|
35
|
+
const gridStyle = (metrics) => ({
|
|
36
|
+
width: "100%",
|
|
37
|
+
height: "100%",
|
|
38
|
+
display: "flex",
|
|
39
|
+
flexDirection: "row",
|
|
40
|
+
flexWrap: "wrap",
|
|
41
|
+
justifyContent: "space-between",
|
|
42
|
+
paddingTop: `${metrics.paddingTop}px`,
|
|
43
|
+
paddingBottom: `${metrics.paddingBottom}px`,
|
|
44
|
+
gap: `${metrics.gap}px`,
|
|
45
|
+
});
|
|
46
|
+
const selectionStyle = (theme, selected) => ({
|
|
47
|
+
borderRadius: selected ? theme.shape.tileSelected : theme.shape.tile,
|
|
48
|
+
transform: selected ? "scale(0.9)" : "none",
|
|
49
|
+
});
|
|
50
|
+
export const mountCaptchaWidget = (container, initialProps) => {
|
|
51
|
+
let teardown = new Teardown();
|
|
52
|
+
let props = initialProps;
|
|
53
|
+
let renderedChallenge;
|
|
54
|
+
let tiles = [];
|
|
55
|
+
let focusedHash = null;
|
|
56
|
+
const metrics = generateMetrics(themeOf(initialProps.themeColor));
|
|
57
|
+
const grid = createElement("div", { style: gridStyle(metrics) });
|
|
58
|
+
const buildTile = (item, index) => {
|
|
59
|
+
const hash = getHash(item);
|
|
60
|
+
const theme = themeOf(props.themeColor);
|
|
61
|
+
const image = createElement("img", {
|
|
62
|
+
style: {
|
|
63
|
+
width: "100%",
|
|
64
|
+
display: "block",
|
|
65
|
+
objectFit: "cover",
|
|
66
|
+
aspectRatio: "1/1",
|
|
67
|
+
height: "auto",
|
|
68
|
+
overflow: "hidden",
|
|
69
|
+
borderStyle: "solid",
|
|
70
|
+
borderWidth: "1px",
|
|
71
|
+
borderColor: theme.palette.tile.border,
|
|
72
|
+
transition: "transform 200ms cubic-bezier(0.2, 0, 0, 1), border-radius 200ms",
|
|
73
|
+
},
|
|
74
|
+
attributes: {
|
|
75
|
+
src: item.data,
|
|
76
|
+
alt: `Captcha image ${index + 1}`,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
teardown.addEventListener(image, "error", () => {
|
|
80
|
+
const retryCount = Number(image.dataset.retryCount ?? "0") + 1;
|
|
81
|
+
image.dataset.retryCount = String(retryCount);
|
|
82
|
+
if (retryCount <= 3) {
|
|
83
|
+
image.removeAttribute("src");
|
|
84
|
+
image.src = retrySrc(item.data);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const icon = createSvgElement("svg", {
|
|
88
|
+
style: {
|
|
89
|
+
backgroundColor: theme.palette.checkbox.fill,
|
|
90
|
+
display: "block",
|
|
91
|
+
width: "34px",
|
|
92
|
+
height: "34px",
|
|
93
|
+
padding: "7px",
|
|
94
|
+
borderRadius: "50%",
|
|
95
|
+
boxSizing: "border-box",
|
|
96
|
+
transition: "fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms",
|
|
97
|
+
userSelect: "none",
|
|
98
|
+
fill: theme.palette.checkbox.tick,
|
|
99
|
+
},
|
|
100
|
+
attributes: {
|
|
101
|
+
focusable: "false",
|
|
102
|
+
"aria-hidden": "true",
|
|
103
|
+
viewBox: "0 0 24 24",
|
|
104
|
+
},
|
|
105
|
+
children: [
|
|
106
|
+
createSvgElement("path", { attributes: { d: CHECK_ICON_PATH } }),
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
const overlay = createElement("div", {
|
|
110
|
+
style: {
|
|
111
|
+
position: "absolute",
|
|
112
|
+
top: 0,
|
|
113
|
+
left: 0,
|
|
114
|
+
bottom: 0,
|
|
115
|
+
right: 0,
|
|
116
|
+
height: "100%",
|
|
117
|
+
width: "100%",
|
|
118
|
+
display: "flex",
|
|
119
|
+
alignItems: "center",
|
|
120
|
+
justifyContent: "center",
|
|
121
|
+
backgroundColor: theme.palette.overlay,
|
|
122
|
+
borderRadius: theme.shape.tileSelected,
|
|
123
|
+
visibility: "hidden",
|
|
124
|
+
},
|
|
125
|
+
children: [icon],
|
|
126
|
+
});
|
|
127
|
+
const clickable = createControl(teardown, {
|
|
128
|
+
style: {
|
|
129
|
+
position: "relative",
|
|
130
|
+
cursor: "pointer",
|
|
131
|
+
height: "100%",
|
|
132
|
+
width: "100%",
|
|
133
|
+
padding: 0,
|
|
134
|
+
margin: 0,
|
|
135
|
+
border: "none",
|
|
136
|
+
background: "none",
|
|
137
|
+
appearance: "none",
|
|
138
|
+
display: "block",
|
|
139
|
+
},
|
|
140
|
+
children: [image, overlay],
|
|
141
|
+
onActivate: (event) => {
|
|
142
|
+
const { x, y, inputMethod } = activationOf(event);
|
|
143
|
+
props.onClick(hash, x, y, inputMethod);
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
teardown.addEventListener(clickable, "focus", () => {
|
|
147
|
+
focusedHash = clickable.matches(":focus-visible") ? hash : null;
|
|
148
|
+
applyFocusRing();
|
|
149
|
+
});
|
|
150
|
+
teardown.addEventListener(clickable, "blur", () => {
|
|
151
|
+
focusedHash = null;
|
|
152
|
+
applyFocusRing();
|
|
153
|
+
});
|
|
154
|
+
const cell = createElement("div", {
|
|
155
|
+
style: cellStyle(metrics.gap),
|
|
156
|
+
children: [clickable],
|
|
157
|
+
});
|
|
158
|
+
grid.appendChild(wrapRandomly(cell, MIN_WRAPPER_DEPTH, MAX_WRAPPER_DEPTH));
|
|
159
|
+
return { hash, image, overlay, clickable };
|
|
160
|
+
};
|
|
161
|
+
const applyFocusRing = () => {
|
|
162
|
+
const theme = themeOf(props.themeColor);
|
|
163
|
+
for (const tile of tiles) {
|
|
164
|
+
applyStyles(tile.clickable, focusedHash === tile.hash
|
|
165
|
+
? {
|
|
166
|
+
outline: `3px solid ${theme.palette.primary.main}`,
|
|
167
|
+
outlineOffset: "2px",
|
|
168
|
+
}
|
|
169
|
+
: { outline: "none", outlineOffset: undefined });
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const rebuild = () => {
|
|
173
|
+
teardown.run();
|
|
174
|
+
teardown = new Teardown();
|
|
175
|
+
clearElement(grid);
|
|
176
|
+
applyStyles(grid, gridStyle(metrics));
|
|
177
|
+
tiles = props.challenge.items.map(buildTile);
|
|
178
|
+
renderedChallenge = props.challenge;
|
|
179
|
+
};
|
|
180
|
+
const applySelection = () => {
|
|
181
|
+
const theme = themeOf(props.themeColor);
|
|
182
|
+
for (const tile of tiles) {
|
|
183
|
+
const selected = props.solution.some((entry) => entry[0] === tile.hash);
|
|
184
|
+
applyStyles(tile.image, selectionStyle(theme, selected));
|
|
185
|
+
applyStyles(tile.overlay, {
|
|
186
|
+
visibility: selected ? "visible" : "hidden",
|
|
187
|
+
});
|
|
188
|
+
tile.clickable.setAttribute("aria-pressed", String(selected));
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
rebuild();
|
|
192
|
+
applySelection();
|
|
193
|
+
applyFocusRing();
|
|
194
|
+
container.appendChild(grid);
|
|
195
|
+
return {
|
|
196
|
+
update: (nextProps) => {
|
|
197
|
+
const needsRebuild = nextProps.challenge !== renderedChallenge ||
|
|
198
|
+
nextProps.themeColor !== props.themeColor;
|
|
199
|
+
props = nextProps;
|
|
200
|
+
if (needsRebuild) {
|
|
201
|
+
focusedHash = null;
|
|
202
|
+
rebuild();
|
|
203
|
+
}
|
|
204
|
+
applySelection();
|
|
205
|
+
applyFocusRing();
|
|
206
|
+
},
|
|
207
|
+
destroy: () => {
|
|
208
|
+
teardown.run();
|
|
209
|
+
grid.parentNode?.removeChild(grid);
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=captchaWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captchaWidget.js","sourceRoot":"","sources":["../../../src/components/captchaWidget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/components/collector.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EACX,OAAO,EAIP,YAAY,EACZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAkBD,eAAO,MAAM,cAAc,cACf,WAAW,gBACR,cAAc,KAC1B,SAAS,CAAC,cAAc,CAoD1B,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { startCollector } from "@prosopo/procaptcha";
|
|
2
|
+
import { createElement } from "@prosopo/procaptcha-common";
|
|
3
|
+
const arrayUpdater = (target) => {
|
|
4
|
+
return (update) => {
|
|
5
|
+
const next = "function" === typeof update ? update([...target]) : [...update];
|
|
6
|
+
target.length = 0;
|
|
7
|
+
target.push(...next);
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export const mountCollector = (container, initialProps) => {
|
|
11
|
+
let props = initialProps;
|
|
12
|
+
const mouseEvents = [];
|
|
13
|
+
const touchEvents = [];
|
|
14
|
+
const keyboardEvents = [];
|
|
15
|
+
const root = createElement("div");
|
|
16
|
+
container.appendChild(root);
|
|
17
|
+
startCollector(arrayUpdater(mouseEvents), arrayUpdater(touchEvents), arrayUpdater(keyboardEvents), root);
|
|
18
|
+
let lastAccount;
|
|
19
|
+
let lastOnProcessData;
|
|
20
|
+
const emit = () => {
|
|
21
|
+
if (props.account === lastAccount &&
|
|
22
|
+
props.onProcessData === lastOnProcessData) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
lastAccount = props.account;
|
|
26
|
+
lastOnProcessData = props.onProcessData;
|
|
27
|
+
if (props.account) {
|
|
28
|
+
props.onProcessData({ mouseEvents, touchEvents, keyboardEvents });
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
emit();
|
|
32
|
+
return {
|
|
33
|
+
update: (nextProps) => {
|
|
34
|
+
props = nextProps;
|
|
35
|
+
emit();
|
|
36
|
+
},
|
|
37
|
+
destroy: () => {
|
|
38
|
+
root.parentNode?.removeChild(root);
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export default mountCollector;
|
|
43
|
+
//# sourceMappingURL=collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../src/components/collector.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAkB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAsB3E,MAAM,YAAY,GAAG,CAAI,MAAW,EAAmB,EAAE;IACxD,OAAO,CAAC,MAAsC,EAAE,EAAE;QACjD,MAAM,IAAI,GACT,UAAU,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,SAAsB,EACtB,YAA4B,EACA,EAAE;IAC9B,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,MAAM,cAAc,GAA2B,EAAE,CAAC;IAElD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5B,cAAc,CACb,YAAY,CAAC,WAAW,CAAC,EACzB,YAAY,CAAC,WAAW,CAAC,EACzB,YAAY,CAAC,cAAc,CAAC,EAC5B,IAAI,CACJ,CAAC;IAKF,IAAI,WAAgC,CAAC;IACrC,IAAI,iBAA8D,CAAC;IAEnE,MAAM,IAAI,GAAG,GAAG,EAAE;QACjB,IACC,KAAK,CAAC,OAAO,KAAK,WAAW;YAC7B,KAAK,CAAC,aAAa,KAAK,iBAAiB,EACxC,CAAC;YACF,OAAO;QACR,CAAC;QACD,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,EAAE,CAAC;IAEP,OAAO;QACN,MAAM,EAAE,CAAC,SAAyB,EAAE,EAAE;YACrC,KAAK,GAAG,SAAS,CAAC;YAClB,IAAI,EAAE,CAAC;QACR,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YAMb,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./button.js";
|
|
2
|
+
export * from "./modal.js";
|
|
3
|
+
export * from "./captchaWidget.js";
|
|
4
|
+
export * from "./captchaComponent.js";
|
|
5
|
+
export * from "./collector.js";
|
|
6
|
+
export * from "./procaptchaWidget.js";
|
|
7
|
+
export * from "./procaptcha.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAaA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,UAAU,CAAC;IAE5D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC9B;AAQD,eAAO,MAAM,UAAU,iBAAkB,UAAU,KAAG,cA4CrD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { applyStyles, createElement, mountChallengeSurface, wrapRandomly, } from "@prosopo/procaptcha-common";
|
|
2
|
+
import { randomToken } from "@prosopo/widget-skeleton";
|
|
3
|
+
const MIN_WRAPPER_DEPTH = 1;
|
|
4
|
+
const MAX_WRAPPER_DEPTH = 3;
|
|
5
|
+
export const mountModal = (initialProps) => {
|
|
6
|
+
const inner = createElement("div", { className: randomToken() });
|
|
7
|
+
applyStyles(inner, {
|
|
8
|
+
width: "100%",
|
|
9
|
+
maxWidth: "500px",
|
|
10
|
+
maxHeight: "100%",
|
|
11
|
+
marginLeft: "auto",
|
|
12
|
+
marginRight: "auto",
|
|
13
|
+
backgroundColor: "transparent",
|
|
14
|
+
border: "none",
|
|
15
|
+
borderRadius: "28px",
|
|
16
|
+
boxSizing: "border-box",
|
|
17
|
+
});
|
|
18
|
+
const outerClassName = randomToken();
|
|
19
|
+
const surfaceProps = (props) => ({
|
|
20
|
+
show: props.show,
|
|
21
|
+
placement: props.placement,
|
|
22
|
+
anchor: props.anchor,
|
|
23
|
+
onDismiss: props.onDismiss,
|
|
24
|
+
scrim: "none",
|
|
25
|
+
className: outerClassName,
|
|
26
|
+
dialogLabel: props.dialogLabel,
|
|
27
|
+
});
|
|
28
|
+
const surface = mountChallengeSurface(surfaceProps(initialProps));
|
|
29
|
+
surface.content.appendChild(wrapRandomly(inner, MIN_WRAPPER_DEPTH, MAX_WRAPPER_DEPTH));
|
|
30
|
+
return {
|
|
31
|
+
content: inner,
|
|
32
|
+
update: (props) => surface.update(surfaceProps(props)),
|
|
33
|
+
destroy: () => surface.destroy(),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal.ts"],"names":[],"mappings":"AAcA,OAAO,EAEN,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,YAAY,GACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAevD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAK5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAwB,EAAkB,EAAE;IACtE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAEjE,WAAW,CAAC,KAAK,EAAE;QAMlB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,aAAa;QAC9B,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,YAAY;KACvB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;IAErC,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,MAAe;QACtB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,MAAM,OAAO,GAA8B,qBAAqB,CAC/D,YAAY,CAAC,YAAY,CAAC,CAC1B,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,WAAW,CAC1B,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CACzD,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;KAChC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptcha.d.ts","sourceRoot":"","sources":["../../../src/components/procaptcha.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAOvC,MAAM,MAAM,iBAAiB,GAAG,CAC/B,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,eAAe,KAClB,sBAAsB,CAAC;AAE5B,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,iBAAiB,CACE,CAAC;AAOpE,eAAO,MAAM,eAAe,cAChB,WAAW,SACf,eAAe,KACpB,sBAkBF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const loadProcaptcha = async () => (await import("./procaptchaWidget.js")).mountProcaptchaImageWidget;
|
|
2
|
+
export const mountProcaptcha = (container, props) => {
|
|
3
|
+
let destroyed = false;
|
|
4
|
+
let inner;
|
|
5
|
+
void loadProcaptcha().then((mount) => {
|
|
6
|
+
if (destroyed) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
inner = mount(container, props);
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
destroy: () => {
|
|
13
|
+
destroyed = true;
|
|
14
|
+
inner?.destroy();
|
|
15
|
+
inner = undefined;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=procaptcha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptcha.js","sourceRoot":"","sources":["../../../src/components/procaptcha.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAgC,EAAE,CACpE,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,0BAA0B,CAAC;AAOpE,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,SAAsB,EACtB,KAAsB,EACG,EAAE;IAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,KAAyC,CAAC;IAE9C,KAAK,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,KAAwB,EAAE,EAAE;QACvD,IAAI,SAAS,EAAE,CAAC;YACf,OAAO;QACR,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,OAAO,EAAE,GAAG,EAAE;YACb,SAAS,GAAG,IAAI,CAAC;YACjB,KAAK,EAAE,OAAO,EAAE,CAAC;YACjB,KAAK,GAAG,SAAS,CAAC;QACnB,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaWidget.d.ts","sourceRoot":"","sources":["../../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"AAgCA,OAAO,EAEN,KAAK,eAAe,EAEpB,MAAM,gBAAgB,CAAC;AAWxB,MAAM,WAAW,sBAAsB;IACtC,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,eAAO,MAAM,0BAA0B,cAC3B,WAAW,SACf,eAAe,KACpB,sBAyRF,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { createTranslator, loadI18next, localiseError } from "@prosopo/locale";
|
|
2
|
+
import { Manager } from "@prosopo/procaptcha";
|
|
3
|
+
import { Teardown, activationOf, audioAlternativeOffer, createElement, createProcaptchaState, createRenderScheduler, isEventTrusted, mountCheckbox, mountHoneypot, mountTestModeBanner, } from "@prosopo/procaptcha-common";
|
|
4
|
+
import { ProcaptchaConfigSchema, } from "@prosopo/types";
|
|
5
|
+
import { darkTheme, lightTheme } from "@prosopo/widget-skeleton";
|
|
6
|
+
import { mountCaptchaComponent, } from "./captchaComponent.js";
|
|
7
|
+
import { mountModal } from "./modal.js";
|
|
8
|
+
const PROCAPTCHA_EXECUTE_EVENT = "procaptcha:execute";
|
|
9
|
+
export const mountProcaptchaImageWidget = (container, props) => {
|
|
10
|
+
const teardown = new Teardown();
|
|
11
|
+
const config = ProcaptchaConfigSchema.parse(props.config);
|
|
12
|
+
const frictionlessState = props.frictionlessState;
|
|
13
|
+
const i18n = props.i18n;
|
|
14
|
+
const callbacks = props.callbacks || {};
|
|
15
|
+
const translator = createTranslator(i18n);
|
|
16
|
+
const isInvisible = "invisible" === config.mode;
|
|
17
|
+
const store = createProcaptchaState();
|
|
18
|
+
if (props.startShowRetry) {
|
|
19
|
+
store.update({ answeredIncorrectly: true });
|
|
20
|
+
}
|
|
21
|
+
let loading = false;
|
|
22
|
+
let lastError = store.state.error;
|
|
23
|
+
let lastCoords = null;
|
|
24
|
+
let sessionInvalidatedFired = false;
|
|
25
|
+
let honeypot;
|
|
26
|
+
let captcha;
|
|
27
|
+
let checkbox;
|
|
28
|
+
const delegatesReload = Boolean(props.onReload);
|
|
29
|
+
const manager = Manager(config, store.state, store.update, callbacks, frictionlessState, () => honeypot?.getValue(), delegatesReload
|
|
30
|
+
? (x, y) => props.onReload?.(x, y, { refresh: true })
|
|
31
|
+
: undefined);
|
|
32
|
+
const root = createElement("div", {
|
|
33
|
+
className: isInvisible ? undefined : "image-captcha",
|
|
34
|
+
});
|
|
35
|
+
container.appendChild(root);
|
|
36
|
+
if (frictionlessState?.hp) {
|
|
37
|
+
honeypot = mountHoneypot(root, { encodedQuestion: frictionlessState.hp });
|
|
38
|
+
}
|
|
39
|
+
const modalProps = () => ({
|
|
40
|
+
show: store.state.showModal,
|
|
41
|
+
placement: config.placement,
|
|
42
|
+
anchor: props.container,
|
|
43
|
+
onDismiss: manager.cancel,
|
|
44
|
+
dialogLabel: translator.t("WIDGET.IMAGE_DIALOG_LABEL", {
|
|
45
|
+
defaultValue: "Image challenge",
|
|
46
|
+
}),
|
|
47
|
+
});
|
|
48
|
+
const modal = mountModal(modalProps());
|
|
49
|
+
const emptyChallenge = createElement("div", { text: "No challenge set." });
|
|
50
|
+
const banner = isInvisible
|
|
51
|
+
? undefined
|
|
52
|
+
: mountTestModeBanner(root, { siteKey: config.account.address ?? "" });
|
|
53
|
+
const captchaProps = (challenge) => ({
|
|
54
|
+
challenge,
|
|
55
|
+
index: store.state.index,
|
|
56
|
+
solutions: store.state.solutions,
|
|
57
|
+
onSubmit: manager.submit,
|
|
58
|
+
onCancel: manager.cancel,
|
|
59
|
+
onClick: manager.select,
|
|
60
|
+
onNext: manager.nextRound,
|
|
61
|
+
onReload: manager.reload,
|
|
62
|
+
themeColor: config.theme ?? "light",
|
|
63
|
+
translator,
|
|
64
|
+
audioAlternative: audioAlternativeOffer(props, translator.isReady() ? translator.t("WIDGET.AUDIO_ALTERNATIVE") : ""),
|
|
65
|
+
});
|
|
66
|
+
const renderModal = () => {
|
|
67
|
+
modal.update(modalProps());
|
|
68
|
+
const challenge = store.state.challenge;
|
|
69
|
+
if (undefined !== challenge) {
|
|
70
|
+
emptyChallenge.parentNode?.removeChild(emptyChallenge);
|
|
71
|
+
if (undefined === captcha) {
|
|
72
|
+
captcha = mountCaptchaComponent(modal.content, captchaProps(challenge));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
captcha.update(captchaProps(challenge));
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
captcha?.destroy();
|
|
80
|
+
captcha = undefined;
|
|
81
|
+
if (!isInvisible && emptyChallenge.parentNode !== modal.content) {
|
|
82
|
+
modal.content.appendChild(emptyChallenge);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const runErrorEffect = () => {
|
|
86
|
+
if (store.state.error === lastError) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
lastError = store.state.error;
|
|
90
|
+
if (!store.state.error) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
loading = false;
|
|
94
|
+
if (store.state.error.code !== "NO_SESSION_FOUND") {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const willRecover = (props.onSessionInvalidated && !sessionInvalidatedFired) ||
|
|
98
|
+
undefined !== frictionlessState;
|
|
99
|
+
if (willRecover) {
|
|
100
|
+
loading = true;
|
|
101
|
+
store.update({ error: undefined });
|
|
102
|
+
}
|
|
103
|
+
if (props.onSessionInvalidated && !sessionInvalidatedFired) {
|
|
104
|
+
sessionInvalidatedFired = true;
|
|
105
|
+
props.onSessionInvalidated(lastCoords?.x, lastCoords?.y);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (frictionlessState) {
|
|
109
|
+
const timer = setTimeout(() => {
|
|
110
|
+
frictionlessState.restart();
|
|
111
|
+
}, 100);
|
|
112
|
+
teardown.add(() => clearTimeout(timer));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const render = () => {
|
|
116
|
+
runErrorEffect();
|
|
117
|
+
renderModal();
|
|
118
|
+
checkbox?.update(checkboxProps());
|
|
119
|
+
};
|
|
120
|
+
const scheduler = createRenderScheduler(render);
|
|
121
|
+
const checkboxProps = () => ({
|
|
122
|
+
theme: "light" === props.config.theme ? lightTheme : darkTheme,
|
|
123
|
+
checked: store.state.isHuman,
|
|
124
|
+
labelText: translator.isReady() ? translator.t("WIDGET.I_AM_HUMAN") : "",
|
|
125
|
+
error: store.state.error
|
|
126
|
+
? localiseError(translator.i18n, store.state.error)
|
|
127
|
+
: undefined,
|
|
128
|
+
notice: store.state.answeredIncorrectly
|
|
129
|
+
? translator.t("WIDGET.PUZZLE.RETRY")
|
|
130
|
+
: undefined,
|
|
131
|
+
loadingText: translator.t("WIDGET.CHECKING", {
|
|
132
|
+
defaultValue: "Checking that you are human",
|
|
133
|
+
}),
|
|
134
|
+
loading,
|
|
135
|
+
onChange: async (event) => {
|
|
136
|
+
if (!isEventTrusted(event)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (loading) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
loading = true;
|
|
143
|
+
scheduler.schedule();
|
|
144
|
+
const { x, y, inputMethod } = activationOf(event);
|
|
145
|
+
lastCoords = { x, y };
|
|
146
|
+
try {
|
|
147
|
+
await manager.start(x, y, inputMethod);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error("Error starting verification:", error);
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
loading = false;
|
|
154
|
+
scheduler.schedule();
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
if (!isInvisible) {
|
|
159
|
+
checkbox = mountCheckbox(root, checkboxProps());
|
|
160
|
+
}
|
|
161
|
+
teardown.add(scheduler.cancel);
|
|
162
|
+
teardown.add(store.subscribe(scheduler.schedule));
|
|
163
|
+
teardown.add(translator.subscribe(scheduler.schedule));
|
|
164
|
+
const handleExecute = () => {
|
|
165
|
+
store.update({ showModal: true });
|
|
166
|
+
if (!store.state.challenge) {
|
|
167
|
+
console.log("No challenge set, attempting to start verification");
|
|
168
|
+
try {
|
|
169
|
+
void manager.start();
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
console.error("Error starting verification:", error);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
teardown.addEventListener(document, PROCAPTCHA_EXECUTE_EVENT, handleExecute);
|
|
177
|
+
if (props.container) {
|
|
178
|
+
teardown.addEventListener(props.container, PROCAPTCHA_EXECUTE_EVENT, handleExecute);
|
|
179
|
+
}
|
|
180
|
+
if (config.language) {
|
|
181
|
+
if (i18n) {
|
|
182
|
+
if (i18n.language !== config.language) {
|
|
183
|
+
void i18n.changeLanguage(config.language);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
void loadI18next(false, config.language);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (props.autoStart) {
|
|
191
|
+
loading = true;
|
|
192
|
+
const coords = props.startCoords;
|
|
193
|
+
lastCoords = coords ?? null;
|
|
194
|
+
scheduler.schedule();
|
|
195
|
+
const clearLoading = () => {
|
|
196
|
+
loading = false;
|
|
197
|
+
scheduler.schedule();
|
|
198
|
+
};
|
|
199
|
+
manager
|
|
200
|
+
.start(coords?.x ?? 0, coords?.y ?? 0)
|
|
201
|
+
.then(clearLoading, clearLoading);
|
|
202
|
+
}
|
|
203
|
+
render();
|
|
204
|
+
return {
|
|
205
|
+
destroy: () => {
|
|
206
|
+
manager.dispose();
|
|
207
|
+
teardown.run();
|
|
208
|
+
captcha?.destroy();
|
|
209
|
+
modal.destroy();
|
|
210
|
+
checkbox?.destroy();
|
|
211
|
+
banner?.destroy();
|
|
212
|
+
honeypot?.destroy();
|
|
213
|
+
root.parentNode?.removeChild(root);
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
export default mountProcaptchaImageWidget;
|
|
218
|
+
//# sourceMappingURL=procaptchaWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procaptchaWidget.js","sourceRoot":"","sources":["../../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorSites.d.ts","sourceRoot":"","sources":["../../src/errorSites.ts"],"names":[],"mappings":"AAcA,OAAO,QAAQ,iBAAiB,CAAC;IAChC,UAAU,UAAU;QACnB,QAAQ,EAAE,IAAI,CAAC;KACf;CACD;AAED,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorSites.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"errorSites.js","sourceRoot":"","sources":["../../src/errorSites.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/button.unit.test.ts"],"names":[],"mappings":""}
|