open-index/open-npm huggingface dataset:
npm package: @nightmaregaurav/fluent-validator-js
Description: FluentValidatorJs is a TypeScript utility library that provides a fluent, readable, and intuitive way to perform value validations and collect error messages. With its easy-to-use chaining methods, you can define and execute complex validation rules with 
Author: nightmaregaurav
Latest version: 3.0.0

# FluentValidatorJs

FluentValidatorJs is a TypeScript utility library that provides a fluent, readable, and intuitive way to perform value validations and collect error messages. With its easy-to-use chaining methods, you can define and execute complex validation rules with minimal effort.

## Installation
```bash
npm install @nightmaregaurav/fluent-validator-js
````

## Usage

```typescript
import { Ensure } from '@nightmaregaurav/fluent-validator-js';

const result = Ensure.given("Hello, World!")
    .isString()
    .hasAtLeastLength(10)
    .matchesRegex(/^[A-Z]/)
    .evaluate();

console.log("Is Valid:", result.isValid);
console.log("Errors:", result.errors);
```

## Features

- Chainable and fluent syntax for defining validation rules.
- Comprehensive set of validation methods for various data types and conditions.
- Error message collection for easy debugging and reporting.

## Examples

Here are a few examples demonstrating how to use FluentValidatorJs for validation:

### Validate String Length

```typescript
const result = Ensure.given("Hello, World!")
    .isString()
    .hasAtLeastLength(10)
    .evaluate();

console.log("Is Valid:", result.isValid); // false
console.log("Errors:", result.errors); // ["Value must have a length of 10 at minimum."]
```

### Validate Numeric Range

```typescript
const result = Ensure.given(42)
    .isNumber()
    .isGreaterThan(30)
    .isLessThan(50)
    .evaluate();

console.log("Is Valid:", result.isValid); // true
```

### Validate Array Contents

```typescript
const result = Ensure.given([1, 2, 3])
    .isArray()
    .contains(2)
    .doesNotContain(4)
    .evaluate();

console.log("Is Valid:", result.isValid); // true
```

## License

FluentValidatorJs is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/indexdbwrapper
Description: IndexDBWrapper is a library that allows you to interact with the IndexedDB API in a relational way. It is not an ORM. It only provides simple CRUD methods to interact with the IndexedDB API.
Author: nightmaregaurav
Latest version: 1.0.5

# IndexDBWrapper
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Findexdbwrapper.svg)](https://badge.fury.io/js/@nightmaregaurav%2Findexdbwrapper)
[![HitCount](https://hits.dwyl.com/nightmaregaurav/indexdbwrapper.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/indexdbwrapper)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/indexdbwrapper.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/indexdbwrapper/)
***

## Description
IndexDBWrapper is a library that allows you to interact with the IndexedDB API. It is not an ORM. It only provides simple CRD methods to interact with the IndexedDB API.

## Installation
```bash
npm install @nightmaregaurav/indexdbwrapper
```

## Usage

### Creating a Database
```typescript
import {IndexDBWrapper} from "@nightmaregaurav/indexdbwrapper";

const db = new IndexDBWrapper("test_database", 1);
```

### Store a Value
```typescript
    await db.Set("key", {prop1: 1, prop2: "2", prop3: new Date()});
```

### Retrieve a Value
```typescript
    const value = await db.Get("key");
    console.log(value);
```

### Delete a Value
```typescript
    await db.Delete("key");
```

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>


## License
IndexDBWrapper is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/linq.js
Description: Linq.js is a library that provides a set of methods to query and manipulate arrays in a functional programming style.
Author: nightmaregaurav
Latest version: 0.0.2

# Linq.js

Linq.js is a TypeScript library that provides LINQ-like query capabilities for arrays, allowing you to perform powerful data manipulations and transformations with ease.

## Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [License](#license)
- [Contributing](#contributing)
- [Author](#author)

## Features

- Fluent and functional programming style for array operations.
- Filter, project, order, group, join, and more.
- Chain multiple operations together for complex transformations.
- Simplify common array manipulations.
- Supports TypeScript and modern JavaScript.

## Installation

```bash
npm install @nightmaregaurav/linq.js
````

