* Fix default filter behaviour * Persist message store * messageStore tests, node PKI validation Implement node validation and improve merging logic - Added `validateIncomingNode` function to validate new nodes against existing nodes, checking for public key conflicts and ensuring proper handling of node updates. - Updated `nodeDBFactory` to utilize the new validation function when adding nodes. - Enhanced `getNodes` method to optionally include the current node in the results. - Removed the `mergeNodeInfo` utility as its functionality is now integrated into the validation and merging process. - Updated tests to cover new validation logic and ensure correct behavior during node addition and merging. - Cleaned up unused utility functions related to key comparison. * refactor: reuse eviction logic for message and node stores * Update format, move hooks * Improve test performance * Update imports --------- Co-authored-by: philon- <philon-@users.noreply.github.com> Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
Meshtastic Web Monorepo
Overview
This monorepo consolidates the official Meshtastic web interface and its supporting JavaScript libraries. It aims to provide a unified development experience for interacting with Meshtastic devices.
Projects within this Monorepo (packages/)
All projects are located within the packages/ directory:
packages/web(Meshtastic Web Client): The official web interface, designed to be hosted or served directly from a Meshtastic node.packages/core: Core functionality for Meshtastic JS.packages/transport-node: TCP Transport for the NodeJS runtime.packages/transport-deno: TCP Transport for the Deno runtime.packages/transport-http: HTTP Transport.packages/transport-web-bluetooth: Web Bluetooth Transport.packages/transport-web-serial: Web Serial Transport.
All Meshtastic JS packages (core and transports) are published both to
JSR. NPM
Stats
| Project | Repobeats |
|---|---|
| Meshtastic Web |
Tech Stack
This monorepo leverages the following technologies:
- Runtime: pnpm / Deno
- Web Client: React.js
- Styling: Tailwind CSS
- Bundling: Vite
- Language: TypeScript
- Testing: Vitest, React Testing Library
Getting Started
Prerequisites
You'll need to have pnpm installed to work with this monorepo. Follow the installation instructions on their home page.
Development Setup
- Clone the repository:
git clone https://github.com/meshtastic/meshtastic-web.git cd meshtastic-web - Install dependencies for all packages:
This command installs all necessary dependencies for all packages within the monorepo.
pnpm install
Running Projects
Meshtastic Web Client
Please refer to the Meshtastic Web README for setup and usage.
Feedback
If you encounter any issues, please report them in our issues tracker. Your feedback helps improve the stability of future releases
Contributing
We welcome contributions! Here’s how the deployment flow works for pull requests:
-
Preview Deployments:
Every pull request automatically generates a preview deployment on Vercel. This allows you and reviewers to easily preview changes before merging. -
Staging Environment (
client-test):
Once your PR is merged, your changes will be available on our staging site: client-test.meshtastic.org.
This environment supports rapid feature iteration and testing without impacting the production site. -
Production Releases:
At regular intervals, stable and fully tested releases are promoted to our production site: client.meshtastic.org.
This is the primary interface used by the public to connect with their Meshtastic nodes.
Please review our Contribution Guidelines before submitting a pull request. We appreciate your help in making the project better!