@prosopo/procaptcha-common 2.7.11 → 2.9.5

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 CHANGED
@@ -1,5 +1,270 @@
1
1
  # @prosopo/procaptcha-common
2
2
 
3
+ ## 2.9.5
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [04d0f1a]
7
+ - Updated dependencies [1e3a838]
8
+ - @prosopo/load-balancer@2.8.0
9
+ - @prosopo/config@3.1.20
10
+ - @prosopo/account@2.7.30
11
+ - @prosopo/types@3.5.3
12
+ - @prosopo/widget-skeleton@2.7.6
13
+
14
+ ## 2.9.4
15
+ ### Patch Changes
16
+
17
+ - 5659b24: Release 3.4.4
18
+ - Updated dependencies [5659b24]
19
+ - @prosopo/widget-skeleton@2.7.5
20
+ - @prosopo/load-balancer@2.7.12
21
+ - @prosopo/account@2.7.29
22
+ - @prosopo/types@3.5.2
23
+ - @prosopo/config@3.1.19
24
+
25
+ ## 2.9.3
26
+ ### Patch Changes
27
+
28
+ - 50c4120: Release 3.4.3
29
+ - Updated dependencies [52cd544]
30
+ - Updated dependencies [b117ba3]
31
+ - Updated dependencies [50c4120]
32
+ - @prosopo/types@3.5.1
33
+ - @prosopo/widget-skeleton@2.7.4
34
+ - @prosopo/load-balancer@2.7.11
35
+ - @prosopo/account@2.7.28
36
+ - @prosopo/config@3.1.18
37
+
38
+ ## 2.9.2
39
+ ### Patch Changes
40
+
41
+ - 618703f: Release 3.4.2
42
+ - Updated dependencies [618703f]
43
+ - Updated dependencies [e20ad6b]
44
+ - @prosopo/widget-skeleton@2.7.3
45
+ - @prosopo/load-balancer@2.7.10
46
+ - @prosopo/account@2.7.27
47
+ - @prosopo/types@3.5.0
48
+ - @prosopo/config@3.1.17
49
+
50
+ ## 2.9.1
51
+ ### Patch Changes
52
+
53
+ - 11303d9: Release 3.4.0
54
+ - 18cb28b: Release 3.4.1
55
+ - Updated dependencies [11303d9]
56
+ - Updated dependencies [18cb28b]
57
+ - Updated dependencies [11303d9]
58
+ - @prosopo/widget-skeleton@2.7.2
59
+ - @prosopo/load-balancer@2.7.9
60
+ - @prosopo/account@2.7.26
61
+ - @prosopo/types@3.4.1
62
+ - @prosopo/config@3.1.16
63
+
64
+ ## 2.9.0
65
+ ### Minor Changes
66
+
67
+ - 6768f14: Update salt
68
+
69
+ ### Patch Changes
70
+
71
+ - f3f7aec: Release 3.4.0
72
+ - Updated dependencies [f3f7aec]
73
+ - Updated dependencies [6768f14]
74
+ - @prosopo/widget-skeleton@2.7.1
75
+ - @prosopo/load-balancer@2.7.8
76
+ - @prosopo/account@2.7.25
77
+ - @prosopo/types@3.4.0
78
+ - @prosopo/config@3.1.15
79
+
80
+ ## 2.8.7
81
+ ### Patch Changes
82
+
83
+ - Release 3.3.1
84
+ - 0824221: Release 3.2.4
85
+ - Updated dependencies [97edf3f]
86
+ - Updated dependencies
87
+ - Updated dependencies [0824221]
88
+ - @prosopo/widget-skeleton@2.7.0
89
+ - @prosopo/types@3.3.0
90
+ - @prosopo/load-balancer@2.7.7
91
+ - @prosopo/account@2.7.24
92
+ - @prosopo/config@3.1.14
93
+
94
+ ## 2.8.6
95
+ ### Patch Changes
96
+
97
+ - 008d112: Release 3.3.0
98
+ - Updated dependencies [509be28]
99
+ - Updated dependencies [008d112]
100
+ - @prosopo/types@3.2.1
101
+ - @prosopo/widget-skeleton@2.6.14
102
+ - @prosopo/load-balancer@2.7.6
103
+ - @prosopo/account@2.7.23
104
+ - @prosopo/config@3.1.13
105
+
106
+ ## 2.8.5
107
+ ### Patch Changes
108
+
109
+ - 0824221: Release 3.2.4
110
+ - Updated dependencies [cf48565]
111
+ - Updated dependencies [0824221]
112
+ - @prosopo/types@3.2.0
113
+ - @prosopo/widget-skeleton@2.6.13
114
+ - @prosopo/load-balancer@2.7.5
115
+ - @prosopo/account@2.7.22
116
+ - @prosopo/config@3.1.12
117
+
118
+ ## 2.8.4
119
+ ### Patch Changes
120
+
121
+ - 1a23649: Release 3.2.3
122
+ - Updated dependencies [0d1a33e]
123
+ - Updated dependencies [0d1a33e]
124
+ - Updated dependencies [1a23649]
125
+ - @prosopo/types@3.1.4
126
+ - @prosopo/widget-skeleton@2.6.12
127
+ - @prosopo/load-balancer@2.7.4
128
+ - @prosopo/account@2.7.21
129
+ - @prosopo/config@3.1.11
130
+
131
+ ## 2.8.3
132
+ ### Patch Changes
133
+
134
+ - 657a827: Release 3.2.2
135
+ - Updated dependencies [657a827]
136
+ - @prosopo/widget-skeleton@2.6.11
137
+ - @prosopo/load-balancer@2.7.3
138
+ - @prosopo/account@2.7.20
139
+ - @prosopo/types@3.1.3
140
+ - @prosopo/config@3.1.10
141
+
142
+ ## 2.8.2
143
+ ### Patch Changes
144
+
145
+ - 4440947: fix type-only tsc compilation
146
+ - 7bdaca6: Release 3.2.1
147
+ - Updated dependencies [4440947]
148
+ - Updated dependencies [7bdaca6]
149
+ - Updated dependencies [809b984]
150
+ - Updated dependencies [1249ce0]
151
+ - Updated dependencies [809b984]
152
+ - @prosopo/widget-skeleton@2.6.10
153
+ - @prosopo/load-balancer@2.7.2
154
+ - @prosopo/account@2.7.19
155
+ - @prosopo/types@3.1.2
156
+ - @prosopo/config@3.1.9
157
+
158
+ ## 2.8.1
159
+ ### Patch Changes
160
+
161
+ - 6fe8570: Release 3.2.0
162
+ - Updated dependencies [1f980c4]
163
+ - Updated dependencies [6fe8570]
164
+ - @prosopo/load-balancer@2.7.1
165
+ - @prosopo/types@3.1.1
166
+ - @prosopo/widget-skeleton@2.6.9
167
+ - @prosopo/account@2.7.18
168
+ - @prosopo/config@3.1.8
169
+
170
+ ## 2.8.0
171
+ ### Minor Changes
172
+
173
+ - 8bdc7f0: Using detector to select provider
174
+
175
+ ### Patch Changes
176
+
177
+ - f304be9: Release 3.1.13
178
+ - Updated dependencies [f304be9]
179
+ - Updated dependencies [8bdc7f0]
180
+ - @prosopo/widget-skeleton@2.6.8
181
+ - @prosopo/load-balancer@2.7.0
182
+ - @prosopo/account@2.7.17
183
+ - @prosopo/types@3.1.0
184
+ - @prosopo/config@3.1.7
185
+
186
+ ## 2.7.18
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies [9eed772]
190
+ - Updated dependencies [ebb0168]
191
+ - @prosopo/config@3.1.6
192
+ - @prosopo/util@3.0.9
193
+ - @prosopo/account@2.7.16
194
+ - @prosopo/load-balancer@2.6.21
195
+ - @prosopo/types@3.0.10
196
+ - @prosopo/widget-skeleton@2.6.7
197
+
198
+ ## 2.7.17
199
+ ### Patch Changes
200
+
201
+ - 6960643: lint detect missing and unneccessary imports
202
+ - Updated dependencies [6960643]
203
+ - @prosopo/widget-skeleton@2.6.6
204
+ - @prosopo/load-balancer@2.6.20
205
+ - @prosopo/account@2.7.15
206
+ - @prosopo/types@3.0.9
207
+ - @prosopo/util@3.0.8
208
+
209
+ ## 2.7.16
210
+ ### Patch Changes
211
+
212
+ - 30e7d4d: Fixing coverage report and more damn linting
213
+ - Updated dependencies [30e7d4d]
214
+ - @prosopo/config@3.1.5
215
+ - @prosopo/account@2.7.14
216
+ - @prosopo/common@3.1.4
217
+ - @prosopo/load-balancer@2.6.19
218
+ - @prosopo/types@3.0.8
219
+ - @prosopo/util@3.0.7
220
+ - @prosopo/widget-skeleton@2.6.5
221
+
222
+ ## 2.7.15
223
+ ### Patch Changes
224
+
225
+ - 1f3a02f: Release 3.1.8
226
+
227
+ ## 2.7.14
228
+ ### Patch Changes
229
+
230
+ - 926df8a: lint
231
+
232
+ ## 2.7.13
233
+ ### Patch Changes
234
+
235
+ - Updated dependencies [44ffda2]
236
+ - Updated dependencies [a49b538]
237
+ - @prosopo/config@3.1.4
238
+ - @prosopo/common@3.1.3
239
+ - @prosopo/account@2.7.13
240
+ - @prosopo/load-balancer@2.6.18
241
+ - @prosopo/types@3.0.7
242
+ - @prosopo/util@3.0.6
243
+ - @prosopo/widget-skeleton@2.6.4
244
+
245
+ ## 2.7.12
246
+ ### Patch Changes
247
+
248
+ - 828066d: remove empty test npm scripts, add missing npm test scripts
249
+ - 91bbe87: configure typecheck before bundle for vue packages
250
+ - 91bbe87: make typecheck script always recompile
251
+ - 346e092: NODE_ENV default to "development"
252
+ - 5d36e05: remove tsc --force
253
+ - Updated dependencies [828066d]
254
+ - Updated dependencies [df4e030]
255
+ - Updated dependencies [91bbe87]
256
+ - Updated dependencies [3ef4fd2]
257
+ - Updated dependencies [91bbe87]
258
+ - Updated dependencies [346e092]
259
+ - Updated dependencies [5d36e05]
260
+ - @prosopo/widget-skeleton@2.6.3
261
+ - @prosopo/load-balancer@2.6.17
262
+ - @prosopo/account@2.7.12
263
+ - @prosopo/common@3.1.2
264
+ - @prosopo/types@3.0.6
265
+ - @prosopo/config@3.1.3
266
+ - @prosopo/util@3.0.5
267
+
3
268
  ## 2.7.11
