All files / src/domain/verifier/entities verificationSteps.ts

100% Statements 19/19
100% Branches 0/0
100% Functions 2/2
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78        108x   108x   108x 108x 108x 108x 108x 108x     108x 108x 108x 108x 108x 108x 108x 108x 108x             108x                                     133x                                                      
import i18n from '../../../data/i18n.json';
import currentLocale from '../../../constants/currentLocale';
import type { IVerificationMapItem } from '../../../models/VerificationMap';
 
const defaultLanguageSet = i18n[currentLocale.locale];
 
export const final = 'final';
 
export enum VerificationSteps {
  formatValidation = 'formatValidation',
  proofVerification = 'proofVerification',
  identityVerification = 'identityVerification',
  statusCheck = 'statusCheck',
  final = 'final'
}
 
export enum SUB_STEPS {
  checkImagesIntegrity = 'checkImagesIntegrity',
  checkRevokedStatus = 'checkRevokedStatus',
  checkExpiresDate = 'checkExpiresDate',
  controlVerificationMethod = 'controlVerificationMethod',
  verifyIssuerProfile = 'verifyIssuerProfile',
  ensureValidityPeriodStarted = 'ensureValidityPeriodStarted',
  checkCredentialSchemaConformity = 'checkCredentialSchemaConformity',
  validateDateFormat = 'validateDateFormat'
}
 
export type TVerificationStepsList = {
  [key in VerificationSteps]?: IVerificationMapItem;
};
 
export const verificationMap = {
  [VerificationSteps.formatValidation]: [
    SUB_STEPS.checkImagesIntegrity,
    SUB_STEPS.checkCredentialSchemaConformity,
    SUB_STEPS.validateDateFormat
  ],
  [VerificationSteps.proofVerification]: [],
  [VerificationSteps.identityVerification]: [
    SUB_STEPS.verifyIssuerProfile,
    SUB_STEPS.controlVerificationMethod
  ],
  [VerificationSteps.statusCheck]: [
    SUB_STEPS.checkRevokedStatus,
    SUB_STEPS.ensureValidityPeriodStarted,
    SUB_STEPS.checkExpiresDate
  ]
};
 
export default function getParentVerificationSteps (): TVerificationStepsList {
  return {
    [VerificationSteps.formatValidation]: {
      code: VerificationSteps.formatValidation,
      label: defaultLanguageSet.steps.formatValidationLabel,
      labelPending: defaultLanguageSet.steps.formatValidationLabelPending,
      subSteps: []
    },
    [VerificationSteps.proofVerification]: {
      code: VerificationSteps.proofVerification,
      label: defaultLanguageSet.steps.signatureVerificationLabel,
      labelPending: defaultLanguageSet.steps.signatureVerificationLabelPending,
      subSteps: []
    },
    [VerificationSteps.identityVerification]: {
      code: VerificationSteps.identityVerification,
      label: defaultLanguageSet.steps.identityVerificationLabel,
      labelPending: defaultLanguageSet.steps.identityVerificationLabelPending,
      subSteps: []
    },
    [VerificationSteps.statusCheck]: {
      code: VerificationSteps.statusCheck,
      label: defaultLanguageSet.steps.statusCheckLabel,
      labelPending: defaultLanguageSet.steps.statusCheckLabelPending,
      subSteps: []
    }
  };
}