open-index/open-npm huggingface dataset:
npm package: @ohm-js/es-grammars
Description: Ohm grammars for modern versions of ECMAScript/JavaScript (ES2015+).
Author: Patrick Dubroy
Latest version: 1.0.1

# @ohm-js/es-grammars

Ohm grammars for modern versions of ECMAScript/JavaScript (ES2015+).

## Example

```js
import { es2020 } from '@ohm-js/es-grammars';
es2020.match('() => 3').succeeded(); // true
```
npm package: @ohm-js/miniohm-js
Description: Implementation of the miniohm interface, to use Wasm grammar blobs from JavaScript.
Author: Patrick Dubroy
Latest version: 0.5.0

# miniohm-js

## Differences

### Arity

- Iter and Opt nodes are no longer flattened.
- Positive lookahead does not bind a node.

## Building ASTs

- `AstBuilder` class replaces `toAST`.
- Recursive calls: `this.toAst(node)` rather than `node.toAST(this.args.mapping)`
- `this.currNode` vs `this`.
npm package: @ohm-js/typescript-codegen
Description: Creates .d.ts files from .ohm grammar files
Author: Patrick Dubroy
Latest version: 0.1.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ohm-typescript-codegen

⚠️ **WARNING:** Very experimental! ⚠️

Generates .d.ts files from .ohm grammar source files.

## Usage

```
generate-ohm-declarations [<pattern>...]    Generate type declarations for
                                            each of the .ohm files identified
                                            by <pattern>.
```
npm package: @ohm-js/wasm
Description: Compile Ohm.js grammars to WebAsssembly
Author: Patrick Dubroy
Latest version: 0.7.5

# @ohm-js/wasm

Compile Ohm.js grammars to WebAsssembly, so they can be used from other languages.

To use the grammar, use the appropriate _miniohm_ package for your language.

**NOTE:** This package is experimental; the API is not yet stable.

## Prerequisites

This package requires Node 24.

## Usage (compiling to Wasm)

### Command line

```
npx ohm2wasm my-grammar.ohm
```

This will write a Wasm grammar blob to ./my-grammar.wasm.

### API

```
import * as ohm from 'ohm-js';
import {Compiler} from '@ohm-js/wasm';

// Instantiate your own grammar…
const g = ohm.grammar('MyGrammar { start = "blah" }');

// compile() returns the Wasm grammar blob as a Uint8Array.
const bytes = new Compiler(g).compile();
```

Differences:

**Arity**
- Iter and Opt nodes are no longer flattened.
- Positive lookahead does not bind a node.

**Building ASTs**
- `AstBuilder` class replaces `toAST`.
- Recursive calls: `this.toAst(node)` rather than `node.toAST(this.args.mapping)`
- `this.currNode` vs `this`.

### Development

#### Prerequisites

- pnpm
- Node >= 24
- Make

#### Setup

From the repo root:

```
pnpm install
```

#### Testing etc.

From packages/wasm dir:

```
pnpm test # Run all tests
pnpm ava test/test-liquid-html.js # Run a specific test file
make bench # Run perf benchmarks
node scripts/parseLiquid.js '/Users/pdubroy/dev/third_party/Shopify/dawn/**/*.liquid'
```
npm package: @ohmantics/homebridge-airmega
Description: Homebridge plugin for the Airmega air purifier
Author: Andrew Schaper
Latest version: 3.4.1

# homebridge-airmega

Control and monitor your Airmega purifier with HomeKit.

[![npm version](http://img.shields.io/npm/v/@ohmantics/homebridge-airmega.svg)](https://npmjs.org/package/@ohmantics/homebridge-airmega) [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

## Functionality

* Control power, fan speed, and lights
* Toggle between manual and auto mode
* Reports the current air quality
* Reports the life levels and change indication for the pre-filter and Max2 filter.

## Prerequisites

* Installation of [Homebridge](https://github.com/nfarina/homebridge)
* iOS 11 or later
* Airmega AP-1512HHS, 250S, 300S, or 400S connected to WiFi and registered with the IOCare app.

## Installation

```
npm install -g homebridge-airmega
```

## Configuration

Use the plugin [settings pane](https://www.npmjs.com/package/homebridge-config-ui-x) or add the following to your homebridge config:

```
"platforms": [
  {
    "platform": "Airmega",
    "username": "myusername",
    "password": "password123"
  }
]
```

### Excluding Accessories

You can optionally prevent certain accessories from being created by using the `exclude` option in your config (note: only the lightbulb accessory supports exclusion for now).

Example:

```
"platforms": [
  {
    "platform": "Airmega",
    "username": "myusername",
    "password": "password123",
    "exclude": [
      "lightbulb"
    ]
  }
]
```

### Authentication

The IOCare app offers two main options for logging in: "Phone Number/Email" or "Coway ID". The username and password you supply in the config has been tested to work with either one. This plugin currently does not support authentication through social networks.

## Tested Siri Commands

Example of some Siri commands you can use:

* "Turn on the air purifier"
* "Turn off the air purifier lights"
* "Set the air purifier to auto"
* "Set the air purifier fan to medium"
* "What's the air quality in \<room name\>?"

## Notes

* If you have a IconS or other models not listed above, we'd like to [hear](https://github.com/ohmantics/homebridge-airmega/issues) from you.
* The Coway servers will ask you to change your password every 60 days. The plugin always defers that request.
* HomeKit will only display the status of one filter per purifier in the accessory details. It appears to choose randomly which filter it shows, however the filter change notification will appear if any filter needs changing. We've filed feedback with Apple to improve this.