4
269
  ### Patch Changes
5
270
 
@@ -8,7 +8,7 @@ const extensionLoader = require("./extensionLoader.cjs");
8
8
  const window = require("./elements/window.cjs");
9
9
  const Reload = require("./reactComponents/Reload.cjs");
10
10
  const Checkbox = require("./reactComponents/Checkbox.cjs");
11
- exports.getRandomActiveProvider = providers.getRandomActiveProvider;
11
+ exports.getProcaptchaRandomActiveProvider = providers.getProcaptchaRandomActiveProvider;
12
12
  exports.providerRetry = providers.providerRetry;
13
13
  exports.buildUpdateState = builder.buildUpdateState;
14
14
  exports.useProcaptcha = builder.useProcaptcha;
@@ -1,24 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const loadBalancer = require("@prosopo/load-balancer");
4
- const util = require("@prosopo/util");
5
- let providers = [];
6
- const getRandomActiveProvider = async (config) => {
7
- const randomIntBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
8
- if (providers.length === 0) {
9
- providers = await loadBalancer.loadBalancer(config.defaultEnvironment);
10
- }
11
- const randomProvderObj = util.at(
12
- providers,
13
- randomIntBetween(0, providers.length - 1)
14
- );
15
- return {
16
- providerAccount: randomProvderObj.address,
17
- provider: {
18
- url: randomProvderObj.url,
19
- datasetId: randomProvderObj.datasetId
20
- }
21
- };
4
+ const getProcaptchaRandomActiveProvider = async (defaultEnvironment) => {
5
+ const randomNumberU8a = window.crypto.getRandomValues(new Uint8Array(10));
6
+ const randomNumber = randomNumberU8a.reduce((a, b) => a + b, 0);
7
+ return await loadBalancer.getRandomActiveProvider(defaultEnvironment, randomNumber);
22
8
  };
23
9
  const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retryMax) => {
24
10
  try {
@@ -36,5 +22,5 @@ const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retry
36
22
  await retryFn();
37
23
  }
38
24
  };
