@prosopo/procaptcha-pow 2.13.19 → 2.14.1

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.
@@ -37,13 +37,16 @@ ViteCommonJSConfig: .
37
37
  The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
38
38
  vite v8.1.6 building ssr environment for production...
39
39
  Bundle build started
40
- 
41
- ✓ 5 modules transformed.
40
+ 
41
+ Build end
42
+ ✓ 7 modules transformed.
42
43
  rendering chunks...
43
44
  computing gzip size...
44
- dist/cjs/index.cjs 0.43 kB │ gzip: 0.19 kB
45
- dist/cjs/components/procaptchaPoW.cjs 0.71 kB │ gzip: 0.38 kB
46
- dist/cjs/components/procaptchaWidget.cjs 5.32 kB │ gzip: 1.71 kB
47
- dist/cjs/services/Manager.cjs 10.42 kB │ gzip: 2.99 kB
45
+ dist/cjs/index.cjs 0.43 kB │ gzip: 0.19 kB
46
+ dist/cjs/components/procaptchaPoW.cjs 0.71 kB │ gzip: 0.38 kB
47
+ dist/cjs/services/multiThreadedSolver.cjs 2.91 kB │ gzip: 1.29 kB
48
+ dist/cjs/components/procaptchaWidget.cjs 5.32 kB │ gzip: 1.71 kB
49
+ dist/cjs/services/powWorker.cjs 7.40 kB │ gzip: 3.57 kB
50
+ dist/cjs/services/Manager.cjs 10.49 kB │ gzip: 3.01 kB
48
51
 
49
- ✓ built in 42ms
52
+ ✓ built in 126ms
@@ -37,14 +37,17 @@ ViteEsmConfig: .
37
37
  The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
38
38
  vite v8.1.6 building ssr environment for production...
39
39
  Bundle build started
40
- 
41
- ✓ 5 modules transformed.
40
+ 
41
+ Build end
42
+ ✓ 7 modules transformed.
42
43
  rendering chunks...
43
44
  computing gzip size...
44
- dist/esm/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
45
- dist/esm/index.js 0.27 kB │ gzip: 0.14 kB
46
- dist/esm/components/procaptchaPoW.js 0.63 kB │ gzip: 0.36 kB
47
- dist/esm/components/procaptchaWidget.js 5.05 kB │ gzip: 1.70 kB
48
- dist/esm/services/Manager.js 9.76 kB │ gzip: 2.94 kB
45
+ dist/esm/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
46
+ dist/esm/index.js 0.27 kB │ gzip: 0.14 kB
47
+ dist/esm/components/procaptchaPoW.js 0.63 kB │ gzip: 0.36 kB
48
+ dist/esm/services/multiThreadedSolver.js 2.83 kB │ gzip: 1.27 kB
49
+ dist/esm/components/procaptchaWidget.js 5.05 kB │ gzip: 1.70 kB
50
+ dist/esm/services/powWorker.js 7.40 kB │ gzip: 3.57 kB
51
+ dist/esm/services/Manager.js 9.81 kB │ gzip: 2.97 kB
49
52
 
50
- ✓ built in 52ms
53
+ ✓ built in 116ms
@@ -1,5 +1,5 @@
1
1
  $ tsc --build --verbose
2
- 11:54:51 AM - Projects in this build:
2
+ 11:33:49 PM - Projects in this build:
3
3
  * ../../dev/config/tsconfig.json
4
4
  * ../util/tsconfig.json
5
5
  * ../locale/tsconfig.json
@@ -16,35 +16,35 @@ $ tsc --build --verbose
16
16
  * ../procaptcha-common/tsconfig.json
17
17
  * tsconfig.json
18
18
 
19
- 11:54:51 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/dist/tsc/tsconfig.tsbuildinfo'
19
+ 11:33:49 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/dist/tsc/tsconfig.tsbuildinfo'
20
20
 
21
- 11:54:51 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/dist/tsc/tsconfig.tsbuildinfo'
21
+ 11:33:49 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/dist/tsc/tsconfig.tsbuildinfo'
22
22
 
23
- 11:54:51 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/dist/tsc/tsconfig.tsbuildinfo'
23
+ 11:33:49 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/dist/tsc/tsconfig.tsbuildinfo'
24
24
 
25
- 11:54:51 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/dist/tsc/tsconfig.tsbuildinfo'
25
+ 11:33:49 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/dist/tsc/tsconfig.tsbuildinfo'
26
26
 
27
- 11:54:51 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/dist/tsc/tsconfig.tsbuildinfo'
27
+ 11:33:49 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/dist/tsc/tsconfig.tsbuildinfo'
28
28
 
29
- 11:54:51 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/dist/tsc/tsconfig.tsbuildinfo'
29
+ 11:33:49 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/dist/tsc/tsconfig.tsbuildinfo'
30
30
 
31
- 11:54:51 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/dist/tsc/tsconfig.tsbuildinfo'
31
+ 11:33:49 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/errorCodes.ts' is older than output '../common/dist/tsc/tsconfig.tsbuildinfo'
32
32
 
33
- 11:54:51 AM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/dist/tsc/tsconfig.tsbuildinfo'
33
+ 11:33:49 PM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/dist/tsc/tsconfig.tsbuildinfo'
34
34
 
35
- 11:54:51 AM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.test.ts' is older than output '../fingerprint/dist/tsc/tsconfig.tsbuildinfo'
35
+ 11:33:49 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.test.ts' is older than output '../fingerprint/dist/tsc/tsconfig.tsbuildinfo'
36
36
 
37
- 11:54:51 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/dist/tsc/tsconfig.tsbuildinfo'
37
+ 11:33:49 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/developmentProviderUrl.ts' is older than output '../load-balancer/dist/tsc/tsconfig.tsbuildinfo'
38
38
 
