@prosopo/procaptcha-frictionless 2.16.3 → 2.16.4

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,5 +1,5 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.16.3 build:cjs
2
+ > @prosopo/procaptcha-frictionless@2.16.4 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -57,12 +57,12 @@ Bundle build started
57
57
  rendering chunks...
58
58
  computing gzip size...
59
59
  dist/cjs/index.cjs 0.54 kB │ gzip: 0.21 kB
60
- dist/cjs/frictionlessResultGuard.cjs 1.55 kB │ gzip: 0.80 kB
61
60
  dist/cjs/detectorLoader.cjs 1.65 kB │ gzip: 0.90 kB
62
61
  dist/cjs/sessionInvalidatedRecovery.cjs 2.50 kB │ gzip: 1.14 kB
63
62
  dist/cjs/AuthenticatedBadge.cjs 2.69 kB │ gzip: 1.08 kB
63
+ dist/cjs/frictionlessResultGuard.cjs 2.75 kB │ gzip: 1.39 kB
64
64
  dist/cjs/detectorPrefetch.cjs 2.98 kB │ gzip: 1.35 kB
65
65
  dist/cjs/customDetectBot.cjs 5.60 kB │ gzip: 1.71 kB
66
- dist/cjs/ProcaptchaFrictionless.cjs 10.83 kB │ gzip: 2.85 kB
66
+ dist/cjs/ProcaptchaFrictionless.cjs 12.23 kB │ gzip: 3.05 kB
67
67
 
68
- ✓ built in 54ms
68
+ ✓ built in 52ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.16.3 build:tsc
2
+ > @prosopo/procaptcha-frictionless@2.16.4 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 5:39:31 AM - Projects in this build:
5
+ 1:04:54 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
@@ -25,47 +25,47 @@
25
25
  * ../procaptcha-react/tsconfig.json
26
26
  * tsconfig.json
27
27
 
28
- 5:39:31 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'
28
+ 1:04:54 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/tsconfig.tsbuildinfo'
29
29
 
30
- 5:39:31 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
30
+ 1:04:54 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
31
31
 
32
- 5:39:31 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
32
+ 1:04:54 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
33
33
 
34
- 5:39:31 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'
34
+ 1:04: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'
35
35
 
36
- 5:39:31 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'
36
+ 1:04:54 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
37
37
 
38
- 5:39:31 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
38
+ 1:04: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'
39
39
 
40
- 5:39:31 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
40
+ 1:04:54 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
41
41
 
42
- 5:39:31 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
42
+ 1:04:54 PM - 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'
43
43
 
44
- 5:39:31 AM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
44
+ 1:04: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'
45
45
 
46
- 5:39:31 AM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
46
+ 1:04:54 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
47
47
 
48
- 5:39:31 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/productionProviderList.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
48
+ 1:04:54 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/productionProviderList.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
49
49
 
50
- 5:39:31 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'
50
+ 1:04: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'
51
51
 
52
- 5:39:31 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.test.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
52
+ 1:04:54 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/pair/decode.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
53
53
 
54
- 5:39:31 AM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/tsconfig.tsbuildinfo'
54
+ 1:04:54 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/tests/cryptoWorker.unit.test.ts' is older than output '../account/tsconfig.tsbuildinfo'
55
55
 
56
- 5:39:31 AM - 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'
56
+ 1:04:54 PM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/tests/challengeSurfaceRender.unit.test.tsx' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
57
57
 
58
- 5:39:31 AM - Project '../procaptcha-pow/tsconfig.json' is up to date because newest input '../procaptcha-pow/src/index.ts' is older than output '../procaptcha-pow/tsconfig.tsbuildinfo'
58
+ 1:04: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'
59
59
 
60
- 5:39:31 AM - 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'
60
+ 1:04: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'
61
61
 
62
- 5:39:31 AM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
62
+ 1:04:54 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/mocks/data/captchas.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
63
63
 
64
- 5:39:31 AM - Project '../procaptcha/tsconfig.json' is up to date because newest input '../procaptcha/src/index.ts' is older than output '../procaptcha/tsconfig.tsbuildinfo'
64
+ 1:04:54 PM - Project '../procaptcha/tsconfig.json' is up to date because newest input '../procaptcha/src/modules/Manager.ts' is older than output '../procaptcha/tsconfig.tsbuildinfo'
65
65
 
