@astro-my/idc-code

Constants enumerating the Identity status and error codes.

Stats

StarsIssuesVersionUpdatedCreatedSize
@astro-my/idc-code
1.0.243 years ago3 years agoMinified + gzip package size for @astro-my/idc-code in KB

Readme

Identity Status and Error Codes

Constants enumerating the Identity status and error codes.

This package is a simple collection of all the possible error codes, identity as a whole can throw. Refer this for mapping error codes with appropriate description/messages.

All status codes defined in RFC1945 (HTTP/1.0), RFC2616 (HTTP/1.1), RFC2518 (WebDAV), RFC6585 (Additional HTTP Status Codes), and RFC7538 (Permanent Redirect) are supported.

The error codes depends on the services. Preferred naming convention is to start the error code with initial of service name, for eg any error code relating to template service will start from TS

Completely library agnostic. No dependencies.

Installation

npm install @astro-my/idc-code --save

or

yarn add @astro-my/idc-code

Usage

const ICode = require('@astro-my/idc-code');
response
    .status(ICode.HTTP.OK)
    .send('ok');

response
    .status(ICode.HTTP.INTERNAL_SERVER_ERROR)
    .send({
        error: ICode.getStatusText('HTTP.INTERNAL_SERVER_ERROR')
    });

const template = Template.findOne('123');
if(!template) {
    // it will throw 'TS001'
    throw ICode.TEMPLATE_SERVICE.TEMPLATE_NOT_FOUND;
}

For developers, who need to add their own error/status code

You need to create one new file, under codes folder. If you are creating error codes for services then for clarity, its strongly recemonded to put it under codes/services folder.

// store will give you peristent storage on disk, so that the error codes/status you are going to generate will be saved to retrive the description later on
// create is a helper function to register your service
const { store, create } = require('../../store');

const SERVICE = 'TEMPLATE_SERVICE';
// create new service in store
create(SERVICE);

// this is how you define new statuses
store[SERVICE][exports.TEMPLATE_NOT_FOUND = 'TS001'] = 'Template you are looking for doesn\'t exist';

Once done, just import this file in index.js and expose it for outer world :)

Codes

HTTP CODES

Constant Code Status Text
ACCEPTED 202 Accepted
BAD_GATEWAY 502 Bad Gateway
BAD_REQUEST 400 Bad Request
CONFLICT 409 Conflict
CONTINUE 100 Continue
CREATED 201 Created
EXPECTATION_FAILED 417 Expectation Failed
FAILED_DEPENDENCY 424 Failed Dependency
FORBIDDEN 403 Forbidden
GATEWAY_TIMEOUT 504 Gateway Timeout
GONE 410 Gone
HTTP_VERSION_NOT_SUPPORTED 505 HTTP Version Not Supported
IM_A_TEAPOT 418 I'm a teapot
INSUFFICIENT_SPACE_ON_RESOURCE 419 Insufficient Space on Resource
INSUFFICIENT_STORAGE 507 Insufficient Storage
INTERNAL_SERVER_ERROR 500 Server Error
LENGTH_REQUIRED 411 Length Required
LOCKED 423 Locked
METHOD_FAILURE 420 Method Failure
METHOD_NOT_ALLOWED 405 Method Not Allowed
MOVED_PERMANENTLY 301 Moved Permanently
MOVED_TEMPORARILY 302 Moved Temporarily
MULTI_STATUS 207 Multi-Status
MULTIPLE_CHOICES 300 Multiple Choices
NETWORK_AUTHENTICATION_REQUIRED 511 Network Authentication Required
NO_CONTENT 204 No Content
NON_AUTHORITATIVE_INFORMATION 203 Non Authoritative Information
NOT_ACCEPTABLE 406 Not Acceptable
NOT_FOUND 404 Not Found
NOT_IMPLEMENTED 501 Not Implemented
NOT_MODIFIED 304 Not Modified
OK 200 OK
PARTIAL_CONTENT 206 Partial Content
PAYMENT_REQUIRED 402 Payment Required
PERMANENT_REDIRECT 308 Permanent Redirect
PRECONDITION_FAILED 412 Precondition Failed
PRECONDITION_REQUIRED 428 Precondition Required
PROCESSING 102 Processing
PROXY_AUTHENTICATION_REQUIRED 407 Proxy Authentication Required
REQUEST_HEADER_FIELDS_TOO_LARGE 431 Request Header Fields Too Large
REQUEST_TIMEOUT 408 Request Timeout
REQUEST_TOO_LONG 413 Request Entity Too Large
REQUEST_URI_TOO_LONG 414 Request-URI Too Long
REQUESTED_RANGE_NOT_SATISFIABLE 416 Requested Range Not Satisfiable
RESET_CONTENT 205 Reset Content
SEE_OTHER 303 See Other
SERVICE_UNAVAILABLE 503 Service Unavailable
SWITCHING_PROTOCOLS 101 Switching Protocols
TEMPORARY_REDIRECT 307 Temporary Redirect
TOO_MANY_REQUESTS 429 Too Many Requests
UNAUTHORIZED 401 Unauthorized
UNPROCESSABLE_ENTITY 422 Unprocessable Entity
UNSUPPORTED_MEDIA_TYPE 415 Unsupported Media Type
USE_PROXY 305 Use Proxy

