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 🙏

© 2025 – Pkg Stats / Ryan Hefner

zenix-rbac-cli

v1.0.2

Published

Command-line interface for ZenixRBAC - Visual RBAC/ABAC system

Downloads

89

Readme

zenix-rbac-cli

Command-line interface for ZenixRBAC - Visual RBAC/ABAC permission system.

Installation

npm install -g zenix-rbac-cli

Commands

vrules init

Initialize a new ZenixRBAC project with starter files.

vrules init

This creates:

  • rules.yaml - Permission rules
  • vrules.config.ts - Engine configuration

vrules validate

Validate your rule files for syntax and logic errors.

vrules validate

# Or validate a specific file
vrules validate custom-rules.yaml

Checks for:

  • YAML/JSON syntax errors
  • Rule schema validation
  • Circular role dependencies
  • Undefined roles/resources

vrules export

Export compiled rules and generated TypeScript code.

vrules export

# Or specify output directory
vrules export --out ./generated

Generates:

  • rules.compiled.json - Pre-compiled rules
  • types.ts - TypeScript interfaces for resources
  • vrules.ts - Helper functions

vrules studio

Launch the visual studio for building rules.

vrules studio

# Or specify custom port
vrules studio --port 3000

Opens the visual builder at http://localhost:4141

On first run, initializes the studio in .vrules/studio/

Quick Start

# 1. Initialize project
vrules init

# 2. Edit rules.yaml
# ... define your roles, resources, and rules

# 3. Validate rules
vrules validate

# 4. Launch visual studio
vrules studio

# 5. Export for production
vrules export

Example Workflow

# Create a new project
mkdir my-app && cd my-app
vrules init

# Answer prompts
# Resource name: Post
# Resource description: Blog post
# Include examples: Yes

# Validate the generated rules
vrules validate
# ✓ All rules are valid!

# Export compiled rules
vrules export
# ✓ Generated files:
#   - generated/rules.compiled.json
#   - generated/types.ts
#   - generated/vrules.ts

# Use in your application

Integration

After exporting, use the generated files in your application:

import { can, authorize } from './generated/vrules';

// Check permission
const allowed = await can(
  { id: 1, role: 'editor' },
  'post.update',
  { id: 10, authorId: 1 }
);

// Or throw if not allowed
await authorize(
  { id: 1, role: 'viewer' },
  'post.delete',
  { id: 10 }
);

License

MIT