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

@bernierllc/nevar-engine

v0.1.0

Published

Central orchestration engine for the Nevar rules engine suite — emit, preview, pipeline, rule CRUD

Downloads

207

Readme

@bernierllc/nevar-engine

Central orchestration engine for the Nevar rules engine suite. Provides createNevar(), emit(), preview(), pipeline orchestration, rule CRUD with validation, and registration delegation.

Installation

npm install @bernierllc/nevar-engine

Usage

import { createNevar } from '@bernierllc/nevar-engine';

const engine = createNevar({
  storage: myStorageAdapter,
  failureMode: 'fail-fast',
});

// Register operators, triggers, actions, and context providers
engine.registerOperator('equals', {
  label: 'Equals',
  category: 'comparison',
  evaluate: (a, b) => a === b,
  schema: {},
});

engine.registerTrigger('user.created', {
  payloadSchema: {},
  description: 'Fired when a new user is created',
});

engine.registerAction('send-email', {
  label: 'Send Email',
  category: 'notification',
  configSchema: {},
  canDefer: false,
  handler: async (config, context) => {
    // send email logic
    return { sent: true };
  },
});

// Emit a trigger
const result = await engine.emit('user.created', { email: '[email protected]' });

// Preview without executing actions
const preview = await engine.preview('user.created', { email: '[email protected]' });

// Rule CRUD (validates before writing to storage)
const rule = await engine.createRule({ /* ... */ });
await engine.updateRule(rule.id, { name: 'Updated Rule' });
await engine.deleteRule(rule.id);

API

createNevar(config: NevarConfig): Nevar

Factory function to create a new engine instance.

Registration

  • registerOperator(name, definition) - Register a condition operator
  • registerTrigger(key, definition) - Register a trigger type
  • registerAction(actionType, definition) - Register an action handler
  • registerContextProvider(prefix, provider) - Register a context enrichment provider

Core

  • emit(triggerKey, payload, groupId?) - Emit a trigger and execute matching rules
  • preview(triggerKey, payload, groupId?) - Preview without executing actions

Rule CRUD

  • createRule(rule) - Create with validation
  • updateRule(id, patch) - Update with conditional re-validation
  • deleteRule(id) - Delete a rule

Discovery

  • operators.list() / operators.get(name)
  • triggers.list() / triggers.get(key)
  • actions.list() / actions.get(type)
  • loops.list() / loops.inspect(id) / loops.kill(id) / loops.pause(id) / loops.resume(id)

Integration Documentation

Logger Integration

This package integrates with @bernierllc/logger for structured logging. The engine logs pipeline execution stages, rule evaluation results, action outcomes, and error chains. Use logger's context-level switching to control verbosity per trigger or rule at runtime.

NeverHub Integration

This package integrates with @bernierllc/neverhub-adapter. When NeverHub is available, the engine registers itself for discovery and monitoring, exposing operator/trigger/action registrations and pipeline health metrics. Graceful degradation is supported when NeverHub is not present -- all core engine functionality works regardless.

License

Copyright (c) 2025 Bernier LLC. All rights reserved.