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

fndr

v0.2.2

Published

Password manager that stores your information securely in the datastore of your choice through connectors.

Downloads

47

Readme

fndr

Flexible and secure (AES-256 bit encryption) password manager that gives you complete control of your account information. fndr supports customized connectors that tell fndr where to store your encrypted account information.

The default connector is the filesystem connector that encrypts and stores account information on your local file system.

Highlight: Jupiter blockchain connector

The Jupiter connector supports storing your accounts on chain in a decentralized and secure manner using AES encryption on the Jupiter blockchain.

Note on >=0.1.0 breaking change

Prior to v0.1.0 the default connector was the jupiter connector. Now the default connector is filesystem, so if upgrade to >=0.1.0 you need to run the following command to use the jupiter connector.

$ fndr use -c jupiter

Requirements

Node.js, ideally the LTS version, and NPM installed (NPM get's shipped with a fresh Node.js install)

Install

$ npm install -g fndr

If successful, you should be able to get the fndr version:

$ fndr -v
0.0.1

Usage

$ # Display all help text on how to use fndr
$ fndr --help
$
$ # setup configuration for fndr based on the connector(s) you're using
$ # for the default Jupiter connector, see below for requirements to get started
$ fndr config
$
$ # find the location of the config file
$ fndr file
Your configuration file is in the following location:
/Users/moontology/.fndr/jupiter.json

$ # get current connector being used
$ fndr connector
filesystem

$ # setup fndr to use a particular connector (DEFAULT is 'filesystem')
$ fndr use -c jupiter
Successfully changed connector to 'jupiter'!

$ # add new facebook account
$ fndr add -n facebook -u [email protected]
? The password for account: facebook. [hidden] [input is hidden]
Successfully added account 'facebook'!

$ # search for your new facebook account with a search query (-q)
$ fndr search -q facebook
I found the following accounts:
ID                                   NAME            USERNAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        [email protected]
1 of 3 total accounts returned

$ # show only your facebook account. Needs the exact name with `-n` provided
$ # or the ID with a `-i` provided
$ fndr show -n facebook
ID                                   NAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook

$ # with the `-p` parameter, also show the password in the terminal window
$ fndr show -n facebook -p
ID                                   NAME            PASSWORD
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        thePassword

$ # with the `-P` (capital P) parameter, only show the password for command piping support
$ fndr show -n facebook -P
thePassword

$ # find account by ID
$ fndr show -i 7cc821a0-7866-11eb-9e3a-6725a812df0e
ID                                   NAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook

$ # without a query (`-q`) in search, pull down ALL accounts
$ # (search never displays passwords)
$ fndr search
I found the following accounts:
ID                                   NAME            USERNAME             EXTRA
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        [email protected]
0de634c0-7866-11eb-9676-b1f9506d8872 theAccount
6e3d6640-7870-11eb-95dc-014f038856e7 instagram       moontology           some extra text provided
3 of 3 total accounts returned

$ # update an existing account
$ node dist/fndr update -n facebook -e "this is my main account"
? The password for account (leave blank if unchanged): facebook. [hidden]

Successfully updated account: 'facebook'!

$ # delete an account from the fndr database (requires entering the ID)
$ fndr delete -i 7cc821a0-7866-11eb-9e3a-6725a812df0e
Successfully deleted account: '7cc821a0-7866-11eb-9e3a-6725a812df0e'.

$ # export all your accounts on your machine in a JSON file.
$ # THIS CONTAINS ALL YOUR ACCOUNTS AND PASSWORDS UNENCRYPTED SO BE CAREFUL WHAT YOU DO WITH THIS
$ fndr export
You're export was created in the following location.
NOTE: this contains your account information unencrypted so keep it in a safe place!

/Users/moontography/.fndr/export_1614540410.json

Connectors

Connectors are interfaces that support storing your encrypted account information in different data sources. This could range from a blockchain, SQL database, Redis, your file system, etc. The possibilities are endless, and you can refer to the types to understand the interface needed to build your own connector(s).

filesystem (default)

Store account information securely on your machine that is AES-256 bit encrypted with a secret you provide. When running fndr for the first time, you'll be prompted to enter a secret/password that will be used to encrypt your data. Do not lose this secret in case you need to recover your passwords later!

$ fndr use -c filesystem

jupiter

Store account information securely on the Jupiter blockchain.

$ fndr use -c jupiter

Requirements

  • A funded Jupiter blockchain address (JUP-XXX-XXX...)
    • When we say "funded", we mean you need a VERY TINY amount of JUP in this address. We attempt to fund a newly created account that will be used to store transactions with your encrypted account data with 0.0005 JUP (50000 NQT), which as of the time of writing is fractions of a cent in USD.

We want your ideas and PRs for new connectors!

TODO

Today if you've been using a connector and would like to switch to a different one, your accounts are not ported over to the new connector. We will add this functionality soon.

Development

I'd love for you to contribute to the project! Use the steps below to pull down the source code and build, and feel free to create PRs as you'd like.

All PRs need to passing tests that test any additions or changes to existing code.

$ git clone https://github.com/whatl3y/fndr
$ cd fndr
$ npm install
$
$ # run tests
$ npm test
$
$ # build app (also run this after making changes to source code)
$ npm run build
$
$ # now you can run commands with the locally built entry point
$ # example:
$ node dist/fndr search -q facebook

Quick Note

fndr with the filesystem connector is basically a rebuild of hide password manager. I'm still decided whether to rename this repo back to hide and provide clear migration steps from it or leave fndr alone, I haven't really decided yet :)

Tips w/ cryptocurrency

I love FOSS (free and open source software) and for the most part don't want to charge for the software I build. It does however take a good bit of time keeping up with feature requests and bug fixes, so if you have the desire and ability to send me a free coffee, it would be greatly appreciated!

  • Bitcoin (BTC): 3D779dP5SZo4szHivWHyFd6J2ESumwDmph
  • Ethereum (ETH and ERC-20 tokens): 0xF3ffa9706b3264EDd1DAa93D5F5D70C8f71fAc99
  • Stellar (XLM): GACH6YMYFZ574FSGCV7IJXTGETEQL3DLQK64Z6DFGD57PZL5RH6LYOJT
  • Jupiter (JUP) mainnet: JUP-TUWZ-4B8Z-9REP-2YVH5