@prosopo/api 4.7.6 → 4.8.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.
Files changed (100) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +2 -2
  2. package/.turbo/{turbo-build.log → turbo-build$colon$esm.log} +9 -10
  3. package/.turbo/turbo-build$colon$tsc.log +8 -8
  4. package/.turbo/turbo-build$colon$types.log +1 -0
  5. package/CHANGELOG.md +34 -0
  6. package/dist/cjs/api/ProviderApi.cjs +4 -2
  7. package/dist/{api → esm/api}/ProviderApi.js +4 -2
  8. package/dist/tsc/api/HttpClientBase.d.ts.map +1 -0
  9. package/dist/tsc/api/HttpClientBase.js +110 -0
  10. package/dist/tsc/api/HttpClientBase.js.map +1 -0
  11. package/dist/tsc/api/HttpError.d.ts.map +1 -0
  12. package/dist/tsc/api/HttpError.js +10 -0
  13. package/dist/tsc/api/HttpError.js.map +1 -0
  14. package/dist/{api → tsc/api}/ProviderApi.d.ts +1 -1
  15. package/dist/tsc/api/ProviderApi.d.ts.map +1 -0
  16. package/dist/tsc/api/ProviderApi.js +453 -0
  17. package/dist/tsc/api/ProviderApi.js.map +1 -0
  18. package/dist/tsc/api/apiClient.d.ts.map +1 -0
  19. package/dist/tsc/api/apiClient.js +11 -0
  20. package/dist/tsc/api/apiClient.js.map +1 -0
  21. package/dist/tsc/api/index.d.ts.map +1 -0
  22. package/dist/tsc/api/index.js +5 -0
  23. package/dist/tsc/api/index.js.map +1 -0
  24. package/dist/{index.d.ts.map → tsc/index.d.ts.map} +1 -1
  25. package/dist/tsc/index.js +2 -0
  26. package/dist/tsc/index.js.map +1 -0
  27. package/dist/{tests → tsc/tests}/api.test-d.d.ts.map +1 -1
  28. package/dist/tsc/tests/api.test-d.js.map +1 -0
  29. package/dist/tsc/tests/apiHarness.d.ts.map +1 -0
  30. package/dist/tsc/tests/apiHarness.js.map +1 -0
  31. package/dist/tsc/tests/httpClientBase.unit.test.d.ts.map +1 -0
  32. package/dist/tsc/tests/httpClientBase.unit.test.js.map +1 -0
  33. package/dist/tsc/tests/httpClientTimeout.unit.test.d.ts.map +1 -0
  34. package/dist/tsc/tests/httpClientTimeout.unit.test.js.map +1 -0
  35. package/dist/tsc/tests/providerApi.unit.test.d.ts.map +1 -0
  36. package/dist/tsc/tests/providerApi.unit.test.js.map +1 -0
  37. package/dist/types/api/HttpClientBase.d.ts +18 -0
  38. package/dist/types/api/HttpClientBase.d.ts.map +1 -0
  39. package/dist/types/api/HttpError.d.ts +7 -0
  40. package/dist/types/api/HttpError.d.ts.map +1 -0
  41. package/dist/types/api/ProviderApi.d.ts +47 -0
  42. package/dist/types/api/ProviderApi.d.ts.map +1 -0
  43. package/dist/types/api/apiClient.d.ts +6 -0
  44. package/dist/types/api/apiClient.d.ts.map +1 -0
  45. package/dist/types/api/index.d.ts +5 -0
  46. package/dist/types/api/index.d.ts.map +1 -0
  47. package/dist/types/index.d.ts +2 -0
  48. package/dist/types/index.d.ts.map +1 -0
  49. package/dist/types/tests/api.test-d.d.ts +2 -0
  50. package/dist/types/tests/api.test-d.d.ts.map +1 -0
  51. package/dist/types/tests/apiHarness.d.ts +25 -0
  52. package/dist/types/tests/apiHarness.d.ts.map +1 -0
  53. package/dist/types/tests/httpClientBase.unit.test.d.ts +2 -0
  54. package/dist/types/tests/httpClientBase.unit.test.d.ts.map +1 -0
  55. package/dist/types/tests/httpClientTimeout.unit.test.d.ts +2 -0
  56. package/dist/types/tests/httpClientTimeout.unit.test.d.ts.map +1 -0
  57. package/dist/types/tests/providerApi.unit.test.d.ts +2 -0
  58. package/dist/types/tests/providerApi.unit.test.d.ts.map +1 -0
  59. package/package.json +10 -11
  60. package/dist/api/HttpClientBase.d.ts.map +0 -1
  61. package/dist/api/HttpClientBase.js.map +0 -1
  62. package/dist/api/HttpError.d.ts.map +0 -1
  63. package/dist/api/HttpError.js.map +0 -1
  64. package/dist/api/ProviderApi.d.ts.map +0 -1
  65. package/dist/api/ProviderApi.js.map +0 -1
  66. package/dist/api/apiClient.d.ts.map +0 -1
  67. package/dist/api/apiClient.js.map +0 -1
  68. package/dist/api/index.d.ts.map +0 -1
  69. package/dist/api/index.js.map +0 -1
  70. package/dist/index.js.map +0 -1
  71. package/dist/tests/api.test-d.js.map +0 -1
  72. package/dist/tests/apiHarness.d.ts.map +0 -1
  73. package/dist/tests/apiHarness.js.map +0 -1
  74. package/dist/tests/httpClientBase.unit.test.d.ts.map +0 -1
  75. package/dist/tests/httpClientBase.unit.test.js.map +0 -1
  76. package/dist/tests/httpClientTimeout.unit.test.d.ts.map +0 -1
  77. package/dist/tests/httpClientTimeout.unit.test.js.map +0 -1
  78. package/dist/tests/providerApi.unit.test.d.ts.map +0 -1
  79. package/dist/tests/providerApi.unit.test.js.map +0 -1
  80. /package/dist/{_virtual → esm/_virtual}/_rolldown/runtime.js +0 -0
  81. /package/dist/{api → esm/api}/HttpClientBase.js +0 -0
  82. /package/dist/{api → esm/api}/HttpError.js +0 -0
  83. /package/dist/{api → esm/api}/apiClient.js +0 -0
  84. /package/dist/{api → esm/api}/index.js +0 -0
  85. /package/dist/{index.js → esm/index.js} +0 -0
  86. /package/dist/{api → tsc/api}/HttpClientBase.d.ts +0 -0
  87. /package/dist/{api → tsc/api}/HttpError.d.ts +0 -0
  88. /package/dist/{api → tsc/api}/apiClient.d.ts +0 -0
  89. /package/dist/{api → tsc/api}/index.d.ts +0 -0
  90. /package/dist/{index.d.ts → tsc/index.d.ts} +0 -0
  91. /package/dist/{tests → tsc/tests}/api.test-d.d.ts +0 -0
  92. /package/dist/{tests → tsc/tests}/api.test-d.js +0 -0
  93. /package/dist/{tests → tsc/tests}/apiHarness.d.ts +0 -0
  94. /package/dist/{tests → tsc/tests}/apiHarness.js +0 -0
  95. /package/dist/{tests → tsc/tests}/httpClientBase.unit.test.d.ts +0 -0
  96. /package/dist/{tests → tsc/tests}/httpClientBase.unit.test.js +0 -0
  97. /package/dist/{tests → tsc/tests}/httpClientTimeout.unit.test.d.ts +0 -0
  98. /package/dist/{tests → tsc/tests}/httpClientTimeout.unit.test.js +0 -0
  99. /package/dist/{tests → tsc/tests}/providerApi.unit.test.d.ts +0 -0
  100. /package/dist/{tests → tsc/tests}/providerApi.unit.test.js +0 -0
