@prosopo/procaptcha 0.3.1 → 0.3.3

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.
Files changed (81) hide show
  1. package/dist/cjs/account/dist/extension/Extension.cjs +5 -0
  2. package/dist/cjs/{api → account/dist/extension}/ExtensionWeb2.cjs +4 -4
  3. package/dist/cjs/{api → account/dist/extension}/ExtensionWeb3.cjs +10 -7
  4. package/dist/cjs/account/dist/index.cjs +8 -0
  5. package/dist/cjs/index.cjs +0 -6
  6. package/dist/cjs/modules/Manager.cjs +51 -88
  7. package/dist/cjs/modules/ProsopoCaptchaApi.cjs +4 -3
  8. package/dist/cjs/modules/collector.cjs +2 -6
  9. package/dist/index.d.ts +0 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +0 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/modules/Manager.d.ts +2 -3
  14. package/dist/modules/Manager.d.ts.map +1 -1
  15. package/dist/modules/Manager.js +37 -77
  16. package/dist/modules/Manager.js.map +1 -1
  17. package/dist/modules/ProsopoCaptchaApi.d.ts +7 -6
  18. package/dist/modules/ProsopoCaptchaApi.d.ts.map +1 -1
  19. package/dist/modules/ProsopoCaptchaApi.js +4 -3
  20. package/dist/modules/ProsopoCaptchaApi.js.map +1 -1
  21. package/dist/modules/collector.d.ts.map +1 -1
  22. package/dist/modules/collector.js +2 -6
  23. package/dist/modules/collector.js.map +1 -1
  24. package/package.json +8 -7
  25. package/typedoc.config.js +13 -0
  26. package/vite.cjs.config.ts +13 -0
  27. package/dist/api/Extension.d.ts +0 -5
  28. package/dist/api/Extension.d.ts.map +0 -1
  29. package/dist/api/Extension.js +0 -3
  30. package/dist/api/Extension.js.map +0 -1
  31. package/dist/api/ExtensionWeb2.d.ts +0 -18
  32. package/dist/api/ExtensionWeb2.d.ts.map +0 -1
  33. package/dist/api/ExtensionWeb2.js +0 -100
  34. package/dist/api/ExtensionWeb2.js.map +0 -1
  35. package/dist/api/ExtensionWeb3.d.ts +0 -6
  36. package/dist/api/ExtensionWeb3.d.ts.map +0 -1
  37. package/dist/api/ExtensionWeb3.js +0 -24
  38. package/dist/api/ExtensionWeb3.js.map +0 -1
  39. package/dist/api/errors.d.ts +0 -16
  40. package/dist/api/errors.d.ts.map +0 -1
  41. package/dist/api/errors.js +0 -26
  42. package/dist/api/errors.js.map +0 -1
  43. package/dist/api/index.d.ts +0 -3
  44. package/dist/api/index.d.ts.map +0 -1
  45. package/dist/api/index.js +0 -3
  46. package/dist/api/index.js.map +0 -1
  47. package/dist/api/sign.d.ts +0 -5
  48. package/dist/api/sign.d.ts.map +0 -1
  49. package/dist/api/sign.js +0 -12
  50. package/dist/api/sign.js.map +0 -1
  51. package/dist/cjs/api/Extension.cjs +0 -4
  52. package/dist/cjs/api/errors.cjs +0 -32
  53. package/dist/cjs/api/index.cjs +0 -3
  54. package/dist/cjs/types/client.cjs +0 -1
  55. package/dist/cjs/types/contract.cjs +0 -1
  56. package/dist/cjs/types/index.cjs +0 -6
  57. package/dist/cjs/types/manager.cjs +0 -14
  58. package/dist/tests/mocks/browser.d.ts +0 -9
  59. package/dist/tests/mocks/browser.d.ts.map +0 -1
  60. package/dist/tests/mocks/browser.js +0 -18
  61. package/dist/tests/mocks/browser.js.map +0 -1
  62. package/dist/types/client.d.ts +0 -5
  63. package/dist/types/client.d.ts.map +0 -1
  64. package/dist/types/client.js +0 -2
  65. package/dist/types/client.js.map +0 -1
  66. package/dist/types/contract.d.ts +0 -5
  67. package/dist/types/contract.d.ts.map +0 -1
  68. package/dist/types/contract.js +0 -2
  69. package/dist/types/contract.js.map +0 -1
  70. package/dist/types/index.d.ts +0 -4
  71. package/dist/types/index.d.ts.map +0 -1
  72. package/dist/types/index.js +0 -4
  73. package/dist/types/index.js.map +0 -1
  74. package/dist/types/manager.d.ts +0 -37
  75. package/dist/types/manager.d.ts.map +0 -1
  76. package/dist/types/manager.js +0 -12
  77. package/dist/types/manager.js.map +0 -1
  78. package/dist/types/utils.d.ts +0 -2
  79. package/dist/types/utils.d.ts.map +0 -1
  80. package/dist/types/utils.js +0 -2
  81. package/dist/types/utils.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ class Extension {
4
+ }
5
+ exports.Extension = Extension;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
3
  const Api = require("@polkadot/api/promise/Api");
