UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

74 lines 7.85 kB
import { bufferToHexString } from '@iotize/common/byte-converter'; import { CodeError } from '@iotize/common/error'; import { ApduResponse, } from '@iotize/tap/client/api'; import { TapRequestHelper } from './request/tap-request-helper'; import { ResultCodeTranslation } from './response/result-code-translation'; export class TapClientError extends CodeError { constructor(code, message, cause) { super(message, code); this.cause = cause; } static illegalArgument(msg) { return new TapClientError(TapClientError.Code.IllegalArgumentError, msg); } static illegalStateError(msg) { return new TapClientError(TapClientError.Code.IllegalStateError, msg); } static encodeRequestError(command, cause) { return new TapClientError(TapClientError.Code.EncodeRequestError, 'Cannot encode this request: ' + command + '. Cause: ' + cause, cause); } static decodeResponseError(cause, frameOrCommand) { return new TapClientError(TapClientError.Code.DecodeResponseError, `Cannot decode response to command ${frameOrCommand instanceof Uint8Array ? `0x${bufferToHexString(frameOrCommand)}` : TapRequestHelper.toString(frameOrCommand)}. Cause: ` + cause, cause); } static notConnectedError() { return new TapClientError(TapClientError.Code.NotConnectedError, 'Trying to execute command but device is not connected'); } static cannotDecodeResponseError(err, bufferData) { return new TapClientError(TapClientError.Code.UnexpectedTapResponse, `Received from device an unexpected response that cannot be decoded (${err.message}). Frame: 0x${bufferToHexString(bufferData)}`); } static unexpectedApduStatusCode(apduResponse) { return new TapClientError(TapClientError.Code.UnexpectedApduResponseStatus, `Received from device an unexpected response with an invalid APDU status code 0x${apduResponse.status.toString(16)} but expecting 0x${ApduResponse.Status.OK.toString(16)}`); } static cannotEncodeRequest(err, tapRequest) { return new TapClientError(TapClientError.Code.CannotEncodeRequest, `Cannot encode request ${tapRequest}: ${err.message}`); } } (function (TapClientError) { let Code; (function (Code) { Code["NotConnectedError"] = "TapClientErrorNotConnected"; Code["EncodeRequestError"] = "TapClientErrorEncodeRequest"; Code["IllegalArgumentError"] = "TapClientErrorIllegalArgument"; Code["IllegalStateError"] = "TapClientErrorIllegalState"; Code["DecodeResponseError"] = "TapClientErrorDecodeResponse"; Code["UnexpectedTapResponse"] = "TapClientErrorUnexpectedTapResponse"; Code["UnexpectedApduResponseStatus"] = "TapClientErrorUnexpectedApduResponseStatus"; Code["CannotEncodeRequest"] = "TapClientErrorCannotEncodeRequest"; Code["TapClientResponseStatusError"] = "TapClientErrorResponseStatus"; })(Code = TapClientError.Code || (TapClientError.Code = {})); })(TapClientError || (TapClientError = {})); // export const TapResponseErrorCode = 'TapResponseError'; export class TapClientResponseStatusError extends TapClientError { // public code: string; constructor(response, request) { super(TapClientError.Code.TapClientResponseStatusError, TapClientResponseStatusError.createErrorMessage(response, request)); this.response = response; this.request = request; } static createErrorMessage(response, request) { const codeRet = response.status; let msg = 'Tap request failed. '; if (request) { msg = `Tap request ${TapRequestHelper.toString(request)} failed. `; } const errorExplained = codeRet in ResultCodeTranslation ? ResultCodeTranslation[codeRet] : 'an unknown error'; msg += `${errorExplained} (code=0x${codeRet.toString(16)})`; return msg; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWNsaWVudC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2NsaWVudC9pbXBsL3NyYy9saWIvdGFwLWNsaWVudC1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUNMLFlBQVksR0FHYixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTNFLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBOEI7SUFDaEUsWUFDRSxJQUF5QixFQUN6QixPQUFlLEVBQ1IsS0FBYTtRQUVwQixLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRmQsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUd0QixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFXO1FBQ3ZDLE9BQU8sSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQVc7UUFDekMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLE9BQXdCLEVBQ3hCLEtBQVk7UUFFWixPQUFPLElBQUksY0FBYyxDQUN2QixjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUN0Qyw4QkFBOEIsR0FBRyxPQUFPLEdBQUcsV0FBVyxHQUFHLEtBQUssRUFDOUQs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