39
- 11:54:51 AM - Project '../widget-skeleton/tsconfig.json' is up to date because newest input '../widget-skeleton/src/webComponent/createWidget.ts' is older than output '../widget-skeleton/dist/tsc/tsconfig.tsbuildinfo'
39
+ 11:33:49 PM - Project '../widget-skeleton/tsconfig.json' is up to date because newest input '../widget-skeleton/src/webComponent/createWidget.ts' is older than output '../widget-skeleton/dist/tsc/tsconfig.tsbuildinfo'
40
40
 
41
- 11:54:51 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/errorSites.ts' is older than output '../keyring/dist/tsc/tsconfig.tsbuildinfo'
41
+ 11:33:49 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/errorSites.ts' is older than output '../keyring/dist/tsc/tsconfig.tsbuildinfo'
42
42
 
43
- 11:54:51 AM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/dist/tsc/tsconfig.tsbuildinfo'
43
+ 11:33:49 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/dist/tsc/tsconfig.tsbuildinfo'
44
44
 
45
- 11:54:51 AM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/extensionLoader.ts' is older than output '../procaptcha-common/dist/tsc/tsconfig.tsbuildinfo'
45
+ 11:33:49 PM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/extensionLoader.ts' is older than output '../procaptcha-common/dist/tsc/tsconfig.tsbuildinfo'
46
46
 
47
- 11:54:51 AM - Project 'tsconfig.json' is out of date because output file 'dist/tsc/tsconfig.tsbuildinfo' does not exist
47
+ 11:33:49 PM - Project 'tsconfig.json' is out of date because output file 'dist/tsc/tsconfig.tsbuildinfo' does not exist
48
48
 
49
- 11:54:51 AM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json'...
49
+ 11:33:49 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json'...
50
50
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @prosopo/procaptcha-pow
2
2
 
3
+ ## 2.14.1
4
+ ### Patch Changes
5
+
6
+ - f019ec4: The widget now tells the provider which platform embedded it, in an `x-prosopo-integration` header. It reports `mc4wp` for Mailchimp for WordPress and `procaptcha-wordpress` for the Procaptcha WordPress plugin, recognised from the markup each one renders the widget into, so existing installs report without an update. Other sites can name themselves with the `integration` render option or a `data-integration` attribute.
7
+ - Updated dependencies [6fa6155]
8
+ - Updated dependencies [f019ec4]
9
+ - @prosopo/procaptcha-common@2.21.11
10
+ - @prosopo/types@5.20.1
11
+ - @prosopo/api@4.8.1
12
+ - @prosopo/common@3.3.2
13
+ - @prosopo/fingerprint@2.8.5
14
+
15
+ ## 2.14.0
16
+ ### Minor Changes
17
+
18
+ - f13677e: Solve PoW captchas across a pool of web workers. The nonce space is divided and conquered across the pool (worker `i` tries nonces `i, i+N, i+2N, …`), keeping the UI responsive on higher-difficulty challenges, with a synchronous fallback when web workers are unavailable. The pool defaults to 4 workers (`PROSOPO_POW_WORKERS`) and never uses more than one fewer than the device's cores, so the page keeps a core free. Adds the `solvePoWOffset` helper to `@prosopo/util`; `@prosopo/procaptcha-pow` now solves PoW challenges on a worker pool internally.
19
+
20
+ ### Patch Changes
21
+
22
+ - 76b6edd: The widget now tells the provider which bundle it is and where it was loaded from, on every request:
23
+
24
+ - `X-Prosopo-Bundle-Version`: the release the bundle was built from, or `dev` for a local build.
25
+ - `X-Prosopo-Bundle-Origin`: the origin the widget's code came from. `https://js.prosopo.io` is the hosted bundle. Anything else is a site serving its own copy, or building our npm packages into its app.
26
+
27
+ Providers store request headers on the session and in the request logs, so together with the site key these show which sites self-host and which version each one runs.
28
+
29
+ The provider now allows both headers in CORS. Every provider must run this version before the new bundle is published to the CDN: a widget sending these headers to an older provider fails the browser's preflight check and cannot load a captcha.
30
+ - Updated dependencies [1966fc1]
31
+ - Updated dependencies [c69b636]
32
+ - Updated dependencies [78107d9]
33
+ - Updated dependencies [d6cc6fe]
34
+ - Updated dependencies [f13677e]
35
+ - Updated dependencies [77bd891]
36
+ - Updated dependencies [76b6edd]
37
+ - @prosopo/common@3.3.2
38
+ - @prosopo/fingerprint@2.8.4
39
+ - @prosopo/locale@3.13.2
40
+ - @prosopo/procaptcha-common@2.21.10
41
+ - @prosopo/types@5.20.0
42
+ - @prosopo/util@3.4.0
43
+ - @prosopo/util-crypto@13.6.3
44
+ - @prosopo/widget-skeleton@2.10.5
45
+ - @prosopo/api@4.8.0
46
+
3
47
  ## 2.13.19
4
48
  ### Patch Changes
5
49
 
@@ -1,4 +1,4 @@
1
- let _prosopo_locale = require("@prosopo/locale");
1
+ const require_multiThreadedSolver = require("./multiThreadedSolver.cjs");
2
2
  let _prosopo_procaptcha_common = require("@prosopo/procaptcha-common");
3
3
  let _prosopo_types = require("@prosopo/types");
4
4
  let _polkadot_util_string = require("@polkadot/util/string");
@@ -125,7 +125,7 @@ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState,
125
125
  }
126
126
  const providerUrl = getRandomProviderResponse.provider.url;
127
127
  previousProviderUrl = providerUrl;