66
- 5:39:31 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'
66
+ 1:04:54 PM - 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'
67
67
 
68
- 5:39:31 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
68
+ 1:04:54 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
69
69
 
70
- 5:39:31 AM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-frictionless/tsconfig.json'...
70
+ 1:04:54 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-frictionless/tsconfig.json'...
71
71
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/procaptcha-frictionless@2.16.3 build
2
+ > @prosopo/procaptcha-frictionless@2.16.4 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/procaptcha-frictionless@2.16.3 build:cross-env
6
+ > @prosopo/procaptcha-frictionless@2.16.4 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -62,12 +62,12 @@ rendering chunks...
62
62
  computing gzip size...
63
63
  dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
64
64
  dist/index.js 0.32 kB │ gzip: 0.15 kB
65
- dist/frictionlessResultGuard.js 1.48 kB │ gzip: 0.80 kB
66
65
  dist/detectorLoader.js 1.63 kB │ gzip: 0.90 kB
67
66
  dist/AuthenticatedBadge.js 2.28 kB │ gzip: 1.04 kB
68
67
  dist/sessionInvalidatedRecovery.js 2.41 kB │ gzip: 1.13 kB
68
+ dist/frictionlessResultGuard.js 2.68 kB │ gzip: 1.39 kB
69
69
  dist/detectorPrefetch.js 2.86 kB │ gzip: 1.32 kB
70
70
  dist/customDetectBot.js 5.42 kB │ gzip: 1.68 kB
71
- dist/ProcaptchaFrictionless.js 10.09 kB │ gzip: 2.81 kB
71
+ dist/ProcaptchaFrictionless.js 11.43 kB │ gzip: 3.01 kB
72
72
 
73
- ✓ built in 45ms
73
+ ✓ built in 61ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @prosopo/procaptcha-frictionless
2
2
 
3
+ ## 2.16.4
4
+ ### Patch Changes
5
+
6
+ - f4e4a83: chore(deps): roll up the open dependabot bumps (react 19.3, mongoose 9.10, @polkadot/util 14, redis 6, cron-parser 5, react-i18next 17 with i18next 26, @scure/base 2, cypress 16, rollup/babel plugin majors, vitest 4.1.11, angular 20.3.28, js-yaml)
7
+ - 08e2254: Don't lose an `execute()` call that arrives before the captcha widget has finished loading. Previously, submitting a form quickly on an invisible captcha could do nothing: the widget only starts listening once the provider has answered and its code has loaded, so an earlier `execute()` was dropped and the challenge never opened. The call is now held and replayed as soon as the widget is ready.
8
+ - 4d45e3d: Stop `DecisionMachineRunner` retaining every instance, and re-roll the frictionless widget onto another provider on an unrecognised error.
9
+
10
+ `DecisionMachineRunner` enrolled itself in a module-level `Set` so an artifact upload could flush every runner's cache. That assumed runners were built once per process; they are built per request, and nothing pruned the set, so it grew for as long as the process lived and construction eventually began to fail. `WeakRef` did not bound it — the set held the wrapper, which outlives its referent. The registry is replaced by a generation counter: an invalidation bumps it, and a runner drops its cache when the value it carries no longer matches. Nothing holds a runner reference, so there is nothing to grow.
11
+
12
+ The widget compounded it. The HTTP client does not throw on a 400 with a JSON body, so a provider-side failure came back looking like a normal result, and the frictionless guard turned it into a terminal error — no fallback, no retry, no restart timer. One unhealthy provider stranded the user on its first response even when every other node was healthy. Errors whose key we do not recognise are now thrown, which hands them to the existing provider re-roll. Integration faults (site key, origin, captcha type) and policy denials still display as before: another provider returns the same answer, and for those the message is the point. Errors with no key at all are unchanged, since hard blocks arrive in that shape. A site's error callback now also fires once retries are exhausted, which it previously did not.
13
+ - Updated dependencies [f4e4a83]
14
+ - Updated dependencies [c386199]
15
+ - Updated dependencies [d710b7f]
16
+ - Updated dependencies [d4e9425]
17
+ - Updated dependencies [0be8838]
18
+ - @prosopo/common@3.1.56
19
+ - @prosopo/locale@3.4.3
20
+ - @prosopo/procaptcha-common@2.14.1
21
+ - @prosopo/procaptcha-pow@2.12.5
22
+ - @prosopo/procaptcha-puzzle@2.13.1
23
+ - @prosopo/procaptcha-react@2.11.1
24
+ - @prosopo/types@5.8.4
25
+ - @prosopo/api@4.2.4
26
+
3
27
  ## 2.16.3
