@prosopo/procaptcha-frictionless 2.12.23 → 2.13.0

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.
@@ -1,17 +1,16 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.12.23 build:cjs
2
+ > @prosopo/procaptcha-frictionless@2.13.0 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
6
6
  {
7
7
  tsConfigPaths: [
8
- '/home/runner/work/captcha/captcha/packages/detector/tsconfig.json',
9
- '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
10
8
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
11
- '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
12
- '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
13
9
  '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json',
14
10
  '/home/runner/work/captcha/captcha/packages/api/tsconfig.json',
11
+ '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
12
+ '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
13
+ '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
15
14
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
16
15
  '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
17
16
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
@@ -29,13 +28,12 @@ ViteCommonJSConfig: .
29
28
  }
30
29
  {
31
30
  externals: [
32
- '@prosopo/detector',
33
- '@prosopo/types',
34
31
  '@prosopo/locale',
35
- '@prosopo/util',
36
- '@prosopo/util-crypto',
37
32
  '@prosopo/procaptcha-pow',
38
33
  '@prosopo/api',
34
+ '@prosopo/types',
35
+ '@prosopo/util',
36
+ '@prosopo/util-crypto',
39
37
  '@prosopo/common',
40
38
  '@prosopo/logger',
41
39
  '@prosopo/fingerprint',
@@ -58,10 +56,10 @@ Bundle build started
58
56
  ✓ 6 modules transformed.
59
57
  rendering chunks...
60
58
  computing gzip size...
61
- dist/cjs/detectorLoader.cjs 0.16 kB │ gzip: 0.12 kB
62
59
  dist/cjs/index.cjs 0.24 kB │ gzip: 0.15 kB
60
+ dist/cjs/detectorLoader.cjs 0.62 kB │ gzip: 0.40 kB
63
61
  dist/cjs/sessionInvalidatedRecovery.cjs 2.07 kB │ gzip: 0.99 kB
64
- dist/cjs/customDetectBot.cjs 4.22 kB │ gzip: 1.36 kB
62
+ dist/cjs/customDetectBot.cjs 5.06 kB │ gzip: 1.58 kB
65
63
  dist/cjs/ProcaptchaFrictionless.cjs 7.00 kB │ gzip: 2.02 kB
66
64
 
67
- ✓ built in 60ms
65
+ ✓ built in 59ms
@@ -1,14 +1,13 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.12.23 build:tsc
2
+ > @prosopo/procaptcha-frictionless@2.13.0 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 12:36:54 PM - Projects in this build:
5
+ 11:10:41 AM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
9
9
  * ../util-crypto/tsconfig.json
10
10
  * ../types/tsconfig.json
11
- * ../detector/tsconfig.json
12
11
  * ../api/tsconfig.json
13
12
  * ../logger/tsconfig.json
14
13
  * ../common/tsconfig.json
@@ -26,49 +25,47 @@
26
25
  * ../procaptcha-react/tsconfig.json
27
26
  * tsconfig.json
28
27
 
29
- 12:36:54 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/index.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
28
+ 11:10:41 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/tsconfig.tsbuildinfo'
30
29
 
31
- 12:36:54 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
30
+ 11:10:41 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
32
31
 
33
- 12:36:54 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
32
+ 11:10:41 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
34
33
 
35
- 12:36:54 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
34
+ 11:10:41 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
36
35
 
37
- 12:36:54 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/provider/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
36
+ 11:10:41 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
38
37
 
39
- 12:36:54 PM - Project '../detector/tsconfig.json' is up to date because newest input '../detector/src/index.js' is older than output '../detector/tsconfig.tsbuildinfo'
38
+ 11:10:41 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
40
39
 
41
- 12:36:54 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
40
+ 11:10:41 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
42
41
 
43
- 12:36:54 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
42
+ 11:10:41 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/batches.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
44
43
 
45
- 12:36:54 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
44
+ 11:10:41 AM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
46
45
 
47
- 12:36:54 PM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
46
+ 11:10:41 AM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
48
47
 
49
- 12:36:54 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
48
+ 11:10:41 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/providers.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
50
49
 
51
- 12:36:54 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/providers.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
50
+ 11:10:41 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/tsconfig.tsbuildinfo'
52
51
 
53
- 12:36:54 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/tsconfig.tsbuildinfo'
52
+ 11:10:41 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
54
53
 
55
- 12:36:54 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
54
+ 11:10:41 AM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/workers/cryptoWorker.ts' is older than output '../account/tsconfig.tsbuildinfo'
56
55
 
57
- 12:36:54 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/tsconfig.tsbuildinfo'
56
+ 11:10:41 AM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/extensionLoader.ts' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
58
57
 
59
- 12:36:54 PM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/simdReadings.ts' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
58
+ 11:10:41 AM - Project '../procaptcha-pow/tsconfig.json' is up to date because newest input '../procaptcha-pow/src/tests/managerHarness.ts' is older than output '../procaptcha-pow/tsconfig.tsbuildinfo'
60
59
 
61
- 12:36:54 PM - Project '../procaptcha-pow/tsconfig.json' is up to date because newest input '../procaptcha-pow/src/tests/managerHarness.ts' is older than output '../procaptcha-pow/tsconfig.tsbuildinfo'
60
+ 11:10:41 AM - Project '../procaptcha-puzzle/tsconfig.json' is up to date because newest input '../procaptcha-puzzle/src/tests/managerHarness.ts' is older than output '../procaptcha-puzzle/tsconfig.tsbuildinfo'
62
61
 
63
- 12:36:54 PM - Project '../procaptcha-puzzle/tsconfig.json' is up to date because newest input '../procaptcha-puzzle/src/index.ts' is older than output '../procaptcha-puzzle/tsconfig.tsbuildinfo'
62
+ 11:10:41 AM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
64
63
 
65
- 12:36:54 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/dataset.unit.test.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
64
+ 11:10:41 AM - Project '../procaptcha/tsconfig.json' is up to date because newest input '../procaptcha/src/modules/Manager.ts' is older than output '../procaptcha/tsconfig.tsbuildinfo'
66
65
 
67
- 12:36:54 PM - Project '../procaptcha/tsconfig.json' is up to date because newest input '../procaptcha/src/index.ts' is older than output '../procaptcha/tsconfig.tsbuildinfo'
66
+ 11:10:42 AM - Project '../procaptcha-react/tsconfig.json' is up to date because newest input '../procaptcha-react/src/index.ts' is older than output '../procaptcha-react/tsconfig.tsbuildinfo'
68
67
 
69
- 12:36:54 PM - Project '../procaptcha-react/tsconfig.json' is up to date because newest input '../procaptcha-react/src/tests/captchaComponent.unit.test.tsx' is older than output '../procaptcha-react/tsconfig.tsbuildinfo'
68
+ 11:10:42 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
70
69
 
71
- 12:36:54 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
72
-
73
- 12:36:54 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-frictionless/tsconfig.json'...
70
+ 11:10:42 AM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-frictionless/tsconfig.json'...
74
71
 
@@ -1,21 +1,20 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.12.23 build
2
+ > @prosopo/procaptcha-frictionless@2.13.0 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/procaptcha-frictionless@2.12.23 build:cross-env
6
+ > @prosopo/procaptcha-frictionless@2.13.0 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
10
10
  {
11
11
  tsConfigPaths: [
12
- '/home/runner/work/captcha/captcha/packages/detector/tsconfig.json',
13
- '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
14
12
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
15
- '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
16
- '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
17
13
  '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json',
18
14
  '/home/runner/work/captcha/captcha/packages/api/tsconfig.json',
15
+ '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
16
+ '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
17
+ '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
19
18
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
20
19
  '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
21
20
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
@@ -33,13 +32,12 @@ ViteEsmConfig: .
33
32
  }
34
33
  {
35
34
  externals: [
36
- '@prosopo/detector',
37
- '@prosopo/types',
38
35
  '@prosopo/locale',
39
- '@prosopo/util',
40
- '@prosopo/util-crypto',
41
36
  '@prosopo/procaptcha-pow',
42
37
  '@prosopo/api',
38
+ '@prosopo/types',
39
+ '@prosopo/util',
40
+ '@prosopo/util-crypto',
43
41
  '@prosopo/common',
44
42
  '@prosopo/logger',
45
43
  '@prosopo/fingerprint',
@@ -64,9 +62,9 @@ rendering chunks...
64
62
  computing gzip size...
65
63
  dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
66
64
  dist/index.js 0.14 kB │ gzip: 0.10 kB
67
- dist/detectorLoader.js 0.15 kB │ gzip: 0.13 kB
65
+ dist/detectorLoader.js 0.60 kB │ gzip: 0.39 kB
68
66
  dist/sessionInvalidatedRecovery.js 2.01 kB │ gzip: 0.98 kB
69
- dist/customDetectBot.js 3.97 kB │ gzip: 1.33 kB
67
+ dist/customDetectBot.js 4.92 kB │ gzip: 1.55 kB
70
68
  dist/ProcaptchaFrictionless.js 6.49 kB │ gzip: 1.97 kB
71
69
 
72
- ✓ built in 63ms
70
+ ✓ built in 47ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @prosopo/procaptcha-frictionless
2
2
 
3
+ ## 2.13.0
4
+ ### Minor Changes
5
+
6
+ - 787017b: feat(detector): serve the detector only from per-session provider bundles; PoW fallback
7
+
8
+ The detector now lives ONLY in the provider-served, precomputed pool bundles — there is no detector bundled into the widget and no legacy detector-key pool. Each session's bundle encrypts everything it produces (bot score, SIMD readings, behavioural data) with its own RSA keypair + inner ChaCha20-Poly1305 cipher; the provider decrypts each payload with that exact bundle, resolved per session.
9
+
10
+ - `DetectorBundlePool`: loads precomputed `{id}.js`/`{id}.json` bundle pairs from disk, uniform-random per-session selection, hot-swap `replace()` for the admin push channel.
11
+ - The pool is ALWAYS initialised at boot (a missing/empty dir yields an empty pool), collapsing the old three states into two: bundles present ⇒ per-session serving; no bundles ⇒ always PoW.
12
+ - Redis short-TTL `detectorSessionId → bundleId` binding; the resolved `bundleId` is promoted onto the durable session record so later hops (SIMD attach, PoW/puzzle/image solution submit) decrypt with the same bundle.
13
+ - Client: removed the inlined `@prosopo/detector` runtime import (now type-only). When no provider bundle can be obtained/run, the client signals `detectorUnavailable` and the provider serves a PoW challenge.
14
+ - All server decrypt paths (score, SIMD readings, behavioural data) resolve the session's bundle and pass its inner cipher; the legacy key-pool brute force and its env fallback are removed from the detection paths. Decrypt failures fail closed (treated as bot ⇒ PoW).
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [787017b]
19
+ - Updated dependencies [787017b]
20
+ - Updated dependencies [787017b]
21
+ - Updated dependencies [6f19cde]
22
+ - Updated dependencies [2bc8e73]
23
+ - @prosopo/types@5.0.0
24
+ - @prosopo/api@4.0.0
25
+ - @prosopo/widget-skeleton@2.8.5
26
+ - @prosopo/procaptcha-common@2.11.20
27
+ - @prosopo/procaptcha-pow@2.10.27
28
+ - @prosopo/procaptcha-puzzle@2.10.43
29
+ - @prosopo/procaptcha-react@2.9.100
30
+
31
+ ## 2.12.24
32
+ ### Patch Changes
33
+
34
+ - @prosopo/procaptcha-common@2.11.19
35
+ - @prosopo/procaptcha-pow@2.10.26
36
+ - @prosopo/procaptcha-puzzle@2.10.42
37
+ - @prosopo/procaptcha-react@2.9.99
38
+
3
39
  ## 2.12.23
4
40
  ### Patch Changes
5
41
 
@@ -3,6 +3,7 @@ let _prosopo_procaptcha_common = require("@prosopo/procaptcha-common");
3
3
  let _prosopo_api = require("@prosopo/api");
4
4
  let _prosopo_common = require("@prosopo/common");
5
5
  //#region src/customDetectBot.ts
6
+ var ASSIGN_TIMEOUT_MS = 2e3;
6
7
  var sanitiseHref = (href) => {
7
8
  try {
8
9
  const u = new URL(href);
@@ -63,18 +64,48 @@ var withTimeout = async (promise, ms) => {
63
64
  }
64
65
  };
65
66
  var customDetectBot = async (config, container, restartFn, retryContext) => {
66
- const ipMode = (0, _prosopo_procaptcha_common.pickIpMode)(config);
67
- (0, _prosopo_procaptcha_common.getProcaptchaRandomActiveProvider)(config.defaultEnvironment).catch(() => void 0);
68
- if (ipMode !== void 0) (0, _prosopo_procaptcha_common.getProcaptchaRandomActiveProvider)(config.defaultEnvironment, ipMode, retryContext).catch(() => void 0);
69
- const [ExtClass, detect] = await Promise.all([(0, _prosopo_procaptcha_common.ExtensionLoader)(config.web2), require_detectorLoader.DetectorLoader()]);
70
- const ext = new ExtClass();
71
- const detectionResult = await detect(config.defaultEnvironment, async () => (0, _prosopo_procaptcha_common.getProcaptchaRandomActiveProvider)(config.defaultEnvironment), container, restartFn, () => ext.getAccount(config));
72
- const userAccount = detectionResult.userAccount;
73
67
  if (!config.account.address) throw new _prosopo_common.ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
68
+ const ipMode = (0, _prosopo_procaptcha_common.pickIpMode)(config);
69
+ const extClassPromise = (0, _prosopo_procaptcha_common.ExtensionLoader)(config.web2);
74
70
  const provider = await (0, _prosopo_procaptcha_common.getProcaptchaRandomActiveProvider)(config.defaultEnvironment, ipMode, retryContext);
75
71
  const providerApi = new _prosopo_api.ProviderApi(provider.provider.url, config.account.address);
72
+ let detectorSessionId;
73
+ let providerDetect;
74
+ try {
75
+ const assigned = await withTimeout(providerApi.assignDetectorBundle(config.account.address), ASSIGN_TIMEOUT_MS);
76
+ if (assigned.useProviderBundle && assigned.detectorScript) {
77
+ detectorSessionId = assigned.detectorSessionId;
78
+ providerDetect = await withTimeout(require_detectorLoader.DetectorLoaderFromScript(assigned.detectorScript), ASSIGN_TIMEOUT_MS);
79
+ }
80
+ } catch {}
81
+ const ext = new (await extClassPromise)();
82
+ if (providerDetect === void 0) {
83
+ const userAccount = await ext.getAccount(config);
84
+ const { currentUrl: fallbackUrl, iframeUrl: fallbackIframeUrl } = getCurrentPageUrls();
85
+ const powCaptcha = await withTimeout(providerApi.getFrictionlessCaptcha(void 0, void 0, config.account.address, userAccount.account.address, config.mode, void 0, void 0, true, fallbackUrl, fallbackIframeUrl), 1e4);
86
+ if (powCaptcha.dns_url) try {
87
+ fetch(powCaptcha.dns_url, {
88
+ method: "GET",
89
+ mode: "no-cors",
90
+ credentials: "omit",
91
+ keepalive: true,
92
+ cache: "no-store"
93
+ }).catch(() => void 0);
94
+ } catch {}
95
+ return {
96
+ captchaType: powCaptcha.captchaType,
97
+ sessionId: powCaptcha.sessionId,
98
+ provider,
99
+ status: powCaptcha.status,
100
+ userAccount,
101
+ error: powCaptcha.error,
102
+ hp: powCaptcha.hp
103
+ };
104
+ }
105
+ const detectionResult = await providerDetect(container, restartFn, () => ext.getAccount(config));
106
+ const userAccount = detectionResult.userAccount;
76
107
  const { currentUrl, iframeUrl } = getCurrentPageUrls();
77
- const captchaPromise = providerApi.getFrictionlessCaptcha(detectionResult.token, detectionResult.encryptHeadHash, config.account.address, userAccount.account.address, config.mode, void 0, currentUrl, iframeUrl);
108
+ const captchaPromise = providerApi.getFrictionlessCaptcha(detectionResult.token, detectionResult.encryptHeadHash, config.account.address, userAccount.account.address, config.mode, void 0, detectorSessionId, void 0, currentUrl, iframeUrl);
78
109
  if (detectionResult.getSimdReadings) detectionResult.getSimdReadings(6e4).catch(() => void 0);
79
110
  const captcha = await withTimeout(captchaPromise, 1e4);
80
111
  if (captcha.dns_url) try {
@@ -1,4 +1,20 @@
1
1
  //#region src/detectorLoader.ts
2
- var DetectorLoader = async () => (await import("@prosopo/detector")).default;
2
+ /**
3
+ * Loads a detector from a provider-served obfuscated ESM string (the per-session
4
+ * pool bundle). Evaluated via a blob URL — the served module is self-contained
5
+ * (no imports), so dynamic `import()` of the blob yields its default export.
6
+ */
7
+ var DetectorLoaderFromScript = async (script) => {
8
+ const blob = new Blob([script], { type: "text/javascript" });
9
+ const url = URL.createObjectURL(blob);
10
+ try {
11
+ return (await import(
12
+ /* @vite-ignore */
13
+ url
14
+ )).default;
15
+ } finally {
16
+ URL.revokeObjectURL(url);
17
+ }
18
+ };
3
19
  //#endregion
4
- exports.DetectorLoader = DetectorLoader;
20
+ exports.DetectorLoaderFromScript = DetectorLoaderFromScript;
@@ -1 +1 @@
1
- {"version":3,"file":"customDetectBot.d.ts","sourceRoot":"","sources":["../src/customDetectBot.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACX,oBAAoB,EAGpB,MAAM,gBAAgB,CAAC;AA2ExB,eAAO,MAAM,WAAW,GAAU,CAAC,WACzB,OAAO,CAAC,CAAC,CAAC,MACf,MAAM,KACR,OAAO,CAAC,CAAC,CAoBX,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,oBAyItB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"customDetectBot.d.ts","sourceRoot":"","sources":["../src/customDetectBot.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACX,oBAAoB,EAGpB,MAAM,gBAAgB,CAAC;AAoFxB,eAAO,MAAM,WAAW,GAAU,CAAC,WACzB,OAAO,CAAC,CAAC,CAAC,MACf,MAAM,KACR,OAAO,CAAC,CAAC,CAoBX,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,oBA2LtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,8 +1,9 @@
1
- import { DetectorLoader } from "./detectorLoader.js";
1
+ import { DetectorLoaderFromScript } from "./detectorLoader.js";
2
2
  import { ExtensionLoader, getProcaptchaRandomActiveProvider, pickIpMode } from "@prosopo/procaptcha-common";
3
3
  import { ProviderApi } from "@prosopo/api";
4
4
  import { ProsopoEnvError } from "@prosopo/common";
5
5
  //#region src/customDetectBot.ts
6
+ var ASSIGN_TIMEOUT_MS = 2e3;
6
7
  var sanitiseHref = (href) => {
7
8
  try {
8
9
  const u = new URL(href);
@@ -63,18 +64,48 @@ var withTimeout = async (promise, ms) => {
63
64
  }
64
65
  };
65
66
  var customDetectBot = async (config, container, restartFn, retryContext) => {
66
- const ipMode = pickIpMode(config);
67
- getProcaptchaRandomActiveProvider(config.defaultEnvironment).catch(() => void 0);
68
- if (ipMode !== void 0) getProcaptchaRandomActiveProvider(config.defaultEnvironment, ipMode, retryContext).catch(() => void 0);
69
- const [ExtClass, detect] = await Promise.all([ExtensionLoader(config.web2), DetectorLoader()]);
70
- const ext = new ExtClass();
71
- const detectionResult = await detect(config.defaultEnvironment, async () => getProcaptchaRandomActiveProvider(config.defaultEnvironment), container, restartFn, () => ext.getAccount(config));
72
- const userAccount = detectionResult.userAccount;
73
67
  if (!config.account.address) throw new ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
68
+ const ipMode = pickIpMode(config);
69
+ const extClassPromise = ExtensionLoader(config.web2);
74
70
  const provider = await getProcaptchaRandomActiveProvider(config.defaultEnvironment, ipMode, retryContext);
75
71
  const providerApi = new ProviderApi(provider.provider.url, config.account.address);
72
+ let detectorSessionId;
73
+ let providerDetect;
74
+ try {
75
+ const assigned = await withTimeout(providerApi.assignDetectorBundle(config.account.address), ASSIGN_TIMEOUT_MS);
76
+ if (assigned.useProviderBundle && assigned.detectorScript) {
77
+ detectorSessionId = assigned.detectorSessionId;
78
+ providerDetect = await withTimeout(DetectorLoaderFromScript(assigned.detectorScript), ASSIGN_TIMEOUT_MS);
79
+ }
80
+ } catch {}
81
+ const ext = new (await extClassPromise)();
82
+ if (providerDetect === void 0) {
83
+ const userAccount = await ext.getAccount(config);
84
+ const { currentUrl: fallbackUrl, iframeUrl: fallbackIframeUrl } = getCurrentPageUrls();
85
+ const powCaptcha = await withTimeout(providerApi.getFrictionlessCaptcha(void 0, void 0, config.account.address, userAccount.account.address, config.mode, void 0, void 0, true, fallbackUrl, fallbackIframeUrl), 1e4);
86
+ if (powCaptcha.dns_url) try {
87
+ fetch(powCaptcha.dns_url, {
88
+ method: "GET",
89
+ mode: "no-cors",
90
+ credentials: "omit",
91
+ keepalive: true,
92
+ cache: "no-store"
93
+ }).catch(() => void 0);
94
+ } catch {}
95
+ return {
96
+ captchaType: powCaptcha.captchaType,
97
+ sessionId: powCaptcha.sessionId,
98
+ provider,
99
+ status: powCaptcha.status,
100
+ userAccount,
101
+ error: powCaptcha.error,
102
+ hp: powCaptcha.hp
103
+ };
104
+ }
105
+ const detectionResult = await providerDetect(container, restartFn, () => ext.getAccount(config));
106
+ const userAccount = detectionResult.userAccount;
76
107
  const { currentUrl, iframeUrl } = getCurrentPageUrls();
77
- const captchaPromise = providerApi.getFrictionlessCaptcha(detectionResult.token, detectionResult.encryptHeadHash, config.account.address, userAccount.account.address, config.mode, void 0, currentUrl, iframeUrl);
108
+ const captchaPromise = providerApi.getFrictionlessCaptcha(detectionResult.token, detectionResult.encryptHeadHash, config.account.address, userAccount.account.address, config.mode, void 0, detectorSessionId, void 0, currentUrl, iframeUrl);
78
109
  if (detectionResult.getSimdReadings) detectionResult.getSimdReadings(6e4).catch(() => void 0);
79
110
  const captcha = await withTimeout(captchaPromise, 1e4);
80
111
  if (captcha.dns_url) try {
@@ -1 +1 @@
1
- {"version":3,"file":"customDetectBot.js","sourceRoot":"","sources":["../src/customDetectBot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customDetectBot.js","sourceRoot":"","sources":["../src/customDetectBot.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,31 @@
1
- type DetectorType = typeof import("@prosopo/detector").default;
2
- export declare const DetectorLoader: () => Promise<DetectorType>;
3
- export {};
1
+ import type { Account, BehavioralData, ClickEventPoint, MouseMovementPoint, PackedBehavioralData, TouchEventPoint } from "@prosopo/types";
2
+ export type DetectorType = (container: HTMLElement | undefined, restart: () => void, accountGenerator: () => Promise<Account>) => Promise<{
3
+ token: string;
4
+ shadowDomCleanup: () => void;
5
+ encryptHeadHash: string;
6
+ mouseTracker?: {
7
+ start: () => void;
8
+ stop: () => void;
9
+ getData: () => MouseMovementPoint[];
10
+ clear: () => void;
11
+ };
12
+ touchTracker?: {
13
+ start: () => void;
14
+ stop: () => void;
15
+ getData: () => TouchEventPoint[];
16
+ clear: () => void;
17
+ };
18
+ clickTracker?: {
19
+ start: () => void;
20
+ stop: () => void;
21
+ getData: () => ClickEventPoint[];
22
+ clear: () => void;
23
+ };
24
+ hasTouchSupport?: string;
25
+ encryptBehavioralData?: (data: string) => Promise<string>;
26
+ packBehavioralData?: (behavioralData: BehavioralData) => PackedBehavioralData;
27
+ getSimdReadings?: (timeoutMs?: number) => Promise<string | undefined>;
28
+ userAccount: Account;
29
+ }>;
30
+ export declare const DetectorLoaderFromScript: (script: string) => Promise<DetectorType>;
4
31
  //# sourceMappingURL=detectorLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectorLoader.d.ts","sourceRoot":"","sources":["../src/detectorLoader.ts"],"names":[],"mappings":"AAcA,KAAK,YAAY,GAAG,cAAc,mBAAmB,EAAE,OAAO,CAAC;AAE/D,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,YAAY,CAChB,CAAC"}
1
+ {"version":3,"file":"detectorLoader.d.ts","sourceRoot":"","sources":["../src/detectorLoader.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAOxB,MAAM,MAAM,YAAY,GAAG,CAC1B,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,IAAI,EACnB,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KACpC,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,OAAO,EAAE,MAAM,kBAAkB,EAAE,CAAC;QACpC,KAAK,EAAE,MAAM,IAAI,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,OAAO,EAAE,MAAM,eAAe,EAAE,CAAC;QACjC,KAAK,EAAE,MAAM,IAAI,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,OAAO,EAAE,MAAM,eAAe,EAAE,CAAC;QACjC,KAAK,EAAE,MAAM,IAAI,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,oBAAoB,CAAC;IAC9E,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,WAAW,EAAE,OAAO,CAAC;CACrB,CAAC,CAAC;AAOH,eAAO,MAAM,wBAAwB,WAC5B,MAAM,KACZ,OAAO,CAAC,YAAY,CAWtB,CAAC"}
@@ -1,4 +1,20 @@
1
1
  //#region src/detectorLoader.ts
2
- var DetectorLoader = async () => (await import("@prosopo/detector")).default;
2
+ /**
3
+ * Loads a detector from a provider-served obfuscated ESM string (the per-session
4
+ * pool bundle). Evaluated via a blob URL — the served module is self-contained
5
+ * (no imports), so dynamic `import()` of the blob yields its default export.
6
+ */
7
+ var DetectorLoaderFromScript = async (script) => {
8
+ const blob = new Blob([script], { type: "text/javascript" });
9
+ const url = URL.createObjectURL(blob);
10
+ try {
11
+ return (await import(
12
+ /* @vite-ignore */
13
+ url
14
+ )).default;
15
+ } finally {
16
+ URL.revokeObjectURL(url);
17
+ }
18
+ };
3
19
  //#endregion
4
- export { DetectorLoader };
20
+ export { DetectorLoaderFromScript };
@@ -1 +1 @@
1
- {"version":3,"file":"detectorLoader.js","sourceRoot":"","sources":["../src/detectorLoader.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAA2B,EAAE,CAC/D,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"detectorLoader.js","sourceRoot":"","sources":["../src/detectorLoader.ts"],"names":[],"mappings":"AAkEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC5C,MAAc,EACU,EAAE;IAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAoB,GAAG,CAAC,CAEhD,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC;IACpB,CAAC;YAAS,CAAC;QACV,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC,CAAC"}
@@ -2,12 +2,14 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
2
2
  const mocks = vi.hoisted(() => ({
3
3
  getFrictionlessCaptcha: vi.fn(),
4
4
  getProcaptchaRandomActiveProvider: vi.fn(),
5
+ assignDetectorBundle: vi.fn(),
5
6
  detect: vi.fn(),
6
7
  }));
7
8
  vi.mock("@prosopo/api", () => ({
8
9
  ProviderApi: vi.fn(function () {
9
10
  return {
10
11
  getFrictionlessCaptcha: mocks.getFrictionlessCaptcha,
12
+ assignDetectorBundle: mocks.assignDetectorBundle,
11
13
  };
12
14
  }),
13
15
  }));
@@ -25,7 +27,7 @@ vi.mock("@prosopo/procaptcha-common", () => ({
25
27
  pickIpMode: vi.fn(() => undefined),
26
28
  }));
27
29
  vi.mock("../detectorLoader.js", () => ({
28
- DetectorLoader: vi.fn(async () => mocks.detect),
30
+ DetectorLoaderFromScript: vi.fn(async () => mocks.detect),
29
31
  }));
30
32
  import customDetectBot from "../customDetectBot.js";
31
33
  const baseConfig = {
@@ -51,11 +53,18 @@ const captchaResponse = {
51
53
  beforeEach(() => {
52
54
  mocks.getFrictionlessCaptcha.mockReset();
53
55
  mocks.getProcaptchaRandomActiveProvider.mockReset();
56
+ mocks.assignDetectorBundle.mockReset();
54
57
  mocks.detect.mockReset();
55
58
  mocks.getProcaptchaRandomActiveProvider.mockResolvedValue({
56
59
  providerAccount: "dns-routed",
57
60
  provider: { url: "https://provider.test" },
58
61
  });
62
+ mocks.assignDetectorBundle.mockResolvedValue({
63
+ useProviderBundle: true,
64
+ detectorSessionId: "det-1",
65
+ detectorScript: "SELF_CONTAINED_ESM",
66
+ status: "ok",
67
+ });
59
68
  mocks.getFrictionlessCaptcha.mockResolvedValue(captchaResponse);
60
69
  });
61
70
  describe("customDetectBot SIMD deferral", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"customDetectBotSimd.test.js","sourceRoot":"","sources":["../../src/tests/customDetectBotSimd.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"customDetectBotSimd.test.js","sourceRoot":"","sources":["../../src/tests/customDetectBotSimd.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-frictionless",
3
- "version": "2.12.23",
3
+ "version": "2.13.0",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -30,21 +30,20 @@
30
30
  },
31
31
  "browserslist": ["> 0.5%, last 2 versions, not dead"],
32
32
  "dependencies": {
33
- "@prosopo/api": "3.5.21",
33
+ "@prosopo/api": "4.0.0",
34
34
  "@prosopo/common": "3.1.48",
35
- "@prosopo/detector": "3.5.14",
36
35
  "@prosopo/locale": "3.2.8",
37
- "@prosopo/procaptcha-common": "2.11.18",
38
- "@prosopo/procaptcha-pow": "2.10.25",
39
- "@prosopo/procaptcha-puzzle": "2.10.41",
40
- "@prosopo/procaptcha-react": "2.9.98",
41
- "@prosopo/types": "4.10.0",
42
- "@prosopo/widget-skeleton": "2.8.4",
36
+ "@prosopo/procaptcha-common": "2.11.20",
37
+ "@prosopo/procaptcha-pow": "2.10.27",
38
+ "@prosopo/procaptcha-puzzle": "2.10.43",
39
+ "@prosopo/procaptcha-react": "2.9.100",
40
+ "@prosopo/types": "5.0.0",
41
+ "@prosopo/widget-skeleton": "2.8.5",
43
42
  "dotenv": "16.4.5",
44
43
  "react": "18.3.1"
45
44
  },
46
45
  "devDependencies": {
47
- "@prosopo/config": "3.3.5",
46
+ "@prosopo/config": "3.3.6",
48
47
  "@types/node": "22.10.2",
49
48
  "@vitest/coverage-v8": "4.1.10",
50
49
  "concurrently": "9.0.1",