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

upcruc

v0.2.3

Published

UPcoming CRUCs. Not for those with a weak constitution.

Downloads

21

Readme

upcruc 🤢

UPcoming CRUCs. A node module and command line utility for managing Salesforce critical updates. upcruc retrieves the latest critical updates from your Salesfoce org including auto-activation dates. When used from the command line, upcruc prints each critical update to stdout for all your piping and redirection wizardry.

Usage

npm install upcruc

Notes

  • upcruc utilizes puppeteer in order to retrieve crucs via headless Chrome, which retrieves and installs a version of Chromium as a dependency
  • crucs are returned sorted by auto-activation date in chronological order (soonest first)

...as a Node module

const upcruc = require('upcruc'); 

// getCrucs() returns Promise<CRUC[]>
let crucs; 

// with no options (requires .env file in your project's root directory)
crucs = await upcruc.getCrucs(); 

// with options
const options = {
    runHeadless: true, // if false, a Chromium window will open 
    sessionId: 'someSessionId', // use to inject an existing session; .env file will be ignored when provided
    baseUrl: 'https://mysfinstance.my.salesforce.com' // required when sessionId value is included
}; 

crucs = await upcruc.getCrucs(options); 

...from the terminal

From command line:

<pathToUpcruc>/.bin/upcruc.js

upcruc.js simply wraps the upcruc module and prints each cruc to stdout (your terminal window) in tab-separated format, a la:

$ node <pathToUpcruc>/.bin/upcruc.js

# output:
activationDate  name    summary
11/30/2020      Super critical update.  More info here...
...

...in an NPM script

When you install upcruc the execution script gets copied to your <root>/node_modules/.bin folder and is accessible to your scripts. So, for example, you could add the following to your package.json file...

//...
"scripts": {
    "upcruc": "upcruc | less"
}
//...

...and then in a terminal, run npm run upcruc, and the resulting output would get piped to the less command. No symlink required!

Config

upcruc must authenticate to your org in order to pull down the most recent list of critical updates. It does so through use of a .env file which must reside in the root directory of your project. Do not commit this file to source control.

Your .env file must contain the following key/value pairs:

USERNAME=yourUsername
PASSWORD=yourPw
SEC_TOKEN=yourSecurityToken

You may also pass in an existing sessionId as shown above.