0.0.0-alpha.22 • Published 11 months ago

@serv-official/vault-events v0.0.0-alpha.22

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

Installation

You can install the SDK with your favorite package manager:

npm i @serv-official/vault-sdk
yarn add @serv-official/vault-sdk

or

pnpm i @serv-official/vault-sdk

Usage

The SDK exposes different functions that you can use.

  1. First you need to request access from your website
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};

After calling the requestAccess function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

Right now we don't have error handling. If you close the extension window the promise requestAccess returns won't be resolved or rejected. This behavior applies to every other function of the Serv object.

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

Documentation

requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

requestAccess(): Promise<boolean>

denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

denyAccess(): Promise<boolean>

getCertificates

Function that return all the granted certificates from the Vault+ Extension.

getCertificates(): Promise<EventGetCertificatesResponseData>

The type EventGetCertificatesResponseData is a list of CredentialSchema

claimCertificate

Function that claims a specific cetificate.

type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>

The type EventClaimCertificateResponseData is also a CredentialSchema

CredentialSchema

Depending on the credential the credentialSubject can change its type.

export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};