128
- const providerApi = new _prosopo_api.ProviderApi(providerUrl, getDappAccount(), void 0, (0, _prosopo_locale.widgetLanguageHeaders)(getConfig().language));
128
+ const providerApi = new _prosopo_api.ProviderApi(providerUrl, getDappAccount(), void 0, (0, _prosopo_procaptcha_common.widgetRequestHeaders)(getConfig().language, getConfig().integration));
129
129
  const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
130
130
  const challengeRequestedAt = Date.now();
131
131
  const challenge = await providerApi.getPowCaptchaChallenge(userAccount, getDappAccount(), frictionlessState?.sessionId, simdReadingsOnChallenge);
@@ -134,7 +134,7 @@ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState,
134
134
  error: challenge.error
135
135
  });
136
136
  else {
137
- const solution = await (0, _prosopo_util.solvePoW)(challenge.challenge, challenge.difficulty);
137
+ const solution = await require_multiThreadedSolver.solvePoWParallel(challenge.challenge, challenge.difficulty);
138
138
  let salt;
139
139
  if (x !== void 0 && y !== void 0) {
140
140
  const coords = [x, y];
@@ -0,0 +1,81 @@
1
+ const require_powWorker = require("./powWorker.cjs");
2
+ let _prosopo_util = require("@prosopo/util");
3
+ //#region src/services/multiThreadedSolver.ts
4
+ var POW_WORKER_COUNT = Number.parseInt(process.env.PROSOPO_POW_WORKERS || "4", 10);
5
+ var MAX_POW_WORKERS = 16;
6
+ /**
7
+ * Number of workers to use, guaranteed to be a sane positive integer.
8
+ *
9
+ * The configured count is clamped to a hard maximum and, where the browser
10
+ * exposes it, to one fewer than `navigator.hardwareConcurrency`. Occupying every
11
+ * core starves the main thread and drops frames, and spawning more workers than
12
+ * cores does not speed up a CPU-bound PoW search.
13
+ */
14
+ var getWorkerCount = () => {
15
+ if (!Number.isFinite(POW_WORKER_COUNT) || POW_WORKER_COUNT < 1) return 1;
16
+ const hardwareLimit = typeof navigator !== "undefined" && Number.isFinite(navigator.hardwareConcurrency) && navigator.hardwareConcurrency > 0 ? Math.max(1, navigator.hardwareConcurrency - 1) : MAX_POW_WORKERS;
17
+ return Math.min(Math.floor(POW_WORKER_COUNT), hardwareLimit, MAX_POW_WORKERS);
18
+ };
19
+ /**
20
+ * Spawn a single PoW web worker.
21
+ *
22
+ * Kept as a separate function so the orchestrator can be tested/mocked and so
23
+ * environments without web worker support (e.g. SSR) fail fast and fall back to
24
+ * the synchronous solver.
25
+ */
26
+ var spawnWorker = () => new require_powWorker.default();
27
+ /**
28
+ * Solve a PoW challenge across a pool of web workers.
29
+ *
30
+ * The nonce space is divided and conquered: with `n` workers, worker `i` only
31
+ * tries nonces `i, i + n, i + 2n, ...`, so the workers collectively cover every
32
+ * nonce exactly once with no overlap. The first worker to find a valid nonce
33
+ * wins; all workers are then terminated and its nonce is returned.
34
+ *
35
+ * Falls back to the synchronous single-threaded solver when web workers are not
36
+ * available (e.g. server-side rendering) or only a single worker is configured.
37
+ */
38
+ var solvePoWParallel = (data, difficulty) => {
39
+ const workerCount = getWorkerCount();
40
+ if (workerCount <= 1 || typeof Worker === "undefined") return Promise.resolve((0, _prosopo_util.solvePoW)(data, difficulty));
41
+ return new Promise((resolve) => {
42
+ let workers = [];
43
+ let settled = false;
44
+ const cleanup = () => {
45
+ for (const worker of workers) worker.terminate();
46
+ workers = [];
47
+ };
48
+ const fallbackToSync = () => {
49
+ if (settled) return;
50
+ settled = true;
51
+ cleanup();
52
+ resolve((0, _prosopo_util.solvePoW)(data, difficulty));
53
+ };
54
+ try {
55
+ for (let i = 0; i < workerCount; i++) {
56
+ const worker = spawnWorker();
57
+ worker.onmessage = (event) => {
58
+ if (settled) return;
59
+ settled = true;
60
+ cleanup();
61
+ resolve(event.data);
62
+ };
63
+ worker.onerror = () => {
64
+ fallbackToSync();
65
+ };
66
+ const request = {
67
+ data,
68
+ difficulty,
69
+ start: i,
70
+ step: workerCount
71
+ };
72
+ worker.postMessage(request);
73
+ workers.push(worker);
74
+ }
75
+ } catch {
76
+ fallbackToSync();
77
+ }
78
+ });
79
+ };
80
+ //#endregion
81
+ exports.solvePoWParallel = solvePoWParallel;
@@ -0,0 +1,19 @@
1
+ //#region src/services/powWorker.ts?worker&inline
2
+ var jsContent = "(function(){let e=e=>e/2**32|0,t=e=>e>>>0;function n(n,r,i,a){let o=e(i),s=t(i);n.setUint32(r,a?s:o,a),n.setUint32(r+4,a?o:s,a)}function r(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}let i=e=>e?`\"${e}\" `:``;function a(e,t=``){if(typeof e!=`number`)throw TypeError(i(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(i(t)+`expected integer >= 0, got `+e);return e}function o(e,t,n=``){if(r(e)&&(t===void 0||e.length===t))return e;t!==void 0&&a(t,`length`);let o=r(e),s=t===void 0?``:` of length ${t}`,c=o?`length=${e.length}`:`type=${typeof e}`,l=i(n)+`expected Uint8Array`+s+`, got `+c;throw o?RangeError(l):TypeError(l)}let s=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`\"${t}\" `)+`expected object, got type=`+typeof e)},c=(e,t)=>{s(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`\"${t}\" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`\"${t}.__proto__\" is not allowed`)};function l(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function u(e,t){o(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`\"output\" expected length >= `+n)}function d(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function f(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function p(e,t){return e<<32-t|e>>>t}function m(e,t,n=`opts`){return c(e,`defaults`),t!==void 0&&c(t,n),Object.assign(Object.create(null),e,t)}function h(e,t={}){if(typeof e!=`function`)throw TypeError(`\"hashCons\" expected function, got type=`+typeof e);t=m({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}let g=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function _(e,t,n){return e&t^~e&n}function v(e,t,n){return e&t^e&n^t&n}var y=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=f(this.buffer)}update(e){l(this),o(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=f(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0;continue}n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){l(this),u(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:i,isLE:a}=this,{pos:o}=this;t[o++]=128,t.fill(0,o),this.padOffset>i-o&&(this.process(r,0),t.fill(0)),n(r,i-8,this.length*8,a),this.process(r,0),this.roundClean();let s=e===t?r:f(e),c=this.outputLen,d=c/4,p=this.get();if(c%4||d>p.length)throw Error(`invalid outputLen`);for(let e=0;e<d;e++)s.setUint32(4*e,p[e],a)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}};let b=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),x=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),S=new Uint32Array(64);var C=class extends y{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)S[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=S[e-15],n=S[e-2],r=p(t,7)^p(t,18)^t>>>3,i=p(n,17)^p(n,19)^n>>>10;S[e]=i+S[e-7]+r+S[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=p(o,6)^p(o,11)^p(o,25),u=l+t+_(o,s,c)+x[e]+S[e]|0,d=(p(n,2)^p(n,13)^p(n,22))+v(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){d(S)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),d(this.buffer)}},w=class extends C{constructor(){super(32,b)}};let T=h(()=>new w,g(1));var E=4,D=256,O=e=>{if(!Number.isFinite(e))throw Error(`Invalid PoW difficulty: ${e}`);return Math.round(E*e)},k=e=>{let t=O(e);if(t<=0)return{zeroBytes:0,partialBound:1,always:!0,requireZeroHash:!1};if(t>=D)return{zeroBytes:32,partialBound:1,always:!1,requireZeroHash:!0};let n=t>>3,r=t&7;return{zeroBytes:n,partialBound:r===0?1:1<<8-r,always:!1,requireZeroHash:!1}},A=(e,t)=>{if(t.always)return!0;for(let n=0;n<t.zeroBytes;n++)if(e[n]!==0)return!1;return t.requireZeroHash?!0:t.partialBound>1?e[t.zeroBytes]<t.partialBound:!0},j=e=>{let t=new TextEncoder().encode(e),n=1,r=10,i=new Uint8Array(n+t.length);return i.set(t,n),e=>{for(;e>=r;)n+=1,r*=10,i=new Uint8Array(n+t.length),i.set(t,n);let a=e;for(let e=n-1;e>=0;e--)i[e]=48+a%10,a=Math.floor(a/10);return i}},M=(e,t,n,r)=>{if(!Number.isInteger(n)||n<0)throw Error(`solvePoWOffset: start must be a non-negative integer, got ${n}`);if(!Number.isInteger(r)||r<1)throw Error(`solvePoWOffset: step must be a positive integer, got ${r}`);if(!Number.isFinite(t)||t<0)throw Error(`solvePoWOffset: difficulty must be a non-negative number, got ${t}`);let i=k(t),a=j(e),o=n;for(;;){if(A(T(a(o)),i))return o;o+=r}};let N=self;N.onmessage=e=>{let{data:t,difficulty:n,start:r,step:i}=e.data,a=M(t,n,r,i);N.postMessage(a)}})();";
3
+ var blob = typeof self !== "undefined" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", jsContent], { type: "text/javascript;charset=utf-8" });
4
+ function WorkerWrapper(options) {
5
+ let objURL;
6
+ try {
7
+ objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);
8
+ if (!objURL) throw "";
9
+ const worker = new Worker(objURL, { name: options?.name });
10
+ worker.addEventListener("error", () => {
11
+ (self.URL || self.webkitURL).revokeObjectURL(objURL);
12
+ });
13
+ return worker;
14
+ } catch (e) {
15
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), { name: options?.name });
16
+ }
17
+ }
18
+ //#endregion
19
+ exports.default = WorkerWrapper;
@@ -1,11 +1,11 @@
1
- import { widgetLanguageHeaders } from "@prosopo/locale";
2
- import { ExtensionLoader, buildClientMetaData, buildUpdateState, getDefaultEvents, getProcaptchaRandomActiveProvider, getSimdReadingsForSubmit, pickIpMode, providerRetry } from "@prosopo/procaptcha-common";
1
+ import { solvePoWParallel } from "./multiThreadedSolver.js";
2
+ import { ExtensionLoader, buildClientMetaData, buildUpdateState, getDefaultEvents, getProcaptchaRandomActiveProvider, getSimdReadingsForSubmit, pickIpMode, providerRetry, widgetRequestHeaders } from "@prosopo/procaptcha-common";
3
3
  import { ApiParams, CaptchaType, DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT, ProcaptchaConfigSchema, encodeProcaptchaOutput } from "@prosopo/types";
