@prosopo/procaptcha 2.7.18 → 2.9.13

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,396 @@
1
1
  # @prosopo/procaptcha
2
2
 
3
+ ## 2.9.13
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [8f1773a]
7
+ - @prosopo/types@3.5.11
8
+ - @prosopo/api@3.1.32
9
+ - @prosopo/datasets@3.0.42
10
+ - @prosopo/procaptcha-common@2.9.13
11
+
12
+ ## 2.9.12
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [cb8ab85]
16
+ - @prosopo/types@3.5.10
17
+ - @prosopo/api@3.1.31
18
+ - @prosopo/datasets@3.0.41
19
+ - @prosopo/procaptcha-common@2.9.12
20
+
21
+ ## 2.9.11
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [43907e8]
25
+ - Updated dependencies [005ce66]
26
+ - Updated dependencies [7101036]
27
+ - @prosopo/types@3.5.9
28
+ - @prosopo/util@3.1.7
29
+ - @prosopo/datasets@3.0.40
30
+ - @prosopo/api@3.1.30
31
+ - @prosopo/procaptcha-common@2.9.11
32
+
33
+ ## 2.9.10
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [e5c259d]
37
+ - @prosopo/types@3.5.8
38
+ - @prosopo/datasets@3.0.39
39
+ - @prosopo/api@3.1.29
40
+ - @prosopo/procaptcha-common@2.9.10
41
+
42
+ ## 2.9.9
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies [c9d8fdf]
46
+ - Updated dependencies [b8185a4]
47
+ - @prosopo/api@3.1.28
48
+ - @prosopo/common@3.1.21
49
+ - @prosopo/config@3.1.21
50
+ - @prosopo/datasets@3.0.38
51
+ - @prosopo/procaptcha-common@2.9.9
52
+ - @prosopo/types@3.5.7
53
+ - @prosopo/util@3.1.6
54
+ - @prosopo/util-crypto@13.5.23
55
+
56
+ ## 2.9.8
57
+ ### Patch Changes
58
+
59
+ - Updated dependencies [5d11a81]
60
+ - @prosopo/types@3.5.6
61
+ - @prosopo/api@3.1.27
62
+ - @prosopo/datasets@3.0.37
63
+ - @prosopo/procaptcha-common@2.9.8
64
+
65
+ ## 2.9.7
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies [494c5a8]
69
+ - @prosopo/types@3.5.5
70
+ - @prosopo/datasets@3.0.36
71
+ - @prosopo/api@3.1.26
72
+ - @prosopo/procaptcha-common@2.9.7
73
+
74
+ ## 2.9.6
75
+ ### Patch Changes
76
+
77
+ - Updated dependencies [08ff50f]
78
+ - @prosopo/types@3.5.4
79
+ - @prosopo/datasets@3.0.35
80
+ - @prosopo/api@3.1.25
81
+ - @prosopo/procaptcha-common@2.9.6
82
+
83
+ ## 2.9.5
84
+ ### Patch Changes
85
+
86
+ - Updated dependencies [1e3a838]
87
+ - @prosopo/config@3.1.20
88
+ - @prosopo/procaptcha-common@2.9.5
89
+ - @prosopo/api@3.1.24
90
+ - @prosopo/common@3.1.20
91
+ - @prosopo/datasets@3.0.34
92
+ - @prosopo/types@3.5.3
93
+ - @prosopo/util@3.1.5
94
+ - @prosopo/util-crypto@13.5.22
95
+
96
+ ## 2.9.4
97
+ ### Patch Changes
98
+
99
+ - 5659b24: Release 3.4.4
100
+ - Updated dependencies [f912439]
101
+ - Updated dependencies [5659b24]
102
+ - @prosopo/common@3.1.19
103
+ - @prosopo/procaptcha-common@2.9.4
104
+ - @prosopo/util-crypto@13.5.21
105
+ - @prosopo/datasets@3.0.33
106
+ - @prosopo/types@3.5.2
107
+ - @prosopo/util@3.1.4
108
+ - @prosopo/api@3.1.23
109
+ - @prosopo/config@3.1.19
110
+
111
+ ## 2.9.3
112
+ ### Patch Changes
113
+
114
+ - 50c4120: Release 3.4.3
115
+ - Updated dependencies [52cd544]
116
+ - Updated dependencies [b117ba3]
117
+ - Updated dependencies [50c4120]
118
+ - @prosopo/types@3.5.1
119
+ - @prosopo/procaptcha-common@2.9.3
120
+ - @prosopo/util-crypto@13.5.20
121
+ - @prosopo/datasets@3.0.32
122
+ - @prosopo/common@3.1.18
123
+ - @prosopo/util@3.1.3
124
+ - @prosopo/api@3.1.22
125
+ - @prosopo/config@3.1.18
126
+
127
+ ## 2.9.2
128
+ ### Patch Changes
129
+
130
+ - 618703f: Release 3.4.2
131
+ - Updated dependencies [618703f]
132
+ - Updated dependencies [e20ad6b]
133
+ - @prosopo/procaptcha-common@2.9.2
134
+ - @prosopo/util-crypto@13.5.19
135
+ - @prosopo/datasets@3.0.31
136
+ - @prosopo/common@3.1.17
137
+ - @prosopo/types@3.5.0
138
+ - @prosopo/util@3.1.2
139
+ - @prosopo/api@3.1.21
140
+ - @prosopo/config@3.1.17
141
+
142
+ ## 2.9.1
143
+ ### Patch Changes
144
+
145
+ - 11303d9: Release 3.4.0
146
+ - 18cb28b: Release 3.4.1
147
+ - Updated dependencies [11303d9]
148
+ - Updated dependencies [18cb28b]
149
+ - Updated dependencies [11303d9]
150
+ - @prosopo/procaptcha-common@2.9.1
151
+ - @prosopo/util-crypto@13.5.18
152
+ - @prosopo/datasets@3.0.30
153
+ - @prosopo/common@3.1.16
154
+ - @prosopo/types@3.4.1
155
+ - @prosopo/util@3.1.1
156
+ - @prosopo/api@3.1.20
157
+ - @prosopo/config@3.1.16
158
+
159
+ ## 2.9.0
160
+ ### Minor Changes
161
+
162
+ - 6768f14: Update salt
163
+
164
+ ### Patch Changes
165
+
166
+ - f3f7aec: Release 3.4.0
167
+ - Updated dependencies [f3f7aec]
168
+ - Updated dependencies [6768f14]
169
+ - @prosopo/procaptcha-common@2.9.0
170
+ - @prosopo/util-crypto@13.5.17
171
+ - @prosopo/datasets@3.0.29
172
+ - @prosopo/common@3.1.15
173
+ - @prosopo/types@3.4.0
174
+ - @prosopo/util@3.1.0
175
+ - @prosopo/api@3.1.19
176
+ - @prosopo/config@3.1.15
177
+
178
+ ## 2.8.7
179
+ ### Patch Changes
180
+
181
+ - Release 3.3.1
182
+ - 0824221: Release 3.2.4
183
+ - 72810f4: Fix TypeScript type checking by reordering project references and updating typecheck commands
184
+ - Updated dependencies [97edf3f]
185
+ - Updated dependencies
186
+ - Updated dependencies [0824221]
187
+ - @prosopo/types@3.3.0
188
+ - @prosopo/procaptcha-common@2.8.7
189
+ - @prosopo/util-crypto@13.5.16
190
+ - @prosopo/datasets@3.0.28
191
+ - @prosopo/common@3.1.14
192
+ - @prosopo/util@3.0.17
193
+ - @prosopo/api@3.1.18
194
+ - @prosopo/config@3.1.14
195
+
196
+ ## 2.8.6
197
+ ### Patch Changes
198
+
199
+ - 008d112: Release 3.3.0
200
+ - Updated dependencies [509be28]
201
+ - Updated dependencies [008d112]
202
+ - @prosopo/types@3.2.1
203
+ - @prosopo/procaptcha-common@2.8.6
204
+ - @prosopo/util-crypto@13.5.15
205
+ - @prosopo/datasets@3.0.27
206
+ - @prosopo/common@3.1.13
207
+ - @prosopo/util@3.0.16
208
+ - @prosopo/api@3.1.17
209
+ - @prosopo/config@3.1.13
210
+
211
+ ## 2.8.5
212
+ ### Patch Changes
213
+
214
+ - 0824221: Release 3.2.4
215
+ - 72810f4: Fix TypeScript type checking by reordering project references and updating typecheck commands
216
+ - Updated dependencies [cf48565]
217
+ - Updated dependencies [0824221]
218
+ - @prosopo/types@3.2.0
219
+ - @prosopo/procaptcha-common@2.8.5
220
+ - @prosopo/util-crypto@13.5.14
221
+ - @prosopo/datasets@3.0.26
222
+ - @prosopo/common@3.1.12
223
+ - @prosopo/util@3.0.15
224
+ - @prosopo/api@3.1.16
225
+ - @prosopo/config@3.1.12
226
+
227
+ ## 2.8.4
228
+ ### Patch Changes
229
+
230
+ - 1a23649: Release 3.2.3
231
+ - Updated dependencies [0d1a33e]
232
+ - Updated dependencies [0d1a33e]
233
+ - Updated dependencies [1a23649]
234
+ - @prosopo/types@3.1.4
235
+ - @prosopo/procaptcha-common@2.8.4
236
+ - @prosopo/util-crypto@13.5.13
237
+ - @prosopo/datasets@3.0.25
238
+ - @prosopo/common@3.1.11
239
+ - @prosopo/util@3.0.14
240
+ - @prosopo/api@3.1.15
241
+ - @prosopo/config@3.1.11
242
+
243
+ ## 2.8.3
244
+ ### Patch Changes
245
+
246
+ - 657a827: Release 3.2.2
247
+ - Updated dependencies [36b23e0]
248
+ - Updated dependencies [657a827]
249
+ - @prosopo/api@3.1.14
250
+ - @prosopo/procaptcha-common@2.8.3
251
+ - @prosopo/util-crypto@13.5.12
252
+ - @prosopo/datasets@3.0.24
253
+ - @prosopo/common@3.1.10
254
+ - @prosopo/types@3.1.3
255
+ - @prosopo/util@3.0.13
256
+ - @prosopo/config@3.1.10
257
+
258
+ ## 2.8.2
259
+ ### Patch Changes
260
+
261
+ - 4440947: fix type-only tsc compilation
262
+ - 7bdaca6: Release 3.2.1
263
+ - Updated dependencies [4440947]
264
+ - Updated dependencies [7bdaca6]
265
+ - Updated dependencies [809b984]
266
+ - Updated dependencies [1249ce0]
267
+ - Updated dependencies [809b984]
268
+ - @prosopo/procaptcha-common@2.8.2
269
+ - @prosopo/util-crypto@13.5.11
270
+ - @prosopo/datasets@3.0.23
271
+ - @prosopo/common@3.1.9
272
+ - @prosopo/types@3.1.2
273
+ - @prosopo/util@3.0.12
274
+ - @prosopo/api@3.1.13
275
+ - @prosopo/config@3.1.9
276
+
277
+ ## 2.8.1
278
+ ### Patch Changes
279
+
280
+ - 6fe8570: Release 3.2.0
281
+ - Updated dependencies [1f980c4]
282
+ - Updated dependencies [6fe8570]
283
+ - @prosopo/types@3.1.1
284
+ - @prosopo/procaptcha-common@2.8.1
285
+ - @prosopo/util-crypto@13.5.10
286
+ - @prosopo/datasets@3.0.22
287
+ - @prosopo/common@3.1.8
288
+ - @prosopo/util@3.0.11
289
+ - @prosopo/api@3.1.12
290
+ - @prosopo/config@3.1.8
291
+
292
+ ## 2.8.0
293
+ ### Minor Changes
294
+
295
+ - 8bdc7f0: Using detector to select provider
296
+
297
+ ### Patch Changes
298
+
299
+ - f304be9: Release 3.1.13
300
+ - Updated dependencies [f304be9]
301
+ - Updated dependencies [8bdc7f0]
302
+ - @prosopo/procaptcha-common@2.8.0
303
+ - @prosopo/util-crypto@13.5.9
304
+ - @prosopo/datasets@3.0.21
305
+ - @prosopo/common@3.1.7
306
+ - @prosopo/types@3.1.0
307
+ - @prosopo/util@3.0.10
308
+ - @prosopo/api@3.1.11
309
+ - @prosopo/config@3.1.7
310
+
311
+ ## 2.7.25
312
+ ### Patch Changes
313
+
314
+ - a07db04: Release 3.1.12
315
+ - Updated dependencies [9eed772]
316
+ - Updated dependencies [a07db04]
317
+ - Updated dependencies [ebb0168]
318
+ - @prosopo/datasets@3.0.20
319
+ - @prosopo/config@3.1.6
320
+ - @prosopo/api@3.1.10
321
+ - @prosopo/util@3.0.9
322
+ - @prosopo/common@3.1.6
323
+ - @prosopo/procaptcha-common@2.7.18
324
+ - @prosopo/types@3.0.10
325
+ - @prosopo/util-crypto@13.5.8
326
+
327
+ ## 2.7.24
328
+ ### Patch Changes
329
+
330
+ - @prosopo/api@3.1.9
331
+ - @prosopo/datasets@3.0.19
332
+
333
+ ## 2.7.23
334
+ ### Patch Changes
335
+
336
+ - 6960643: lint detect missing and unneccessary imports
337
+ - Updated dependencies [6960643]
338
+ - @prosopo/procaptcha-common@2.7.17
339
+ - @prosopo/util-crypto@13.5.7
340
+ - @prosopo/datasets@3.0.18
341
+ - @prosopo/common@3.1.5
342
+ - @prosopo/types@3.0.9
343
+ - @prosopo/util@3.0.8
344
+ - @prosopo/api@3.1.8
345
+
346
+ ## 2.7.22
347
+ ### Patch Changes
348
+
349
+ - Updated dependencies [30e7d4d]
350
+ - @prosopo/procaptcha-common@2.7.16
351
+ - @prosopo/datasets@3.0.17
352
+ - @prosopo/config@3.1.5
353
+ - @prosopo/account@2.7.14
354
+ - @prosopo/api@3.1.7
355
+ - @prosopo/common@3.1.4
356
+ - @prosopo/load-balancer@2.6.19
357
+ - @prosopo/types@3.0.8
358
+ - @prosopo/util@3.0.7
359
+ - @prosopo/util-crypto@13.5.6
360
+
361
+ ## 2.7.21
362
+ ### Patch Changes
363
+
364
+ - 1f3a02f: Release 3.1.8
365
+ - Updated dependencies [1f3a02f]
366
+ - @prosopo/procaptcha-common@2.7.15
367
+ - @prosopo/datasets@3.0.16
368
+ - @prosopo/api@3.1.6
369
+
370
+ ## 2.7.20
371
+ ### Patch Changes
372
+
373
+ - Updated dependencies [926df8a]
374
+ - @prosopo/procaptcha-common@2.7.14
375
+ - @prosopo/datasets@3.0.15
376
+ - @prosopo/api@3.1.5
377
+
378
+ ## 2.7.19
379
+ ### Patch Changes
380
+
381
+ - Updated dependencies [44ffda2]
382
+ - Updated dependencies [a49b538]
383
+ - @prosopo/config@3.1.4
384
+ - @prosopo/common@3.1.3
385
+ - @prosopo/account@2.7.13
386
+ - @prosopo/api@3.1.4
387
+ - @prosopo/datasets@3.0.14
388
+ - @prosopo/load-balancer@2.6.18
389
+ - @prosopo/procaptcha-common@2.7.13
390
+ - @prosopo/types@3.0.7
391
+ - @prosopo/util@3.0.6
392
+ - @prosopo/util-crypto@13.5.5
393
+
3
394
  ## 2.7.18
