open-index/open-npm huggingface dataset:
npm package: @iotakingdoms/auth
Description: [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=iotakingdoms_auth&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=iotakingdoms_auth)
Author: Anton Wiklund
Latest version: 0.0.29

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=iotakingdoms_auth&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=iotakingdoms_auth)

# Auth

...
npm package: @iotakingdoms/common
Description: [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=iotakingdoms_common&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=iotakingdoms_common)
Author: Anton Wiklund
Latest version: 0.0.15

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=iotakingdoms_common&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=iotakingdoms_common)

# Common

...
npm package: @iotale/babel-plugin-add-config-name
Description: A Babel plugin to log configuration file names during compilation and add them to the output code.
Author: ale0720@163.com
Latest version: 1.0.1

# @iotale/babel-plugin-add-config-name

A Babel plugin that logs configuration file names during compilation and adds them as an array (`__CONFIG_NAMES__`) in the output code.

## Installation

```bash
npm install @iotale/babel-plugin-add-config-name
```
npm package: @iotarouter/vite
Description: Vite plugin for iotarouter route generation.
Author: septech
Latest version: 1.0.0

# vite-plugin-iotarouter

Vite plugin for iotarouter route generation.

## Usage

```ts
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import iotarouter from "@iotarouter/vite";

export default defineConfig({
  plugins: [react(), iotarouter()],
});
```

```tsx
// src/main.tsx
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { RouterProvider } from "iotarouter";
import Route from "virtual:routes.tsx";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <RouterProvider>
      <Route fallback={<div>Loading...</div>} />
    </RouterProvider>
  </StrictMode>
);
```
npm package: @iotbits-io/mbox-ui-client
Description: ModbusBox Client Library for device monitor and control across applications.
Latest version: 1.6.0

# ModbusBox Client Library

![NPM Version](https://img.shields.io/npm/v/@iotbits-io/mbox-ui-client?style=flat-square)

ModbusBox Client Library for device monitor and control across applications.

## Installation

```bash
npm install @iotbits-io/mbox-ui-client
```

Or using yarn:

```bash
yarn add @iotbits-io/mbox-ui-client
```

## Features

- API for ModbusBox interactions
- Support for Web and Node.js environments
- Built-in utilities for common tasks

## Usage

### Import the library

In a JavaScript/TypeScript file, import the library:

```javascript
import { MBoxClient } from '@iotbits-io/mbox-ui-client';
```

### Example

```javascript
const deviceIp = "192.168.4.1"

const client = new MBoxClient(deviceIp);

// Subscribes to status updates.
client.onStatusUpdate((status) => {
    console.log(status);
});

// Subscribes to device error messages
client.onDeviceError((error) => {
    console.log(error);
});

// Flash LED to locate device
await client.locate();
 
// Get Device Info 
const deviceInfo = await client.getInfo();
console.log(deviceInfo);

```

## API Documentation

For more details on the API, check the [API Documentation](https://iotbits-us.github.io/mbox-ui-client/).

## Development

To build the library:

```bash
npm run build
```

To generate documentation:

```bash
npm run docs
```

## Release

To release a new version of this project, simply push your commits to the `main` branch or merge a pull request. The GitHub Actions workflow will automatically trigger [Semantic Release](https://semantic-release.gitbook.io/semantic-release/v/beta/), which will analyze your commit messages to determine the type of version bump needed (major, minor, or patch). The new version will then be automatically published to NPM, and a corresponding GitHub Release will be created, complete with auto-generated release notes. Ensure your commit messages adhere to [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) to take full advantage of this feature.

- **Patch**: For fixes (`fix:`)
- **Minor**: For new features (`feat:`)
- **Major**: For breaking changes (`BREAKING CHANGE:`)

```markdown
<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
  │                          elements|forms|http|language-service|localize|platform-browser|
  │                          platform-browser-dynamic|platform-server|router|service-worker|
  │                          upgrade|zone.js|packaging|changelog|docs-infra|migrations|
  │                          devtools
  │
  └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
npm package: @iotcomms.io/chai-json-pattern
Description: Chai JSON pattern assertions
Author: Damian Szulc
Latest version: 1.0.0

# Chai JSON Pattern
> Deep matching objects with clear, JSON-like syntax.

[![CircleCI](https://circleci.com/gh/damian-brainhub/chai-json-pattern/tree/master.svg?style=svg)](https://circleci.com/gh/damian-brainhub/chai-json-pattern/tree/master)

# Introduction
Chai JSON pattern allows you to create *blueprints* for JavaScript objects to ensure *validation* of key information. It enables you to use JSON syntax extend with easy to use validators. It came up mostly for testing API with cucumber-js, but can be used in any application. Additionaly you can extend base functionality with custom validators. For more information see API reference.
# API
See the detailed [API Reference](https://github.com/damian-brainhub/chai-json-pattern/blob/master/API.md).

# Example

```js

const pattern = `
    {
        "username": String AND alphanum AND minLength(3) AND maxLength(30),
        "password": String AND regex("/^[0-9a-zA-Z]{5,30}$/"),
        "access_token"?: String AND Number,
        "birthyear": Integer AND range(1900, 2017),
        "email": String,
        ...
    }
`;

expect(user).to.matchPattern(pattern);
```
The above pattern require `user` to be an object with keys that satisfy following conditions:
* `username`
    * required string
    * contain only alphanumeric characters
    * must have at least 3 characters, and maximum 30
* `password`
    * required string
    * must satisfy the custom regex
* `access_token`
    * optional string or number
* `birthyear`
    * required Integer between 1900 and 2017
* `email`
    * required string
* allow another keys (e.g. createdAt, updateAt, etc.)

If `user` will not satisfy pattern, test will not pass, and you will see error with diff between `user` and pattern.

# Usage
Usage is a two steps process. First, you have to install `chai-json-pattern` package.
```
npm install --save-dev chai-json-pattern
```
Then import `chaiJsonPattern` and use `matchPattern`:
```js
import chai, { expect } from 'chai';
import chaiJsonPattern from 'chai-json-pattern';

chai.use(chaiJsonPattern);

expect({ a: 2 }).to.matchPattern(`{
    "a": Number AND range(0, 5),
}`);
```