4
4
  import { stringToHex } from "@polkadot/util/string";
5
5
  import { ProviderApi } from "@prosopo/api";
6
6
  import { ProsopoError } from "@prosopo/common";
7
7
  import { FINGERPRINT_DISCLOSURE_KEYS, encodeFingerprintProof, getFingerprintProof } from "@prosopo/fingerprint";
8
- import { embedData, sleep, solvePoW } from "@prosopo/util";
8
+ import { embedData, sleep } from "@prosopo/util";
9
9
  import { randomAsHex } from "@prosopo/util-crypto";
10
10
  //#region src/services/Manager.ts
11
11
  var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, onEscalate, getHoneypotValue) => {
@@ -125,7 +125,7 @@ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState,
125
125
  }
126
126
  const providerUrl = getRandomProviderResponse.provider.url;
127
127
  previousProviderUrl = providerUrl;
128
- const providerApi = new ProviderApi(providerUrl, getDappAccount(), void 0, widgetLanguageHeaders(getConfig().language));
128
+ const providerApi = new ProviderApi(providerUrl, getDappAccount(), void 0, widgetRequestHeaders(getConfig().language, getConfig().integration));
129
129
  const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
130
130
  const challengeRequestedAt = Date.now();
131
131
  const challenge = await providerApi.getPowCaptchaChallenge(userAccount, getDappAccount(), frictionlessState?.sessionId, simdReadingsOnChallenge);
