"use strict";
//================================================================================
//================================================================================
Object.defineProperty(exports, "__esModule", { value: true });
exports.EndUserException = exports.EndUserError = void 0;
class EndUserError {
    constructor(errorCode, message) {
        this.errorCode = errorCode;
        this.message = message;
    }
    toString() {
        return this.message + ' (' + this.errorCode + ')';
    }
    ;
    GetErrorCode() {
        return this.errorCode;
    }
    ;
    GetMessage() {
        return this.message;
    }
    static isError(error) {
        return (error != EndUserError.ERROR_NONE);
    }
    ;
    static isSuccess(error) {
        return (error == EndUserError.ERROR_NONE);
    }
    ;
    static getErrorDescriptionEx(error, language) {
        var descrArr;
        var descr;
        descrArr = EndUserError.ERROR_DESCRIPTIONS_EX[error];
        if (typeof descrArr == 'undefined') {
            descrArr = EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_UNKNOWN];
        }
        descr = descrArr[language - 1];
        if (typeof descr == 'undefined')
            return descrArr[0];
        return descr;
    }
    ;
}
exports.EndUserError = EndUserError;
EndUserError.ERROR_NONE = 0x0000;
EndUserError.ERROR_UNKNOWN = 0xFFFF;
EndUserError.ERROR_NOT_SUPPORTED = 0xFFFE;
EndUserError.ERROR_NOT_INITIALIZED = 0x0001;
EndUserError.ERROR_BAD_PARAMETER = 0x0002;
EndUserError.ERROR_LIBRARY_LOAD = 0x0003;
EndUserError.ERROR_READ_SETTINGS = 0x0004;
EndUserError.ERROR_TRANSMIT_REQUEST = 0x0005;
EndUserError.ERROR_MEMORY_ALLOCATION = 0x0006;
EndUserError.WARNING_END_OF_ENUM = 0x0007;
EndUserError.ERROR_PROXY_NOT_AUTHORIZED = 0x0008;
EndUserError.ERROR_NO_GUI_DIALOGS = 0x0009;
EndUserError.ERROR_DOWNLOAD_FILE = 0x000A;
EndUserError.ERROR_WRITE_SETTINGS = 0x000B;
EndUserError.ERROR_CANCELED_BY_GUI = 0x000C;
EndUserError.ERROR_OFFLINE_MODE = 0x000D;
EndUserError.ERROR_KEY_MEDIAS_FAILED = 0x0011;
EndUserError.ERROR_KEY_MEDIAS_ACCESS_FAILED = 0x0012;
EndUserError.ERROR_KEY_MEDIAS_READ_FAILED = 0x0013;
EndUserError.ERROR_KEY_MEDIAS_WRITE_FAILED = 0x0014;
EndUserError.WARNING_KEY_MEDIAS_READ_ONLY = 0x0015;
EndUserError.ERROR_KEY_MEDIAS_DELETE = 0x0016;
EndUserError.ERROR_KEY_MEDIAS_CLEAR = 0x0017;
EndUserError.ERROR_BAD_PRIVATE_KEY = 0x0018;
EndUserError.ERROR_PKI_FORMATS_FAILED = 0x0021;
EndUserError.ERROR_CSP_FAILED = 0x0022;
EndUserError.ERROR_BAD_SIGNATURE = 0x0023;
EndUserError.ERROR_AUTH_FAILED = 0x0024;
EndUserError.ERROR_NOT_RECEIVER = 0x0025;
EndUserError.ERROR_STORAGE_FAILED = 0x0031;
EndUserError.ERROR_BAD_CERT = 0x0032;
EndUserError.ERROR_CERT_NOT_FOUND = 0x0033;
EndUserError.ERROR_INVALID_CERT_TIME = 0x0034;
EndUserError.ERROR_CERT_IN_CRL = 0x0035;
EndUserError.ERROR_BAD_CRL = 0x0036;
EndUserError.ERROR_NO_VALID_CRLS = 0x0037;
EndUserError.ERROR_GET_TIME_STAMP = 0x0041;
EndUserError.ERROR_BAD_TSP_RESPONSE = 0x0042;
EndUserError.ERROR_TSP_SERVER_CERT_NOT_FOUND = 0x0043;
EndUserError.ERROR_TSP_SERVER_CERT_INVALID = 0x0044;
EndUserError.ERROR_GET_OCSP_STATUS = 0x0051;
EndUserError.ERROR_BAD_OCSP_RESPONSE = 0x0052;
EndUserError.ERROR_CERT_BAD_BY_OCSP = 0x0053;
EndUserError.ERROR_OCSP_SERVER_CERT_NOT_FOUND = 0x0054;
EndUserError.ERROR_OCSP_SERVER_CERT_INVALID = 0x0055;
EndUserError.ERROR_LDAP_ERROR = 0x0061;
EndUserError.ERROR_LIBRARY_COMUNICATION_FAILED = 0x1001;
EndUserError.ERROR_LIBRARY_VERSION_NOT_SUPPORTED = 0x1002;
EndUserError.ERROR_BROWSER_NOT_SUPPORTED = 0x10001;
EndUserError.ERROR_OPEN_FILE = 0x10010;
EndUserError.ERROR_READ_FILE = 0x10011;
EndUserError.ERROR_WRITE_FILE = 0x10012;
EndUserError.ERROR_DESCRIPTIONS_EX = [];
//--------------------------------------------------------------------------------
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_NOT_SUPPORTED] =
    [
        'Операція не підтримується',
        'Операция не поддерживается',
        'Operation is not supported'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_UNKNOWN] =
    [
        'Невідома помилка',
        'Неизвестная ошибка',
        'Unknown error'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_LIBRARY_LOAD] =
    [
        'Виникла помилка при завантаженні криптографічної бібліотеки',
        'Возникла ошибка при загрузке криптографической библиотеки',
        'Error at load crypto library'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_NOT_INITIALIZED] =
    [
        'Бібліотека не ініціалізована',
        'Библиотека не инициализирована',
        'Library is not initialized'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_BAD_PARAMETER] =
    [
        'Невірний параметр',
        'Неверный параметр',
        'Incorrect parameter'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_CERT_NOT_FOUND] =
    [
        'Сертифікат не знайдено',
        'Сертификат не найден',
        'Certificate not found'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_TRANSMIT_REQUEST] =
    [
        'Виникла помилка при передачі запиту на сервер ЦСК за протоколом HTTP',
        'Возникла ошибка при передаче запроса на сервер ЦСК по протоколу HTTP',
        'Error at request transfer to CA\'s server by HTTP protocol'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_DOWNLOAD_FILE] =
    [
        'Виникла помилка при завантаженні файлу з HTTP-сервера',
        'Возникла ошибка при загрузке файла с HTTP-сервера',
        'Error at the load of file from a HTTP-server'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_LIBRARY_COMUNICATION_FAILED] =
    [
        'Виникла помилка при взаємодії з криптографічною бібліотекою',
        'Возникла ошибка при взаимодействии с криптографической библиотекой',
        'Error at comunication with crypto library'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_LIBRARY_VERSION_NOT_SUPPORTED] =
    [
        'Встановлена версія бібліотеки не підтримується',
        'Установленная версия библиотеки не поддерживается',
        'The installed version of the library is not supported'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_BROWSER_NOT_SUPPORTED] =
    [
        'Ваш браузер не підтримується',
        'Ваш браузер не поддерживается',
        'Your browser is not supported'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_OPEN_FILE] =
    [
        'Виникла помилка при відкритті файлу',
        'Возникла ошибка при открытии файла',
        'Error at open file'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_READ_FILE] =
    [
        'Виникла помилка при зчитуванні файлу',
        'Возникла ошибка при чтении файла',
        'Error at read file'
    ];
EndUserError.ERROR_DESCRIPTIONS_EX[EndUserError.ERROR_WRITE_FILE] =
    [
        'Виникла помилка при записі файлу',
        'Возникла ошибка при записи файла',
        'Error at write file'
    ];
//--------------------------------------------------------------------------------
//================================================================================
class EndUserException {
    constructor(errorCode, message) {
        this.errorCode = errorCode;
        this.message = message;
        this.errorCode = errorCode;
        this.message = message;
    }
    toString() {
        return this.message + ' (' + this.errorCode + ')';
    }
    GetErrorCode() {
        return this.errorCode;
    }
    GetMessage() {
        return this.message;
    }
}
exports.EndUserException = EndUserException;