## Usage

Import the `Linq` class and start chaining operations:

```typescript
import { Linq } from '@nightmaregaurav/linq.js';

const data = [/* your data array */];
const query = new Linq(data)
    .where(item => /* predicate function */)
    .select(item => /* selector function */)
    .orderBy((a, b) => /* comparer function */);

const result = query.toArray();
console.log(result);
```

## License

Linq.js is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

## Contributing

Contributions are welcome! Feel free to open issues and submit pull requests.

---

Open For Contribution

---

## Author

Linq.js is made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).
npm package: @nightmaregaurav/react-go-to-top-button
Description: Simple React component to show a go-to-top button on bottom right of the page.
Author: nightmaregaurav
Latest version: 1.0.4

## Go To Top Button (React)
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Freact-go-to-top-button.svg)](https://badge.fury.io/js/@nightmaregaurav%2Freact-go-to-top-button)   [![HitCount](https://hits.dwyl.com/nightmaregaurav/react-go-to-top-button.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/react-go-to-top-button)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/react-go-to-top-button.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/react-go-to-top-button/)
***
### Description
React Go To Top Button is a simple and customizable go to top button for your react application.

### Demo: [CodeSandbox](https://codesandbox.io/p/sandbox/d8vy29)

### Installation
Install react-go-to-top-button
```bash
npm install @nightmaregaurav/react-go-to-top-button
```

### Usage
```typescript
import React from 'react';
import GoToTopButton from "@nightmaregaurav/react-go-to-top-button";

const Index = () => {
  return (
    <GoToTopButton
      backgroundColor={"#000"}
      backgroundColorOnHover={"#333"}
      arrowColor={"#fff"}
      arrowColorOnHover={"#fff"}
    />
  );
};

export default Index;

```

***
## Technical Details
* Language: Typescript

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>

## License
React Go To Top Button is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/react-meta-tags
Description: Simple react meta tags component.
Author: nightmaregaurav
Latest version: 0.0.2

## Profile Picture (React)
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Freact-meta-tags.svg)](https://badge.fury.io/js/@nightmaregaurav%2Freact-meta-tags)   [![HitCount](https://hits.dwyl.com/nightmaregaurav/react-meta-tags.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/react-meta-tags)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/react-meta-tags.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/react-meta-tags/)
***
### Description
React Meta Tags is a simple and easy to use React component to add SEO friendly meta tags in the website created with react.

### Installation
Install react-meta-tags
```bash
npm install @nightmaregaurav/react-meta-tags
```

### Usage
```typescript
import React from 'react';
import {Helmet} from "react-helmet-async";
import RenderMetaTags from "@nightmaregaurav/react-meta-tags";

const Header = () => {
  return (
    <Helmet>
      <link rel="icon" href="..." />
      <link rel="apple-touch-icon" href="..." />
      <title>...</title>
      {RenderMetaTags({
        title: "...",
        description: "...",
        image: "..."
      })}
    </Helmet>
  );
};

export default Header;

```

***
## Technical Details
* Language: Typescript

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>

## License
React Meta Tags is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/react-profile-picture
Description: Simple react profile picture component.
Author: nightmaregaurav
Latest version: 1.0.8

## Profile Picture (React)
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Freact-profile-picture.svg)](https://badge.fury.io/js/@nightmaregaurav%2Freact-profile-picture)   [![HitCount](https://hits.dwyl.com/nightmaregaurav/react-profile-picture.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/react-profile-picture)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/react-profile-picture.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/react-profile-picture/)
***
### Description
React Profile Picture is a simple and easy to use React component to display profile picture.

### Demo: [CodeSandbox](https://codesandbox.io/p/sandbox/gwxwyd)

### Installation
Install react-profile-picture
```bash
npm install @nightmaregaurav/react-profile-picture
```

### Usage
```typescript
import React, {CSSProperties} from 'react';
import ProfilePicture from "@nightmaregaurav/react-profile-picture";

interface ProfilePhotoProps {
  size: Exclude<CSSProperties["width"], undefined>;
  imageUrl: string;
  showOnlineBadge: boolean;
  isOnline?: boolean;
  onlineBadgeColor?: Exclude<CSSProperties["color"], undefined>;
}

const ProfilePhoto = (
  {
    size,
    imageUrl,
    showOnlineBadge,
    isOnline = false,
    onlineBadgeColor = "#44b700",
  }: ProfilePhotoProps,
) => {
  return (
    <ProfilePicture
      size={size}
      imageUrl={imageUrl}
      showOnlineBadge={showOnlineBadge}
      isOnline={isOnline}
      onlineBadgeColor={onlineBadgeColor}
    />
  );
};

export default ProfilePhoto;

```

***
## Technical Details
* Language: Typescript

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>

## License
React Profile Picture is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/react-social-media-links
Description: Simple React component to show social media links
Author: nightmaregaurav
Latest version: 1.0.5

## Social Media Links (React)
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Freact-social-media-links.svg)](https://badge.fury.io/js/@nightmaregaurav%2Freact-social-media-links)   [![HitCount](https://hits.dwyl.com/nightmaregaurav/react-social-media-links.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/react-social-media-links)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/react-social-media-links.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/react-social-media-links/)
***
### Description
React Social Media Links is a simple and easy to use react component that provides a way to list social media icons hyperlinked to the respective social media profiles.

### Demo: [CodeSandbox](https://codesandbox.io/p/sandbox/2smz9c)

### Installation
Install react-social-media-links
```bash
npm install @nightmaregaurav/react-social-media-links
```

### Usage
```typescript
import React from 'react';
import SocialLinks, {SocialMedia} from "@nightmaregaurav/react-social-media-links";

const Index = () => {
  return (
    <SocialLinks
      socialLinks={[{media: SocialMedia.GitHub, link: "https://www.github.com/nightmaregaurav"}]}
      iconSize={25}
    />
  );
};

export default Index;

```

## Acknowledgement
 - Icons are taken from [icons8](https://icons8.com/icons)

***
## Technical Details
* Language: Typescript

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>

## License
React Go To Top Button is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmaregaurav/ts-utility-types
Description: TS utility types is a library that contains utility types for typescript that are not present in the standard library.
Author: nightmaregaurav
Latest version: 0.0.3

# ts-utility-types
[![npm version](https://badge.fury.io/js/@nightmaregaurav%2Fts-utility-types.svg)](https://badge.fury.io/js/@nightmaregaurav%2Fts-utility-types)
[![HitCount](https://hits.dwyl.com/nightmaregaurav/ts-utility-types.svg?style=flat)](http://hits.dwyl.com/nightmaregaurav/ts-utility-types)<br>
[![NPM](https://nodei.co/npm/@nightmaregaurav/ts-utility-types.png?mini=true)](https://nodei.co/npm/@nightmaregaurav/ts-utility-types/)
***

## Description
ts-utility-types is a collection of utility types for TypeScript.

## Installation
```bash
npm install @nightmaregaurav/ts-utility-types
````

## How to Contribute
* Fork the repository
* Clone the forked repository
* Make changes
* Commit and push the changes
* Create a pull request
* Wait for the pull request to be merged
* Celebrate
* Repeat

*If you are new to open source, you can read [this](https://opensource.guide/how-to-contribute/) to learn how to contribute to open source projects.*<br>
*If you are new to GitHub, you can read [this](https://guides.github.com/activities/hello-world/) to learn how to use GitHub.*<br>
*If you are new to Git, you can read [this](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud) to learn how to use Git.*<br>
*If you are new to TypeScript, you can read [this](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) to learn how to use TypeScript.*<br>


## License
ts-utility-types is released under the MIT License. You can find the full license details in the [LICENSE](LICENSE) file.

Made with ❤️ by [NightmareGaurav](https://github.com/nightmaregaurav).

---
Open For Contribution
---
npm package: @nightmarez/hsl
Description: HSL to RGB color converter
Author: Mykhailo Makarov
Latest version: 1.0.4

# hsl.js
HSL to RGB converter

## Usage

```js
const { HSLToRGB, RGBToHSL } = require("@nightmarez/hsl");

let hsl = RGBToHSL(127, 0, 0); // or RGBToHSL([127, 0, 0])
let rgb = HSLToRGB(hsl);
```