4
+ const Extension = require("./Extension.cjs");
3
5
  const keyring = require("@polkadot/keyring");
4
6
  const common = require("@prosopo/common");
5
7
  const ws = require("@polkadot/rpc-provider/ws");
@@ -9,9 +11,8 @@ const fingerprintjs = require("@fingerprintjs/fingerprintjs");
9
11
  const util = require("@prosopo/util");
10
12
  const string = require("@polkadot/util/string");
11
13
  const u8a = require("@polkadot/util/u8a");
12
- const Extension = require("./Extension.cjs");
13
14
  const Signer = require("@polkadot/extension-base/page/Signer");
14
- class ExtWeb2 extends Extension {
15
+ class ExtensionWeb2 extends Extension.Extension {
15
16
  constructor() {
16
17
  super(...arguments);
17
18
  this.getNetwork = (config) => {
@@ -42,7 +43,6 @@ class ExtWeb2 extends Extension {
42
43
  const signature = account.keypair.sign(payload.data);
43
44
  return {
44
45
  id: 1,
45
- // the id of the request to sign. This should be incremented each time and adjust the signature, but we're hacking around this. Hence the signature will always be the same given the same payload.
46
46
  signature: u8a.u8aToHex(signature)
47
47
  };
48
48
  };
@@ -97,4 +97,4 @@ class ExtWeb2 extends Extension {
97
97
  return fingerprintjs.hashComponents(componentsReduced);
98
98
  }
99
99
  }
100
- module.exports = ExtWeb2;
100
+ exports.ExtensionWeb2 = ExtensionWeb2;
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
- const errors = require("./errors.cjs");
3
- const extensionDapp = require("@polkadot/extension-dapp");
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
3
  const Extension = require("./Extension.cjs");
5
- class ExtWeb3 extends Extension {
4
+ const common = require("@prosopo/common");
5
+ const extensionDapp = require("@polkadot/extension-dapp");
6
+ class ExtensionWeb3 extends Extension.Extension {
6
7
  async getAccount(config) {
7
8
  const { dappName, userAccountAddress: address } = config;
8
9
  if (!address) {
9
- throw new errors.AccountNotFoundError("No account address provided");
10
+ throw new common.ProsopoError("WIDGET.NO_ACCOUNTS_FOUND", { context: { error: "No account address provided" } });
10
11
  }
11
12
  const extensions = await extensionDapp.web3Enable(dappName);
12
13
  if (extensions.length === 0) {
13
- throw new errors.ExtensionNotFoundError();
14
+ throw new common.ProsopoError("WIDGET.NO_EXTENSION_FOUND");
14
15
  }
15
16
  for (const extension of extensions) {
16
17
  const accounts = await extension.accounts.get();
@@ -19,7 +20,9 @@ class ExtWeb3 extends Extension {
19
20
  return { account, extension };
20
21
  }
21
22
  }
22
- throw new errors.AccountNotFoundError("No account found matching " + address);
23
+ throw new common.ProsopoError("WIDGET.ACCOUNT_NOT_FOUND", {
24
+ context: { error: `No account found matching ${address}` }
25
+ });
23
26
  }
24
27
  }
25
- module.exports = ExtWeb3;
28
+ exports.ExtensionWeb3 = ExtensionWeb3;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Extension = require("./extension/Extension.cjs");
4
+ const ExtensionWeb2 = require("./extension/ExtensionWeb2.cjs");
5
+ const ExtensionWeb3 = require("./extension/ExtensionWeb3.cjs");
6
+ exports.Extension = Extension.Extension;
7
+ exports.ExtensionWeb2 = ExtensionWeb2.ExtensionWeb2;
8
+ exports.ExtensionWeb3 = ExtensionWeb3.ExtensionWeb3;
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- require("./api/index.cjs");
4
3
  require("./modules/index.cjs");
5
- require("./types/index.cjs");
6
4
  require("./utils/index.cjs");
7
- const ExtensionWeb2 = require("./api/ExtensionWeb2.cjs");
8
5
  const Manager = require("./modules/Manager.cjs");
9
6
  const ProsopoCaptchaApi = require("./modules/ProsopoCaptchaApi.cjs");
10
7
  const collector = require("./modules/collector.cjs");
11
- const manager = require("./types/manager.cjs");
12
8
  const utils = require("./utils/utils.cjs");
13
- exports.ExtensionWeb2 = ExtensionWeb2;
14
9
  exports.Manager = Manager.Manager;
15
10
  exports.ProsopoCaptchaApi = ProsopoCaptchaApi.ProsopoCaptchaApi;
16
11
  exports.startCollector = collector.startCollector;
17
- exports.ProcapchaEventNames = manager.ProcapchaEventNames;
18
12
  exports.sleep = utils.sleep;
@@ -1,22 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const types = require("@prosopo/types");
4
- const errors = require("../api/errors.cjs");
5
4
  const Api = require("@polkadot/api/promise/Api");
6
- const api = require("@prosopo/api");
5
+ require("../account/dist/index.cjs");
7
6
  const keyring = require("@polkadot/keyring");
8
7
  const common = require("@prosopo/common");
9
8
  const contract = require("@prosopo/contract");
9
+ const api = require("@prosopo/api");
10
10
  const ws = require("@polkadot/rpc-provider/ws");
11
11
  const contractInfo = require("@prosopo/captcha-contract/contract-info");
12
12
  const util = require("@prosopo/util");
13
+ const procaptchaCommon = require("@prosopo/procaptcha-common");
13
14
  const random = require("@polkadot/util-crypto/random");
14
15
  const utils = require("../utils/utils.cjs");
15
16
  const string = require("@polkadot/util/string");
16
- const ExtensionWeb2 = require("../api/ExtensionWeb2.cjs");
17
- const ExtensionWeb3 = require("../api/ExtensionWeb3.cjs");
18
17
  const ProsopoCaptchaApi = require("./ProsopoCaptchaApi.cjs");
19
18
  const storage = require("./storage.cjs");
19
+ const ExtensionWeb2 = require("../account/dist/extension/ExtensionWeb2.cjs");
20
+ const ExtensionWeb3 = require("../account/dist/extension/ExtensionWeb3.cjs");
20
21
  const defaultState = () => {
21
22
  return {
22
23
  // note order matters! see buildUpdateState. These fields are set in order, so disable modal first, then set loading to false, etc.
@@ -31,14 +32,6 @@ const defaultState = () => {
31
32
  // don't handle timeout here, this should be handled by the state management
32
33
  };
33
34
  };
34
- const buildUpdateState = (state, onStateUpdate) => {
35
- const updateCurrentState = (nextState) => {
36
- Object.assign(state, nextState);
37
- onStateUpdate(nextState);
38
- console.log("Procaptcha state update:", nextState, "\nResult:", state);
39
- };
40
- return updateCurrentState;
41
- };
42
35
  const getNetwork = (config) => {
43
36
  const network = config.networks[config.defaultNetwork];
44
37
  if (!network) {
@@ -50,49 +43,14 @@ const getNetwork = (config) => {
50
43
  };
51
44
  function Manager(configOptional, state, onStateUpdate, callbacks) {
52
45
  const alertError = (error) => {
53
- console.log(error);
54
46
  alert(error.message);
55
47
  };
56
- const events = Object.assign(
57
- {
58
- onAccountNotFound: alertError,
59
- onError: alertError,
60
- onHuman: (output) => {
61
- console.log("onHuman event triggered", output);
62
- updateState({ sendData: !state.sendData });
63
- },
64
- onExtensionNotFound: () => {
65
- alert("No extension found");
66
- },
67
- onFailed: () => {
68
- alert("Captcha challenge failed. Please try again");
69
- updateState({ sendData: !state.sendData });
70
- },
71
- onExpired: () => {
72
- alert("Completed challenge has expired, please try again");
73
- },
74
- onChallengeExpired: () => {
75
- alert("Uncompleted challenge has expired, please try again");
76
- },
77
- onOpen: () => {
78
- console.log("onOpen event triggered");
79
- updateState({ sendData: !state.sendData });
80
- },
81
- onClose: () => {
82
- console.log("onClose event triggered");
83
- }
84
- },
85
- callbacks
86
- );
48
+ const events = procaptchaCommon.getDefaultEvents(onStateUpdate, state, callbacks);
87
49
  const dispatchErrorEvent = (err) => {
88
50
  const error = err instanceof Error ? err : new Error(String(err));
89
- if (error instanceof errors.AccountNotFoundError) {
90
- events.onAccountNotFound(error.message);
91
- } else {
92
- events.onError(error);
93
- }
51
+ events.onError(error);
94
52
  };
95
- const updateState = buildUpdateState(state, onStateUpdate);
53
+ const updateState = procaptchaCommon.buildUpdateState(state, onStateUpdate);
96
54
  const getConfig = () => {
97
55
  const config = {
98
56
  userAccountAddress: "",
@@ -113,15 +71,12 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
113
71
  }
114
72
  };
115
73
  const start = async () => {
116
- console.log("Starting procaptcha");
117
74
  events.onOpen();
118
75
  await fallable(async () => {
119
76
  if (state.loading) {
120
- console.log("Procaptcha already loading");
121
77
  return;
122
78
  }
123
79
  if (state.isHuman) {
124
- console.log("already human");
125
80
  return;
126
81
  }
127
82
  resetState();
@@ -157,14 +112,16 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
157
112
  void 0,
158
113
  configOptional.challengeValidLength
159
114
  );
160
- if (verifyDappUserResponse.solutionApproved) {
115
+ if (verifyDappUserResponse.verified) {
161
116
  updateState({ isHuman: true, loading: false });
162
- events.onHuman({
163
- providerUrl: providerUrlFromStorage,
164
- user: account.account.address,
165
- dapp: getDappAccount(),
166
- commitmentId: verifyDappUserResponse.commitmentId
167
- });
117
+ const output = {
118
+ [types.ApiParams.providerUrl]: providerUrlFromStorage,
119
+ [types.ApiParams.user]: account.account.address,
120
+ [types.ApiParams.dapp]: getDappAccount(),
121
+ [types.ApiParams.commitmentId]: util.hashToHex(verifyDappUserResponse.commitmentId),
122
+ [types.ApiParams.blockNumber]: verifyDappUserResponse.blockNumber
123
+ };
124
+ events.onHuman(output);
168
125
  setValidChallengeTimeout();
169
126
  return;
170
127
  }
@@ -178,26 +135,20 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
178
135
  type: "bytes"
179
136
  };
180
137
  const signed = await account.extension.signer.signRaw(payload);
181
- console.log("Signature:", signed);
182
138
  const getRandomProviderResponse = await contract.wrapQuery(
183
139
  contract$1.query.getRandomActiveProvider,
184
140
  contract$1.query
185
141
  )(account.account.address, getDappAccount());
186
142
  const blockNumber = parseInt(getRandomProviderResponse.blockNumber.toString());
187
- console.log("provider", getRandomProviderResponse);
188
143
  const providerUrl = common.trimProviderUrl(getRandomProviderResponse.provider.url.toString());
189
144
  providerApi = await loadProviderApi(providerUrl);
190
- console.log("providerApi", providerApi);
191
145
  const captchaApi = await loadCaptchaApi(contract$1, getRandomProviderResponse, providerApi);
192
- console.log("captchaApi", captchaApi);
193
146
  const challenge = await captchaApi.getCaptchaChallenge();
194
- console.log("challenge", challenge);
195
147
  if (challenge.captchas.length <= 0) {
196
148
  throw new common.ProsopoApiError("DEVELOPER.PROVIDER_NO_CAPTCHA");
197
149
  }
198
150
  const timeMillis = challenge.captchas.map((captcha) => captcha.captcha.timeLimitMs || 30 * 1e3).reduce((a, b) => a + b);
199
151
  const timeout = setTimeout(() => {
200
- console.log("challenge expired after " + timeMillis + "ms");
201
152
  events.onChallengeExpired();
202
153
  updateState({ isHuman: false, showModal: false, loading: false });
203
154
  }, timeMillis);
@@ -213,7 +164,6 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
213
164
  };
214
165
  const submit = async () => {
215
166
  await fallable(async () => {
216
- console.log("submitting solutions");
217
167
  clearTimeout();
218
168
  if (!state.challenge) {
219
169
  throw new common.ProsopoError("CAPTCHA.NO_CAPTCHA", {
@@ -223,15 +173,17 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
223
173
  updateState({ showModal: false });
224
174
  const challenge = state.challenge;
225
175
  const salt = random.randomAsHex();
226
- const captchaSolution = state.challenge.captchas.map((captcha, index) => {
227
- const solution = util.at(state.solutions, index);
228
- return {
229
- captchaId: captcha.captcha.captchaId,
230
- captchaContentId: captcha.captcha.captchaContentId,
231
- salt,
232
- solution
233
- };
234
- });
176
+ const captchaSolution = state.challenge.captchas.map(
177
+ (captcha, index) => {
178
+ const solution = util.at(state.solutions, index);
179
+ return {
180
+ captchaId: captcha.captcha.captchaId,
181
+ captchaContentId: captcha.captcha.captchaContentId,
182
+ salt,
183
+ solution
184
+ };
185
+ }
186
+ );
235
187
  const account = getAccount();
236
188
  const blockNumber = getBlockNumber();
237
189
  const signer = account.extension.signer;
@@ -249,7 +201,7 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
249
201
  captchaSolution,
250
202
  salt
251
203
  );
252
- const isHuman = submission[0].solutionApproved;
204
+ const isHuman = submission[0].verified;
253
205
  if (!isHuman) {
254
206
  events.onFailed();
255
207
  }
@@ -265,7 +217,7 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
265
217
  providerUrl: trimmedUrl,
266
218
  user: account.account.address,
267
219
  dapp: getDappAccount(),
268
- commitmentId: submission[1],
220
+ commitmentId: util.hashToHex(submission[1]),
269
221
  blockNumber
270
222
  });
271
223
  setValidChallengeTimeout();
@@ -273,7 +225,6 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
273
225
  });
274
226
  };
275
227
  const cancel = async () => {
276
- console.log("cancel");
277
228
  clearTimeout();
278
229
  resetState();
279
230
  events.onClose();
@@ -293,10 +244,8 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
293
244
  const solutions = state.solutions;
294
245
  const solution = util.at(solutions, index);
295
246
  if (solution.includes(hash)) {
296
- console.log("deselecting", hash);
297
247
  solution.splice(solution.indexOf(hash), 1);
298
248
  } else {
299
- console.log("selecting", hash);
300
249
  solution.push(hash);
301
250
  }
302
251
  updateState({ solutions });
@@ -312,7 +261,6 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
312
261
  context: { error: "Cannot select, index is out of range for this Captcha" }
313
262
  });
314
263
  }
315
- console.log("proceeding to next round");
316
264
  updateState({ index: state.index + 1 });
317
265
  };
318
266
  const loadCaptchaApi = async (contract2, provider, providerApi) => {
@@ -341,10 +289,8 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
341
289
  updateState({ timeout: void 0 });
342
290
  };
343
291
  const setValidChallengeTimeout = () => {
344
- console.log("setting valid challenge timeout");
345
292
  const timeMillis = configOptional.challengeValidLength || 120 * 1e3;
346
293
  const successfullChallengeTimeout = setTimeout(() => {
347
- console.log("valid challenge expired after " + timeMillis + "ms");
348
294
  updateState({ isHuman: false });
349
295
  events.onExpired();
350
296
  }, timeMillis);
@@ -367,10 +313,9 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
367
313
  context: { error: "Account address has not been set for web3 mode" }
368
314
  });
369
315
  }
370
- const ext = config.web2 ? new ExtensionWeb2() : new ExtensionWeb3();
316
+ const ext = config.web2 ? new ExtensionWeb2.ExtensionWeb2() : new ExtensionWeb3.ExtensionWeb3();
371
317
  const account = await ext.getAccount(config);
372
318
  storage.setAccount(account.account.address);
373
- console.log("Using account:", account);
374
319
  updateState({ account });
375
320
  return getAccount();
376
321
  };
@@ -411,12 +356,30 @@ function Manager(configOptional, state, onStateUpdate, callbacks) {
411
356
  );
412
357
  };
413
358
  const exportData = async (events2) => {
359
+ const providerUrlFromStorage = storage.getProviderUrl();
360
+ let providerApi;
361
+ if (providerUrlFromStorage) {
362
+ providerApi = await loadProviderApi(providerUrlFromStorage);
363
+ } else {
364
+ const contract$1 = await loadContract();
365
+ const getRandomProviderResponse = await contract.wrapQuery(
366
+ contract$1.query.getRandomActiveProvider,
367
+ contract$1.query
368
+ )(getAccount().account.address, getDappAccount());
369
+ const providerUrl2 = common.trimProviderUrl(getRandomProviderResponse.provider.url.toString());
370
+ providerApi = await loadProviderApi(providerUrl2);
371
+ }
414
372
  const providerUrl = storage.getProviderUrl() || state.captchaApi?.provider.provider.url.toString();
415
373
  if (!providerUrl) {
416
374
  return;
417
375
  }
418
- const providerApi = await loadProviderApi(providerUrl);
419
- await providerApi.submitUserEvents(events2, getAccount().account.address);
376
+ let account = "";
377
+ try {
378
+ account = getAccount().account.address;
379
+ } catch (e) {
380
+ console.error(e);
381
+ }
382
+ await providerApi.submitUserEvents(events2, account);
420
383
  };
421
384
  return {
422
385
  start,
@@ -10,9 +10,12 @@ class ProsopoCaptchaApi {
10
10
  this.contract = contract;
11
11
  this.provider = provider;
12
12
  this.providerApi = providerApi;
13
- this.web2 = web2;
13
+ this._web2 = web2;
14
14
  this.dappAccount = dappAccount;
15
15
  }
16
+ get web2() {
17
+ return this._web2;
18
+ }
16
19
  async getCaptchaChallenge() {
17
20
  try {
18
21
  const captchaChallenge = await this.providerApi.getCaptchaChallenge(this.userAccount, this.provider);
@@ -32,7 +35,6 @@ class ProsopoCaptchaApi {
32
35
  verifyCaptchaChallengeContent(provider, captchaChallenge) {
33
36
  const first = util.at(captchaChallenge.captchas, 0);
34
37
  const proofLength = first.proof.length;
35
- console.log(provider.provider);
36
38
  const last = util.at(first.proof, proofLength - 1);
37
39
  if (provider.provider.datasetIdContent.toString() !== util.at(last, 0)) {
38
40
  throw new common.ProsopoEnvError("CAPTCHA.INVALID_DATASET_CONTENT_ID");
@@ -45,7 +47,6 @@ class ProsopoCaptchaApi {
45
47
  throw new common.ProsopoEnvError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE");
46
48
  }
47
49
  }
48
- console.log("CAPTCHA.CHALLENGE_VERIFIED");
49
50
  return;
50
51
  }
51
52
  async submitCaptchaSolution(signer, requestHash, datasetId, solutions, salt) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const COLLECTOR_LIMIT = 1e3;
3
+ const COLLECTOR_LIMIT = 1e4;
4
4
  const storeLog = (event, setEvents) => {
5
5
  setEvents((currentEvents) => {
6
6
  let newEvents = [...currentEvents, event];
@@ -28,11 +28,7 @@ const logKeyboardEvent = (event, setKeyboardEvent) => {
28
28
  storeLog(storedEvent, setKeyboardEvent);
29
29
  };
30
30
  const logTouchEvent = (event, setTouchEvent) => {
31
- for (let i = 0; i < event.touches.length; i++) {
32
- const touch = event.touches[i];
33
- if (!touch) {
34
- continue;
35
- }
31
+ for (const touch of Array.from(event.touches)) {
36
32
  storeLog({ x: touch.clientX, y: touch.clientY, timestamp: event.timeStamp }, setTouchEvent);
37
33
  }
38
34
  };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- export * from './api/index.js';
2
1
  export * from './modules/index.js';
3
- export * from './types/index.js';
4
2
  export * from './utils/index.js';
5
- export { default as ExtensionWeb2 } from './api/ExtensionWeb2.js';
6
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,3 @@
1
- export * from './api/index.js';
2
1
  export * from './modules/index.js';
3
- export * from './types/index.js';
4
2
  export * from './utils/index.js';
5
- export { default as ExtensionWeb2 } from './api/ExtensionWeb2.js';
6
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA"}
@@ -1,6 +1,5 @@
1
- import { StoredEvents } from '@prosopo/types';
2
- import { ProcaptchaCallbacks, ProcaptchaConfigOptional, ProcaptchaState, ProcaptchaStateUpdateFn } from '../types/manager.js';
3
- export declare function Manager(configOptional: ProcaptchaConfigOptional, state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn, callbacks: ProcaptchaCallbacks): {
1
+ import { ProcaptchaCallbacks, ProcaptchaClientConfigInput, ProcaptchaState, ProcaptchaStateUpdateFn, StoredEvents } from '@prosopo/types';
2
+ export declare function Manager(configOptional: ProcaptchaClientConfigInput, state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn, callbacks: ProcaptchaCallbacks): {
4
3
  start: () => Promise<void>;
5
4
  cancel: () => Promise<void>;
6
5
  submit: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"AAaA,OAAO,EAMH,YAAY,EACf,MAAM,gBAAgB,CAAA;AAKvB,OAAO,EACH,mBAAmB,EACnB,wBAAwB,EAExB,eAAe,EACf,uBAAuB,EAC1B,MAAM,qBAAqB,CAAA;AAkE5B,wBAAgB,OAAO,CACnB,cAAc,EAAE,wBAAwB,EACxC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,mBAAmB;;;;mBA+TR,MAAM;;yBAkLM,YAAY;EAiBjD"}
1
+ {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"AAaA,OAAO,EAMH,mBAAmB,EACnB,2BAA2B,EAI3B,eAAe,EACf,uBAAuB,EACvB,YAAY,EAEf,MAAM,gBAAgB,CAAA;AAsDvB,wBAAgB,OAAO,CACnB,cAAc,EAAE,2BAA2B,EAC3C,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,mBAAmB;;;;mBAwRR,MAAM;;yBA4KM,YAAY;EAsCjD"}