39
- exports.getRandomActiveProvider = getRandomActiveProvider;
25
+ exports.getProcaptchaRandomActiveProvider = getProcaptchaRandomActiveProvider;
40
26
  exports.providerRetry = providerRetry;
@@ -107,11 +107,25 @@ const Checkbox = ({
107
107
  type: "checkbox",
108
108
  "aria-live": "assertive",
109
109
  "aria-label": labelText,
110
+ onKeyDown: (e) => {
111
+ if (!e.isTrusted) {
112
+ return;
113
+ }
114
+ if (e.key === "Enter") {
115
+ e.preventDefault();
116
+ e.stopPropagation();
117
+ setHover(false);
118
+ onChange(e);
119
+ }
120
+ },
110
121
  onChange: (e) => {
122
+ if (!e.isTrusted) {
123
+ return;
124
+ }
111
125
  e.preventDefault();
112
126
  e.stopPropagation();
113
127
  setHover(false);
114
- onChange();
128
+ onChange(e);
115
129
  },
116
130
  checked,
117
131
  style: checkboxStyle,
@@ -15,7 +15,9 @@ const useRefAsState = (useRef, defaultValue) => {
15
15
  const useProcaptcha = (useState, useRef) => {
16
16
  const [isHuman, setIsHuman] = useState(false);
17
17
  const [index, setIndex] = useState(0);
18
- const [solutions, setSolutions] = useState([]);
18
+ const [solutions, setSolutions] = useState(
19
+ []
20
+ );
19
21
  const [captchaApi, setCaptchaApi] = useRefAsState(useRef, void 0);
20
22
  const [showModal, setShowModal] = useState(false);
21
23
  const [challenge, setChallenge] = useState(
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getRandomActiveProvider, providerRetry } from "./providers.js";
1
+ import { getProcaptchaRandomActiveProvider, providerRetry } from "./providers.js";
2
2
  import { buildUpdateState, useProcaptcha } from "./state/builder.js";
3
3
  import { getDefaultCallbacks, setUserCallbacks } from "./callbacks/defaultCallbacks.js";
4
4
  import { getDefaultEvents } from "./callbacks/defaultEvents.js";
@@ -13,7 +13,7 @@ export {
13
13
  buildUpdateState,
14
14
  getDefaultCallbacks,
15
15
  getDefaultEvents,
16
- getRandomActiveProvider,
16
+ getProcaptchaRandomActiveProvider,
17
17
  getWindowCallback,
18
18
  providerRetry,
19
19
  setUserCallbacks,
package/dist/providers.js CHANGED
@@ -1,22 +1,8 @@
1
- import { loadBalancer } from "@prosopo/load-balancer";
2
- import { at } from "@prosopo/util";
3
- let providers = [];
4
- const getRandomActiveProvider = async (config) => {
5
- const randomIntBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
6
- if (providers.length === 0) {
7
- providers = await loadBalancer(config.defaultEnvironment);
8
- }
9
- const randomProvderObj = at(
10
- providers,
11
- randomIntBetween(0, providers.length - 1)
12
- );
13
- return {
14
- providerAccount: randomProvderObj.address,
15
- provider: {
16
- url: randomProvderObj.url,
17
- datasetId: randomProvderObj.datasetId
18
- }
19
- };
1
+ import { getRandomActiveProvider } from "@prosopo/load-balancer";
2
+ const getProcaptchaRandomActiveProvider = async (defaultEnvironment) => {
3
+ const randomNumberU8a = window.crypto.getRandomValues(new Uint8Array(10));
4
+ const randomNumber = randomNumberU8a.reduce((a, b) => a + b, 0);
5
+ return await getRandomActiveProvider(defaultEnvironment, randomNumber);
20
6
  };
21
7
  const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retryMax) => {
22
8
  try {
@@ -35,6 +21,6 @@ const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retry
35
21
  }
36
22
  };
37
23
  export {
38
- getRandomActiveProvider,
24
+ getProcaptchaRandomActiveProvider,
39
25
  providerRetry
40
26
  };
@@ -105,11 +105,25 @@ const Checkbox = ({
105
105
  type: "checkbox",
106
106
  "aria-live": "assertive",
107
107
  "aria-label": labelText,
108
+ onKeyDown: (e) => {
109
+ if (!e.isTrusted) {
110
+ return;
111
+ }
112
+ if (e.key === "Enter") {
113
+ e.preventDefault();
114
+ e.stopPropagation();
115
+ setHover(false);
116
+ onChange(e);
117
+ }
118
+ },
108
119
  onChange: (e) => {
120
+ if (!e.isTrusted) {
121
+ return;
122
+ }
109
123
  e.preventDefault();
110
124
  e.stopPropagation();
111
125
  setHover(false);
112
- onChange();
126
+ onChange(e);
113
127
  },
114
128
  checked,
115
129
  style: checkboxStyle,
@@ -13,7 +13,9 @@ const useRefAsState = (useRef, defaultValue) => {
13
13
  const useProcaptcha = (useState, useRef) => {
14
14
  const [isHuman, setIsHuman] = useState(false);
15
15
  const [index, setIndex] = useState(0);
16
- const [solutions, setSolutions] = useState([]);
16
+ const [solutions, setSolutions] = useState(
17
+ []
18
+ );
17
19
  const [captchaApi, setCaptchaApi] = useRefAsState(useRef, void 0);
18
20
  const [showModal, setShowModal] = useState(false);
19
21
  const [challenge, setChallenge] = useState(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-common",
3
- "version": "2.7.11",
3
+ "version": "2.9.5",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -21,29 +21,24 @@
21
21
  "source": "./src/index.ts",
22
22
  "scripts": {
23
23
  "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
24
- "build": "NODE_ENV=${NODE_ENV:-production}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
24
+ "build": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
25
25
  "build:tsc": "tsc --build --verbose",
26
- "build:cjs": "NODE_ENV=${NODE_ENV:-production}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
27
- "typecheck": "tsc --build --declaration --emitDeclarationOnly --force",
28
- "test": "echo no tests"
26
+ "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
27
+ "typecheck": "tsc --project tsconfig.types.json"
29
28
  },
30
29
  "browserslist": ["> 0.5%, last 2 versions, not dead"],
31
30
  "dependencies": {
32
- "@prosopo/account": "2.7.11",
33
- "@prosopo/common": "3.1.1",
34
- "@prosopo/load-balancer": "2.6.16",
35
- "@prosopo/types": "3.0.5",
36
- "@prosopo/util": "3.0.4",
37
- "@prosopo/widget-skeleton": "2.6.2",
38
- "express": "4.21.2",
39
- "@prosopo/config": "3.1.2",
40
- "@typegoose/auto-increment": "4.13.0",
41
- "axios": "1.10.0",
42
- "esbuild": "0.25.6",
43
- "openpgp": "5.11.3",
44
- "webpack-dev-server": "5.2.2"
31
+ "@emotion/react": "11.11.1",
32
+ "@emotion/styled": "11.11.0",
33
+ "@prosopo/account": "2.7.30",
34
+ "@prosopo/config": "3.1.20",
35
+ "@prosopo/load-balancer": "2.8.0",
36
+ "@prosopo/types": "3.5.3",
37
+ "@prosopo/widget-skeleton": "2.7.6",
38
+ "react": "18.3.1"
45
39
  },
46
40
  "devDependencies": {
41
+ "@types/node": "22.10.2",
47
42
  "@types/react": "18.3.1",
48
43
  "@vitest/coverage-v8": "3.0.9",
49
44
  "concurrently": "9.0.1",