UNPKG

@reclaimprotocol/attestor-core

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

94 lines 7.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wsMessageHandler = wsMessageHandler; exports.handleMessage = handleMessage; const api_1 = require("../../proto/api"); const utils_1 = require("../../utils"); async function wsMessageHandler(data) { // extract array buffer from WS data & decode proto const buff = await (0, utils_1.extractArrayBufferFromWsData)(data); const { messages } = api_1.RPCMessages.decode(buff); for (const msg of messages) { await handleMessage.call(this, msg); } } function handleMessage(msg) { var _a, _b; (_a = this.logger) === null || _a === void 0 ? void 0 : _a.trace({ msg }, 'received message'); // handle connection termination alert if (msg.connectionTerminationAlert) { const err = utils_1.AttestorError.fromProto(msg.connectionTerminationAlert); (_b = this.logger) === null || _b === void 0 ? void 0 : _b.warn({ err: err.code !== 'ERROR_NO_ERROR' ? err : undefined }, 'received connection termination alert'); this.dispatchRPCEvent('connection-terminated', err); return; } const rpcRequest = (0, utils_1.getRpcRequest)(msg); if (rpcRequest) { if (rpcRequest.direction === 'response' && rpcRequest.type === 'error') { this.dispatchRPCEvent('rpc-response', { id: msg.id, error: utils_1.AttestorError.fromProto(msg.requestError) }); return; } const resType = (0, utils_1.getRpcResponseType)(rpcRequest.type); if (rpcRequest.direction === 'response') { this.dispatchRPCEvent('rpc-response', { id: msg.id, type: rpcRequest.type, data: msg[resType] }); return; } if (!this.isInitialised && rpcRequest.type !== 'init') { this.logger.warn({ type: rpcRequest.type }, 'RPC request received before initialisation'); void this.sendMessage({ id: msg.id, requestError: utils_1.AttestorError .badRequest('Initialise connection first') .toProto() }); return; } return new Promise((resolve, reject) => { this.dispatchRPCEvent('rpc-request', { requestId: msg.id, type: rpcRequest.type, data: msg[(0, utils_1.getRpcRequestType)(rpcRequest.type)], respond: (res) => { var _a; if (!this.isOpen) { (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug({ type: rpcRequest.type, res }, 'connection closed before responding'); reject(new Error('connection closed')); return; } if ('code' in res) { reject(res); return this.sendMessage({ id: msg.id, requestError: res.toProto() }); } resolve(); return this .sendMessage({ id: msg.id, [resType]: res }); }, }); }); } if (msg.tunnelMessage) { this.dispatchRPCEvent('tunnel-message', msg.tunnelMessage); return; } if (msg.tunnelDisconnectEvent) { this.dispatchRPCEvent('tunnel-disconnect-event', msg.tunnelDisconnectEvent); return; } this.logger.warn({ msg }, 'unhandled message'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC91dGlscy9tZXNzYWdlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw0Q0FPQztBQUVELHNDQXFHQztBQWxIRCx1Q0FBdUQ7QUFFdkQscUNBQTZIO0FBRXRILEtBQUssVUFBVSxnQkFBZ0IsQ0FBd0IsSUFBYTtJQUMxRSxtREFBbUQ7SUFDbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLG9DQUE0QixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxLQUFJLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQXdCLEdBQWU7O0lBQ25FLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUMvQyxzQ0FBc0M7SUFDdEMsSUFBRyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxxQkFBYSxDQUFDLFNBQVMsQ0FDbEMsR0FBRyxDQUFDLDBCQUEwQixDQUM5QixDQUFBO1FBQ0QsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQ2hCO1lBQ0MsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO2dCQUNqQyxDQUFDLENBQUMsR0FBRztnQkFDTCxDQUFDLENBQUMsU0FBUztTQUNaLEVBQ0QsdUNBQXVDLENBQ3ZDLENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVB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