UNPKG

mudvault-mesh

Version:

Node.js client library for connecting to MudVault Mesh network

92 lines 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMessage = createMessage; exports.createTellMessage = createTellMessage; exports.createChannelMessage = createChannelMessage; exports.createWhoRequestMessage = createWhoRequestMessage; exports.createFingerRequestMessage = createFingerRequestMessage; exports.createLocateRequestMessage = createLocateRequestMessage; exports.createPingMessage = createPingMessage; exports.createPongMessage = createPongMessage; exports.createErrorMessage = createErrorMessage; exports.isExpired = isExpired; exports.sanitizeMessage = sanitizeMessage; const uuid_1 = require("uuid"); function createMessage(type, from, to, payload, metadata) { const defaultMetadata = { priority: 5, ttl: 300, encoding: 'utf-8', language: 'en', ...metadata }; return { version: '1.0', id: (0, uuid_1.v4)(), timestamp: new Date().toISOString(), type, from, to, payload, metadata: defaultMetadata }; } function createTellMessage(from, to, message) { return createMessage('tell', from, to, { message }); } function createChannelMessage(from, channel, message, action = 'message') { return createMessage('channel', from, { mud: '*', channel }, { channel, message, action }); } function createWhoRequestMessage(from, targetMud) { return createMessage('who', from, { mud: targetMud }, { request: true }); } function createFingerRequestMessage(from, targetMud, targetUser) { return createMessage('finger', from, { mud: targetMud, user: targetUser }, { user: targetUser, request: true }); } function createLocateRequestMessage(from, targetUser) { return createMessage('locate', from, { mud: '*' }, { user: targetUser, request: true }); } function createPingMessage(from, to) { return createMessage('ping', from, to, { timestamp: Date.now() }); } function createPongMessage(from, to, originalTimestamp) { return createMessage('pong', from, to, { timestamp: originalTimestamp }); } function createErrorMessage(from, to, code, message, details) { return createMessage('error', from, to, { code, message, details }); } function isExpired(message) { const messageTime = new Date(message.timestamp).getTime(); const now = Date.now(); const ttlMs = message.metadata.ttl * 1000; return (now - messageTime) > ttlMs; } function sanitizeMessage(message) { return message .replace(/[^\x20-\x7E]/g, '') .substring(0, 4096) .trim(); } //# sourceMappingURL=utils.js.map