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

eipw-lint-js

v0.9.0

Published

Node.js bindings for eipw, the Ethereum Improvement Proposal validator

Readme

eipw

The EIP validator that's one more than eipv.

USAGE:
    eipw [OPTIONS] [SOURCES]...

ARGS:
    <SOURCES>...    Files and/or directories to check

OPTIONS:
        --format <FORMAT>     Output format [default: text] [possible values: text, json]
    -h, --help                Print help information
        --lints <LINTS>       Additional lints to enable
        --list-lints          List all available lints
        --no-default-lints    Do not enable the default lints

Demo

Example EIP

---
eip: 2
description: A really short example of an EIP.
title: Sample of an EIP
author: Sam Wilson (@SamWilsn)
discussions-to: https://example.com/
status: Living
type: Meta
created: 2022-06-30
---

## Specification

Implementers of this EIP must...

## Abstract

This is an abstract!

Output

error[markdown-order-section]: section `Specification` must come after `Motivation`
  --> /tmp/demo.md
   |
12 | ## Specification
   |
error[preamble-order]: preamble header `description` must come after `title`
 --> /tmp/demo.md
  |
3 | description: A really short example of an EIP.
  |

Lints

| id | Description | |-------------------------------------|-----------------------------------------------------------------------------------------------| | markdown-html-comments | There are no HTML comments in review-ready EIPs | | markdown-json-cite | All csl-json code blocks adhere to the correct schema. | | markdown-link-first | First mention of an EIP must be a link. | | markdown-link-status | EIPs linked in the body have statuses further along than the current proposal. | | markdown-no-backticks | No proposals are referenced inside backticks (eg. `EIP-1234`). | | markdown-order-section | There are no extra sections and the sections are in the correct order. | | markdown-re-eip-dash | Other EIPs are referenced using EIP-X, not EIPX or EIP X. | | markdown-re-erc-dash | Other ERCs are referenced using ERC-X, not ERCX or ERC X. | | markdown-refs | ERCs are referenced using ERC-X, while other proposals use EIP-X. | | markdown-rel-links | All URLs in the page are relative. | | markdown-req-section | Required sections are present in the body of the proposal. | | markdown-headings-space | Headers have a space after the leading '#' characters | | preamble-author | The author header is correctly formatted, and there is at least one GitHub user listed. | | preamble-date-created | The created header is a date. | | preamble-date-last-call-deadline | The last-call-deadline header is a date. | | preamble-discussions-to | The discussions-to header is a valid URL. | | preamble-eip | The eip header is a non-negative integer. | | preamble-enum-category | The category header is a recognized value. | | preamble-enum-status | The status header is a recognized value. | | preamble-enum-type | The type header is a recognized value. | | preamble-file-name | The file name reflects the EIP number. | | preamble-len-description | The description header isn't too long. | | preamble-len-title | The title header isn't too long. | | preamble-len-requires | The requires header has at least one item. | | preamble-list-author | The author header is a correctly formatted comma-separated list. | | preamble-list-requires | The requires header is a correctly formatted comma-separated list. | | preamble-no-dup | There are no duplicate headers. | | preamble-order | The preamble headers are in the correct order. | | preamble-re-description | The description doesn't contain "standard" or similar words. | | preamble-re-description-colon | The description doesn't contain any ":" characters. | | preamble-re-description-eip-dash | EIPs referenced in the description header use a dash. | | preamble-re-description-erc-dash | ERCs referenced in the description header use a dash. | | preamble-re-discussions-to | The discussions-to header points to Ethereum Magicians | | preamble-re-title | The title doesn't contain "standard" or similar words. | | preamble-re-title-colon | The title doesn't contain any ":" characters. | | preamble-re-title-eip-dash | EIPs referenced in the title header use a dash. | | preamble-re-title-erc-dash | ERCs referenced in the title header use a dash. | | preamble-refs-description | ERCs referenced in the description header use the ERC- prefix. | | preamble-refs-title | ERCs referenced in the title header use the ERC- prefix. | | preamble-req | All required preamble headers are present. | | preamble-req-category | The category header is present only when required. | | preamble-req-last-call-deadline | The last-call-deadline header is present only when required. | | preamble-req-withdrawal-reason | The withdrawal-reason header is present only when required. | | preamble-requires-ref-description | Proposals mentioned in the description header appear in the requires header. | | preamble-requires-ref-title | Proposals mentioned in the title header appear in the requires header. | | preamble-requires-status | EIPs listed in requires have statuses further along than the current proposal. | | preamble-trim | There is no extra whitespace around preamble fields. | | preamble-uint-requires | The requires header is a sorted list of non-negative integers. |

JavaScript / WebAssembly

eipw-lint-js packages eipw as an npm package, for use in JavaScript / TypeScript.

You can find the package on npm.

Building & Publishing

cd eipw-lint-js
wasm-pack test --node
wasm-pack build -t nodejs
wasm-pack publish -t nodejs