@prosopo/api 1.0.1 → 2.0.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 +1 @@
1
- {"version":3,"file":"HttpClientBase.d.ts","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAeA,qBAAa,cAAc;IACvB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK;cAIxB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAY5D,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAkBvE,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;CAQvD;AAED,eAAe,cAAc,CAAA"}
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;gBAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK;cAIxB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAY5D,IAAI,CAAC,CAAC,EAAE,CAAC,EACxB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;cAqBG,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"}
@@ -1,6 +1,6 @@
1
- import { HttpError } from './HttpError.js';
1
+ import { HttpError } from "./HttpError.js";
2
2
  export class HttpClientBase {
3
- constructor(baseURL, prefix = '') {
3
+ constructor(baseURL, prefix = "") {
4
4
  this.baseURL = baseURL + prefix;
5
5
  }
6
6
  async fetch(input, init) {
@@ -16,10 +16,13 @@ export class HttpClientBase {
16
16
  }
17
17
  }
18
18
  async post(input, body, init) {
19
- const headers = { 'Content-Type': 'application/json', ...(init?.headers || {}) };
19
+ const headers = {
20
+ "Content-Type": "application/json",
21
+ ...(init?.headers || {}),
22
+ };
20
23
  try {
21
24
  const response = await fetch(this.baseURL + input, {
22
- method: 'POST',
25
+ method: "POST",
23
26
  body: JSON.stringify(body),
24
27
  headers,
25
28
  ...init,
@@ -38,16 +41,16 @@ export class HttpClientBase {
38
41
  return await response.json();
39
42
  }
40
43
  catch (error) {
41
- console.error('Error parsing JSON:', error);
44
+ console.error("Error parsing JSON:", error);
42
45
  throw error;
43
46
  }
44
47
  }
45
48
  errorHandler(error) {
46
49
  if (error instanceof HttpError) {
47
- console.error('HTTP error:', error);
50
+ console.error("HTTP error:", error);
48
51
  }
49
52
  else {
50
- console.error('API request error:', error);
53
+ console.error("API request error:", error);
51
54
  }
52
55
  return Promise.reject(error);
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientBase.js","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,OAAO,cAAc;IAGvB,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;IACnC,CAAC;IAES,KAAK,CAAC,KAAK,CAAI,KAAkB,EAAE,IAAkB;QAC3D,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;YACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACd,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;aAC1E;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAA;SAC3C;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAA;SAC3C;IACL,CAAC;IAES,KAAK,CAAC,IAAI,CAAO,KAAkB,EAAE,IAAO,EAAE,IAAkB;QACtE,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAA;QAChF,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,OAAO;gBACP,GAAG,IAAI;aACV,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACd,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;aAC1E;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAA;SAC3C;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAA;SAC3C;IACL,CAAC;IAES,KAAK,CAAC,eAAe,CAAI,QAAkB;QACjD,IAAI;YACA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;SAC/B;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;SACd;IACL,CAAC;IAES,YAAY,CAAC,KAAY;QAC/B,IAAI,KAAK,YAAY,SAAS,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;SACtC;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;SAC7C;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;CACJ;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"HttpClientBase.js","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,cAAc;IAG1B,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,KAAK,CAAI,KAAkB,EAAE,IAAkB;QAC9D,IAAI;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;aACxE;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;SACzC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CACnB,KAAkB,EAClB,IAAO,EACP,IAAkB;QAElB,MAAM,OAAO,GAAG;YACf,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACxB,CAAC;QACF,IAAI;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,OAAO;gBACP,GAAG,IAAI;aACP,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;aACxE;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;SACzC;IACF,CAAC;IAES,KAAK,CAAC,eAAe,CAAI,QAAkB;QACpD,IAAI;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC7B;QAAC,OAAO,KAAK,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;SACZ;IACF,CAAC;IAES,YAAY,CAAC,KAAY;QAClC,IAAI,KAAK,YAAY,SAAS,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;SACpC;aAAM;YACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SAC3C;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD;AAED,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HttpError.d.ts","sourceRoot":"","sources":["../../src/api/HttpError.ts"],"names":[],"mappings":"AAaA,qBAAa,SAAU,SAAQ,KAAK;IAErB,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,GAAG,EAAE,MAAM;gBAFX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM;CAKzB"}
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"}
@@ -4,7 +4,7 @@ export class HttpError extends Error {
4
4
  this.status = status;
5
5
  this.statusText = statusText;
6
6
  this.url = url;
7
- this.name = 'HttpError';
7
+ this.name = "HttpError";
8
8
  }
9
9
  }
10
10
  //# sourceMappingURL=HttpError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../src/api/HttpError.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChC,YACW,MAAc,EACd,UAAkB,EAClB,GAAW;QAElB,KAAK,CAAC,uBAAuB,MAAM,KAAK,UAAU,cAAc,GAAG,EAAE,CAAC,CAAA;QAJ/D,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,QAAG,GAAH,GAAG,CAAQ;QAGlB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IAC3B,CAAC;CACJ"}
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"}
@@ -1,18 +1,16 @@
1
- import { AccountId } from '@prosopo/captcha-contract';
2
- import { CaptchaResponseBody, CaptchaSolution, CaptchaSolutionResponse, GetPowCaptchaResponse, ImageVerificationResponse, NetworkConfig, PowCaptchaSolutionResponse, ProcaptchaToken, ProviderRegistered, StoredEvents, VerificationResponse } from '@prosopo/types';
3
- import { Provider, RandomProvider } from '@prosopo/captcha-contract/types-returns';
4
- import HttpClientBase from './HttpClientBase.js';
1
+ import { type CaptchaResponseBody, type CaptchaSolution, type CaptchaSolutionResponse, type GetPowCaptchaResponse, type ImageVerificationResponse, type NetworkConfig, type PowCaptchaSolutionResponse, type ProcaptchaToken, type Provider, type ProviderRegistered, type RandomProvider, type StoredEvents, type VerificationResponse } from "@prosopo/types";
2
+ import HttpClientBase from "./HttpClientBase.js";
5
3
  export default class ProviderApi extends HttpClientBase implements ProviderApi {
6
4
  private network;
7
5
  private account;
8
- constructor(network: NetworkConfig, providerUrl: string, account: AccountId);
9
- getCaptchaChallenge(userAccount: AccountId, randomProvider: RandomProvider): Promise<CaptchaResponseBody>;
10
- submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: AccountId, salt: string, signature?: string): Promise<CaptchaSolutionResponse>;
6
+ constructor(network: NetworkConfig, providerUrl: string, account: string);
7
+ getCaptchaChallenge(userAccount: string, randomProvider: RandomProvider): Promise<CaptchaResponseBody>;
8
+ submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, salt: string, timestamp: string, providerTimestampSignature: string, userRequestHashSignature: string): Promise<CaptchaSolutionResponse>;
11
9
  verifyDappUser(token: ProcaptchaToken, dappUserSignature: string, maxVerifiedTime?: number): Promise<ImageVerificationResponse>;
12
10
  verifyUser(token: ProcaptchaToken, dappUserSignature: string, maxVerifiedTime?: number): Promise<ImageVerificationResponse>;
13
- getPowCaptchaChallenge(user: AccountId, dapp: AccountId): Promise<GetPowCaptchaResponse>;
14
- submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: AccountId, dappAccount: AccountId, randomProvider: RandomProvider, nonce: number, timeout?: number): Promise<PowCaptchaSolutionResponse>;
15
- submitUserEvents(events: StoredEvents, accountId: AccountId): Promise<unknown>;
11
+ getPowCaptchaChallenge(user: string, dapp: string): Promise<GetPowCaptchaResponse>;
12
+ submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, timeout?: number): Promise<PowCaptchaSolutionResponse>;
13
+ submitUserEvents(events: StoredEvents, string: string): Promise<unknown>;
16
14
  getProviderStatus(): Promise<ProviderRegistered>;
17
15
  getProviderDetails(): Promise<Provider>;
18
16
  submitPowCaptchaVerify(token: string, signatureHex: string, recencyLimit: number): Promise<VerificationResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderApi.d.ts","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAGH,mBAAmB,EACnB,eAAe,EAGf,uBAAuB,EAEvB,qBAAqB,EACrB,yBAAyB,EACzB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,EAElB,YAAY,EAEZ,oBAAoB,EAEvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAEhD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAe,YAAW,WAAW;IAC1E,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IASpE,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASzG,qBAAqB,CACxB,QAAQ,EAAE,eAAe,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,uBAAuB,CAAC;IAY5B,cAAc,CACjB,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,yBAAyB,CAAC;IAY9B,UAAU,CACb,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,yBAAyB,CAAC;IAU9B,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQxF,wBAAwB,CAC3B,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,SAAS,EACtB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,0BAA0B,CAAC;IAgB/B,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS;IAI3D,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIhD,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIvC,sBAAsB,CACzB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC;CAQnC"}
1
+ {"version":3,"file":"ProviderApi.d.ts","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGpB,KAAK,uBAAuB,EAE5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAEnB,KAAK,YAAY,EAEjB,KAAK,oBAAoB,EAE1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAe,YAAW,WAAW;IAC5E,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IASjE,mBAAmB,CACxB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IASxB,qBAAqB,CAC1B,QAAQ,EAAE,eAAe,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM,EAClC,wBAAwB,EAAE,MAAM,GAC/B,OAAO,CAAC,uBAAuB,CAAC;IAqB5B,cAAc,CACnB,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAY9B,UAAU,CACf,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAU9B,sBAAsB,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAQ1B,wBAAwB,CAC7B,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,sBAAsB,EAAE,MAAM,EAC9B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,0BAA0B,CAAC;IAoB/B,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAIrD,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIhD,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIvC,sBAAsB,CAC3B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;CAQjC"}
@@ -1,28 +1,36 @@
1
- import { ApiParams, ApiPaths, CaptchaSolutionBody, SubmitPowCaptchaSolutionBody, } from '@prosopo/types';
2
- import HttpClientBase from './HttpClientBase.js';
1
+ import { ApiParams, ApiPaths, CaptchaSolutionBody, SubmitPowCaptchaSolutionBody, } from "@prosopo/types";
2
+ import HttpClientBase from "./HttpClientBase.js";
3
3
  export default class ProviderApi extends HttpClientBase {
4
4
  constructor(network, providerUrl, account) {
5
- if (!providerUrl.startsWith('http')) {
6
- providerUrl = `https://${providerUrl}`;
7
- }
8
- super(providerUrl);
5
+ const providerUrlWithProtocol = !providerUrl.startsWith("http")
6
+ ? `https://${providerUrl}`
7
+ : providerUrl;
8
+ super(providerUrlWithProtocol);
9
9
  this.network = network;
10
10
  this.account = account;
11
11
  }
12
12
  getCaptchaChallenge(userAccount, randomProvider) {
13
13
  const { provider, blockNumber } = randomProvider;
14
14
  const dappAccount = this.account;
15
- const url = `${ApiPaths.GetImageCaptchaChallenge}/${provider.datasetId}/${userAccount}/${dappAccount}/${blockNumber.toString().replace(/,/g, '')}`;
15
+ const url = `${ApiPaths.GetImageCaptchaChallenge}/${provider.datasetId}/${userAccount}/${dappAccount}/${blockNumber.toString().replace(/,/g, "")}`;
16
16
  return this.fetch(url);
17
17
  }
18
- submitCaptchaSolution(captchas, requestHash, userAccount, salt, signature) {
18
+ submitCaptchaSolution(captchas, requestHash, userAccount, salt, timestamp, providerTimestampSignature, userRequestHashSignature) {
19
19
  const captchaSolutionBody = CaptchaSolutionBody.parse({
20
20
  captchas,
21
21
  requestHash,
22
22
  [ApiParams.user]: userAccount,
23
23
  [ApiParams.dapp]: this.account,
24
24
  salt,
25
- signature,
25
+ [ApiParams.timestamp]: timestamp,
26
+ [ApiParams.signature]: {
27
+ [ApiParams.user]: {
28
+ [ApiParams.requestHash]: userRequestHashSignature,
29
+ },
30
+ [ApiParams.provider]: {
31
+ [ApiParams.timestamp]: providerTimestampSignature,
32
+ },
33
+ },
26
34
  });
27
35
  return this.post(ApiPaths.SubmitImageCaptchaSolution, captchaSolutionBody);
28
36
  }
@@ -51,22 +59,26 @@ export default class ProviderApi extends HttpClientBase {
51
59
  };
52
60
  return this.post(ApiPaths.GetPowCaptchaChallenge, body);
53
61
  }
54
- submitPowCaptchaSolution(challenge, userAccount, dappAccount, randomProvider, nonce, timeout) {
55
- const { blockNumber } = randomProvider;
62
+ submitPowCaptchaSolution(challenge, userAccount, dappAccount, nonce, userTimestampSignature, timeout) {
56
63
  const body = SubmitPowCaptchaSolutionBody.parse({
57
- [ApiParams.blockNumber]: blockNumber,
58
64
  [ApiParams.challenge]: challenge.challenge,
59
65
  [ApiParams.difficulty]: challenge.difficulty,
60
- [ApiParams.signature]: challenge.signature,
66
+ [ApiParams.timestamp]: challenge.timestamp,
61
67
  [ApiParams.user]: userAccount.toString(),
62
68
  [ApiParams.dapp]: dappAccount.toString(),
63
69
  [ApiParams.nonce]: nonce,
64
70
  [ApiParams.verifiedTimeout]: timeout,
71
+ [ApiParams.signature]: {
72
+ [ApiParams.provider]: challenge[ApiParams.signature][ApiParams.provider],
73
+ [ApiParams.user]: {
74
+ [ApiParams.timestamp]: userTimestampSignature,
75
+ },
76
+ },
65
77
  });
66
78
  return this.post(ApiPaths.SubmitPowCaptchaSolution, body);
67
79
  }
68
- submitUserEvents(events, accountId) {
69
- return this.post(ApiPaths.SubmitUserEvents, { events, accountId });
80
+ submitUserEvents(events, string) {
81
+ return this.post(ApiPaths.SubmitUserEvents, { events, string });
70
82
  }
71
83
  getProviderStatus() {
72
84
  return this.fetch(ApiPaths.GetProviderStatus);
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderApi.js","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProviderApi.js","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,SAAS,EACT,QAAQ,EAGR,mBAAmB,EAcnB,4BAA4B,GAG7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAc;IAIrD,YAAY,OAAsB,EAAE,WAAmB,EAAE,OAAe;QACtE,MAAM,uBAAuB,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;YAC7D,CAAC,CAAC,WAAW,WAAW,EAAE;YAC1B,CAAC,CAAC,WAAW,CAAC;QAChB,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,mBAAmB,CACxB,WAAmB,EACnB,cAA8B;QAE9B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,wBAAwB,IAC9C,QAAQ,CAAC,SACX,IAAI,WAAW,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEM,qBAAqB,CAC1B,QAA2B,EAC3B,WAAmB,EACnB,WAAmB,EACnB,IAAY,EACZ,SAAiB,EACjB,0BAAkC,EAClC,wBAAgC;QAEhC,MAAM,mBAAmB,GACvB,mBAAmB,CAAC,KAAK,CAAC;YACxB,QAAQ;YACR,WAAW;YACX,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW;YAC7B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO;YAC9B,IAAI;YACJ,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS;YAChC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBACrB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAChB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,wBAAwB;iBAClD;gBACD,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACpB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,0BAA0B;iBAClD;aACF;SACF,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAC;IAC7E,CAAC;IAEM,cAAc,CACnB,KAAsB,EACtB,iBAAyB,EACzB,eAAwB;QAExB,MAAM,OAAO,GAAgC;YAC3C,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK;YACxB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;SACjD,CAAC;QACF,IAAI,eAAe,EAAE;YACnB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;SACtD;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,UAAU,CACf,KAAsB,EACtB,iBAAyB,EACzB,eAAwB;QAExB,MAAM,OAAO,GAAgC;YAC3C,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK;YACxB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;YAChD,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;SACzE,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,sBAAsB,CAC3B,IAAY,EACZ,IAAY;QAEZ,MAAM,IAAI,GAA0C;YAClD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;YACjC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;SAClC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,wBAAwB,CAC7B,SAAgC,EAChC,WAAmB,EACnB,WAAmB,EACnB,KAAa,EACb,sBAA8B,EAC9B,OAAgB;QAEhB,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,CAAC;YAC9C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS;YAC1C,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU;YAC5C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS;YAC1C,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE;YACxC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE;YACxC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK;YACxB,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,OAAO;YACpC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBACrB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAClB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACpD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAChB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,sBAAsB;iBAC9C;aACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEM,gBAAgB,CAAC,MAAoB,EAAE,MAAc;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAEM,sBAAsB,CAC3B,KAAa,EACb,YAAoB,EACpB,YAAoB;QAEpB,MAAM,IAAI,GAA0C;YAClD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK;YACxB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY;YACvC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,YAAY;SAC1C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF"}
@@ -1,3 +1,3 @@
1
- export * from './HttpClientBase.js';
2
- export { default as ProviderApi } from './ProviderApi.js';
1
+ export * from "./HttpClientBase.js";
2
+ export { default as ProviderApi } from "./ProviderApi.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAaA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAaA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/api/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from './HttpClientBase.js';
2
- export { default as ProviderApi } from './ProviderApi.js';
1
+ export * from "./HttpClientBase.js";
2
+ export { default as ProviderApi } from "./ProviderApi.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAaA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAaA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -17,7 +17,10 @@ class HttpClientBase {
17
17
  }
18
18
  }
19
19
  async post(input, body, init) {
20
- const headers = { "Content-Type": "application/json", ...init?.headers || {} };
20
+ const headers = {
21
+ "Content-Type": "application/json",
22
+ ...init?.headers || {}
23
+ };
21
24
  try {
22
25
  const response = await fetch(this.baseURL + input, {
23
26
  method: "POST",
@@ -3,10 +3,8 @@ const types = require("@prosopo/types");
3
3
  const HttpClientBase = require("./HttpClientBase.cjs");
4
4
  class ProviderApi extends HttpClientBase.HttpClientBase {
5
5
  constructor(network, providerUrl, account) {
6
- if (!providerUrl.startsWith("http")) {
7
- providerUrl = `https://${providerUrl}`;
8
- }
9
- super(providerUrl);
6
+ const providerUrlWithProtocol = !providerUrl.startsWith("http") ? `https://${providerUrl}` : providerUrl;
7
+ super(providerUrlWithProtocol);
10
8
  this.network = network;
11
9
  this.account = account;
12
10
  }
@@ -16,14 +14,22 @@ class ProviderApi extends HttpClientBase.HttpClientBase {
16
14
  const url = `${types.ApiPaths.GetImageCaptchaChallenge}/${provider.datasetId}/${userAccount}/${dappAccount}/${blockNumber.toString().replace(/,/g, "")}`;
17
15
  return this.fetch(url);
18
16
  }
19
- submitCaptchaSolution(captchas, requestHash, userAccount, salt, signature) {
17
+ submitCaptchaSolution(captchas, requestHash, userAccount, salt, timestamp, providerTimestampSignature, userRequestHashSignature) {
20
18
  const captchaSolutionBody = types.CaptchaSolutionBody.parse({
21
19
  captchas,
22
20
  requestHash,
23
21
  [types.ApiParams.user]: userAccount,
24
22
  [types.ApiParams.dapp]: this.account,
25
23
  salt,
26
- signature
24
+ [types.ApiParams.timestamp]: timestamp,
25
+ [types.ApiParams.signature]: {
26
+ [types.ApiParams.user]: {
27
+ [types.ApiParams.requestHash]: userRequestHashSignature
28
+ },
29
+ [types.ApiParams.provider]: {
30
+ [types.ApiParams.timestamp]: providerTimestampSignature
31
+ }
32
+ }
27
33
  });
28
34
  return this.post(types.ApiPaths.SubmitImageCaptchaSolution, captchaSolutionBody);
29
35
  }
@@ -52,23 +58,26 @@ class ProviderApi extends HttpClientBase.HttpClientBase {
52
58
  };
53
59
  return this.post(types.ApiPaths.GetPowCaptchaChallenge, body);
54
60
  }
55
- submitPowCaptchaSolution(challenge, userAccount, dappAccount, randomProvider, nonce, timeout) {
56
- const { blockNumber } = randomProvider;
61
+ submitPowCaptchaSolution(challenge, userAccount, dappAccount, nonce, userTimestampSignature, timeout) {
57
62
  const body = types.SubmitPowCaptchaSolutionBody.parse({
58
- [types.ApiParams.blockNumber]: blockNumber,
59
63
  [types.ApiParams.challenge]: challenge.challenge,
60
64
  [types.ApiParams.difficulty]: challenge.difficulty,
61
- [types.ApiParams.signature]: challenge.signature,
62
- // TODO add utility to convert `AccountId` to string
65
+ [types.ApiParams.timestamp]: challenge.timestamp,
63
66
  [types.ApiParams.user]: userAccount.toString(),
64
67
  [types.ApiParams.dapp]: dappAccount.toString(),
65
68
  [types.ApiParams.nonce]: nonce,
66
- [types.ApiParams.verifiedTimeout]: timeout
69
+ [types.ApiParams.verifiedTimeout]: timeout,
70
+ [types.ApiParams.signature]: {
71
+ [types.ApiParams.provider]: challenge[types.ApiParams.signature][types.ApiParams.provider],
72
+ [types.ApiParams.user]: {
73
+ [types.ApiParams.timestamp]: userTimestampSignature
74
+ }
75
+ }
67
76
  });
68
77
  return this.post(types.ApiPaths.SubmitPowCaptchaSolution, body);
69
78
  }
70
- submitUserEvents(events, accountId) {
71
- return this.post(types.ApiPaths.SubmitUserEvents, { events, accountId });
79
+ submitUserEvents(events, string) {
80
+ return this.post(types.ApiPaths.SubmitUserEvents, { events, string });
72
81
  }
73
82
  getProviderStatus() {
74
83
  return this.fetch(types.ApiPaths.GetProviderStatus);
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './api/index.js';
1
+ export * from "./api/index.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from './api/index.js';
1
+ export * from "./api/index.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,49 +1,42 @@
1
1
  {
2
- "name": "@prosopo/api",
3
- "version": "1.0.1",
4
- "description": "Wrapper for the provider API",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "engines": {
8
- "node": ">=18",
9
- "npm": ">=9"
10
- },
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.js",
14
- "require": "./dist/cjs/index.cjs"
15
- }
16
- },
17
- "scripts": {
18
- "test": "echo \"No test specified\"",
19
- "clean": "tsc --build --clean",
20
- "build": "tsc --build --verbose",
21
- "build:cjs": "npx vite --config vite.cjs.config.ts build",
22
- "eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore --quiet",
23
- "eslint:fix": "npm run eslint -- --fix",
24
- "prettier": "npx prettier . --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
25
- "prettier:fix": "npm run prettier -- --write",
26
- "lint": "npm run eslint && npm run prettier",
27
- "lint:fix": "npm run eslint:fix && npm run prettier:fix"
28
- },
29
- "repository": {
30
- "type": "git",
31
- "url": "git+https://github.com/prosopo/captcha.git"
32
- },
33
- "author": "PROSOPO LIMITED <info@prosopo.io>",
34
- "license": "Apache-2.0",
35
- "bugs": {
36
- "url": "https://github.com/prosopo/captcha/issues"
37
- },
38
- "homepage": "https://github.com/prosopo/captcha#readme",
39
- "dependencies": {
40
- "@prosopo/types": "1.0.1"
41
- },
42
- "devDependencies": {
43
- "@prosopo/captcha-contract": "1.0.1",
44
- "@prosopo/config": "1.0.1",
45
- "tslib": "2.6.2",
46
- "typescript": "5.1.6"
47
- },
48
- "sideEffects": false
2
+ "name": "@prosopo/api",
3
+ "version": "2.0.0",
4
+ "description": "Wrapper for the provider API",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=20",
9
+ "npm": ">=9"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "require": "./dist/cjs/index.cjs"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "test": "echo \"No test specified\"",
19
+ "clean": "tsc --build --clean",
20
+ "build": "tsc --build --verbose",
21
+ "build:cjs": "npx vite --config vite.cjs.config.ts build"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/prosopo/captcha.git"
26
+ },
27
+ "author": "PROSOPO LIMITED <info@prosopo.io>",
28
+ "license": "Apache-2.0",
29
+ "bugs": {
30
+ "url": "https://github.com/prosopo/captcha/issues"
31
+ },
32
+ "homepage": "https://github.com/prosopo/captcha#readme",
33
+ "dependencies": {
34
+ "@prosopo/types": "2.0.0"
35
+ },
36
+ "devDependencies": {
37
+ "@prosopo/config": "2.0.0",
38
+ "tslib": "2.6.2",
39
+ "typescript": "5.1.6"
40
+ },
41
+ "sideEffects": false
49
42
  }
@@ -1,3 +1,4 @@
1
+ import path from "node:path";
1
2
  // Copyright 2021-2024 Prosopo (UK) Ltd.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,9 +12,8 @@
11
12
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
13
  // See the License for the specific language governing permissions and
13
14
  // limitations under the License.
14
- import { ViteCommonJSConfig } from '@prosopo/config'
15
- import path from 'path'
15
+ import { ViteCommonJSConfig } from "@prosopo/config";
16
16
 
17
17
  export default function () {
18
- return ViteCommonJSConfig('api', path.resolve('./tsconfig.cjs.json'))
18
+ return ViteCommonJSConfig("api", path.resolve("./tsconfig.cjs.json"));
19
19
  }
package/typedoc.config.js DELETED
@@ -1,19 +0,0 @@
1
- // Copyright 2021-2024 Prosopo (UK) Ltd.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- export default {
15
- entryPoints: ['src/**/*.ts', 'src/**/*.tsx', 'src/**/*.js', 'src/**/*.jsx', 'src/**/*.json'],
16
- includes: 'src',
17
- extends: '../../typedoc.base.config.js',
18
- readme: 'README.md',
19
- }