@0xpolygonid/js-sdk 1.17.4 → 1.17.6

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.
@@ -21,45 +21,29 @@ class Query {
21
21
  throw new Error(CircuitError.EmptyQueryValue);
22
22
  }
23
23
  validateValueArraySize(maxArrSize) {
24
- switch (this.values.length) {
25
- case 0: {
26
- const zeroArrSizeOps = [comparer_1.Operators.NOOP, comparer_1.Operators.SD, comparer_1.Operators.NULLIFY];
27
- if (!zeroArrSizeOps.includes(this.operator)) {
28
- throw new Error(CircuitError.InvalidValuesArrSize);
29
- }
30
- return;
31
- }
32
- case 1: {
33
- const oneArrSizeOps = [
34
- comparer_1.Operators.EQ,
35
- comparer_1.Operators.LT,
36
- comparer_1.Operators.GT,
37
- comparer_1.Operators.NE,
38
- comparer_1.Operators.LTE,
39
- comparer_1.Operators.GTE,
40
- comparer_1.Operators.EXISTS
41
- ];
42
- if (!oneArrSizeOps.includes(this.operator)) {
43
- throw new Error(CircuitError.InvalidValuesArrSize);
44
- }
45
- return;
46
- }
47
- case 2: {
48
- const twoArrSizeOps = [comparer_1.Operators.BETWEEN, comparer_1.Operators.NONBETWEEN];
49
- if (!twoArrSizeOps.includes(this.operator)) {
50
- throw new Error(CircuitError.InvalidValuesArrSize);
51
- }
52
- return;
53
- }
54
- default: {
55
- const maxArrSizeOps = [comparer_1.Operators.IN, comparer_1.Operators.NIN];
56
- if (!maxArrSizeOps.includes(this.operator)) {
57
- throw new Error(CircuitError.InvalidOperationType);
58
- }
59
- if (!this.values.length || this.values.length > maxArrSize) {
60
- throw new Error(CircuitError.InvalidValuesArrSize);
61
- }
62
- }
24
+ if ([comparer_1.Operators.NOOP, comparer_1.Operators.SD, comparer_1.Operators.NULLIFY].includes(this.operator) &&
25
+ this.values.length !== 0) {
26
+ throw new Error(CircuitError.InvalidValuesArrSize);
27
+ }
28
+ else if ([
29
+ comparer_1.Operators.EQ,
30
+ comparer_1.Operators.LT,
31
+ comparer_1.Operators.GT,
32
+ comparer_1.Operators.NE,
33
+ comparer_1.Operators.LTE,
34
+ comparer_1.Operators.GTE,
35
+ comparer_1.Operators.EXISTS
36
+ ].includes(this.operator) &&
37
+ this.values.length !== 1) {
38
+ throw new Error(CircuitError.InvalidValuesArrSize);
39
+ }
40
+ else if ([comparer_1.Operators.BETWEEN, comparer_1.Operators.NONBETWEEN].includes(this.operator) &&
41
+ this.values.length !== 2) {
42
+ throw new Error(CircuitError.InvalidValuesArrSize);
43
+ }
44
+ else if ([comparer_1.Operators.IN, comparer_1.Operators.NIN].includes(this.operator) &&
45
+ this.values.length > maxArrSize) {
46
+ throw new Error(CircuitError.InvalidValuesArrSize);
63
47
  }
64
48
  }
65
49
  }
@@ -8,7 +8,7 @@ const utils_1 = require("../../utils");
8
8
  * Returns a Map where the key is the groupId and the value is an object containing the query and linkNonce.
9
9
  *
10
10
  * @param requestScope - An array of ZeroKnowledgeProofRequest objects.
11
- * @returns A Map<number, { query: JSONObject; linkNonce: number }> representing the grouped queries.
11
+ * @returns A Map<number, { query: JsonDocumentObject; linkNonce: number }> representing the grouped queries.
12
12
  */
