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

@nevware21/tripwire-chai

v0.1.8

Published

Tripwire Chai Extension

Downloads

333

Readme

@nevware21/tripwire-chai

GitHub Workflow Status (main) codecov npm version downloads downloads

Chai.js compatibility shim powered by tripwire - Drop-in replacement for Chai's assert API.

Chai v5.x Compatible - Designed to match the Chai v5.x assert API

Purpose

Migrate from Chai.js without rewriting your tests. Perfect when:

  • Chai dependencies are causing build issues
  • You need Web Worker support (broken in some Chai versions)
  • Your project is stuck due to Chai dependency conflicts
  • You want to unblock your tests and migrate gradually

Note: This is NOT a complete Chai replacement. Only the assert.* API is implemented. The expect and should APIs are NOT available.

Installation

npm install @nevware21/tripwire-chai --save-dev

Recommended version range:

{
  "devDependencies": {
    "@nevware21/tripwire-chai": ">= 0.1.8 < 2.x"
  }
}

Quick Migration

Step 1: Update imports

- import { assert } from 'chai';
+ import { assert } from '@nevware21/tripwire-chai';

Step 2: Run your tests

Most assert.* functions should work immediately.

Step 3: Fix error message tests (if any)

Error messages differ from Chai. Use regex instead of exact strings:

- assert.throws(() => fn(), "exact chai message");
+ assert.throws(() => fn(), /error message/);

What's Supported?

Fully Implemented (assert API)

  • Basic: equal, notEqual, strictEqual, deepEqual, isOk, isTrue, etc.
  • Types: isObject, isArray, isString, isNumber, isBoolean, isFunction, isNull, isUndefined, isNaN, isFinite, etc.
  • Comparisons: isAbove, isAtLeast, isBelow, isAtMost, closeTo, approximately, operator
  • Properties: property, deepProperty, nestedProperty, ownProperty with value validation
  • Collections: include, deepInclude, nestedInclude, ownInclude, deepOwnInclude, members, sameMembers, keys
  • Deep Keys: hasAnyDeepKeys, hasAllDeepKeys, containsAllDeepKeys, doesNotHaveAnyDeepKeys, doesNotHaveAllDeepKeys for Maps/Sets with object keys
  • Size: lengthOf, sizeOf
  • Changes: changes, increases, decreases with delta tracking
  • Errors: throws, doesNotThrow, ifError
  • State: isExtensible, isSealed, isFrozen, isEmpty

NOT Implemented

  • expect API - Use core @nevware21/tripwire instead
  • should API - No plans to implement
  • Plugins - use() function not available

Usage Example

import { assert } from '@nevware21/tripwire-chai';

// Your existing Chai tests should work
assert.equal(1 + 1, 2);
assert.isArray([1, 2, 3]);
assert.deepEqual({ a: 1 }, { a: 1 });
assert.throws(() => { throw new Error(); });
assert.property({ a: 1 }, 'a');
assert.include([1, 2, 3], 2);

Documentation

Migration Guide & Examples: Documentation Guide

Migrating from Chai: Migration Guide - Complete guide for upgrading from Chai.js to Tripwire

API Reference: TypeDoc Documentation

Core Package: @nevware21/tripwire - Consider migrating for better features

Repository: github.com/nevware21/tripwire

When to Use Core Tripwire

Consider switching to @nevware21/tripwire for:

  • Better error messages
  • Fluent expect syntax
  • New features and improvements
  • Long-term maintenance

Browser Support

  • Comprehensive support from ES5+ for broad compatibility
  • Tested in Node.js, browsers, and Web Workers

Contributing

See Contributing Guide

License

This project is licensed under the MIT License. See the LICENSE file for details.