npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

the-slate

v1.1.1

Published

A chat client with homemade encryption that is accessible to users via a web browser. The main-server exists only as an information board which shows users where to send their messages. However, users communicating to other users is a FULLY peer to peer s

Downloads

32

Readme

Slate

What's said here is stored nowhere

This is a chat client with an encryption scheme undergirded with rsa that is accessible to users via a web browser.. However, users communicating to other users is a FULLY peer to peer synchronous communication process

The main-server exists only as an information board which shows users where to send their messages. The client's communications with the server include: login, signup, logout, creating room, joining room, getting keys. The getting keys part is because the client and the mainserver have a private & public key setup. The flow of data from client to main-server is browser --request--> clientLocalhost --request--> *mainserver* --response--> clientLocalhost --response--> browser

However, in user to user communication, it is a FULLY peer to peer synchronous communication process. The flow of data from one client to another is browser --message--> client1Localhost --message--> ngrokTunnelForClient2 --message--> client2Localhost --message--> browser

Remember that this is made for LIVE/SYNCHRONOUS communication. This is because I (at least) do NOT store message data whatsoever, so it will be GONE after a single reload

After a reload, it's a Clean Slate

Setup

  • Make sure you have installed node.js since that's what the javascript files run on
  • Download github repository as ZIP, git clone --depth=1 https://github.com/Y0ursTruly/slate.git, OR npm install the-slate

Running

For any method of installation, running this has the same concept, node path/to/slate/slate.js or cd path/to/slate;npm start

To Note

  • Yes it does sound cringey but I would like your feedback from anyone who uses it.. feel free to contact me at [email protected]
  • For info on the update history, make sure to check out my update log
  • I know I say it in the setup header but since this is source code, you would need node.js

Private Encryption Configuration(PEC)

For The Private Encryption Configuration(PEC) option you would see in the your browser(Once Logged In) is taking advantage of a third aspect of the encryption for Slate. There are some examples (1 Custom and 1 Normal) groups you can try: My Chat(Normal one) and Custom Chat(Custom one)

Examples Begin

  • For My Chat, make sure the PEC option is set to no(it is like this as default) and the password is asdf
  • For Custom Chat, make sure the PEC option is set to yes and the password is don'tenter The PEC config file(I also call it a ledger) comes with this repository However you can experiment using 2 machines with different ledgers(different config files for PEC), then instead of a message and you will see the system text basically saying that it can't decrypt received message

Examples End

The Custom one uses the Private Encryption Configuration and you will see the respective (Custom Chat).json file in the JSON folder This third aspect of the Slate encryption uses a "PEC config file", or "ledger" which is basically a different alphabet that the encryption system would work with. The ().json file is the default ledger(for communicating to mainserver) Because of this ledger system, even if you have the password for a group, if you don't have their ledger, the information would still be inaccessible to you

With the simple change of the 'alphabet' it uses and the encryption changes form drastically. So there can be literally several people in a room that uses PEC(the very same room), and if they each have different ledgers, they won't be able to read each others' messages

Making a Group with PEC

If you are making a group with it, click the 'Create Config File for PEC' button. A prompt would come up and there you put in the EXACT name of the group it is for

Joining a Group with PEC

If it is a group you want to join, I would assume they gave you a (ChatName).json file. Put this file in your JSON folder