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

zwus

v2.0.2

Published

Zero Width Unicode Standard

Downloads

236

Readme

npm install zwus
import zwus from 'zwus';
console.log(`(${zwus.decodeToString(zwus.encodeString('Hello world!'))})`);

Paste these brackets (­‎­‌­‎⁠‌­​​‌­​​‌­​‎‌⁠‍­‌‎­‌­‎⁠‌⁠‍­‌‎­‌⁠‍​‌⁠‍‍‌­​‏‌­‎⁠‌⁠‍­‌‎­‌⁠‏‏‌­‎⁠‌­‎‏‌­‎­‌⁠‏­‌‏‏​) inside the extension & try decoding.

If you're curious how this is possible, try pasting encoded text here.

?

Unicode is the standard dictionary for every character that can be typed or pasted as text. There exists millions of uni codes containing foreign languages, emojis, etc. This standard won't be reverted. It is up to websites or the browser to ban characters. Some characters can have effects like making you write right to left, or act as the spacing between letters. From my research going through unicode charts I found 9 code points that are empty in length. It wouldn't be right to call them spaces because they don't even take up space.

Now in the same way 2+2 = 4, we could say codepoint1+codepoint2 = A

ZWUS-6, the 6 standing for base6 or senary, converts the code point to base6, then encodes the numbers with the zero width character assigned to 0-6

This extension defines a standard to represent all unicode so they can be encoded into zero width.

/** Zero Width Unicode Standard */
const ZWUS = {
    alphabet: {unifier: "\u{200C}", 0:"\u{200D}", 1: "\u{200F}", 2: "\u{00AD}", 3: "\u{2060}", 4: "\u{200B}", 5: "\u{200E}", 6:"\u{180E}", 7:"\u{FEFF}"},
    encodeString: (text, base = 6) => Array.from(text, u => u.codePointAt(0).toString(base).split('').map(x => ZWUS.alphabet[x]).join('')).join(ZWUS.alphabet.unifier)}

I've personally tested them in places like Discord, Steam chat, Reddit, Github, local text files, etc. For extra security you can encrypt the text as well however this will increase its storage size. I highly doubt forensics teams have protocol in place to scan for hidden zero width. You can hide private information in a place no one can see or use it to communicate.

In update 2.0 the signature feature was removed so all encoded text only includes relevant data. Furthermore this extension requires no browser permissions and collects zero data.

also available on npmjs