13
13
  const getGroupedQueries = (requestScope) => requestScope.reduce((acc, proofReq) => {
14
14
  const groupId = proofReq.query.groupId;
@@ -741,6 +741,7 @@ class IdentityWallet {
741
741
  break;
742
742
  }
743
743
  catch (err) {
744
+ // eslint-disable-next-line no-console
744
745
  console.warn(`Error while transiting state, retrying state transition, attempt: ${attempt}`, err);
745
746
  }
746
747
  } while (--attempt);
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ /**
3
+ * Merges two objects together, prioritizing the properties of the second object.
4
+ * If a property exists in both objects, the value from the second object will be used.
5
+ * @param credSubject - The first object to merge.
6
+ * @param otherCredSubject - The second object to merge.
7
+ * @returns A new object with the merged properties.
8
+ */
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.mergeObjects = void 0;
4
11
  function mergeObjects(credSubject, otherCredSubject) {
@@ -148,6 +148,7 @@ var PaymentType;
148
148
  var SupportedCurrencies;
149
149
  (function (SupportedCurrencies) {
150
150
  SupportedCurrencies["ETH"] = "ETH";
151
+ SupportedCurrencies["MATIC"] = "MATIC";
151
152
  })(SupportedCurrencies = exports.SupportedCurrencies || (exports.SupportedCurrencies = {}));
152
153
  /**
153
154
  * DisplayMethodType type for display method
@@ -18,45 +18,29 @@ export class Query {
18
18
  throw new Error(CircuitError.EmptyQueryValue);
19
19
  }
20
20
  validateValueArraySize(maxArrSize) {
21
- switch (this.values.length) {
22
- case 0: {
23
- const zeroArrSizeOps = [Operators.NOOP, Operators.SD, Operators.NULLIFY];
24
- if (!zeroArrSizeOps.includes(this.operator)) {
25
- throw new Error(CircuitError.InvalidValuesArrSize);
26
- }
27
- return;
28
- }
29
- case 1: {
30
- const oneArrSizeOps = [
31
- Operators.EQ,
32
- Operators.LT,
33
- Operators.GT,
34
- Operators.NE,
35
- Operators.LTE,
36
- Operators.GTE,
37
- Operators.EXISTS
38
- ];
39
- if (!oneArrSizeOps.includes(this.operator)) {
40
- throw new Error(CircuitError.InvalidValuesArrSize);
41
- }
42
- return;
43
- }
44
- case 2: {
45
- const twoArrSizeOps = [Operators.BETWEEN, Operators.NONBETWEEN];
46
- if (!twoArrSizeOps.includes(this.operator)) {
47
- throw new Error(CircuitError.InvalidValuesArrSize);
48
- }
49
- return;
50
- }
51
- default: {
52
- const maxArrSizeOps = [Operators.IN, Operators.NIN];
53
- if (!maxArrSizeOps.includes(this.operator)) {
54
- throw new Error(CircuitError.InvalidOperationType);
55
- }
56
- if (!this.values.length || this.values.length > maxArrSize) {
57
- throw new Error(CircuitError.InvalidValuesArrSize);
58
- }
59
- }
21
+ if ([Operators.NOOP, Operators.SD, Operators.NULLIFY].includes(this.operator) &&
22
+ this.values.length !== 0) {
23
+ throw new Error(CircuitError.InvalidValuesArrSize);
24
+ }
25
+ else if ([
26
+ Operators.EQ,
27
+ Operators.LT,
28
+ Operators.GT,
29
+ Operators.NE,
30
+ Operators.LTE,
31
+ Operators.GTE,
32
+ Operators.EXISTS
33
+ ].includes(this.operator) &&
34
+ this.values.length !== 1) {
35
+ throw new Error(CircuitError.InvalidValuesArrSize);
36
+ }
37
+ else if ([Operators.BETWEEN, Operators.NONBETWEEN].includes(this.operator) &&
38
+ this.values.length !== 2) {
39
+ throw new Error(CircuitError.InvalidValuesArrSize);
40
+ }
41
+ else if ([Operators.IN, Operators.NIN].includes(this.operator) &&
42
+ this.values.length > maxArrSize) {
43
+ throw new Error(CircuitError.InvalidValuesArrSize);
60
44
  }
61
45
  }
62
46
  }
@@ -5,7 +5,7 @@ import { mergeObjects } from '../../utils';
5
5
  * Returns a Map where the key is the groupId and the value is an object containing the query and linkNonce.
6
6
  *
7
7
  * @param requestScope - An array of ZeroKnowledgeProofRequest objects.
8
- * @returns A Map<number, { query: JSONObject; linkNonce: number }> representing the grouped queries.
8
+ * @returns A Map<number, { query: JsonDocumentObject; linkNonce: number }> representing the grouped queries.
9
9
  */
10
10
  const getGroupedQueries = (requestScope) => requestScope.reduce((acc, proofReq) => {
11
11
  const groupId = proofReq.query.groupId;
@@ -715,6 +715,7 @@ export class IdentityWallet {
715
715
  break;
716
716
  }
717
717
  catch (err) {
718
+ // eslint-disable-next-line no-console
718
719
  console.warn(`Error while transiting state, retrying state transition, attempt: ${attempt}`, err);
719
720
  }
720
721
  } while (--attempt);
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Merges two objects together, prioritizing the properties of the second object.
3
+ * If a property exists in both objects, the value from the second object will be used.
4
+ * @param credSubject - The first object to merge.
5
+ * @param otherCredSubject - The second object to merge.
6
+ * @returns A new object with the merged properties.
7
+ */
1
8
  export function mergeObjects(credSubject, otherCredSubject) {
2
9
  let result = {};
3
10
  const credSubjectKeys = Object.keys(credSubject);
@@ -145,6 +145,7 @@ export var PaymentType;
145
145
  export var SupportedCurrencies;
146
146
  (function (SupportedCurrencies) {
147
147
  SupportedCurrencies["ETH"] = "ETH";
148
+ SupportedCurrencies["MATIC"] = "MATIC";
148
149
  })(SupportedCurrencies || (SupportedCurrencies = {}));
149
150
  /**
150
151
  * DisplayMethodType type for display method
@@ -1,3 +1,4 @@
1
+ import { JsonDocumentObject } from '../iden3comm';
1
2
  import { CredentialStatusType, MerklizedRootPosition, RefreshService, SubjectPosition } from '../verifiable';
2
3
  /**
3
4
  * Represents the publish mode for identity wallet.
@@ -25,9 +26,7 @@ export interface CredentialRequest {
25
26
  /**
26
27
  * Credential subject, usually contains claims and identifier
27
28
  */
28
- credentialSubject: {
29
- [key: string]: string | object | number | boolean;
30
- };
29
+ credentialSubject: JsonDocumentObject;
31
30
  /**
32
31
  * expiration time
33
32
  */
@@ -1,4 +1,4 @@
1
- import { BasicMessage, IPackageManager, JSONObject, PackerParams } from '../types';
1
+ import { BasicMessage, IPackageManager, JsonDocumentObject, PackerParams } from '../types';
2
2
  import { DID } from '@iden3/js-iden3-core';
3
3
  import { Proposal, ProposalRequestCredential, ProposalRequestMessage, ProposalMessage } from '../types/protocol/proposal-request';
4
4
  import { IIdentityWallet } from '../../identity';
@@ -8,9 +8,9 @@ export type ProposalRequestCreationOptions = {
8
8
  credentials: ProposalRequestCredential[];
9
9
  metadata?: {
10
10
  type: string;
11
- data?: JSONObject;
11
+ data?: JsonDocumentObject;
12
12
  };
13
- did_doc?: JSONObject;
13
+ did_doc?: JsonDocumentObject;
14
14
  };
15
15
  /**
16
16
  * @beta
@@ -19,6 +19,16 @@ export type JSONValue = string | number | boolean | object | Array<object>;
19
19
  export type JSONObject = {
20
20
  [x: string]: JSONValue;
21
21
  };
22
+ /**
23
+ * JSON document object
24
+ */
25
+ export type JsonDocumentObject = {
26
+ [key: string]: JsonDocumentObjectValue;
27
+ };
28
+ /**
29
+ * JSON document object allowed values
30
+ */
31
+ export type JsonDocumentObjectValue = string | number | boolean | JsonDocumentObject | JsonDocumentObjectValue[];
22
32
  export type BasicMessage = {
23
33
  id: string;
24
34
  typ?: MediaType;
@@ -1,5 +1,5 @@
1
1
  import { ZKProof } from '@iden3/js-jwz';
2
- import { BasicMessage, JSONObject } from '../packer';
2
+ import { BasicMessage, JsonDocumentObject } from '../packer';
3
3
  import { PROTOCOL_MESSAGE_TYPE } from '../../constants';
4
4
  /** AuthorizationResponseMessage is struct the represents iden3message authorization response */
5
5
  export type AuthorizationResponseMessage = BasicMessage & {
@@ -10,7 +10,7 @@ export type AuthorizationResponseMessage = BasicMessage & {
10
10
  };
11
11
  /** AuthorizationMessageResponseBody is struct the represents authorization response data */
12
12
  export type AuthorizationMessageResponseBody = {
13
- did_doc?: JSONObject;
13
+ did_doc?: JsonDocumentObject;
14
14
  message?: string;
15
15
  scope: Array<ZeroKnowledgeProofResponse>;
16
16
  };
@@ -25,7 +25,7 @@ export type AuthorizationRequestMessageBody = {
25
25
  callbackUrl: string;
26
26
  reason?: string;
27
27
  message?: string;
28
- did_doc?: JSONObject;
28
+ did_doc?: JsonDocumentObject;
29
29
  scope: Array<ZeroKnowledgeProofRequest>;
30
30
  };
31
31
  /** ZeroKnowledgeProofRequest represents structure of zkp request object */
@@ -33,7 +33,7 @@ export type ZeroKnowledgeProofRequest = {
33
33
  id: number;
34
34
  circuitId: string;
35
35
  optional?: boolean;
36
- query: JSONObject;
36
+ query: JsonDocumentObject;
37
37
  params?: {
38
38
  nullifierSessionId?: string | number;
39
39
  };
@@ -1,11 +1,11 @@
1
1
  import { W3CCredential } from '../../../verifiable';
2
2
  import { PROTOCOL_MESSAGE_TYPE } from '../../constants';
3
- import { BasicMessage, JSONObject } from '../packer';
3
+ import { BasicMessage, JsonDocumentObject } from '../packer';
4
4
  import { ContractInvokeTransactionData } from './contract-request';
5
5
  /** CredentialIssuanceRequestMessageBody represents data for credential issuance request */
6
6
  export type CredentialIssuanceRequestMessageBody = {
7
7
  schema: Schema;
8
- data: JSONObject;
8
+ data: JsonDocumentObject;
9
9
  expiration: number;
10
10
  };
11
11
  /** CredentialIssuanceRequestMessage represent Iden3message for credential request */
@@ -1,5 +1,5 @@
1
1
  import { BasicMessage } from '../';
2
- import { PaymentRequestDataType, PaymentRequestType, PaymentType } from '../../../verifiable';
2
+ import { PaymentRequestDataType, PaymentRequestType, PaymentType, SupportedCurrencies } from '../../../verifiable';
3
3
  import { PROTOCOL_MESSAGE_TYPE } from '../../constants';
4
4
  /** @beta PaymentRequestMessage is struct the represents payment-request message */
5
5
  export type PaymentRequestMessage = BasicMessage & {
@@ -29,7 +29,7 @@ export type PaymentRequestDataInfo = {
29
29
  id: string;
30
30
  chainId: string;
31
31
  address: string;
32
- currency: string;
32
+ currency: SupportedCurrencies;
33
33
  signature?: string;
34
34
  };
35
35
  /** @beta PaymentMessage is struct the represents payment message */
@@ -1,4 +1,4 @@
1
- import { BasicMessage, JSONObject } from '../';
1
+ import { BasicMessage, JsonDocumentObject } from '../';
2
2
  import { PROTOCOL_MESSAGE_TYPE } from '../../constants';
3
3
  /** @beta ProposalRequestMessage is struct the represents proposal-request message */
4
4
  export type ProposalRequestMessage = BasicMessage & {
@@ -10,9 +10,9 @@ export type ProposalRequestMessageBody = {
10
10
  credentials: ProposalRequestCredential[];
11
11
  metadata?: {
12
12
  type: string;
13
- data?: JSONObject;
13
+ data?: JsonDocumentObject;
14
14
  };
15
- did_doc?: JSONObject;
15
+ did_doc?: JsonDocumentObject;
16
16
  };
17
17
  /** @beta ProposalMessage is struct the represents proposal message */
18
18
  export type ProposalMessage = BasicMessage & {
@@ -2,7 +2,7 @@ import { ClaimNonRevStatus, GISTProof, Operators } from '../circuits';
2
2
  import { StateProof } from '../storage/entities/state';
3
3
  import { MerkleTreeProofWithTreeState, RevocationStatus, W3CCredential } from '../verifiable';
4
4
  import { Options, Path } from '@iden3/js-jsonld-merklization';
5
- import { JSONObject } from '../iden3comm';
5
+ import { JsonDocumentObject } from '../iden3comm';
6
6
  import { Claim } from '@iden3/js-iden3-core';
7
7
  export type PreparedCredential = {
8
8
  credential: W3CCredential;
@@ -42,7 +42,7 @@ export type QueryMetadata = PropertyQuery & {
42
42
  datatype: string;
43
43
  merklizedSchema: boolean;
44
44
  };
45
- export declare const parseCredentialSubject: (credentialSubject?: JSONObject) => PropertyQuery[];
45
+ export declare const parseCredentialSubject: (credentialSubject?: JsonDocumentObject) => PropertyQuery[];
46
46
  export declare const parseQueryMetadata: (propertyQuery: PropertyQuery, ldContextJSON: string, credentialType: string, options: Options) => Promise<QueryMetadata>;
47
- export declare const parseQueriesMetadata: (credentialType: string, ldContextJSON: string, credentialSubject: JSONObject, options: Options) => Promise<QueryMetadata[]>;
47
+ export declare const parseQueriesMetadata: (credentialType: string, ldContextJSON: string, credentialSubject: JsonDocumentObject, options: Options) => Promise<QueryMetadata[]>;
48
48
  export declare const transformQueryValueToBigInts: (value: unknown, ldType: string) => Promise<bigint[]>;
@@ -5,8 +5,5 @@
5
5
  * @param otherCredSubject - The second object to merge.
6
6
  * @returns A new object with the merged properties.
7
7
  */
8
- type obj = {
9
- [k: string]: unknown;
10
- };
11
- export declare function mergeObjects(credSubject: obj, otherCredSubject: obj): obj;
12
- export {};
8
+ import { JsonDocumentObject } from '../iden3comm';
9
+ export declare function mergeObjects(credSubject: JsonDocumentObject, otherCredSubject: JsonDocumentObject): JsonDocumentObject;
@@ -115,7 +115,8 @@ export declare enum PaymentType {
115
115
  * @enum {number}
116
116
  */
117
117
  export declare enum SupportedCurrencies {
118
- ETH = "ETH"
118
+ ETH = "ETH",
119
+ MATIC = "MATIC"
119
120
  }
120
121
  /**
121
122
  * DisplayMethodType type for display method
@@ -5,6 +5,7 @@ import { Merklizer, Options } from '@iden3/js-jsonld-merklization';
5
5
  import { CredentialStatusResolverRegistry } from '../credentials';
6
6
  import { ProofType } from './constants';
7
7
  import { CoreClaimCreationOptions } from './core-utils';
8
+ import { JsonDocumentObject } from '../iden3comm';
8
9
  /**
9
10
  * W3C Verifiable credential
10
11
  *
@@ -20,9 +21,7 @@ export declare class W3CCredential {
20
21
  refreshService?: RefreshService;
21
22
  displayMethod?: DisplayMethod;
22
23
  issuanceDate?: string;
23
- credentialSubject: {
24
- [key: string]: object | string | number | boolean;
25
- };
24
+ credentialSubject: JsonDocumentObject;
26
25
  credentialStatus: CredentialStatus;
27
26
  issuer: string;
28
27
  credentialSchema: CredentialSchema;
@@ -1,10 +1,10 @@
1
1
  import { Options, Path } from '@iden3/js-jsonld-merklization';
2
2
  import { W3CCredential } from './credential';
3
3
  import { QueryMetadata } from '../proof';
4
- import { JSONObject } from '../iden3comm';
4
+ import { JsonDocumentObject } from '../iden3comm';
5
5
  export declare const stringByPath: (obj: {
6
6
  [key: string]: unknown;
7
7
  }, path: string) => string;
8
8
  export declare const buildFieldPath: (ldSchema: string, contextType: string, field: string, opts?: Options) => Promise<Path>;
9
- export declare const findValue: (fieldName: string, credential: W3CCredential) => JSONObject;
9
+ export declare const findValue: (fieldName: string, credential: W3CCredential) => JsonDocumentObject;
10
10
  export declare const createVerifiablePresentation: (context: string, tp: string, credential: W3CCredential, queries: QueryMetadata[]) => object;
@@ -3,7 +3,7 @@ import { ProofType, CredentialStatusType, RefreshServiceType, DisplayMethodType
3
3
  import { TreeState } from '../circuits';
4
4
  import { Signature } from '@iden3/js-crypto';
5
5
  import { Claim, DID } from '@iden3/js-iden3-core';
6
- import { JSONObject } from '../iden3comm';
6
+ import { JsonDocumentObject, JSONObject } from '../iden3comm';
7
7
  /**
8
8
  * Represents the published state of the issuer
9
9
  *
@@ -153,9 +153,7 @@ export declare class BJJSignatureProof2021 {
153
153
  */
154
154
  export interface ProofQuery {
155
155
  allowedIssuers?: string[];
156
- credentialSubject?: {
157
- [key: string]: unknown;
158
- };
156
+ credentialSubject?: JsonDocumentObject;
159
157
  schema?: string;
160
158
  claimId?: string;
161
159
  credentialSubjectId?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xpolygonid/js-sdk",
3
- "version": "1.17.4",
3
+ "version": "1.17.6",
4
4
  "description": "SDK to work with Polygon ID",
5
5
  "main": "dist/node/cjs/index.js",
6
6
  "module": "dist/node/esm/index.js",