4
28
  ### Patch Changes
5
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"ProcaptchaFrictionless.d.ts","sourceRoot":"","sources":["../src/ProcaptchaFrictionless.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAMN,KAAK,2BAA2B,EAGhC,MAAM,gBAAgB,CAAC;AA0ExB,eAAO,MAAM,sBAAsB,gEAOhC,2BAA2B,gCA6b7B,CAAC"}
1
+ {"version":3,"file":"ProcaptchaFrictionless.d.ts","sourceRoot":"","sources":["../src/ProcaptchaFrictionless.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAON,KAAK,2BAA2B,EAGhC,MAAM,gBAAgB,CAAC;AA0ExB,eAAO,MAAM,sBAAsB,gEAOhC,2BAA2B,gCAqf7B,CAAC"}
@@ -4,7 +4,7 @@ import { evaluateFrictionlessResult } from "./frictionlessResultGuard.js";
4
4
  import { consumeRetryMountProps, handleSessionInvalidated, normaliseRetryCoords } from "./sessionInvalidatedRecovery.js";
5
5
  import { loadI18next } from "@prosopo/locale";
6
6
  import { Checkbox, TestModeBanner, getDefaultEvents, isSecureBrowserContext, providerRetry } from "@prosopo/procaptcha-common";
7
- import { CaptchaType, PROCAPTCHA_START_EVENT, ProcaptchaConfigSchema, StartModeEnum } from "@prosopo/types";
7
+ import { CaptchaType, ModeEnum, PROCAPTCHA_START_EVENT, ProcaptchaConfigSchema, StartModeEnum } from "@prosopo/types";
8
8
  import { darkTheme, lightTheme } from "@prosopo/widget-skeleton";
9
9
  import { useEffect, useRef, useState } from "react";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -44,6 +44,9 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
44
44
  const manualStart = config.startMode === StartModeEnum.manual;
45
45
  const manualStartedRef = useRef(false);
46
46
  const manualCheckboxHandlerRef = useRef(noopCheckboxHandler);
47
+ const innerWidgetRenderedRef = useRef(false);
48
+ const innerWidgetListeningRef = useRef(false);
49
+ const pendingExecuteRef = useRef(false);
47
50
  useEffect(() => {
48
51
  if (!config.language) return;
49
52
  if (i18n) {
@@ -60,6 +63,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
60
63
  if (errorKey === "CAPTCHA.NO_SESSION_FOUND") setTimeout(() => {
61
64
  restartComponentTimeout();
62
65
  }, 0);
66
+ innerWidgetRenderedRef.current = false;
63
67
  setComponentToRender(renderPlaceholder(config.theme, config.mode, errorMessage || "Cannot load CAPTCHA", i18n.isInitialized, i18n.t, false));
64
68
  };
65
69
  const restartComponentTimeout = () => {
@@ -102,6 +106,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
102
106
  const startCoords = escalationCoords ?? retryStartCoords;
103
107
  mountCountRef.current += 1;
104
108
  const mountKey = mountCountRef.current;
109
+ innerWidgetRenderedRef.current = true;
105
110
  if (captchaType === CaptchaType.authenticated) {
106
111
  if (!frictionlessState.sessionId) {
107
112
  events.onError(/* @__PURE__ */ new Error("authenticated captcha response missing sessionId — provider is misbehaving"));
@@ -168,6 +173,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
168
173
  const result = await detectBot(ProcaptchaConfigSchema.parse(config), container, restart, { attempt: stateRef.current.attemptCount });
169
174
  const guard = evaluateFrictionlessResult(result);
170
175
  if (guard.kind === "error") {
176
+ if (guard.retryable) throw new Error(guard.message);
171
177
  stateRef.current = {
172
178
  ...stateRef.current,
173
179
  loading: false,
@@ -198,6 +204,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
198
204
  };
199
205
  }, start, resetState, stateRef.current.attemptCount, 5).finally(() => {
200
206
  if (stateRef.current.attemptCount >= 5) {
207
+ events.onError(/* @__PURE__ */ new Error("Cannot load CAPTCHA"));
201
208
  fallOverWithStyle();
202
209
  restartComponentTimeout();
203
210
  }
@@ -208,6 +215,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
208
215
  manualStartedRef.current = true;
209
216
  pendingRetryCoordsRef.current = coords ?? null;
210
217
  nextMountAutoStartRef.current = autoStart;
218
+ innerWidgetRenderedRef.current = false;
211
219
  setComponentToRender(renderPlaceholder(config.theme, config.mode, stateRef.current.errorMessage, i18n.isInitialized, i18n.t, true));
212
220
  await start();
213
221
  };
@@ -238,6 +246,29 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = cu
238
246
  document.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
239
247
  };
240
248
  }, [manualStart, container]);
249
+ useEffect(() => {
250
+ if (manualStart) return;
251
+ const invisible = config.mode === ModeEnum.invisible;
252
+ const onExecuteEvent = () => {
253
+ if (!innerWidgetListeningRef.current) pendingExecuteRef.current = true;
254
+ };
255
+ container?.addEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
256
+ if (invisible) document.addEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
257
+ return () => {
258
+ container?.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
259
+ if (invisible) document.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
260
+ };
261
+ }, [
262
+ manualStart,
263
+ config.mode,
264
+ container
265
+ ]);
266
+ useEffect(() => {
267
+ innerWidgetListeningRef.current = innerWidgetRenderedRef.current;
268
+ if (!innerWidgetListeningRef.current || !pendingExecuteRef.current) return;
269
+ pendingExecuteRef.current = false;
270
+ (container ?? document).dispatchEvent(new CustomEvent(PROCAPTCHA_EXECUTE_EVENT));
271
+ }, [componentToRender, container]);
241
272
  const startedForKeyRef = useRef(null);
242
273
  useEffect(() => {
243
274
  const key = `${config.account?.address ?? ""}|${config.language ?? ""}|${config.mode ?? ""}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ProcaptchaFrictionless.js","sourceRoot":"","sources":["../src/ProcaptchaFrictionless.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProcaptchaFrictionless.js","sourceRoot":"","sources":["../src/ProcaptchaFrictionless.tsx"],"names":[],"mappings":"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"}
@@ -44,6 +44,9 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
44
44
  const manualStart = config.startMode === _prosopo_types.StartModeEnum.manual;
45
45
  const manualStartedRef = (0, react.useRef)(false);
46
46
  const manualCheckboxHandlerRef = (0, react.useRef)(noopCheckboxHandler);
47
+ const innerWidgetRenderedRef = (0, react.useRef)(false);
48
+ const innerWidgetListeningRef = (0, react.useRef)(false);
49
+ const pendingExecuteRef = (0, react.useRef)(false);
47
50
  (0, react.useEffect)(() => {
48
51
  if (!config.language) return;
49
52
  if (i18n) {
@@ -60,6 +63,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
60
63
  if (errorKey === "CAPTCHA.NO_SESSION_FOUND") setTimeout(() => {
61
64
  restartComponentTimeout();
62
65
  }, 0);
66
+ innerWidgetRenderedRef.current = false;
63
67
  setComponentToRender(renderPlaceholder(config.theme, config.mode, errorMessage || "Cannot load CAPTCHA", i18n.isInitialized, i18n.t, false));
64
68
  };
65
69
  const restartComponentTimeout = () => {
@@ -102,6 +106,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
102
106
  const startCoords = escalationCoords ?? retryStartCoords;
103
107
  mountCountRef.current += 1;
104
108
  const mountKey = mountCountRef.current;
109
+ innerWidgetRenderedRef.current = true;
105
110
  if (captchaType === _prosopo_types.CaptchaType.authenticated) {
106
111
  if (!frictionlessState.sessionId) {
107
112
  events.onError(/* @__PURE__ */ new Error("authenticated captcha response missing sessionId — provider is misbehaving"));
@@ -168,6 +173,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
168
173
  const result = await detectBot(_prosopo_types.ProcaptchaConfigSchema.parse(config), container, restart, { attempt: stateRef.current.attemptCount });
169
174
  const guard = require_frictionlessResultGuard.evaluateFrictionlessResult(result);
170
175
  if (guard.kind === "error") {
176
+ if (guard.retryable) throw new Error(guard.message);
171
177
  stateRef.current = {
172
178
  ...stateRef.current,
173
179
  loading: false,
@@ -198,6 +204,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
198
204
  };
199
205
  }, start, resetState, stateRef.current.attemptCount, 5).finally(() => {
200
206
  if (stateRef.current.attemptCount >= 5) {
207
+ events.onError(/* @__PURE__ */ new Error("Cannot load CAPTCHA"));
201
208
  fallOverWithStyle();
202
209
  restartComponentTimeout();
203
210
  }
@@ -208,6 +215,7 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
208
215
  manualStartedRef.current = true;
209
216
  pendingRetryCoordsRef.current = coords ?? null;
210
217
  nextMountAutoStartRef.current = autoStart;
218
+ innerWidgetRenderedRef.current = false;
211
219
  setComponentToRender(renderPlaceholder(config.theme, config.mode, stateRef.current.errorMessage, i18n.isInitialized, i18n.t, true));
212
220
  await start();
213
221
  };
@@ -238,6 +246,29 @@ var ProcaptchaFrictionless = ({ config, callbacks, restart, i18n, detectBot = re
238
246
  document.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
239
247
  };
240
248
  }, [manualStart, container]);
249
+ (0, react.useEffect)(() => {
250
+ if (manualStart) return;
251
+ const invisible = config.mode === _prosopo_types.ModeEnum.invisible;
252
+ const onExecuteEvent = () => {
253
+ if (!innerWidgetListeningRef.current) pendingExecuteRef.current = true;
254
+ };
255
+ container?.addEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
256
+ if (invisible) document.addEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
257
+ return () => {
258
+ container?.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
259
+ if (invisible) document.removeEventListener(PROCAPTCHA_EXECUTE_EVENT, onExecuteEvent);
260
+ };
261
+ }, [
262
+ manualStart,
263
+ config.mode,
264
+ container
265
+ ]);
266
+ (0, react.useEffect)(() => {
267
+ innerWidgetListeningRef.current = innerWidgetRenderedRef.current;
268
+ if (!innerWidgetListeningRef.current || !pendingExecuteRef.current) return;
269
+ pendingExecuteRef.current = false;
270
+ (container ?? document).dispatchEvent(new CustomEvent(PROCAPTCHA_EXECUTE_EVENT));
271
+ }, [componentToRender, container]);
241
272
  const startedForKeyRef = (0, react.useRef)(null);
242
273
  (0, react.useEffect)(() => {
243
274
  const key = `${config.account?.address ?? ""}|${config.language ?? ""}|${config.mode ?? ""}`;
@@ -1,4 +1,36 @@
1
1
  //#region src/frictionlessResultGuard.ts
2
+ /**
3
+ * Error keys that describe the caller's situation rather than the provider's
4
+ * health, so re-rolling onto another provider would return the same answer.
5
+ *
6
+ * Two groups. Integration faults (site key, origin, captcha type) need the
7
+ * site owner to change something and the text is what tells them what. Policy
8
+ * denials are a decision about this visitor that every provider shares —
9
+ * retrying them would both mislead the user and hammer the fleet on behalf of
10
+ * traffic we have just refused.
11
+ *
12
+ * Anything outside this list is treated as the provider failing, not the
13
+ * caller: see {@link evaluateFrictionlessResult}.
14
+ */
15
+ var TERMINAL_ERROR_KEYS = /* @__PURE__ */ new Set([
16
+ "API.SITE_KEY_NOT_REGISTERED",
17
+ "API.INVALID_SITE_KEY",
18
+ "API.UNAUTHORIZED_ORIGIN_URL",
19
+ "API.INCORRECT_CAPTCHA_TYPE",
20
+ "API.ACCESS_POLICY_BLOCK",
21
+ "API.ABUSER_BLOCKED",
22
+ "API.CRAWLER_BLOCKED",
23
+ "API.DATACENTER_BLOCKED",
24
+ "API.DISALLOWED_WEBVIEW",
25
+ "API.MOBILE_BLOCKED",
26
+ "API.PROXY_BLOCKED",
27
+ "API.SATELLITE_BLOCKED",
28
+ "API.TOR_BLOCKED",
29
+ "API.VPN_BLOCKED",
30
+ "API.FORBIDDEN",
31
+ "API.UNAUTHORIZED",
32
+ "CAPTCHA.NO_SESSION_FOUND"
33
+ ]);
2
34
  var MISSING_CAPTCHA_TYPE_MESSAGE = "Frictionless response missing captchaType; halting captcha mount";
3
35
  /**
4
36
  * Decide whether a `/frictionless` response is safe to mount an inner widget
@@ -19,14 +51,19 @@ var MISSING_CAPTCHA_TYPE_MESSAGE = "Frictionless response missing captchaType; h
19
51
  * is frictionless-configured, so a direct pow call isn't allowed).
20
52
  */
21
53
  var evaluateFrictionlessResult = (result) => {
22
- if (result.error?.message) return {
23
- kind: "error",
24
- message: result.error.message,
25
- ...result.error.key !== void 0 && { key: result.error.key }
26
- };
54
+ if (result.error?.message) {
55
+ const key = result.error.key;
56
+ return {
57
+ kind: "error",
58
+ message: result.error.message,
59
+ ...key !== void 0 && { key },
60
+ retryable: key !== void 0 && !TERMINAL_ERROR_KEYS.has(key)
61
+ };
62
+ }
27
63
  if (!result.captchaType) return {
28
64
  kind: "error",
29
- message: MISSING_CAPTCHA_TYPE_MESSAGE
65
+ message: MISSING_CAPTCHA_TYPE_MESSAGE,
66
+ retryable: false
30
67
  };
31
68
  return { kind: "pass" };
32
69
  };
@@ -4,6 +4,7 @@ export type FrictionlessGuardOutcome = {
4
4
  kind: "error";
5
5
  message: string;
6
6
  key?: string;
7
+ retryable: boolean;
7
8
  };
8
9
  export type FrictionlessGuardInput = {
9
10
  captchaType?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"frictionlessResultGuard.d.ts","sourceRoot":"","sources":["../src/frictionlessResultGuard.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKpD,MAAM,MAAM,sBAAsB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,4BAA4B,qEACiC,CAAC;AAoBpE,eAAO,MAAM,0BAA0B,WAC9B,sBAAsB,KAC5B,wBAYF,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"frictionlessResultGuard.d.ts","sourceRoot":"","sources":["../src/frictionlessResultGuard.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAuCxE,MAAM,MAAM,sBAAsB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,4BAA4B,qEACiC,CAAC;AAoBpE,eAAO,MAAM,0BAA0B,WAC9B,sBAAsB,KAC5B,wBAwBF,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -1,4 +1,36 @@
1
1
  //#region src/frictionlessResultGuard.ts
2
+ /**
3
+ * Error keys that describe the caller's situation rather than the provider's
4
+ * health, so re-rolling onto another provider would return the same answer.
5
+ *
6
+ * Two groups. Integration faults (site key, origin, captcha type) need the
7
+ * site owner to change something and the text is what tells them what. Policy
8
+ * denials are a decision about this visitor that every provider shares —
9
+ * retrying them would both mislead the user and hammer the fleet on behalf of
10
+ * traffic we have just refused.
11
+ *
12
+ * Anything outside this list is treated as the provider failing, not the
13
+ * caller: see {@link evaluateFrictionlessResult}.
14
+ */
15
+ var TERMINAL_ERROR_KEYS = /* @__PURE__ */ new Set([
16
+ "API.SITE_KEY_NOT_REGISTERED",
17
+ "API.INVALID_SITE_KEY",
18
+ "API.UNAUTHORIZED_ORIGIN_URL",
19
+ "API.INCORRECT_CAPTCHA_TYPE",
20
+ "API.ACCESS_POLICY_BLOCK",
21
+ "API.ABUSER_BLOCKED",
22
+ "API.CRAWLER_BLOCKED",
23
+ "API.DATACENTER_BLOCKED",
24
+ "API.DISALLOWED_WEBVIEW",
25
+ "API.MOBILE_BLOCKED",
26
+ "API.PROXY_BLOCKED",
27
+ "API.SATELLITE_BLOCKED",
28
+ "API.TOR_BLOCKED",
29
+ "API.VPN_BLOCKED",
30
+ "API.FORBIDDEN",
31
+ "API.UNAUTHORIZED",
32
+ "CAPTCHA.NO_SESSION_FOUND"
33
+ ]);
2
34
  var MISSING_CAPTCHA_TYPE_MESSAGE = "Frictionless response missing captchaType; halting captcha mount";
3
35
  /**
4
36
  * Decide whether a `/frictionless` response is safe to mount an inner widget
@@ -19,14 +51,19 @@ var MISSING_CAPTCHA_TYPE_MESSAGE = "Frictionless response missing captchaType; h
19
51
  * is frictionless-configured, so a direct pow call isn't allowed).
20
52
  */
21
53
  var evaluateFrictionlessResult = (result) => {
22
- if (result.error?.message) return {
23
- kind: "error",
24
- message: result.error.message,
25
- ...result.error.key !== void 0 && { key: result.error.key }
26
- };
54
+ if (result.error?.message) {
55
+ const key = result.error.key;
56
+ return {
57
+ kind: "error",
58
+ message: result.error.message,
59
+ ...key !== void 0 && { key },
60
+ retryable: key !== void 0 && !TERMINAL_ERROR_KEYS.has(key)
61
+ };
62
+ }
27
63
  if (!result.captchaType) return {
28
64
  kind: "error",
29
- message: MISSING_CAPTCHA_TYPE_MESSAGE
65
+ message: MISSING_CAPTCHA_TYPE_MESSAGE,
66
+ retryable: false
30
67
  };
31
68
  return { kind: "pass" };
32
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"frictionlessResultGuard.js","sourceRoot":"","sources":["../src/frictionlessResultGuard.ts"],"names":[],"mappings":"AA0BA,MAAM,4BAA4B,GACjC,kEAAkE,CAAC;AAoBpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,MAA8B,EACH,EAAE;IAC7B,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC3B,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAChE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"frictionlessResultGuard.js","sourceRoot":"","sources":["../src/frictionlessResultGuard.ts"],"names":[],"mappings":"AA+BA,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACxD,6BAA6B;IAC7B,sBAAsB;IACtB,6BAA6B;IAC7B,4BAA4B;IAC5B,yBAAyB;IACzB,oBAAoB;IACpB,qBAAqB;IACrB,wBAAwB;IACxB,wBAAwB;IACxB,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAElB,0BAA0B;CAC1B,CAAC,CAAC;AAUH,MAAM,4BAA4B,GACjC,kEAAkE,CAAC;AAoBpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,MAA8B,EACH,EAAE;IAC7B,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;YAOjC,SAAS,EAAE,GAAG,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;SAC7D,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,4BAA4B;YACrC,SAAS,EAAE,KAAK;SAChB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare global {
2
+ var IS_REACT_ACT_ENVIRONMENT: boolean;
3
+ }
4
+ export {};
5
+ //# sourceMappingURL=executeBeforeMount.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeBeforeMount.test.d.ts","sourceRoot":"","sources":["../../src/tests/executeBeforeMount.test.tsx"],"names":[],"mappings":"AA8BA,OAAO,CAAC,MAAM,CAAC;IACd,IAAI,wBAAwB,EAAE,OAAO,CAAC;CACtC"}