4
395
  ### Patch Changes
5
396
 
@@ -58,8 +58,8 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
58
58
  const account = await loadAccount();
59
59
  let captchaApi = state.captchaApi;
60
60
  if (!frictionlessState?.provider) {
61
- const getRandomProviderResponse = await procaptchaCommon.getRandomActiveProvider(
62
- getConfig()
61
+ const getRandomProviderResponse = await procaptchaCommon.getProcaptchaRandomActiveProvider(
62
+ getConfig().defaultEnvironment
63
63
  );
64
64
  const providerUrl = getRandomProviderResponse.provider.url;
65
65
  const providerApi = await loadProviderApi(providerUrl);
@@ -133,15 +133,19 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
133
133
  }
134
134
  updateState({ showModal: false });
135
135
  const challenge = state.challenge;
136
- const salt = utilCrypto.randomAsHex();
137
136
  const captchaSolution = state.challenge.captchas.map(
138
137
  (captcha, index) => {
139
138
  const solution = util.at(state.solutions, index);
139
+ const coords = solution.flatMap(([_, x, y]) => [x, y]);
140
+ const salt = utilCrypto.randomAsHex(
141
+ coords.map((x) => x.toString(16).length + 4).reduce((acc, curr) => acc + curr, 0)
142
+ );
143
+ const saltCoord = util.embedData(salt, coords);
140
144
  return {
141
145
  captchaId: captcha.captchaId,
142
146
  captchaContentId: captcha.captchaContentId,
143
- salt,
144
- solution
147
+ salt: saltCoord,
148
+ solution: solution.flatMap((s) => s[0])
145
149
  };
146
150
  }
147
151
  );
@@ -228,7 +232,7 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
228
232
  await start();
229
233
  }
