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 🙏

© 2026 – Pkg Stats / Ryan Hefner

jsf1

v1.2.4

Published

just some sf script.

Readme

jsf1

Salesforce CLI utility toolkit. Three commands: jsf1, jsf1dl, jsf1m.

Install

npm install -g jsf1
# or dev
npm link .

Requirements

  • Node.js 18+
  • Java 17+ (for jsf1dl)
  • sfdx / sf CLI (for org authentication)

.env

Auto-loaded from the current working directory on every command.

# .env
SF_ORG=myorg              # default sfdx alias (-u), replaces --alias on all commands
SF_SQLITE=./data.db       # auto-append to --output on get-db (writes to sqlite)

# Optional
LOG_LEVEL=DEBUG           # DEBUG | INFO | WARN | ERROR | FATAL
API_VERSION=63.0          # Salesforce API version
SF_LIMIT=100              # default --limit / --size
SF_ORDER=CreatedDate DESC # default --order
SF_TOOLING=1              # enable Tooling API by default
SF_STANDARD_SOBJECTS=User,Account,Contact  # override standard sobject list
SF_LOG_DIR=logs           # default output dir for logging/test-result
JSF1_DEBUG=1              # sqlite debug output

jsf1

Salesforce data & metadata CLI.

Auth

sfdx force:auth:web:login -a myorg

CRUD

jsf1 q -s Account --limit 10                        # query (SF_ORG auto-injected)
jsf1 q -s Account -u myorg --limit 10 --table
jsf1 q -s Account/0011U000026qmBUQAY -u myorg       # get by id
jsf1 query "SELECT Id,Name FROM Account" -u myorg
jsf1 search -s Account -k keyword -u myorg
jsf1 bulk-query "SELECT Id FROM Account" -u myorg -o out.csv

jsf1 create Account -u myorg -f data.json
jsf1 update Account -u myorg -f data.json
jsf1 upsert Account -u myorg -f data.json --pkey ExternalId__c
jsf1 delete Account -u myorg -f ids.json

Schema

jsf1 describe -u myorg                              # list all sobjects
jsf1 get-schema -u myorg -s Account                # describe single sobject
jsf1 get-schema -u myorg --output schema.xlsx
jsf1 get-db -u myorg --standard Account User RecordType --limit 2000 --output ./dist/db
jsf1 get-db -u myorg                               # SF_SQLITE auto-writes to sqlite
jsf1 relation-parser -d ./dist/db/sobjects -s Account --maxdeepth 6 --flat

Logs & Monitor

jsf1 logging -u myorg                              # stream apex logs (SF_LOG_DIR)
jsf1 test-result -u myorg                          # stream test results
jsf1 get-apex-log -u myorg --size 20
jsf1 get-event-log -u myorg --limit 10
jsf1 get-async-apex-job -u myorg
jsf1 get-setup-audit-trail -u myorg

Metadata

jsf1 md describe -u myorg
jsf1 md list -u myorg --type CustomObject
jsf1 md read -u myorg --type CustomObject -f Account
jsf1 md-read -u myorg CustomObject:Account
jsf1 md-cp -f org1 -t org2 CustomField:Account.MyField__c
jsf1 metadata -u myorg describe

Diagram / ERD

jsf1 erd -u myorg --output erd.mmd
jsf1 dependency -u myorg --type ApexClass
jsf1 dependency-summary -u myorg

Other

jsf1 limit -u myorg
jsf1 token -u myorg
jsf1 rest /services/data/v63.0/sobjects -X get -u myorg
jsf1 start-server -p 8888                          # hpm proxy server
jsf1 xlsx -f data.xlsx                             # read excel
jsf1 sql -u myorg --type pg                        # generate postgres DDL
jsf1 process-conf -u myorg                         # dataloader process-conf.xml
jsf1 package-sort                                  # sort package.xml
jsf1 package-merge -f p1.xml p2.xml -o merged.xml

Output formats

Most commands support --output (array):

jsf1 q -s Account -u myorg -o out.json out.xlsx out.csv out.db

Supported: .json, .yaml, .csv, .tsv, .xlsx, .db, .sqlite


jsf1m

Local metadata parser (no org connection needed).

jsf1m apex-summary -d force-app/main/default -o summary.xlsx
jsf1m customlabel -d force-app/main/default -o labels.xlsx
jsf1m sobject -d force-app/main/default -o sobjects.xlsx
jsf1m exp-route -d force-app/main/default/experiences -o routes.xlsx
jsf1m deploy-script -a HEAD~1 -b HEAD    # generate sf deploy script from git diff
jsf1m packagexml -f metadata.xlsx -o package.xml
jsf1m changeset <packageName> -c jsf1m.yml
jsf1m deploy <packageName>
jsf1m init <packageName>

jsf1dl

Salesforce Dataloader wrapper. Requires Java 17+.

# 1. Initialize config (username/password auth)
jsf1dl init -u [email protected] -p MyPass+SecurityToken -e https://login.salesforce.com

# 2. Encrypt password
jsf1dl encrypt MyPass+SecurityToken -c jsf1dl/config

# 3. Export
jsf1dl export -q "SELECT Id,Name FROM Account" -c jsf1dl/config

# 4. Insert / Update / Upsert / Delete
jsf1dl insert -c jsf1dl/config
jsf1dl update -c jsf1dl/config
jsf1dl upsert -c jsf1dl/config
jsf1dl delete -c jsf1dl/config

# Open Dataloader UI
jsf1dl ui

Note: jsf1dl uses username/password authentication (not OAuth). The security token must be appended to the password.