diff --git a/build/meshtastic.js b/build/meshtastic.js index 923990be9dda8c8e80c34fbd37177152fcdeb02f..efe6c92aabbdf2251f822ccbc13ad5b1385ca7a3 100644 --- a/build/meshtastic.js +++ b/build/meshtastic.js @@ -16188,6 +16188,7 @@ _this.myNodeInfo = new mesh_pb_exports.MyNodeInfo(); _this.deviceMetadata = new mesh_pb_exports.DeviceMetadata(); _this.channels = []; + _this.nodeInfo = {}; _this.ackHandlers = {}; _this.responseHandlers = {}; _this.purgeEvent = js.setInterval(_this.purgeHandlers, _this.timeoutMs, _this); @@ -16306,11 +16307,9 @@ delete this.responseHandlers[id]; handled = true; } - } else if (packet.payloadVariant["case"] === "encrypted") { } - if (!handled) { + if (!handled) this.emit("packet", packet); - } } }, { key: "handleFromRadio", @@ -16344,10 +16343,13 @@ case "logRecord": this.log(_LOG_LEVEL_MAP[fromRadio.payloadVariant.value.level], fromRadio.payloadVariant.value.message, fromRadio.payloadVariant.value.time, fromRadio.payloadVariant.value.source); break; + case "nodeInfo": + this.nodeInfo[fromRadio.payloadVariant.value.num] = fromRadio.payloadVariant.value; + this.emit("nodeInfo", fromRadio.payloadVariant.value); + break; case "config": case "moduleConfig": case "mqttClientProxyMessage": - case "nodeInfo": case "queueStatus": case "rebooted": case "xmodemPacket": @@ -16423,53 +16425,15 @@ var buffer = new Uint8Array([].concat(header, _toConsumableArray(data))); return this.sendToDevice(buffer); } - /** - * Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) with an encrypted payload. - * To do: - * Currently you would have to encrypt 'payload' yourself prior to calling. - * Presumably we could use channel info read upon initialization to get psk (and alg?) and encrypt 'payload' within this method - */ - }, { - key: "sendEncrypted", - value: function sendEncrypted(_ref) { - var payload = _ref.payload, _ref$to = _ref.to, to = _ref$to === void 0 ? _BROADCAST : _ref$to, _ref$channel = _ref.channel, channel = _ref$channel === void 0 ? 0 : _ref$channel, _ref$wantAck = _ref.wantAck, wantAck = _ref$wantAck === void 0 ? true : _ref$wantAck, _ref$hopLimit = _ref.hopLimit, hopLimit = _ref$hopLimit === void 0 ? 0 : _ref$hopLimit, _ref$priority = _ref.priority, priority = _ref$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref$priority, _ref$viaMqtt = _ref.viaMqtt, viaMqtt = _ref$viaMqtt === void 0 ? false : _ref$viaMqtt, ackHandler = _ref.ackHandler; - var id = getRandomId(); - var meshPacket = new mesh_pb_exports.MeshPacket({ - payloadVariant: { - "case": "encrypted", - value: payload - }, - from: this.myNodeInfo.myNodeNum, - to: to, - id: id, - wantAck: ackHandler !== void 0 ? true : wantAck, - channel: channel, - hopLimit: hopLimit, - priority: priority, - viaMqtt: viaMqtt - }); - var toRadio = new mesh_pb_exports.ToRadio({ - payloadVariant: { - "case": "packet", - value: meshPacket - } - }); - var ret = this.write(toRadio); - if (ret && ackHandler !== void 0) { - this.registerHandler(id, ackHandler, this.ackHandlers); - } - return ret; - } /** Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) based on your parameters and writes it to the device. */ }, { key: "sendPacket", - value: function sendPacket(_ref2) { - var payload = _ref2.payload, portNum = _ref2.portNum, _ref2$to = _ref2.to, to = _ref2$to === void 0 ? _BROADCAST : _ref2$to, _ref2$channel = _ref2.channel, channel = _ref2$channel === void 0 ? 0 : _ref2$channel, _ref2$wantAck = _ref2.wantAck, wantAck = _ref2$wantAck === void 0 ? true : _ref2$wantAck, _ref2$wantResponse = _ref2.wantResponse, wantResponse = _ref2$wantResponse === void 0 ? false : _ref2$wantResponse, source = _ref2.source, requestId = _ref2.requestId, replyId = _ref2.replyId, emoji = _ref2.emoji, _ref2$hopLimit = _ref2.hopLimit, hopLimit = _ref2$hopLimit === void 0 ? 0 : _ref2$hopLimit, _ref2$priority = _ref2.priority, priority = _ref2$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref2$priority, _ref2$viaMqtt = _ref2.viaMqtt, viaMqtt = _ref2$viaMqtt === void 0 ? false : _ref2$viaMqtt, ackHandler = _ref2.ackHandler, responseHandler = _ref2.responseHandler; + value: function sendPacket(_ref) { + var payload = _ref.payload, portNum = _ref.portNum, _ref$to = _ref.to, to = _ref$to === void 0 ? _BROADCAST : _ref$to, _ref$channel = _ref.channel, channel = _ref$channel === void 0 ? 0 : _ref$channel, _ref$wantAck = _ref.wantAck, wantAck = _ref$wantAck === void 0 ? true : _ref$wantAck, _ref$wantResponse = _ref.wantResponse, wantResponse = _ref$wantResponse === void 0 ? false : _ref$wantResponse, source = _ref.source, requestId = _ref.requestId, replyId = _ref.replyId, emoji = _ref.emoji, _ref$hopLimit = _ref.hopLimit, hopLimit = _ref$hopLimit === void 0 ? 0 : _ref$hopLimit, _ref$priority = _ref.priority, priority = _ref$priority === void 0 ? mesh_pb_exports.MeshPacket_Priority.UNSET : _ref$priority, _ref$viaMqtt = _ref.viaMqtt, viaMqtt = _ref$viaMqtt === void 0 ? false : _ref$viaMqtt, ackHandler = _ref.ackHandler, responseHandler = _ref.responseHandler; var id = getRandomId(); var meshPacket = new mesh_pb_exports.MeshPacket({ payloadVariant: { "case": "decoded", - // To do: what if I want to send encrypted, eh? What then eh buddy? Eh? Eh? Fucken fix it. value: { payload: payload, portnum: portNum, @@ -16509,8 +16473,8 @@ /** Send a text message out into the mesh, optionally specifying a 'to' node address, channel, want-acknowledgement, and acknowledgement handler */ }, { key: "sendText", - value: function sendText(_ref3) { - var text = _ref3.text, _ref3$to = _ref3.to, to = _ref3$to === void 0 ? _BROADCAST : _ref3$to, _ref3$channel = _ref3.channel, channel = _ref3$channel === void 0 ? 0 : _ref3$channel, _ref3$wantAck = _ref3.wantAck, wantAck = _ref3$wantAck === void 0 ? true : _ref3$wantAck, ackHandler = _ref3.ackHandler, replyId = _ref3.replyId, hopLimit = _ref3.hopLimit; + value: function sendText(_ref2) { + var text = _ref2.text, _ref2$to = _ref2.to, to = _ref2$to === void 0 ? _BROADCAST : _ref2$to, _ref2$channel = _ref2.channel, channel = _ref2$channel === void 0 ? 0 : _ref2$channel, _ref2$wantAck = _ref2.wantAck, wantAck = _ref2$wantAck === void 0 ? true : _ref2$wantAck, ackHandler = _ref2.ackHandler, replyId = _ref2.replyId, hopLimit = _ref2.hopLimit; var enc = new TextEncoder(); var payload = enc.encode(text); if (payload.length > _MAX_PAYLOAD) @@ -16790,6 +16754,14 @@ }); this.write(toRadio); } + /** Return data about the given node number from our node DB, or undefined if we don't got none. */ + }, { + key: "getNodeInfo", + value: function getNodeInfo(nodeNum) { + if (this.nodeInfo[nodeNum] !== void 0) + return this.nodeInfo[nodeNum]; + return; + } /** * AdminMessage payloadVariant cases not implemented: *