@@ -134,7 +134,7 @@ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState,
134
134
  error: challenge.error
135
135
  });
136
136
  else {
137
- const solution = await solvePoW(challenge.challenge, challenge.difficulty);
137
+ const solution = await solvePoWParallel(challenge.challenge, challenge.difficulty);
138
138
  let salt;
139
139
  if (x !== void 0 && y !== void 0) {
140
140
  const coords = [x, y];
@@ -0,0 +1,81 @@
1
+ import WorkerWrapper from "./powWorker.js";
2
+ import { solvePoW } from "@prosopo/util";
3
+ //#region src/services/multiThreadedSolver.ts
4
+ var POW_WORKER_COUNT = Number.parseInt(process.env.PROSOPO_POW_WORKERS || "4", 10);
5
+ var MAX_POW_WORKERS = 16;
6
+ /**
7
+ * Number of workers to use, guaranteed to be a sane positive integer.
8
+ *
9
+ * The configured count is clamped to a hard maximum and, where the browser
10
+ * exposes it, to one fewer than `navigator.hardwareConcurrency`. Occupying every
11
+ * core starves the main thread and drops frames, and spawning more workers than
12
+ * cores does not speed up a CPU-bound PoW search.
13
+ */
14
+ var getWorkerCount = () => {
15
+ if (!Number.isFinite(POW_WORKER_COUNT) || POW_WORKER_COUNT < 1) return 1;
16
+ const hardwareLimit = typeof navigator !== "undefined" && Number.isFinite(navigator.hardwareConcurrency) && navigator.hardwareConcurrency > 0 ? Math.max(1, navigator.hardwareConcurrency - 1) : MAX_POW_WORKERS;
17
+ return Math.min(Math.floor(POW_WORKER_COUNT), hardwareLimit, MAX_POW_WORKERS);
18
+ };
19
+ /**
20
+ * Spawn a single PoW web worker.
21
+ *
22
+ * Kept as a separate function so the orchestrator can be tested/mocked and so
23
+ * environments without web worker support (e.g. SSR) fail fast and fall back to
24
+ * the synchronous solver.
25
+ */
26
+ var spawnWorker = () => new WorkerWrapper();
27
+ /**
28
+ * Solve a PoW challenge across a pool of web workers.
29
+ *
30
+ * The nonce space is divided and conquered: with `n` workers, worker `i` only
31
+ * tries nonces `i, i + n, i + 2n, ...`, so the workers collectively cover every
32
+ * nonce exactly once with no overlap. The first worker to find a valid nonce
33
+ * wins; all workers are then terminated and its nonce is returned.
34
+ *
35
+ * Falls back to the synchronous single-threaded solver when web workers are not
36
+ * available (e.g. server-side rendering) or only a single worker is configured.
37
+ */
38
+ var solvePoWParallel = (data, difficulty) => {
39
+ const workerCount = getWorkerCount();
40
+ if (workerCount <= 1 || typeof Worker === "undefined") return Promise.resolve(solvePoW(data, difficulty));
41
+ return new Promise((resolve) => {
42
+ let workers = [];
43
+ let settled = false;
44
+ const cleanup = () => {
45
+ for (const worker of workers) worker.terminate();
46
+ workers = [];
47
+ };
48
+ const fallbackToSync = () => {
49
+ if (settled) return;
50
+ settled = true;
51
+ cleanup();
52
+ resolve(solvePoW(data, difficulty));
53
+ };
54
+ try {
55
+ for (let i = 0; i < workerCount; i++) {
56
+ const worker = spawnWorker();
57
+ worker.onmessage = (event) => {
58
+ if (settled) return;
59
+ settled = true;
60
+ cleanup();
61
+ resolve(event.data);
62
+ };
63
+ worker.onerror = () => {
64
+ fallbackToSync();
65
+ };
66
+ const request = {
67
+ data,
68
+ difficulty,
69
+ start: i,
70
+ step: workerCount
71
+ };
72
+ worker.postMessage(request);
73
+ workers.push(worker);
74
+ }
75
+ } catch {
76
+ fallbackToSync();
77
+ }
78
+ });
79
+ };
80
+ //#endregion
81
+ export { solvePoWParallel };
@@ -0,0 +1,19 @@
1
+ //#region src/services/powWorker.ts?worker&inline
2
+ var jsContent = "(function(){let e=e=>e/2**32|0,t=e=>e>>>0;function n(n,r,i,a){let o=e(i),s=t(i);n.setUint32(r,a?s:o,a),n.setUint32(r+4,a?o:s,a)}function r(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}let i=e=>e?`\"${e}\" `:``;function a(e,t=``){if(typeof e!=`number`)throw TypeError(i(t)+`expected number, got `+typeof e);if(!Number.isSafeInteger(e)||e<0)throw RangeError(i(t)+`expected integer >= 0, got `+e);return e}function o(e,t,n=``){if(r(e)&&(t===void 0||e.length===t))return e;t!==void 0&&a(t,`length`);let o=r(e),s=t===void 0?``:` of length ${t}`,c=o?`length=${e.length}`:`type=${typeof e}`,l=i(n)+`expected Uint8Array`+s+`, got `+c;throw o?RangeError(l):TypeError(l)}let s=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))throw TypeError((t===`object`?``:`\"${t}\" `)+`expected object, got type=`+typeof e)},c=(e,t)=>{s(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw TypeError(`\"${t}\" expected plain object`);if(Object.hasOwn(e,`__proto__`))throw TypeError(`\"${t}.__proto__\" is not allowed`)};function l(e,t=!0){if(e.destroyed)throw Error(`hash was destroyed`);if(t&&e.finished)throw Error(`digest() was already called`)}function u(e,t){o(e,void 0,`output`);let n=t.outputLen;if(!(e.length>=n))throw RangeError(`\"output\" expected length >= `+n)}function d(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function f(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function p(e,t){return e<<32-t|e>>>t}function m(e,t,n=`opts`){return c(e,`defaults`),t!==void 0&&c(t,n),Object.assign(Object.create(null),e,t)}function h(e,t={}){if(typeof e!=`function`)throw TypeError(`\"hashCons\" expected function, got type=`+typeof e);t=m({},t,`info`);let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}let g=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function _(e,t,n){return e&t^~e&n}function v(e,t,n){return e&t^e&n^t&n}var y=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,r){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=f(this.buffer)}update(e){l(this),o(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length,a=!1;for(let o=0;o<i;){let s=Math.min(r-this.pos,i-o);if(s===r){let t=f(e);for(;r<=i-o;o+=r)this.process(t,o);a=!0;continue}n.set(o===0&&s===i?e:e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0,a=!0)}return this.length+=e.length,a&&this.roundClean(),this}digestInto(e){l(this),u(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:i,isLE:a}=this,{pos:o}=this;t[o++]=128,t.fill(0,o),this.padOffset>i-o&&(this.process(r,0),t.fill(0)),n(r,i-8,this.length*8,a),this.process(r,0),this.roundClean();let s=e===t?r:f(e),c=this.outputLen,d=c/4,p=this.get();if(c%4||d>p.length)throw Error(`invalid outputLen`);for(let e=0;e<d;e++)s.setUint32(4*e,p[e],a)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneIntoMeta(e){let{buffer:t,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,a&&e.buffer.set(t),e}clone(){return this._cloneInto()}};let b=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),x=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),S=new Uint32Array(64);var C=class extends y{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let n=0;n<16;n++,t+=4)S[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=S[e-15],n=S[e-2],r=p(t,7)^p(t,18)^t>>>3,i=p(n,17)^p(n,19)^n>>>10;S[e]=i+S[e-7]+r+S[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=p(o,6)^p(o,11)^p(o,25),u=l+t+_(o,s,c)+x[e]+S[e]|0,d=(p(n,2)^p(n,13)^p(n,22))+v(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){d(S)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),d(this.buffer)}},w=class extends C{constructor(){super(32,b)}};let T=h(()=>new w,g(1));var E=4,D=256,O=e=>{if(!Number.isFinite(e))throw Error(`Invalid PoW difficulty: ${e}`);return Math.round(E*e)},k=e=>{let t=O(e);if(t<=0)return{zeroBytes:0,partialBound:1,always:!0,requireZeroHash:!1};if(t>=D)return{zeroBytes:32,partialBound:1,always:!1,requireZeroHash:!0};let n=t>>3,r=t&7;return{zeroBytes:n,partialBound:r===0?1:1<<8-r,always:!1,requireZeroHash:!1}},A=(e,t)=>{if(t.always)return!0;for(let n=0;n<t.zeroBytes;n++)if(e[n]!==0)return!1;return t.requireZeroHash?!0:t.partialBound>1?e[t.zeroBytes]<t.partialBound:!0},j=e=>{let t=new TextEncoder().encode(e),n=1,r=10,i=new Uint8Array(n+t.length);return i.set(t,n),e=>{for(;e>=r;)n+=1,r*=10,i=new Uint8Array(n+t.length),i.set(t,n);let a=e;for(let e=n-1;e>=0;e--)i[e]=48+a%10,a=Math.floor(a/10);return i}},M=(e,t,n,r)=>{if(!Number.isInteger(n)||n<0)throw Error(`solvePoWOffset: start must be a non-negative integer, got ${n}`);if(!Number.isInteger(r)||r<1)throw Error(`solvePoWOffset: step must be a positive integer, got ${r}`);if(!Number.isFinite(t)||t<0)throw Error(`solvePoWOffset: difficulty must be a non-negative number, got ${t}`);let i=k(t),a=j(e),o=n;for(;;){if(A(T(a(o)),i))return o;o+=r}};let N=self;N.onmessage=e=>{let{data:t,difficulty:n,start:r,step:i}=e.data,a=M(t,n,r,i);N.postMessage(a)}})();";
3
+ var blob = typeof self !== "undefined" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", jsContent], { type: "text/javascript;charset=utf-8" });
4
+ function WorkerWrapper(options) {
5
+ let objURL;
6
+ try {
7
+ objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob);
8
+ if (!objURL) throw "";
9
+ const worker = new Worker(objURL, { name: options?.name });
10
+ worker.addEventListener("error", () => {
11
+ (self.URL || self.webkitURL).revokeObjectURL(objURL);
12
+ });
13
+ return worker;
14
+ } catch (e) {
15
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), { name: options?.name });
16
+ }
17
+ }
18
+ //#endregion
19
+ export { WorkerWrapper as default };
@@ -2,12 +2,11 @@ import { stringToHex } from "@polkadot/util/string";
2
2
  import { ProviderApi } from "@prosopo/api";
