ekyc

Electronic KYC process with uploading ID document using OAuth 2.1 (experimental)
Log | Files | Refs | README | LICENSE

constants.ts (1304B)


      1 import { MINUTE, SECOND } from "$std/datetime/constants.ts";
      2 
      3 /**
      4  * Email address
      5  */
      6 export const EMAIL_REGEX =
      7   /^(?=[^@]{1,64}@)([a-z0-9!#$%&\'*+\/=?^_`{|}~-]+\.?)+@(?=.{1,255}$)[a-z0-9-]+(\.[a-z0-9-]+)+$/i;
      8 
      9 /**
     10  * Token
     11  */
     12 export const TOKEN_BYTES = 24;
     13 export const TOKEN_LENGTH_MIN = Math.floor(TOKEN_BYTES * 8 / Math.log2(58));
     14 export const TOKEN_LENGTH_MAX = Math.ceil(TOKEN_BYTES * 8 / Math.log2(58));
     15 export const TOKEN_REGEX = new RegExp(
     16   `^[A-HJ-NP-Za-km-z1-9]{${TOKEN_LENGTH_MIN},${TOKEN_LENGTH_MAX}}$`,
     17 );
     18 
     19 /**
     20  * Password
     21  */
     22 export const PASSWORD_ATTEMPT_LIMIT = 1;
     23 export const PASSWORD_ATTEMPT_TTL = SECOND;
     24 
     25 /**
     26  * Session Token
     27  */
     28 export const SESSION_TOKEN_TTL = 30 * MINUTE;
     29 
     30 /**
     31  * Access Token
     32  */
     33 export const AUTH_CODE_TTL = 5 * MINUTE;
     34 export const ACCESS_TOKEN_TTL = 30 * MINUTE;
     35 
     36 /**
     37  * Code
     38  */
     39 export const CODE_DIGITS = 6;
     40 export const CODE_REGEX = new RegExp(`^[0-9]{${CODE_DIGITS}}$`);
     41 
     42 export const EMAIL_CHALLENGE_TTL = 5 * MINUTE;
     43 export const EMAIL_CHALLENGE_REQUEST_LIMIT = 2;
     44 export const EMAIL_CHALLENGE_ATTEMPT_LIMIT = 3;
     45 
     46 export const SMS_CHALLENGE_TTL = 5 * MINUTE;
     47 export const SMS_CHALLENGE_REQUEST_LIMIT = 2;
     48 export const SMS_CHALLENGE_ATTEMPT_LIMIT = 3;
     49 
     50 /**
     51  * RateLimit
     52  */
     53 export const RATE_LIMIT = 10;
     54 export const RATE_LIMIT_TTL = 30 * MINUTE;