@0xpolygonid/js-sdk 1.9.3 → 1.9.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.
@@ -132,8 +132,10 @@ class PubSignalsVerifier {
132
132
  const queriesMetadata = await (0, common_2.parseQueriesMetadata)(query.type, JSON.stringify(context), query.credentialSubject, {
133
133
  documentLoader: loader
134
134
  });
135
- await (0, query_1.checkQueryRequest)(query, queriesMetadata, context, outs, models_1.CircuitId.AtomicQueryV3, this._documentLoader, opts);
135
+ const circuitId = models_1.CircuitId.AtomicQueryV3;
136
+ await (0, query_1.checkQueryRequest)(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
136
137
  const queryMetadata = queriesMetadata[0]; // only one query is supported
138
+ (0, query_1.checkCircuitOperator)(circuitId, outs.operator);
137
139
  // validate selective disclosure
138
140
  if (queryMetadata.operator === circuits_1.Operators.SD) {
139
141
  try {
@@ -353,6 +355,7 @@ class PubSignalsVerifier {
353
355
  });
354
356
  await (0, query_1.checkQueryRequest)(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
355
357
  const queryMetadata = queriesMetadata[0]; // only one query is supported
358
+ (0, query_1.checkCircuitOperator)(circuitId, outs.operator);
356
359
  // validate selective disclosure
357
360
  if (queryMetadata.operator === circuits_1.Operators.SD) {
358
361
  try {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldValueFromVerifiablePresentation = exports.validateEmptyCredentialSubjectNoopNativeSupport = exports.validateDisclosureNativeSDSupport = exports.validateDisclosureV2Circuit = exports.validateOperators = exports.validateEmptyCredentialSubjectV2Circuit = exports.verifyFieldValueInclusionNativeExistsSupport = exports.verifyFieldValueInclusionV2 = exports.checkQueryRequest = void 0;
3
+ exports.fieldValueFromVerifiablePresentation = exports.validateEmptyCredentialSubjectNoopNativeSupport = exports.validateDisclosureNativeSDSupport = exports.validateDisclosureV2Circuit = exports.validateOperators = exports.validateEmptyCredentialSubjectV2Circuit = exports.verifyFieldValueInclusionNativeExistsSupport = exports.verifyFieldValueInclusionV2 = exports.checkCircuitOperator = exports.checkCircuitQueriesLength = exports.checkQueryRequest = void 0;
4
4
  const js_iden3_core_1 = require("@iden3/js-iden3-core");
5
5
  const js_jsonld_merklization_1 = require("@iden3/js-jsonld-merklization");
6
6
  const utils_1 = require("../../utils");
@@ -29,14 +29,7 @@ async function checkQueryRequest(query, queriesMetadata, ldContext, outputs, cir
29
29
  if (!query.skipClaimRevocationCheck && outputs.isRevocationChecked === 0) {
30
30
  throw new Error(`check revocation is required`);
31
31
  }
32
- const circuitValidationData = provers_1.circuitValidator[circuitId];
33
- if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
34
- throw new Error(`circuit ${circuitId} supports only ${provers_1.circuitValidator[circuitId].maxQueriesCount} queries`);
35
- }
36
- const notSupportedOpIndx = queriesMetadata.findIndex((i) => !circuitValidationData.supportedOperations.includes(i.operator));
37
- if (notSupportedOpIndx > -1) {
38
- throw new Error(`circuit ${circuitId} not support ${queriesMetadata[notSupportedOpIndx].operator} operator`);
39
- }
32
+ checkCircuitQueriesLength(circuitId, queriesMetadata);
40
33
  // verify timestamp
41
34
  let acceptedProofGenerationDelay = defaultProofGenerationDelayOpts;
42
35
  if (opts?.acceptedProofGenerationDelay) {
@@ -49,6 +42,20 @@ async function checkQueryRequest(query, queriesMetadata, ldContext, outputs, cir
49
42
  return;
50
43
  }
51
44
  exports.checkQueryRequest = checkQueryRequest;
45
+ function checkCircuitQueriesLength(circuitId, queriesMetadata) {
46
+ const circuitValidationData = provers_1.circuitValidator[circuitId];
47
+ if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
48
+ throw new Error(`circuit ${circuitId} supports only ${provers_1.circuitValidator[circuitId].maxQueriesCount} queries`);
49
+ }
50
+ }
51
+ exports.checkCircuitQueriesLength = checkCircuitQueriesLength;
52
+ function checkCircuitOperator(circuitId, operator) {
53
+ const circuitValidationData = provers_1.circuitValidator[circuitId];
54
+ if (!circuitValidationData.supportedOperations.includes(operator)) {
55
+ throw new Error(`circuit ${circuitId} not support ${(0, comparer_1.getOperatorNameByValue)(operator)} operator`);
56
+ }
57
+ }
58
+ exports.checkCircuitOperator = checkCircuitOperator;
52
59
  function verifyFieldValueInclusionV2(outputs, metadata) {
53
60
  if (outputs.operator == comparer_1.QueryOperators.$noop) {
54
61
  return;
@@ -9,7 +9,7 @@ import { AuthV2PubSignals } from '../../circuits/auth-v2';
9
9
  import { BaseConfig } from '../../circuits/common';
10
10
  import { LinkedMultiQueryPubSignals, LinkedMultiQueryInputs } from '../../circuits/linked-multi-query';
11
11
  import { CircuitId } from '../../circuits/models';
12
- import { checkQueryRequest, fieldValueFromVerifiablePresentation, validateDisclosureV2Circuit, validateEmptyCredentialSubjectV2Circuit, validateOperators, verifyFieldValueInclusionV2, validateDisclosureNativeSDSupport, validateEmptyCredentialSubjectNoopNativeSupport, verifyFieldValueInclusionNativeExistsSupport } from './query';
12
+ import { checkQueryRequest, fieldValueFromVerifiablePresentation, validateDisclosureV2Circuit, validateEmptyCredentialSubjectV2Circuit, validateOperators, verifyFieldValueInclusionV2, validateDisclosureNativeSDSupport, validateEmptyCredentialSubjectNoopNativeSupport, verifyFieldValueInclusionNativeExistsSupport, checkCircuitOperator } from './query';
13
13
  import { parseQueriesMetadata } from '../common';
14
14
  import { Operators } from '../../circuits';
15
15
  import { calculateQueryHashV3 } from './query-hash';
@@ -129,8 +129,10 @@ export class PubSignalsVerifier {
129
129
  const queriesMetadata = await parseQueriesMetadata(query.type, JSON.stringify(context), query.credentialSubject, {
130
130
  documentLoader: loader
131
131
  });
132
- await checkQueryRequest(query, queriesMetadata, context, outs, CircuitId.AtomicQueryV3, this._documentLoader, opts);
132
+ const circuitId = CircuitId.AtomicQueryV3;
133
+ await checkQueryRequest(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
133
134
  const queryMetadata = queriesMetadata[0]; // only one query is supported
135
+ checkCircuitOperator(circuitId, outs.operator);
134
136
  // validate selective disclosure
135
137
  if (queryMetadata.operator === Operators.SD) {
136
138
  try {
@@ -350,6 +352,7 @@ export class PubSignalsVerifier {
350
352
  });
351
353
  await checkQueryRequest(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
352
354
  const queryMetadata = queriesMetadata[0]; // only one query is supported
355
+ checkCircuitOperator(circuitId, outs.operator);
353
356
  // validate selective disclosure
354
357
  if (queryMetadata.operator === Operators.SD) {
355
358
  try {
@@ -1,7 +1,7 @@
1
1
  import { DID, getDateFromUnixTimestamp } from '@iden3/js-iden3-core';
2
2
  import { Merklizer, Path } from '@iden3/js-jsonld-merklization';
3
3
  import { byteEncoder } from '../../utils';
4
- import { Operators, QueryOperators } from '../../circuits/comparer';
4
+ import { getOperatorNameByValue, Operators, QueryOperators } from '../../circuits/comparer';
5
5
  import { calculateCoreSchemaHash, VerifiableConstants } from '../../verifiable';
6
6
  import { circuitValidator } from '../provers';
7
7
  const defaultProofGenerationDelayOpts = 24 * 60 * 60 * 1000; // 24 hours
@@ -26,14 +26,7 @@ export async function checkQueryRequest(query, queriesMetadata, ldContext, outpu
26
26
  if (!query.skipClaimRevocationCheck && outputs.isRevocationChecked === 0) {
27
27
  throw new Error(`check revocation is required`);
28
28
  }
29
- const circuitValidationData = circuitValidator[circuitId];
30
- if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
31
- throw new Error(`circuit ${circuitId} supports only ${circuitValidator[circuitId].maxQueriesCount} queries`);
32
- }
33
- const notSupportedOpIndx = queriesMetadata.findIndex((i) => !circuitValidationData.supportedOperations.includes(i.operator));
34
- if (notSupportedOpIndx > -1) {
35
- throw new Error(`circuit ${circuitId} not support ${queriesMetadata[notSupportedOpIndx].operator} operator`);
36
- }
29
+ checkCircuitQueriesLength(circuitId, queriesMetadata);
37
30
  // verify timestamp
38
31
  let acceptedProofGenerationDelay = defaultProofGenerationDelayOpts;
39
32
  if (opts?.acceptedProofGenerationDelay) {
@@ -45,6 +38,18 @@ export async function checkQueryRequest(query, queriesMetadata, ldContext, outpu
45
38
  }
46
39
  return;
47
40
  }
41
+ export function checkCircuitQueriesLength(circuitId, queriesMetadata) {
42
+ const circuitValidationData = circuitValidator[circuitId];
43
+ if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
44
+ throw new Error(`circuit ${circuitId} supports only ${circuitValidator[circuitId].maxQueriesCount} queries`);
45
+ }
46
+ }
47
+ export function checkCircuitOperator(circuitId, operator) {
48
+ const circuitValidationData = circuitValidator[circuitId];
49
+ if (!circuitValidationData.supportedOperations.includes(operator)) {
50
+ throw new Error(`circuit ${circuitId} not support ${getOperatorNameByValue(operator)} operator`);
51
+ }
52
+ }
48
53
  export function verifyFieldValueInclusionV2(outputs, metadata) {
49
54
  if (outputs.operator == QueryOperators.$noop) {
50
55
  return;
@@ -26,6 +26,8 @@ export interface ClaimOutputs {
26
26
  isRevocationChecked: number;
27
27
  }
28
28
  export declare function checkQueryRequest(query: ProofQuery, queriesMetadata: QueryMetadata[], ldContext: JsonLd, outputs: ClaimOutputs, circuitId: CircuitId, schemaLoader?: DocumentLoader, opts?: VerifyOpts): Promise<void>;
29
+ export declare function checkCircuitQueriesLength(circuitId: CircuitId, queriesMetadata: QueryMetadata[]): void;
30
+ export declare function checkCircuitOperator(circuitId: CircuitId, operator: number): void;
29
31
  export declare function verifyFieldValueInclusionV2(outputs: ClaimOutputs, metadata: QueryMetadata): void;
30
32
  export declare function verifyFieldValueInclusionNativeExistsSupport(outputs: ClaimOutputs, metadata: QueryMetadata): void;
31
33
  export declare function validateEmptyCredentialSubjectV2Circuit(cq: QueryMetadata, outputs: ClaimOutputs): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xpolygonid/js-sdk",
3
- "version": "1.9.3",
3
+ "version": "1.9.4",
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",
@@ -11,10 +11,11 @@
11
11
  "require": "./dist/node/cjs/index.js"
12
12
  },
13
13
  "browser": "./dist/browser/esm/index.js",
14
- "umd": "./dist/browser/umd/index.js"
14
+ "umd": "./dist/browser/umd/index.js",
15
+ "types": "./dist/types/index.d.ts"
15
16
  }
16
17
  },
17
- "typings": "dist/types/index.d.ts",
18
+ "types": "dist/types/index.d.ts",
18
19
  "source": "./src/index.ts",
19
20
  "files": [
20
21
  "dist"