3
3
  import { ProsopoError } from "@prosopo/common";
4
4
  import { FINGERPRINT_DISCLOSURE_KEYS, encodeFingerprintProof, getFingerprintProof, } from "@prosopo/fingerprint";
5
- import { widgetLanguageHeaders } from "@prosopo/locale";
6
- import { ExtensionLoader, buildClientMetaData, buildUpdateState, getDefaultEvents, getProcaptchaRandomActiveProvider, getSimdReadingsForSubmit, pickIpMode, providerRetry, } from "@prosopo/procaptcha-common";
5
+ import { ExtensionLoader, buildClientMetaData, buildUpdateState, getDefaultEvents, getProcaptchaRandomActiveProvider, getSimdReadingsForSubmit, pickIpMode, providerRetry, widgetRequestHeaders, } from "@prosopo/procaptcha-common";
7
6
  import { ApiParams, CaptchaType, DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT, ProcaptchaConfigSchema, encodeProcaptchaOutput, } from "@prosopo/types";
8
7
  import { embedData, sleep } from "@prosopo/util";
9
- import { solvePoW } from "@prosopo/util";
10
8
  import { randomAsHex } from "@prosopo/util-crypto";
9
+ import { solvePoWParallel } from "./multiThreadedSolver.js";
11
10
  export const Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, onEscalate, getHoneypotValue) => {
12
11
  const events = getDefaultEvents(callbacks);
13
12
  let previousProviderUrl;
@@ -147,7 +146,7 @@ export const Manager = (configInput, state, onStateUpdate, callbacks, frictionle
147
146
  }
148
147
  const providerUrl = getRandomProviderResponse.provider.url;
149
148
  previousProviderUrl = providerUrl;
150
- const providerApi = new ProviderApi(providerUrl, getDappAccount(), undefined, widgetLanguageHeaders(getConfig().language));
149
+ const providerApi = new ProviderApi(providerUrl, getDappAccount(), undefined, widgetRequestHeaders(getConfig().language, getConfig().integration));
151
150
  const simdReadingsOnChallenge = frictionlessState?.getSimdReadings
152
151
  ? await frictionlessState.getSimdReadings(0)
153
152
  : undefined;
@@ -160,7 +159,7 @@ export const Manager = (configInput, state, onStateUpdate, callbacks, frictionle
160
159
  });