Common Error Code

Constant Code Status Text
SUCCESS SUCCESS Success
INVALID_EMAIL INVALID_EMAIL User is not found
INVALID_PHONE INVALID_PHONE Invalid email format
INVALID_ACCOUNT_ID INVALID_ACCOUNT_ID Invalid account ID format
USER_ALREADY_VERIFIED USER_ALREADY_VERIFIED User is already verified

Template Service

Constant Code Status Text
TEMPLATE_NOT_FOUND TS001 Template you are looking for doesn't exist
INVALID_CATEGORY TS002 Invalid Category
INVALID_TYPE TS003 Invalid Type

OIDC Proxy Service

Constant Code Status Text
SUCCESS SUCCESS Success
CODE_NOT_FOUND CODE_NOT_FOUND Authorization code is not found
CODE_EXPIRED CODE_EXPIRED Authorization code is expired
INVALID_GRANT INVALID_GRANT Invalid grant type
INVALID_REQUEST INVALID_REQUEST Invalid email or phone number
INVALID_CLIENT_ID INVALID_CLIENT_ID Invalid client ID
UNKNOWN_ERROR UNKNOWN_ERROR Unknown Error

Identity Middleware Portal

Constant Code Status Text
PASSWORD_INVALID_LENGTH_MIN PASSWORD_INVALID_LENGTH_MIN Check password length
PASSWORD_INVALID_LENGTH_MAX PASSWORD_INVALID_LENGTH_MAX Check password length
PASSWORD_STRENGTH_WEAK PASSWORD_STRENGTH_WEAK Password is too common. Please choose a different one.
COOKIES_NOT_FOUND COOKIES_NOT_FOUND Cookies not found
INVALID_COOKIE INVALID_COOKIE Invalid Cookie
SPECIAL_CHARACTER_NOT_FOUND SPECIAL_CHARACTER_NOT_FOUND Special character
NUMBER_NOT_FOUND NUMBER_NOT_FOUND Numbers not found
UPPERCASE_NOT_FOUND UPPERCASE_NOT_FOUND Uppercase letter
LOWERCASE_NOT_FOUND LOWERCASE_NOT_FOUND Lowercase letter
SUCCESS SUCCESS Success
CAPTCHA_VALID INVALID_CAPTCHA Captcha is invalid

Identity Email Service

Constant Code Status Text
EMAIL_GATEWAY_ERROR EMAIL_GATEWAY_ERROR Error when sending email
EMAIL_NOT_CONFIGURE EMAIL_NOT_CONFIGURE Email content has not been configured by partner
EMAIL_NOT_FOUND EMAIL_NOT_FOUND Email is not found

Identity Account Service

Constant Code Status Text
INVALID_TOKEN INVALID_TOKEN Token is invalid
USER_NOT_FOUND USER_NOT_FOUND User is not found
ACCOUNT_NOT_VERIFIED ACCOUNT_NOT_VERIFIED User is not verified
PARTNER_NOT_CONFIGURE PARTNER_NOT_CONFIGURE Partner has not setup registration method allowed
INVALID_METHOD INVALID_METHOD Registration with this method is not allowed by partne
ACCOUNT_INVALID ACCOUNT_INVALID Account is using external identifier
WRONG_PASSWORD WRONG_PASSWORD Old password is wrong
EMAIL_NOT_UNIQUE EMAIL_NOT_UNIQUE Email is not unique
PHONE_NOT_UNIQUE PHONE_NOT_UNIQUE Phone number is not unique
PASSWORD_INVALID PASSWORD_INVALID Old and new password value are the same
ACCOUNT_LOCKED ACCOUNT_LOCKED Your account is now locked because of too many invalid attempts. Check your email, we have sent you password reset

Identity Token Service

Constant Code Status Text
INVALID_CREDENTIALS TOS001 Template you are looking for doesn't exist
INVALID_GRANT TOS002 Invalid Category
AUTHORIZATION_ERROR TOS003 Invalid Type
SERVER_ERROR TOS004 Invalid Type

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.