230
234
  };
231
- const select = (hash) => {
235
+ const select = (hash, x, y) => {
232
236
  if (!state.challenge) {
233
237
  throw new common.ProsopoError("CAPTCHA.NO_CAPTCHA", {
234
238
  context: { error: "Cannot select, no Captcha found in state" }
@@ -244,10 +248,11 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
244
248
  const index = state.index;
245
249
  const solutions = state.solutions;
246
250
  const solution = util.at(solutions, index);
247
- if (solution.includes(hash)) {
248
- solution.splice(solution.indexOf(hash), 1);
251
+ if (solution.some((s) => s[0] === hash)) {
252
+ const newSolution = solution.filter((s) => s[0] !== hash);
253
+ solutions[index] = newSolution;
249
254
  } else {
250
- solution.push(hash);
255
+ solutions[index] = [...solution, [hash, x || 0, y || 0]];
251
256
  }
252
257
  updateState({ solutions });
253
258
  };
@@ -0,0 +1,2 @@
1
+ export * from "./modules/index.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type FrictionlessState, type ProcaptchaCallbacks, type ProcaptchaClientConfigOutput, type ProcaptchaState, type ProcaptchaStateUpdateFn } from "@prosopo/types";
2
+ export declare function Manager(configOptional: ProcaptchaClientConfigOutput, state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn, callbacks: ProcaptchaCallbacks, frictionlessState?: FrictionlessState): {
3
+ start: () => Promise<void>;
4
+ cancel: () => Promise<void>;
5
+ submit: () => Promise<void>;
6
+ select: (hash: string, x?: number, y?: number) => void;
7
+ nextRound: () => void;
8
+ reload: () => Promise<void>;
9
+ };
10
+ //# sourceMappingURL=Manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"AA4BA,OAAO,EAKN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAExB,KAAK,4BAA4B,EAEjC,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAG5B,MAAM,gBAAgB,CAAC;AAwBxB,wBAAgB,OAAO,CACtB,cAAc,EAAE,4BAA4B,EAC5C,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,CAAC,EAAE,iBAAiB;;;;mBAuSf,MAAM,MAAM,MAAM,MAAM,MAAM;;;EAyJpD"}
@@ -1,9 +1,9 @@
1
1
  import { stringToHex } from "@polkadot/util/string";
2
2
  import { ProviderApi } from "@prosopo/api";
3
3
  import { ProsopoDatasetError, ProsopoError, ProsopoEnvError } from "@prosopo/common";
4
- import { getDefaultEvents, buildUpdateState, providerRetry, getRandomActiveProvider, ExtensionLoader } from "@prosopo/procaptcha-common";
4
+ import { getDefaultEvents, buildUpdateState, providerRetry, getProcaptchaRandomActiveProvider, ExtensionLoader } from "@prosopo/procaptcha-common";
5
5
  import { ProcaptchaConfigSchema, ApiParams, encodeProcaptchaOutput } from "@prosopo/types";
6
- import { sleep, at, hashToHex } from "@prosopo/util";
6
+ import { sleep, at, embedData, hashToHex } from "@prosopo/util";
7
7
  import { randomAsHex } from "@prosopo/util-crypto";
8
8
  import { ProsopoCaptchaApi } from "./ProsopoCaptchaApi.js";
9
9
  const defaultState = () => {
@@ -56,8 +56,8 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
56
56
  const account = await loadAccount();
57
57
  let captchaApi = state.captchaApi;
58
58
  if (!frictionlessState?.provider) {
59
- const getRandomProviderResponse = await getRandomActiveProvider(
60
- getConfig()
59
+ const getRandomProviderResponse = await getProcaptchaRandomActiveProvider(
60
+ getConfig().defaultEnvironment
61
61
  );
62
62
  const providerUrl = getRandomProviderResponse.provider.url;
63
63
  const providerApi = await loadProviderApi(providerUrl);
@@ -131,15 +131,19 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
131
131
  }
132
132
  updateState({ showModal: false });
133
133
  const challenge = state.challenge;
134
- const salt = randomAsHex();
135
134
  const captchaSolution = state.challenge.captchas.map(
136
135
  (captcha, index) => {
137
136
  const solution = at(state.solutions, index);
137
+ const coords = solution.flatMap(([_, x, y]) => [x, y]);
138
+ const salt = randomAsHex(
139
+ coords.map((x) => x.toString(16).length + 4).reduce((acc, curr) => acc + curr, 0)
140
+ );
141
+ const saltCoord = embedData(salt, coords);
138
142
  return {
139
143
  captchaId: captcha.captchaId,
140
144
  captchaContentId: captcha.captchaContentId,
141
- salt,
142
- solution
145
+ salt: saltCoord,
146
+ solution: solution.flatMap((s) => s[0])
143
147
  };
144
148
  }
145
149
  );
@@ -226,7 +230,7 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
226
230
  await start();
227
231
  }
228
232
  };
229
- const select = (hash) => {
233
+ const select = (hash, x, y) => {
230
234
  if (!state.challenge) {
231
235
  throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
232
236
  context: { error: "Cannot select, no Captcha found in state" }
@@ -242,10 +246,11 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
242
246
  const index = state.index;
243
247
  const solutions = state.solutions;
244
248
  const solution = at(solutions, index);
245
- if (solution.includes(hash)) {
246
- solution.splice(solution.indexOf(hash), 1);
249
+ if (solution.some((s) => s[0] === hash)) {
250
+ const newSolution = solution.filter((s) => s[0] !== hash);
251
+ solutions[index] = newSolution;
247
252
  } else {
248
- solution.push(hash);
253
+ solutions[index] = [...solution, [hash, x || 0, y || 0]];
249
254
  }
250
255
  updateState({ solutions });
251
256
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ProviderApi } from "@prosopo/api";
2
+ import { type CaptchaResponseBody, type CaptchaSolution, type ProcaptchaApiInterface, type RandomProvider } from "@prosopo/types";
3
+ import type { TCaptchaSubmitResult } from "@prosopo/types";
4
+ export declare class ProsopoCaptchaApi implements ProcaptchaApiInterface {
5
+ userAccount: string;
6
+ provider: RandomProvider;
7
+ providerApi: ProviderApi;
8
+ dappAccount: string;
9
+ _web2: boolean;
10
+ constructor(userAccount: string, provider: RandomProvider, providerApi: ProviderApi, web2: boolean, dappAccount: string);
11
+ get web2(): boolean;
12
+ getCaptchaChallenge(sessionId?: string): Promise<CaptchaResponseBody>;
13
+ submitCaptchaSolution(userTimestampSignature: string, requestHash: string, solutions: CaptchaSolution[], timestamp: string, providerRequestHashSignature: string): Promise<TCaptchaSubmitResult>;
14
+ }
15
+ export default ProsopoCaptchaApi;
16
+ //# sourceMappingURL=ProsopoCaptchaApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,EAEN,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,sBAAsB;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;gBAGd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM;IASpB,IAAI,IAAI,IAAI,OAAO,CAElB;IAEY,mBAAmB,CAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC;IA8BlB,qBAAqB,CACjC,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,4BAA4B,EAAE,MAAM,GAClC,OAAO,CAAC,oBAAoB,CAAC;CAoChC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ProsopoKeyboardEvent, ProsopoMouseEvent, ProsopoTouchEvent } from "@prosopo/types";
2
+ type SetStateAction<T> = T | ((prevState: T) => T);
3
+ type SetMouseEvent = (setValueFunc: SetStateAction<ProsopoMouseEvent[]>) => void;
4
+ type SetKeyboardEvent = (setValueFunc: SetStateAction<ProsopoKeyboardEvent[]>) => void;
5
+ type SetTouchEvent = (setValueFunc: SetStateAction<ProsopoTouchEvent[]>) => void;
6
+ export declare const startCollector: (setStoredMouseEvents: SetMouseEvent, setStoredTouchEvents: SetTouchEvent, setStoredKeyboardEvents: SetKeyboardEvent, rootElement: HTMLDivElement) => void;
7
+ export {};
8
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/modules/collector.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACX,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,gBAAgB,CAAC;AAIxB,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnD,KAAK,aAAa,GAAG,CACpB,YAAY,EAAE,cAAc,CAAC,iBAAiB,EAAE,CAAC,KAC7C,IAAI,CAAC;AACV,KAAK,gBAAgB,GAAG,CACvB,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,CAAC,KAChD,IAAI,CAAC;AACV,KAAK,aAAa,GAAG,CACpB,YAAY,EAAE,cAAc,CAAC,iBAAiB,EAAE,CAAC,KAC7C,IAAI,CAAC;AAiDV,eAAO,MAAM,cAAc,yBACJ,aAAa,wBACb,aAAa,2BACV,gBAAgB,eAC5B,cAAc,SA+B3B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/modules/collector.ts"],"names":[],"mappings":"AAmBA,MAAM,eAAe,GAAG,KAAK,CAAC;AAc9B,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAE,SAA2B,EAAE,EAAE;IAC7D,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;QAC3B,IAAI,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACxC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACrB,KAA4B,EAC5B,aAA4B,EAC3B,EAAE;IACH,MAAM,WAAW,GAAsB;QACtC,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACxB,KAA+B,EAC/B,gBAAkC,EACjC,EAAE;IACH,MAAM,WAAW,GAAyB;QACzC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,QAAQ;QAC1B,SAAS,EAAE,KAAK,CAAC,OAAO;KACxB,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACrB,KAA4B,EAC5B,aAA4B,EAC3B,EAAE;IACH,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,QAAQ,CACP,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAClE,aAAa,CACb,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,oBAAmC,EACnC,oBAAmC,EACnC,uBAAyC,EACzC,WAA2B,EAC1B,EAAE;IACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACtC,CAAC;QAGF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACtC,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAC5C,CAAC;QAGF,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CACzC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACtC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACtC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1C,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACtC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACtC,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA0B,EAAE;IACvE,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,OAA0B,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./Manager.js";
2
+ export * from "./ProsopoCaptchaApi.js";
3
+ export * from "./collector.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAaA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAaA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha",
3
- "version": "2.7.18",
3
+ "version": "2.9.13",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
7
7
  "type": "module",
8
8
  "types": "./dist/index.d.ts",
9
9
  "engines": {
10
- "node": "20",
11
- "npm": "10.8.2"
10
+ "node": ">=v20.0.0",
11
+ "npm": ">=10.6.0"
12
12
  },
13
13
  "scripts": {
14
14
  "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
15
15
  "build": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
16
16
  "build:tsc": "tsc --build --verbose",
17
17
  "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
18
- "typecheck": "tsc --build --declaration --emitDeclarationOnly"
18
+ "typecheck": "tsc --project tsconfig.types.json"
19
19
  },
20
20
  "exports": {
21
21
  ".": {
@@ -31,39 +31,19 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@polkadot/util": "12.6.2",
35
- "@prosopo/account": "2.7.12",
36
- "@prosopo/api": "3.1.3",
37
- "@prosopo/common": "3.1.2",
38
- "@prosopo/datasets": "3.0.13",
39
- "@prosopo/load-balancer": "2.6.17",
40
- "@prosopo/procaptcha-common": "2.7.12",
41
- "@prosopo/types": "3.0.6",
42
- "@prosopo/util": "3.0.5",
43
- "@prosopo/util-crypto": "13.5.4",
44
- "@typegoose/auto-increment": "4.13.0",
45
- "axios": "1.10.0",
46
- "esbuild": "0.25.6",
47
- "express": "4.21.2",
48
- "jsdom": "25.0.0",
49
- "@prosopo/config": "3.1.3",
50
- "openpgp": "5.11.3",
51
- "webpack-dev-server": "5.2.2"
52
- },
53
- "overrides": {
54
- "@polkadot/extension-inject": {
55
- "@polkadot/api": {
56
- "version": "10.13.1"
57
- }
58
- },
59
- "@polkadot/extension-dapp": {
60
- "@polkadot/api": {
61
- "version": "10.13.1"
62
- }
63
- }
34
+ "@polkadot/util": "13.5.7",
35
+ "@prosopo/api": "3.1.32",
36
+ "@prosopo/common": "3.1.21",
37
+ "@prosopo/config": "3.1.21",
38
+ "@prosopo/datasets": "3.0.42",
39
+ "@prosopo/procaptcha-common": "2.9.13",
40
+ "@prosopo/types": "3.5.11",
41
+ "@prosopo/util": "3.1.7",
42
+ "@prosopo/util-crypto": "13.5.23"
64
43
  },
65
44
  "devDependencies": {
66
- "@vitest/coverage-v8": "3.0.9",
45
+ "@types/node": "22.10.2",
46
+ "@vitest/coverage-v8": "3.2.4",
67
47
  "concurrently": "9.0.1",
68
48
  "del-cli": "6.0.0",
69
49
  "dotenv": "16.4.5",
@@ -71,8 +51,8 @@
71
51
  "tslib": "2.7.0",
72
52
  "tsx": "4.20.3",
73
53
  "typescript": "5.6.2",
74
- "vite": "6.3.5",
75
- "vitest": "3.0.9"
54
+ "vite": "6.4.1",
55
+ "vitest": "3.2.4"
76
56
  },
77
57
  "keywords": [],
78
58
  "repository": {