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

@aax/gatekeeper

v1.0.86

Published

Permission library for aaX

Downloads

193

Readme

GateKeeper

Permission library for allaboutXpert


🔧 Installation

npm i @aax/gatekeeper

🎬 Getting started

Let's demonstrate usage with a few examples:

import {
  Action,
  Entity,
  GateKeeper,
  RisksAction,
  Scope
} from "@aax/gatekeeper";

// Get the permission set from your user token.
// Refer to the License API or a decoded
// token for correct keys to query
const token = user.token.perms;
const gk = new GateKeeper(token);

if (gk.can(RiskAction.RISKS_CLOSE, Scope.ALL, Entity.RISKS)) {
  // This user has the permission to close ALL risks
}

if (gk.can(RiskAction.RISKS_ESCALATE)) {
  // This person has the right to escalate risks
  // NOTE: There is no datascope being enforced on this query
  //       so it will only be used for instances where you
  //       want to e.g. show a button or meny entry
}

if (gk.can(Action.VIEW, Scope.ALL, Entity.Risks)) {
  // This user has the permuission view ALL risks
}

The library will not throw any Errors so try/catch blocks are not necessary. That being said when NODE_ENV=development the library will throw an Error but only as a warning that you have used the library incorrectly so keep an eye out on your consoles.

Full set of examples.

// Extended with scope
// console.log(gk.can(RisksAction.RISKS_CLOSE, Scope.ALL, Entity.RISKS));
// console.log(gk.can(RisksAction.RISKS_CLOSE, Scope.OWN, Entity.RISKS));

// Extended without scope
// console.log(gk.can(RisksAction.RISKS_ESCALATE));

// Entity with scope
// console.log(gk.can(Action.VIEW, Scope.ALL, Entity.RISKS));
// console.log(gk.can(Action.VIEW, Scope.OWN, Entity.RISKS));

// Entity without scope
// console.log(gk.can(Action.VIEW, Entity.RISKS));

Publish your new changes

Version eg: major.minor.patch

You are now done and want to publish your changes to the component library, based on the type of change you made, you'll want to use one of these commands Run npm run publish:patch when you make backwards compatible bug fixes. Run npm run publish:minor when you add functionality in a backwards compatible manner. Run npm run publish:major when you make incompatible API changes.

Process to follow

  1. Test your changes from one of the apps.
  2. Create a PR with your changes.
  3. Once approved, you can then Publish via one of the above publish commands.
  4. Once a new version of the library was created, you can now update all apps to reference the new component library version.