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

@effect-cucumber/gherkin

v0.10.3

Published

Gherkin feature-file parsing for effect-cucumber. Effect-native; effect is a peer dependency only (ADR-EC-021), never bundled. Uses core effect's FileSystem service interface; depends on no concrete platform implementation.

Readme

@effect-cucumber/gherkin

.feature file parsing and step-text matching for effect-cucumber, wrapping the official @cucumber/gherkin and @cucumber/cucumber-expressions packages rather than reimplementing them. It is Effect-native: effect is a peer dependency, never bundled and never a hard dependency (ADR-EC-021), and the package reaches FileSystem/Path through core effect's own service interfaces, so it depends on no concrete platform implementation and no test runner — whichever runner package consumes it supplies those.

Most consumers should install @effect-cucumber/vitest instead, which re-exports loadFeature from this package.

Status

Published on npm as 0.1.0 (pre-1.0: the API can still move). The parse pipeline has shipped. loadFeature(path) returns Effect<ParsedFeature, LoadFeatureError | StepPatternError, FileSystem.FileSystem | ParameterTypeStore> and parseFeature(source, uri) returns Effect<ParsedFeature, LoadFeatureError | StepPatternError, ParameterTypeStore> — Effect-returning since ADR-EC-021, with the former options? argument replaced by an ambient ParameterTypeStore service since ADR-EC-023, so a caller provides both requirements as Layers rather than passing either one. The ParsedFeature contract — correlated scenarios, steps, rules, and the LoadFeatureError / LoadFeatureWarning surface — is real. Custom parameter types and step matching have shipped too: ParameterTypeStore.layer([...]) declares custom types as plain data carried by a Layer (there is no process-wide store), every parse replays that store's definitions into a fresh registry handed back on ParsedFeature.parameterTypes, and createStepMatcher matches a step text against every registered pattern with its arguments already coerced. The DataTable wrapper has shipped too: a step's DocString and data table arrive on ParsedStep.stepArguments, wrapped and in the source order the feature file wrote them, a DataTable there answers .raw()/.hashes()/.rowsHash() — this package's own accessors, since .hashes() is not native to @cucumber/gherkin — and decodeHashes(rowSchema) decodes a table's body rows through Schema, naming the offending row and column on failure. See spec/roadmap.md for what is built versus what is only specified.

Install

pnpm add @effect-cucumber/gherkin

Requirements

Node >=20.