UNPKG

@reclaimprotocol/attestor-core

Version:

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

93 lines 7.65 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; // handle connection termination alert if (msg.connectionTerminationAlert) { const err = utils_1.AttestorError.fromProto(msg.connectionTerminationAlert); (_a = this.logger) === null || _a === void 0 ? void 0 : _a.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC91dGlscy9tZXNzYWdlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw0Q0FPQztBQUVELHNDQW9HQztBQWpIRCx1Q0FBdUQ7QUFFdkQscUNBQTZIO0FBRXRILEtBQUssVUFBVSxnQkFBZ0IsQ0FBd0IsSUFBYTtJQUMxRSxtREFBbUQ7SUFDbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLG9DQUE0QixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxLQUFJLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQXdCLEdBQWU7O0lBQ25FLHNDQUFzQztJQUN0QyxJQUFHLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLHFCQUFhLENBQUMsU0FBUyxDQUNsQyxHQUFHLENBQUMsMEJBQTBCLENBQzlCLENBQUE7UUFDRCxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLElBQUksQ0FDaEI7WUFDQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxnQkFBZ0I7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHO2dCQUNMLENBQUMsQ0FBQyxTQUFTO1NBQ1osRUFDRCx1Q0FBdUMsQ0FDdkMsQ0FBQTtRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNuRCxPQUFNO0lBQ1AsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUEscUJBQWEsRUFBQyxHQUFH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