@@ -28,6 +28,6 @@ dist/cjs/api/apiClient.cjs 0.45 kB │ gzip: 0.26 kB
28
28
  dist/cjs/api/index.cjs 0.52 kB │ gzip: 0.18 kB
29
29
  dist/cjs/index.cjs 0.61 kB │ gzip: 0.24 kB
30
30
  dist/cjs/api/HttpClientBase.cjs 2.97 kB │ gzip: 0.78 kB
31
- dist/cjs/api/ProviderApi.cjs 18.56 kB │ gzip: 3.08 kB
31
+ dist/cjs/api/ProviderApi.cjs 18.76 kB │ gzip: 3.12 kB
32
32
 
33
- ✓ built in 86ms
33
+ ✓ built in 40ms
@@ -1,5 +1,4 @@
1
- $ pnpm run build:cross-env --mode ${NODE_ENV:-development}
2
- $ vite build --config vite.esm.config.ts --mode production
1
+ $ vite build --config vite.esm.config.ts --mode ${NODE_ENV:-development}
3
2
  ViteEsmConfig: .
4
3
  {
5
4
  tsConfigPaths: [
@@ -24,12 +23,12 @@ Bundle build started
24
23
  ✓ 7 modules transformed.
25
24
  rendering chunks...
26
25
  computing gzip size...
27
- dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
28
- dist/api/index.js 0.30 kB │ gzip: 0.15 kB
29
- dist/api/HttpError.js 0.32 kB │ gzip: 0.21 kB
30
- dist/index.js 0.36 kB │ gzip: 0.18 kB
31
- dist/api/apiClient.js 0.41 kB │ gzip: 0.25 kB
32
- dist/api/HttpClientBase.js 2.87 kB │ gzip: 0.78 kB
33
- dist/api/ProviderApi.js 16.59 kB │ gzip: 3.09 kB
26
+ dist/esm/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
27
+ dist/esm/api/index.js 0.30 kB │ gzip: 0.15 kB
28
+ dist/esm/api/HttpError.js 0.32 kB │ gzip: 0.21 kB
29
+ dist/esm/index.js 0.36 kB │ gzip: 0.18 kB
30
+ dist/esm/api/apiClient.js 0.41 kB │ gzip: 0.25 kB
31
+ dist/esm/api/HttpClientBase.js 2.87 kB │ gzip: 0.78 kB
32
+ dist/esm/api/ProviderApi.js 16.77 kB │ gzip: 3.13 kB
34
33
 
35
- ✓ built in 60ms
34
+ ✓ built in 40ms
@@ -1,5 +1,5 @@
1
1
  $ tsc --build --verbose
2
- 3:59:17 PM - Projects in this build:
2
+ 12:56:35 PM - Projects in this build:
3
3
  * ../../dev/config/tsconfig.json
4
4
  * ../util/tsconfig.json
5
5
  * ../locale/tsconfig.json
@@ -7,17 +7,17 @@ $ tsc --build --verbose
7
7
  * ../types/tsconfig.json
8
8
  * tsconfig.json
9
9
 
10
- 3:59:18 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'
10
+ 12:56:35 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/vite/vite.esm.config.ts' is older than output '../../dev/config/dist/tsc/tsconfig.tsbuildinfo'
11
11
 
12
- 3:59:18 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
12
+ 12:56:35 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'
13
13
 
14
- 3:59:18 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/tsconfig.tsbuildinfo'
14
+ 12:56:35 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translator.ts' is older than output '../locale/dist/tsc/tsconfig.tsbuildinfo'
15
15
 
16
- 3:59:18 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'
16
+ 12:56:35 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'
17
17
 
18
- 3:59:18 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'
18
+ 12:56:35 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'
19
19
 
20
- 3:59:18 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
20
+ 12:56:35 PM - Project 'tsconfig.json' is out of date because output file 'dist/tsc/tsconfig.tsbuildinfo' does not exist
21
21
 
22
- 3:59:18 PM - Building project '/home/runner/work/captcha/captcha/packages/api/tsconfig.json'...
22
+ 12:56:35 PM - Building project '/home/runner/work/captcha/captcha/packages/api/tsconfig.json'...
23
23
 
@@ -0,0 +1 @@
1
+ $ tsc --project tsconfig.types.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # @prosopo/api
2
2
 
3
+ ## 4.8.0
4
+ ### Minor Changes
5
+
6
+ - 78107d9: Record the fingerprint summary, and with it the device bucket, for every captcha type rather than only PoW.
7
+
8
+ The proof of fingerprint was only built by the PoW widget and only read when a PoW solution was submitted, so sessions served a puzzle or an image never had a bucket. About half of puzzle drags could only be given one by finding a PoW the same account had solved.
9
+
10
+ The widget now sends the proof with the frictionless request, best-effort and capped at a second so it never delays the captcha. The provider verifies and summarises it once, stores the summary on the session, and the PoW, puzzle and image records copy it from there. Escalation sessions inherit it. A proof sent with a PoW solution still replaces the one from the frictionless request.
11
+
12
+ The summary is only recorded at the frictionless step, not passed to the routing machine there, so existing `deviceBucket` counter rules keep firing where they did before.
13
+
14
+ ### Patch Changes
15
+
16
+ - d6cc6fe: Pages with more than one widget no longer make every widget after the first fail with `No session found`. The provider hands the same live session to every /frictionless call from one user, IP and site key, and the first challenge used it up, so each later widget got a 400 and had to fetch a new session; clicking several at once could run a widget out of retries and reset it. Each widget now sends a slot number (0, 1, 2, … in page order, capped at 15) and the provider keeps one session per slot. The first widget keeps the old dedup key, so single-widget pages are unchanged, and a reload still reuses each widget's own session.
17
+ - Updated dependencies [1966fc1]
18
+ - Updated dependencies [c69b636]
19
+ - Updated dependencies [78107d9]
20
+ - Updated dependencies [d6cc6fe]
21
+ - Updated dependencies [77bd891]
22
+ - Updated dependencies [76b6edd]
23
+ - @prosopo/types@5.20.0
24
+
25
+ ## 4.7.7
26
+ ### Patch Changes
27
+
28
+ - 2086040: Each kind of build now writes to its own folder under dist: dist/esm (vite ESM), dist/cjs (vite CommonJS), dist/types (declarations), dist/tsc (plain tsc), dist/bundle and dist/bundle-webpack (bundles) and dist/native (the Rust addons). Turbo caches each folder separately, so building one variant no longer overwrites or invalidates another. Package exports point at the new folders; anything importing a file from dist by path has to add the variant folder.
29
+
30
+ The Rust addons are no longer committed. They are built into dist/native, in debug for development and tests and fully optimised when NODE_ENV=production, so building them now needs a Rust toolchain.
31
+
32
+ Code that found the repo root or its certificates by climbing a fixed number of folders up from its own file now starts from its package's folder instead (new `packageDir` in @prosopo/util/node). The fixed count stopped working once the build output moved one folder deeper.
33
+ - Updated dependencies [2086040]
34
+ - Updated dependencies [915f30b]
35
+ - @prosopo/types@5.19.0
36
+
3
37
  ## 4.7.6
4
38
  ### Patch Changes
5
39
 
@@ -202,7 +202,7 @@ var ProviderApi = class extends require_apiClient.ApiClient {
202
202
  const body = { [_prosopo_types.ApiParams.dapp]: dapp };
203
203
  return this.post(_prosopo_types.ClientApiPaths.AssignDetectorBundle, body, { headers: { "Prosopo-Site-Key": this.account } });
204
204
  }
205
- async getFrictionlessCaptcha(token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl, iframeUrl, clientSessionId, refreshOf, switchToImage) {
205
+ async getFrictionlessCaptcha(token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl, iframeUrl, clientSessionId, refreshOf, switchToImage, fingerprintProof, widgetSlot) {
206
206
  const body = {
207
207
  [_prosopo_types.ApiParams.dapp]: dapp,
208
208
  [_prosopo_types.ApiParams.user]: user,
@@ -215,7 +215,9 @@ var ProviderApi = class extends require_apiClient.ApiClient {
215
215
  ...iframeUrl && { [_prosopo_types.ApiParams.iframeUrl]: iframeUrl },
216
216
  ...clientSessionId && { [_prosopo_types.ApiParams.clientSessionId]: clientSessionId },
217
217
  ...refreshOf && { [_prosopo_types.ApiParams.refreshOf]: refreshOf },
218
- ...refreshOf && switchToImage && { [_prosopo_types.ApiParams.switchToImage]: switchToImage }
218
+ ...refreshOf && switchToImage && { [_prosopo_types.ApiParams.switchToImage]: switchToImage },
219
+ ...fingerprintProof && { [_prosopo_types.ApiParams.fingerprintProof]: fingerprintProof },
220
+ ...widgetSlot !== void 0 && { [_prosopo_types.ApiParams.widgetSlot]: widgetSlot }
219
221
  };
220
222
  const { data, headers } = await this.postWithHeaders(_prosopo_types.ClientApiPaths.GetFrictionlessCaptchaChallenge, body, { headers: {
221
223
  "Prosopo-Site-Key": this.account,
@@ -202,7 +202,7 @@ var ProviderApi = class extends ApiClient {
202
202
  const body = { [ApiParams.dapp]: dapp };
203
203
  return this.post(ClientApiPaths.AssignDetectorBundle, body, { headers: { "Prosopo-Site-Key": this.account } });
204
204
  }
205
- async getFrictionlessCaptcha(token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl, iframeUrl, clientSessionId, refreshOf, switchToImage) {
205
+ async getFrictionlessCaptcha(token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl, iframeUrl, clientSessionId, refreshOf, switchToImage, fingerprintProof, widgetSlot) {
206
206
  const body = {
207
207
  [ApiParams.dapp]: dapp,
208
208
  [ApiParams.user]: user,
@@ -215,7 +215,9 @@ var ProviderApi = class extends ApiClient {
215
215
  ...iframeUrl && { [ApiParams.iframeUrl]: iframeUrl },
216
216
  ...clientSessionId && { [ApiParams.clientSessionId]: clientSessionId },
217
217
  ...refreshOf && { [ApiParams.refreshOf]: refreshOf },
218
- ...refreshOf && switchToImage && { [ApiParams.switchToImage]: switchToImage }
218
+ ...refreshOf && switchToImage && { [ApiParams.switchToImage]: switchToImage },
219
+ ...fingerprintProof && { [ApiParams.fingerprintProof]: fingerprintProof },
220
+ ...widgetSlot !== void 0 && { [ApiParams.widgetSlot]: widgetSlot }
219
221
  };
220
222
  const { data, headers } = await this.postWithHeaders(ClientApiPaths.GetFrictionlessCaptchaChallenge, body, { headers: {
221
223
  "Prosopo-Site-Key": this.account,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpClientBase.d.ts","sourceRoot":"","sources":["../../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAeA,qBAAa,cAAc;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAGnE,OAAO,EAAE,MAAM,EACf,MAAM,SAAK,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,cAAc,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAStD,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAYzE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;cAWlD,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAoB5D,IAAI,CAAC,CAAC,EAAE,CAAC,EACxB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;cAiCG,eAAe,CAAC,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;cA8BzB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IASlE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQpD;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { HttpError } from "./HttpError.js";
2
+ export class HttpClientBase {
3
+ constructor(baseURL, prefix = "", timeoutMs, defaultHeaders = {}) {
4
+ this.baseURL = baseURL + prefix;
5
+ this.timeoutMs = timeoutMs;
6
+ this.defaultHeaders = defaultHeaders;
7
+ }
8
+ withDefaultHeaders(init) {
9
+ if (Object.keys(this.defaultHeaders).length === 0) {
10
+ return init;
11
+ }
12
+ return {
13
+ ...init,
14
+ headers: { ...this.defaultHeaders, ...(init?.headers || {}) },
15
+ };
16
+ }
17
+ withTimeout(init) {
18
+ if (this.timeoutMs === undefined) {
19
+ return init;
20
+ }
21
+ const timeout = AbortSignal.timeout(this.timeoutMs);
22
+ const signal = init?.signal
23
+ ? AbortSignal.any([init.signal, timeout])
24
+ : timeout;
25
+ return { ...init, signal };
26
+ }
27
+ async fetch(input, init) {
28
+ try {
29
+ const response = await fetch(this.baseURL + input, this.withTimeout(this.withDefaultHeaders(init)));
30
+ if (!response.ok &&
31
+ response.status !== 400 &&
32
+ !response.headers.get("content-type")?.includes("application/json")) {
33
+ throw new HttpError(response.status, response.statusText, response.url);
34
+ }
35
+ return this.responseHandler(response);
36
+ }
37
+ catch (error) {
38
+ return this.errorHandler(error);
39
+ }
40
+ }
41
+ async post(input, body, init) {
42
+ const headers = {
43
+ "Content-Type": "application/json",
44
+ ...this.defaultHeaders,
45
+ ...(init?.headers || {}),
46
+ };
47
+ try {
48
+ const response = await fetch(this.baseURL + input, this.withTimeout({
49
+ method: "POST",
50
+ body: JSON.stringify(body),
51
+ ...init,
52
+ headers,
53
+ }));
54
+ if (!response.ok &&
55
+ response.status !== 400 &&
56
+ !response.headers.get("content-type")?.includes("application/json")) {
57
+ throw new HttpError(response.status, response.statusText, response.url);
58
+ }
59
+ return this.responseHandler(response);
60
+ }
61
+ catch (error) {
62
+ return this.errorHandler(error);
63
+ }
64
+ }
65
+ async postWithHeaders(input, body, init) {
66
+ const headers = {
67
+ "Content-Type": "application/json",
68
+ ...this.defaultHeaders,
69
+ ...(init?.headers || {}),
70
+ };
71
+ try {
72
+ const response = await fetch(this.baseURL + input, this.withTimeout({
73
+ method: "POST",
74
+ body: JSON.stringify(body),
75
+ ...init,
76
+ headers,
77
+ }));
78
+ if (!response.ok &&
79
+ response.status !== 400 &&
80
+ !response.headers.get("content-type")?.includes("application/json")) {
81
+ throw new HttpError(response.status, response.statusText, response.url);
82
+ }
83
+ const data = await this.responseHandler(response);
84
+ return { data, headers: response.headers };
85
+ }
86
+ catch (error) {
87
+ return this.errorHandler(error);
88
+ }
89
+ }
90
+ async responseHandler(response) {
91
+ try {
92
+ return await response.json();
93
+ }
94
+ catch (error) {
95
+ console.error("Error parsing JSON:", error);
96
+ throw error;
97
+ }
98
+ }
99
+ errorHandler(error) {
100
+ if (error instanceof HttpError) {
101
+ console.error("HTTP error:", error);
102
+ }
103
+ else {
104
+ console.error("API request error:", error);
105
+ }
106
+ return Promise.reject(error);
107
+ }
108
+ }
109
+ export default HttpClientBase;
110
+ //# sourceMappingURL=HttpClientBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpClientBase.js","sourceRoot":"","sources":["../../../src/api/HttpClientBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpError.d.ts","sourceRoot":"","sources":["../../../src/api/HttpError.ts"],"names":[],"mappings":"AAaA,qBAAa,SAAU,SAAQ,KAAK;IAE3B,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,GAAG,EAAE,MAAM;gBAFX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM;CAKnB"}
@@ -0,0 +1,10 @@
1
+ export class HttpError extends Error {
2
+ constructor(status, statusText, url) {
3
+ super(`HTTP error! status: ${status} (${statusText}) for URL: ${url}`);
4
+ this.status = status;
5
+ this.statusText = statusText;
6
+ this.url = url;
7
+ this.name = "HttpError";
8
+ }
9
+ }
10
+ //# sourceMappingURL=HttpError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../../src/api/HttpError.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,SAAU,SAAQ,KAAK;IACnC,YACQ,MAAc,EACd,UAAkB,EAClB,GAAW;QAElB,KAAK,CAAC,uBAAuB,MAAM,KAAK,UAAU,cAAc,GAAG,EAAE,CAAC,CAAC;QAJhE,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,QAAG,GAAH,GAAG,CAAQ;QAGlB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IACzB,CAAC;CACD"}
@@ -25,7 +25,7 @@ export default class ProviderApi extends ApiClient implements ProviderApiInterfa
25
25
  submitAudioCaptchaSolution(challenge: GetAudioCaptchaResponse, userAccount: string, dappAccount: string, answer: string, replays: number, audioEvents: AudioEvent[], userTimestampSignature: string, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<AudioCaptchaSolutionResponse>;
26
26
  submitIconOrderCaptchaSolution(challenge: GetIconOrderCaptchaResponse, userAccount: string, dappAccount: string, clicks: IconClick[], iconOrderEvents: IconOrderEvent[], userTimestampSignature: string, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<IconOrderCaptchaSolutionResponse>;
27
27
  assignDetectorBundle(dapp: string): Promise<AssignDetectorBundleResponse>;
28
- getFrictionlessCaptcha(token: string | undefined, headHash: string | undefined, dapp: string, user: string, mode?: ModeEnum, simdReadings?: string, detectorSessionId?: string, currentUrl?: string, iframeUrl?: string, clientSessionId?: string, refreshOf?: string, switchToImage?: boolean): Promise<GetFrictionlessCaptchaResponse>;
28
+ getFrictionlessCaptcha(token: string | undefined, headHash: string | undefined, dapp: string, user: string, mode?: ModeEnum, simdReadings?: string, detectorSessionId?: string, currentUrl?: string, iframeUrl?: string, clientSessionId?: string, refreshOf?: string, switchToImage?: boolean, fingerprintProof?: string, widgetSlot?: number): Promise<GetFrictionlessCaptchaResponse>;
29
29
  submitUserEvents(events: StoredEvents, string: string): Promise<UpdateProviderClientsResponse>;
30
30
  getProviderStatus(): Promise<ProviderRegistered>;
31
31
  getProviderDetails(): Promise<Provider>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderApi.d.ts","sourceRoot":"","sources":["../../../src/api/ProviderApi.ts"],"names":[],"mappings":"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"}