161
160
  }
162
161
  else {
163
- const solution = await solvePoW(challenge.challenge, challenge.difficulty);
162
+ const solution = await solvePoWParallel(challenge.challenge, challenge.difficulty);
164
163
  let salt;
165
164
  if (x !== undefined && y !== undefined) {
166
165
  const coords = [x, y];
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../../src/services/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../../src/services/Manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const solvePoWParallel: (data: string, difficulty: number) => Promise<number>;
2
+ //# sourceMappingURL=multiThreadedSolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiThreadedSolver.d.ts","sourceRoot":"","sources":["../../../src/services/multiThreadedSolver.ts"],"names":[],"mappings":"AA4EA,eAAO,MAAM,gBAAgB,SACtB,MAAM,cACA,MAAM,KAChB,OAAO,CAAC,MAAM,CA8DhB,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { solvePoW } from "@prosopo/util";
2
+ import PowWorkerConstructor from "./powWorker.js?worker&inline";
3
+ const POW_WORKER_COUNT = Number.parseInt(process.env.PROSOPO_POW_WORKERS || "4", 10);
4
+ const MAX_POW_WORKERS = 16;
5
+ const getWorkerCount = () => {
6
+ if (!Number.isFinite(POW_WORKER_COUNT) || POW_WORKER_COUNT < 1) {
7
+ return 1;
8
+ }
9
+ const hardwareLimit = typeof navigator !== "undefined" &&
10
+ Number.isFinite(navigator.hardwareConcurrency) &&
11
+ navigator.hardwareConcurrency > 0
12
+ ? Math.max(1, navigator.hardwareConcurrency - 1)
13
+ : MAX_POW_WORKERS;
14
+ return Math.min(Math.floor(POW_WORKER_COUNT), hardwareLimit, MAX_POW_WORKERS);
15
+ };
16
+ const spawnWorker = () => new PowWorkerConstructor();
17
+ export const solvePoWParallel = (data, difficulty) => {
18
+ const workerCount = getWorkerCount();
19
+ if (workerCount <= 1 || typeof Worker === "undefined") {
20
+ return Promise.resolve(solvePoW(data, difficulty));
21
+ }
22
+ return new Promise((resolve) => {
23
+ let workers = [];
24
+ let settled = false;
25
+ const cleanup = () => {
26
+ for (const worker of workers) {
27
+ worker.terminate();
28
+ }
29
+ workers = [];
30
+ };
31
+ const fallbackToSync = () => {
32
+ if (settled) {
33
+ return;
34
+ }
35
+ settled = true;
36
+ cleanup();
37
+ resolve(solvePoW(data, difficulty));
38
+ };
39
+ try {
40
+ for (let i = 0; i < workerCount; i++) {
41
+ const worker = spawnWorker();
42
+ worker.onmessage = (event) => {
43
+ if (settled) {
44
+ return;
45
+ }
46
+ settled = true;
47
+ cleanup();
48
+ resolve(event.data);
49
+ };
50
+ worker.onerror = () => {
51
+ fallbackToSync();
52
+ };
53
+ const request = {
54
+ data,
55
+ difficulty,
56
+ start: i,
57
+ step: workerCount,
58
+ };
59
+ worker.postMessage(request);
60
+ workers.push(worker);
61
+ }
62
+ }
63
+ catch {
64
+ fallbackToSync();
65
+ }
66
+ });
67
+ };
68
+ //# sourceMappingURL=multiThreadedSolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiThreadedSolver.js","sourceRoot":"","sources":["../../../src/services/multiThreadedSolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface PowWorkerRequest {
2
+ data: string;
3
+ difficulty: number;
4
+ start: number;
5
+ step: number;
6
+ }
7
+ export type PowWorkerResponse = number;
8
+ //# sourceMappingURL=powWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powWorker.d.ts","sourceRoot":"","sources":["../../../src/services/powWorker.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAMD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { solvePoWOffset } from "@prosopo/util";
2
+ const ctx = self;
3
+ ctx.onmessage = (event) => {
4
+ const { data, difficulty, start, step } = event.data;
5
+ const nonce = solvePoWOffset(data, difficulty, start, step);
6
+ ctx.postMessage(nonce);
7
+ };
8
+ //# sourceMappingURL=powWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powWorker.js","sourceRoot":"","sources":["../../../src/services/powWorker.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0B/C,MAAM,GAAG,GAAG,IAAuC,CAAC;AAEpD,GAAG,CAAC,SAAS,GAAG,CAAC,KAAqC,EAAQ,EAAE;IAC/D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5D,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ApiParams, CaptchaType, DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT, decodeProcaptchaOutput, } from "@prosopo/types";
1
+ import { ApiParams, BUNDLE_VERSION_HEADER, CaptchaType, DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT, decodeProcaptchaOutput, } from "@prosopo/types";
2
2
  import { extractData } from "@prosopo/util";
3
3
  import { afterEach, beforeEach, describe, expect, test, vi, } from "vitest";
4
4
  import { Manager } from "../services/Manager.js";
@@ -236,14 +236,21 @@ describe("start: choosing a provider", () => {
236
236
  const harness = build({ configInput: config({ language: "tr" }) });
237
237
  await harness.manager.start();
238
238
  vi.unstubAllGlobals();
239
- expect(mocks.providerApiHeaders).toEqual([{ "Prosopo-Lang": "tr" }]);
239
+ expect(mocks.providerApiHeaders).toEqual([
240
+ { "Prosopo-Lang": "tr", [BUNDLE_VERSION_HEADER]: expect.any(String) },
241
+ ]);
240
242
  });
241
243
  test("sends the browser's languages when the site set none", async () => {
242
244
  vi.stubGlobal("navigator", { languages: ["tr-TR", "en"] });
243
245
  const harness = build();
244
246
  await harness.manager.start();
245
247
  vi.unstubAllGlobals();
246
- expect(mocks.providerApiHeaders).toEqual([{ "Prosopo-Lang": "tr-TR,en" }]);
248
+ expect(mocks.providerApiHeaders).toEqual([
249
+ {
250
+ "Prosopo-Lang": "tr-TR,en",
251
+ [BUNDLE_VERSION_HEADER]: expect.any(String),
252
+ },
253
+ ]);
247
254
  });
248
255
  test("uses the provider the frictionless session already picked", async () => {
249
256
  const harness = build();
@@ -1 +1 @@
1
- {"version":3,"file":"manager.unit.test.js","sourceRoot":"","sources":["../../../src/tests/manager.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.unit.test.js","sourceRoot":"","sources":["../../../src/tests/manager.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const solvePoWParallel: (data: string, difficulty: number) => Promise<number>;
2
+ //# sourceMappingURL=multiThreadedSolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiThreadedSolver.d.ts","sourceRoot":"","sources":["../../../src/services/multiThreadedSolver.ts"],"names":[],"mappings":"AA4EA,eAAO,MAAM,gBAAgB,SACtB,MAAM,cACA,MAAM,KAChB,OAAO,CAAC,MAAM,CA8DhB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface PowWorkerRequest {
2
+ data: string;
3
+ difficulty: number;
4
+ start: number;
5
+ step: number;
6
+ }
7
+ export type PowWorkerResponse = number;
8
+ //# sourceMappingURL=powWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powWorker.d.ts","sourceRoot":"","sources":["../../../src/services/powWorker.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAMD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-pow",
3
- "version": "2.13.19",
3
+ "version": "2.14.1",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/esm/index.js",
@@ -23,18 +23,18 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "@polkadot/util": "14.0.3",
26
- "@prosopo/api": "4.7.7",
27
- "@prosopo/common": "3.3.1",
28
- "@prosopo/fingerprint": "2.8.3",
29
- "@prosopo/locale": "3.13.1",
30
- "@prosopo/procaptcha-common": "2.21.9",
31
- "@prosopo/types": "5.19.0",
32
- "@prosopo/util": "3.3.17",
33
- "@prosopo/util-crypto": "13.6.2",
34
- "@prosopo/widget-skeleton": "2.10.4"
26
+ "@prosopo/api": "4.8.1",
27
+ "@prosopo/common": "3.3.2",
28
+ "@prosopo/fingerprint": "2.8.5",
29
+ "@prosopo/locale": "3.13.2",
30
+ "@prosopo/procaptcha-common": "2.21.11",
31
+ "@prosopo/types": "5.20.1",
32
+ "@prosopo/util": "3.4.0",
33
+ "@prosopo/util-crypto": "13.6.3",
34
+ "@prosopo/widget-skeleton": "2.10.5"
35
35
  },
36
36
  "devDependencies": {
37
- "@prosopo/config": "3.5.1",
37
+ "@prosopo/config": "3.5.2",
38
38
  "@types/node": "22.10.2",
39
39
  "@vitest/coverage-v8": "5.0.4",
40
40
  "concurrently": "9.0.1",