open-index/open-npm huggingface dataset:
npm package: @ravnhq/eslint-config
Description: > Ravn [Eslint](https://eslint.org/) config.
Author: Donovan Hiland
Latest version: 2.0.1

# `@ravnhq/eslint-config`

> Ravn [Eslint](https://eslint.org/) config.

## Usage

**Install**:

```bash
$ yarn add --dev eslint@"^8.0.0" @ravnhq/eslint-config
```

**Edit `.eslintrc.js`**:

```js
module.exports = {
  extends: ["@ravnhq/eslint-config"],
}
```

Optionally there are other supplemental configs based on the project:

```js
module.exports = {
  extends: [
    "@ravnhq/eslint-config",
    "@ravnhq/eslint-config/react",
    "@ravnhq/eslint-config/react-native",
    "@ravnhq/eslint-config/electron",
    "@ravnhq/eslint-config/jest",
    "@ravnhq/eslint-config/node",
    "@ravnhq/eslint-config/legacy-filenames",
  ],
}
```
npm package: @ravnhq/prettier-config
Description: Ravn Development Team's Prettier Config
Author: Donovan Hiland
Latest version: 1.1.0

# `@ravnhq/prettier-config`

> Ravn [Prettier](https://prettier.io) config.

## Usage

**Install**:

```bash
$ yarn add --dev @ravnhq/prettier-config
```

**Edit `.prettierrc.js`**:

```js
module.exports = "@ravnhq/prettier-config"
```
npm package: @ravoni4devs/libcryptus
Description: A lightweight and efficient library providing essential cryptographic utilities
Author: Ravoni Company
Latest version: 1.0.0

# Cryptus

**Cryptus** is a multi-language cryptography and hashing library designed to provide a simple
and consistent interface for developers working with cryptographic operations across
different programming languages.

## Features

- **Encryption & Decryption**: Simplify data protection with straightforward functions.
- **Key Derivation & Generation**: Generate strong keys with Argon2 and PBKDF2.
- **Hashing & Secure Storage**: Hash passwords and securely store sensitive data.
- **Modular Design**: Use only what you need to keep your project lean.

## Supported Algorithms

Cryptus currently supports the following cryptographic algorithms:

- **RSA** – Asymmetric encryption and key generation  
- **Argon2** – Memory-hard password hashing (Argon2id)  
- **PBKDF2** – Password-based key derivation  
- **AES** – Symmetric encryption (AES-256)  
- **Sha256** – Cryptographic hash function producing 256-bit fixed-size output

## Installation

To install Cryptus, run:

```bash
npm i @ravoni4devs/libcryptus
```

To add Argon2 support:

```sh
npm i argon2-browser

# Then add this script to your HTML
<script src="node_modules/argon2-browser/dist/argon2-bundled.js"></script>
```

## Usage

### ES6 module

Here’s a simple AES encryption example:

```js
import Cryptus from '@ravoni4devs/libcryptus'

const plainText = 'strongpass';
const cryptus = new Cryptus();
const passwordHex = await cryptus.pbkdf2({
  plainText: plainText,
  salt: '123456',
  length: 128
})
console.log(passwordHex)  // 1498cccb3cab5e895d6912d78aef6ab2

const nonceHex = helpers.strToHex('12345678');
console.log(nonceHex)    // 3132333435363738

const cipherText = await cryptus.encryptAes({plainText, nonceHex, passwordHex});
console.log(cipherText)  // fd1ceaa8d7f03be768d410f07c017f3f7e62c8af6c9061cbaa0d

const decryptedText = await cryptus.decryptAes({cipherText, nonceHex, passwordHex});
console.log(decryptedText)
```

### Common JS old fashion style

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <script src="node_modules/@ravoni4devs/libcryptus/dist/libcryptus-cjs.js"></script>
</head>
<body>
  <div>Generated Nonce: <span id="nonce"></span></div>
  <script>
    var cryptus = new Cryptus();
    var nonce = cryptus.generateNonce({ length: 16, hex: true });
    document.querySelector('#nonce').innerHTML = nonce;
  </script>
</body>
```

## Documentation

More examples in `*.test.js` files.

## Contributing

1. Open an issue and describe your pain
2. Fork the repo
3. Create a new branch: git checkout -b feature/my-feature
4. Commit your changes
5. Push and open a PR

Please follow the project’s coding style and include tests when possible.

## License

MIT License. See the [LICENSE](LICENSE) file for details.
npm package: @ravorona/eslint-config
Description: ESLint configuration
Author: яαvoroηα
Latest version: 5.1.0

![Publish](https://github.com/ravorona/eslint-config/actions/workflows/publish.yml/badge.svg)

# ESLint configuration

Javascript code quality guide using [ESLint](https://eslint.org)

## Install

Yarn:

```bash
yarn add -D \
    @ravorona/eslint-config \
    eslint \
    typescript
```

NPM:

```bash
npm i --save-dev \
    @ravorona/eslint-config \
    eslint \
    typescript
```

## Usage

Set the shared configurations inside your [ESLint configuration](https://eslint.org/docs/user-guide/configuring)

```js
import ravorona from '@ravorona/eslint-config'

export default [
  ...ravorona.configs.recommended,
  {
    rules: {
      'no-unused-vars': 'warn'
    }
  }
]
```

## Formatting rules

Prefer [Prettier](https://prettier.io) for formatting rules.

## Documentations

[Eslint Stylistic](https://eslint.style)
npm package: @ravorona/eslint-config-typescript
Description: ESLint configuration for Typescript
Author: Ravorona
Latest version: 5.2.2

# ESLint configuration

[Typescript](https://www.typescriptlang.org) code quality guide using [ESLint](https://eslint.org)

## Install

Yarn:

```bash
yarn add -D \
    @ravorona/eslint-config-typescript \
    eslint \
    typescript-eslint \
    typescript
```

NPM:

```bash
npm i --save-dev \
    @ravorona/eslint-config-typescript \
    eslint \
    typescript-eslint \
    typescript
```

## Usage

Set the shared configurations inside your [ESLint configuration](https://eslint.org/docs/user-guide/configuring)

```js
import ravorona from '@ravorona/eslint-config-typescript'

export default [
    ...ravorona.configs.all,
    {
        rules: {
            '@typescript-eslint/no-inferrable-types': 'error'
        }
    }
]
```

Typescript supported rules: [Here](https://typescript-eslint.io/rules/)

## Formatting rules

Prefer [Prettier](https://prettier.io) for formatting rules.
npm package: @ravorona/stylelint-config
Description: Stylelint configuration
Author: яαvoroηα
Latest version: 2.2.7

# Stylelint configuration
Stylesheet style guide using [Stylelint](https://stylelint.io)

## Install
Yarn:
```bash
yarn add -D \
    @ravorona/stylelint-config \
    stylelint \
    stylelint-config-standard
```
NPM:
```bash
npm i --save-dev \
    @ravorona/stylelint-config \
    stylelint \
    stylelint-config-standard
```

## Usage
Set extends property inside your [Stylelint configuration](https://stylelint.io/user-guide/configure)
```json
{
    "extends": "@ravorona/stylelint-config",
    "rules": {}
}
```
npm package: @ravshansbox/browser-crypto
Description: Node.js crypto module subset for browser
Latest version: 2.1.0

# Node.js 'crypto' module subset for browser

Package contents:

- Buffer
- getCiphers()
- createECDH()
- createCipher() (deprecated, use createCipheriv() instead)
- createCipheriv()
- createDecipher() (deprecated, use createDecipheriv() instead)
- createDecipheriv()
- pbkdf2
- pbkdf2Sync

Usage example:

```
const {
  Buffer,
  createECDH,
  createCipheriv,
  createDecipheriv,
  pbkdf2,
  pbkdf2Sync,
} = window.browserCrypto;
// import {
//   Buffer,
//   createECDH,
//   createCipheriv,
//   createDecipheriv,
//   pbkdf2,
//   pbkdf2Sync,
// } from 'browser-crypto';

const ecdh1 = createECDH('secp256k1');
const ecdh2 = createECDH('secp256k1');

const publicKey1 = ecdh1.generateKeys();
const publicKey2 = ecdh2.generateKeys();

const secret1 = ecdh1.computeSecret(publicKey2);
const secret2 = ecdh2.computeSecret(publicKey1);

const iv = Buffer.alloc(16);
const data = Buffer.from('abcdef');

const cipher = createCipheriv('aes256', secret1, iv);
const encrypted = Buffer.concat([cipher.update(data), cipher.final()]);

const decipher = createDecipheriv('aes256', secret2, iv);
const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]);
console.log(decrypted.toString());

pbkdf2('password', 'salt', 1, 32, 'sha512', (error, derivedKey) => {
  if (error) throw error;
  console.log(derivedKey);
});

const derivedKey = pbkdf2Sync('password', 'salt', 1, 32, 'sha512');
console.log(derivedKey);

```
npm package: @ravshansbox/pg-migrate
Description: PostgreSQL Migration tool for NodeJS
Author: Ravshan Samandarov
Latest version: 0.9.0

# pg-migrate

A simple, typesafe PostgreSQL migration tool for Node.js applications.

## Features

- Supports up and down migrations
- Transaction-based migration application
- Synchronize to handle dangling migrations
- Simple command-line interface
- TypeScript support out of the box

## Installation

```bash
npm install @ravshansbox/pg-migrate
# or
yarn add @ravshansbox/pg-migrate
# or
pnpm add @ravshansbox/pg-migrate
```

## Usage

### Environment Variables

Configure your database connection:

```
DATABASE_URL=postgres://username:password@host:port/database
```

If not provided, it defaults to `postgres://postgres:postgres@localhost:5432/postgres`.

### Creating Migrations

Create a new migration file:

```bash
pg-migrate make 001_create-users-table
```

This will create a file in the `migrations` directory with the following format:

```sql
-- Up
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL,
  email TEXT UNIQUE NOT NULL
);

-- Down
DROP TABLE users;
```

### Running Migrations

Synchronize the database with your migration files(preferred command):

```bash
pg-migrate sync
```

Apply all pending migrations(if you do not want automatic reversions):

```bash
pg-migrate up
```

Revert all applied migrations:

```bash
pg-migrate down
```

## How it Works

pg-migrate keeps track of applied migrations in a `_migrations` table in your database. When you run migrations, it:

1. Checks which migrations have already been applied
2. Wraps new migrations in a transaction
3. Applies migrations in alphanumeric order
4. Records successful migrations along with their "down" SQL for potential rollback

## Migration File Format

Migration files should follow this structure:

```sql
-- Up
-- Your SQL to apply the migration
-- Down
-- Your SQL to reverse the migration
```

The parser looks for these exact markers to separate up and down migrations.

## API Usage

You can also use pg-migrate programmatically in your code:

```typescript
import { migrateUp, migrateDown, migrateSync } from '@ravshansbox/pg-migrate'

// Apply pending migrations
await migrateUp()

// Revert migrations
await migrateDown()

// Synchronize migrations
await migrateSync()
```

## License

MIT
npm package: @ravvi-kumar/use-async-state
Description: To get started with useAsyncState, you can install it via npm or yarn:
Author: ravvi-kumar
Latest version: 1.0.2

# useAsyncState

## installation

To get started with useAsyncState, you can install it via npm or yarn:

```
npm install @ravvi-kumar/use-async-state

```

or

```
yarn add @ravvi-kumar/use-async-state

```

> Types declarations are included in the package ✨


## Usage 

### using Async await 

here is an example by using `async-await` :

> convert your function to async function ,
> put await keyword in front of setter function .
> the setter function returns the promise of the latest state ,
> you can store it inside a variable and immediately use it right away .

```jsx
import { useAyncState } from "@ravvi-kumar/use-async-state";

function Counter() {
  const [count, setCount] = useAsyncState(0);

  async function increment() {
    const latestCount=await setCount(count + 1);
    console.log(latestCount) // here we will get latest value
  }

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
}
```

### using promise chaining


here is an example by using `promise-chainig` :

> the setter function returns the promise of the latest state ,
> you can grab the latest state by chaining `then( )` function method .

```jsx
import { useAyncState } from "@ravvi-kumar/use-async-state";

function Counter() {
  const [count, setCount] = useAsyncState(0);

    function increment() {
        setCount(count + 1).then(latestCount=>{
            console.log(latestCount) // here we will get latest value
        })
  }

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increment}>Increment</button>
    </div>
  );
}
```
npm package: @raw-js/iterable
Description: Make an object iterable implementing iterable protocol 
Author: manutero.developer@gmail.com
Latest version: 1.0.0

# `@raw-js/iterable`

> Make an object iterable implementing `@@iterable` protocol

```js
import { iterable } from "@raw-js/iterable";

const obj = {}
iterable(obj) // now obj is iterable
```

## Examples

```js
import { iterable } from "@raw-js/iterable";

const obj = {
  a: 100,
  b: 42,
  c: "hello",
  d: "world",
  e: true,
};

/* for..of */

for (const [key, value] of iterable(obj)) {
  console.log(key + ": " + value);
}
// » a: 100,
// » b: 42,
// » c: "hello",
// » d: "world",
// » e: true,

/* destructuring */

[...iterable(obj)]
  .filter(([_, value]) => typeof value === "string")
  .map(([key]) => key);
// » Array ['c', 'd']

[...iterable(obj)].reduce(
  (acc, [_, value]) => (typeof value === "number" ? acc + value : acc),
  0
);
// » 142

/* keeping same obj */
obj === iterable(obj);
// » true
```
npm package: @rawblock/core
Description: rawblock is a small wrapper around web components and makes it easy to create small future proof web components.
Author: boffinhouse crew and contributors
Latest version: 0.0.1-alpha.1

# `@rawblock/core`

rawblock is a small wrapper around web components and makes it easy to create small future proof web components.

While most other web component libraries let you extend `HTMLElement` directly or indirectly with your `class`
rawblock uses your `class` as a blueprint and only extend `HTMLElement` with those methods and properties that are following your namespace.

This ensures that your component distinguishes between a clean future proof public API without name collisions and a full private internal API out of the box.

## Basic usage

```js
import { Component, prop, listen } from '@rawblock/core';

class Counter extends Component {
    static namespace = 'my';

    @prop({sanitize: Number})
    myNumber;

    setPropDefaults(){
        this.myNumber = 0;
    }

    render() {
        return `
            <button class="up">
                <slot></slot>
            </button>
            <input
                type="number"
                value="${this.myNumber}" />
        `;
    }

    // count is your private internal API because it is not namespaced
    // if you want to make it public call it myCount
    @listen('click', {delegate: 'closest button.up'})
    count() {
        this.myNumber++;
    }

}

// note your namespace is automatically added from the static property
Counter.define('counter', Counter);

// usage in html with content attributes
// <my-counter my-number="4">Count up</my-counter>

// usage with properties (for react or other view libs/frameworks)
// <my-counter myNumber="4">Count up</my-counter>
// usage with properties (for angular)
// <my-counter [myNumber]="4">Count up</my-counter>
```
npm package: @rawcmd/core
Description: Rawcmd core package.
Author: Kristijan Sedlak
Latest version: 0.3.12

> [Rawcmd](https://github.com/rawcmd/framework) core package.

[Rawcmd](https://github.com/rawcmd/framework) allows for building command-line user interfaces in NodeJS. It's a lightweight and open-source framework, written with [TypeScript](https://www.typescriptlang.org). It's actively maintained, well tested and already used in production environments. The source code is available on [GitHub](https://github.com/rawcmd/framework) where you can also find our [issue tracker](https://github.com/rawcmd/framework/issues).

## Example

```ts
const command = new Command({
  name: '',
  alias: '',
  description: '',
  summary: '',
  options: [
    new Option({
      name,
      alias,
      description,
      parser,
      validators,
    }),
  ],
  commands: [
    new Command({}),
  ],
  resolver(input) { ... },
});
command.perform(
  process.argv[2],
);
```
npm package: @rawcmd/text
Description: Text manipulation functions for Rawcmd.
Author: Kristijan Sedlak
Latest version: 0.3.12

> Text manipulation methods for [Rawcmd](https://github.com/rawcmd/framework).

[Rawcmd](https://github.com/rawcmd/framework) allows for building command-line user interfaces in NodeJS. It's a lightweight and open-source framework, written with [TypeScript](https://www.typescriptlang.org). It's actively maintained, well tested and already used in production environments. The source code is available on [GitHub](https://github.com/rawcmd/framework) where you can also find our [issue tracker](https://github.com/rawcmd/framework/issues).
npm package: @rawcmd/typewriters
Description: Collection of typewriters for styling command-line messages for Rawcmd.
Author: Kristijan Sedlak
Latest version: 0.3.12

> Collection of typewriters for styling command-line messages for [Rawcmd](https://github.com/rawcmd/framework).

[Rawcmd](https://github.com/rawcmd/framework) allows for building command-line user interfaces in NodeJS. It's a lightweight and open-source framework, written with [TypeScript](https://www.typescriptlang.org). It's actively maintained, well tested and already used in production environments. The source code is available on [GitHub](https://github.com/rawcmd/framework) where you can also find our [issue tracker](https://github.com/rawcmd/framework/issues).

## Example

```ts
// style text
textTypewriter({
  dim: true,
  bold: true,
})('Hello world!');

// write table
tableTypewriter({
  separator: '  ',
  columns: [
    {
      index: 0,
      dim: true,
      bold: true,
    },
    {
      index: 1,
      dim: true,
      bold: true,
    },
  ],
})([
  ['John', 'Smith'],
  ['Bob', 'Dog'],
]);
```
npm package: @rawcmd/utils
Description: Helper functions for Rawcmd.
Author: Kristijan Sedlak
Latest version: 0.3.12

> Helper methods for [Rawcmd](https://github.com/rawcmd/framework).

[Rawcmd](https://github.com/rawcmd/framework) allows for building command-line user interfaces in NodeJS. It's a lightweight and open-source framework, written with [TypeScript](https://www.typescriptlang.org). It's actively maintained, well tested and already used in production environments. The source code is available on [GitHub](https://github.com/rawcmd/framework) where you can also find our [issue tracker](https://github.com/rawcmd/framework/issues).
npm package: @rawdee/pmd-wrapper
Description: A node wrapper for PMD (https://pmd.github.io/), a cross-language static code analyzer
Author: Rodolphe Blancho
Latest version: 6.19.0

# PMD wrapper for NodeJS

Simple [PMD](https://pmd.github.io) wrapper for NodeJS.

## Getting Started

Install the packae with `npm install npm-wrapper` and run

```sh
pmd
```

Please refer to PMD documentation for the cli usage: https://pmd.github.io/pmd-6.19.0/pmd_userdocs_cli_reference.html

### Prerequisites

PMD needs a working version of Java installed (see [PMD requirements](https://pmd.github.io/pmd-6.19.0/pmd_userdocs_installation.html)).
Internally the wrapper uses [find-java-home](https://www.npmjs.com/package/find-java-home) to find the installed Java version.

### Installing

```sh
npm install pmd-wrapper

```

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @raweden/svg-symbols
Description: A vite plugin to bundle svg icon as defs/symbol into the index.html file.
Author: Raweden
Latest version: 1.0.2

# `@raweden/svg-symbols`

A vite plugin to bundle svg icon as defs/symbol into the index.html file.


### Example Usage 

```typescript
// inside vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { buildSVGSymbolsInIndexHtml } from '@raweden/svg-symbols'

// https://vite.dev/config/
export default defineConfig({
    plugins: [
        buildSVGSymbolsInIndexHtml({dirpath:"./icons", prefix: "icon-", /*disableAutoId: true,*/ hotreload: true, reloadDelay: 2000}),
        vue()
    ],
});
```

### Complete set of options

```typescript
/**
 * @param dirpath A relative path of the directory relative to the provided `dirpath`
 * @param basename The basename of the svg icon file.
 * @param attrs A key-value-object of the attributes on the top-level svg element.
 * @param context A key-value-object that can be used to store temporary data during generation (is cleared on each update).
 */
type AttrProviderFunc = (dirpath: string, basename: string, attrs: {
    [key: string]: string;
}, context: any) => string | null | undefined | {
    [key: string]: string;
};
type XMLTransformFunc = (dirpath: string, basename: string, xml: XmlDocument) => boolean;
declare function buildSVGSymbolsInIndexHtml(config: {
    dirpath: string;
    prefix?: string;
    suffix?: string;
    divId?: string;
    symbolId?: AttrProviderFunc;
    transform?: XMLTransformFunc;
    renameAll?: boolean;
    disableAutoId?: boolean;
    hotreload?: boolean;
    reloadDelay?: number;
}): 
```

### License 

Copyright (c) 2025 Jesper Svensson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @rawewhat/react-native-keep-rawake
Description: Keep Screen On for Android and iOS
Author: Sokdara Cheng
Latest version: 1.0.0

# react-native-keep-rawake

## Getting started

`$ yarn add react-native-keep-rawake`

### Mostly automatic installation

`$ react-native link react-native-keep-rawake`

## Usage

```javascript
import KeepRawake from "react-native-keep-rawake";

// TODO: What to do with the module?
KeepRawake;
```