open-index/open-npm huggingface dataset:
npm package: @shaharmor/eslint-config
Description: My opinionated eslint config
Author: Shahar Mor
Latest version: 8.12.0

# @shaharmor/eslint-config

My opinionated eslint config

### Installation

```sh
npm i --save-dev eslint prettier typescript @shaharmor/eslint-config
```

### Configuration

Configure eslint to use this eslint config:
Add `.eslintrc.js` file to your project`s root folder with the contents of:

    ```js
    require('@rushstack/eslint-patch/modern-module-resolution');

    module.exports = {
        extends: [
            "@shaharmor/eslint-config"
        ],
        parserOptions: {
            tsconfigRootDir: __dirname
        }
    }
    ```

That's it!
npm package: @shaharmor/hidden-iframe
Description: hidden-iframe
Author: Shahar Mor
Latest version: 1.0.0

# hidden-iframe

## Installation

`npm i --save @shaharmor/hidden-iframe`

## Usage

```js
import { hiddenIframe } from '@shaharmor/hidden-iframe';

const iframe = hiddenIframe();
iframe.src = 'https://example.com';
```
npm package: @shaharmor/map-of-sets
Description: A module for storing multiple unique values per key
Author: Shahar Mor
Latest version: 1.0.0

# map-of-sets

## Install

```
$ npm install @shaharmor/map-of-sets
```


## Usage

```ts
import {MapOfSets} from '@shaharmor/map-of-sets';

const mapOfSets = new MapOfSets<string, string>();
mapOfSets.add('key1', 'value1');
mapOfSets.has('key1', 'value1'); // true
mapOfSets.has('key1', 'value2'); // false
mapOfSets.toArray('key1'); // ['value1']
```

## API

### MapOfSets<A, B>()

Returns a new `MapOfSets` instance, where the type of the maps keys is `A`, and the type of the sets values is `B`.

#### .add(key, value)

Adds the value `value` to the `Set` with the specific key `key`.

#### .has(key, value)

Returns `true` if `value` exists in the `Set` with the specific key `key`, `false` otherwise.

#### .delete(key, value)

Deletes the value `value` from the `Set` with the specific key `key`.

#### .toArray(key)

Returns an array of all values from the `Set` with the specific key `key`.
npm package: @shaharmor/prettier-config
Description: My opinionated prettier config
Author: Shahar Mor
Latest version: 2.5.1

# prettier-config
My opinionated prettier config

### Installation

1. Install this prettier config
    ```sh
    npm i --save-dev @shaharmor/prettier-config
    ```

### Configuration

1. Configure prettier to use this module's prettier config:

    Add `.prettierrc` in your project`s root folder with the contents of:
    ```
    @shaharmor/prettier-config
    ``` 

That's it!
npm package: @shaharmor/tsconfig
Description: My opinionated tsconfig
Author: Shahar Mor
Latest version: 4.3.5

# tsconfig
My opinionated tsconfig

## How to use

Install this config:

`npm install @shaharmor/tsconfig`

Update your tsconfig.json file:

```json
{
  "extends": "@shaharmor/tsconfig",
  "compilerOptions": {
    "baseUrl": "."
  }
}
```
npm package: @shaharmor/webrtc-private-ip
Description: Get your private-ip using WebRTC
Author: Shahar Mor
Latest version: 0.1.0

# webrtc-private-ip

> Get your private-ip using WebRTC

## Install

```
$ npm install webrtc-private-ip
```

Or using a CDN:

```html
<script src="https://unpkg.com/@shaharmor/webrtc-private-ip"></script>
```

## Usage

```js
(async () => {
  const ip = await webrtcPrivateIp();
  if (ip) {
    //ip => '192.168.1.1'
  }
})()
```

## Limitations

- Will only works when WebRTC mDNS is not enabled.
npm package: @shaharsharron/react-native-svg-web
Description: A web replacement for react-native-svg with camel case property conversions
Author: Shahar Sharron
Latest version: 1.0.0

# react-native-svg-web
[![npm version](https://badge.fury.io/js/react-native-svg-web.svg)](http://badge.fury.io/js/react-native-svg-web)
[![downloads](http://img.shields.io/npm/dm/react-native-svg-web.svg)](https://www.npmjs.com/package/react-native-svg-web)

This is a fork from the original [package](https://github.com/bakerface/react-native-svg-web)
In addition to web compatibility, this package also fixes "invalid DOM property error" for non camel case properties.

This package can be used as a drop-in replacement for [react-native-svg](https://github.com/react-native-community/react-native-svg) when targeting the web, or as a mock for [jest](https://github.com/facebook/jest) when testing react-native applications.

### Targeting the Web

Add the following to your webpack configuration:

``` javascript
module.exports = {
  ..., /* the existing configuration */

  resolve: {
    alias: {
      'react-native-svg': 'react-native-svg-web'
    }
  }
};
```

### Mocking with Jest

Add the following to your `package.json`.

``` json
{
  "jest": {
    "setupFiles": [
      "./jest/mocks/react-native-svg.js"
    ]
  }
};
```

And then create a file `./jest/mocks/react-native-svg.js`:

``` javascript
jest.mock('react-native-svg', () => require('react-native-svg-web'));
```
npm package: @shaharyarahmed/tdcli
Description: A command line todo app
Author: Shaharyar Ahmed @ShaharyarAhmed-bot
Latest version: 0.0.1

Todocli
=======

A command line todo app

I decided to make the project a little bit more better, so I used the oclif npm package

There is alot of room for improvements and I will improve the project in the near future, However it is
project submission worthy so I decided to submit it..

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
* [Example](#example)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @shaharyarahmed/tdcli
$ todocli COMMAND
running command...
$ todocli (-v|--version|version)
@shaharyarahmed/tdcli/0.0.1 linux-x64 node-v16.4.2
$ todocli --help [COMMAND]
USAGE
  $ todocli COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`todocli add`](#todocli-add)
* [`todocli completed`](#todocli-completed)
* [`todocli delete`](#todocli-delete)
* [`todocli help [COMMAND]`](#todocli-help-command)
* [`todocli print`](#todocli-print)

## `todocli add`

Adds a new todo

```
USAGE
  $ todocli add

OPTIONS
  -n, --new_task=new_task  a new task
```

_See code: [src/commands/add.ts](https://github.com/ShaharyarAhmed-bot/todocli/blob/v0.0.1/src/commands/add.ts)_

## `todocli completed`

Assigns todo as completed

```
USAGE
  $ todocli completed

OPTIONS
  -t, --todo=todo  (required) name of the todo
```

_See code: [src/commands/completed.ts](https://github.com/ShaharyarAhmed-bot/todocli/blob/v0.0.1/src/commands/completed.ts)_

## `todocli delete`

Removes a todo

```
USAGE
  $ todocli delete

OPTIONS
  -t, --todo=todo  (required) name of the todo
```

_See code: [src/commands/delete.ts](https://github.com/ShaharyarAhmed-bot/todocli/blob/v0.0.1/src/commands/delete.ts)_

## `todocli help [COMMAND]`

display help for todocli

```
USAGE
  $ todocli help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.2.2/src/commands/help.ts)_

## `todocli print`

Prints all exisiting todos

```
USAGE
  $ todocli print
```

_See code: [src/commands/print.ts](https://github.com/ShaharyarAhmed-bot/todocli/blob/v0.0.1/src/commands/print.ts)_
<!-- commandsstop -->

# Example

```
$ ./bin/run add -n study  # Adds new todo
$ ./bin/run add -n eat    # Adds new todo
$ ./bin/run delete -t [NAME OF TODO] # Removes TODO
$ ./bin/run completed -t [NAME OF TODO] # Completes TODO
$ ./bin/run print # Prints all todos
```
npm package: @shahata/inquirer-timeout-confirm-prompt
Description: Inquirer timeout confirm prompt
Author: Shahar Talmi
Latest version: 1.0.1

# Timeout Confirm Prompt

[Inquirer](https://github.com/SBoudrias/Inquirer.js) Confirmation prompt, automatic confirmation after timeout

Based on https://github.com/zonday/inquirer-timeout-confirm-prompt

## Install

``` bash
npm install --save @shahata/inquirer-timeout-confirm-prompt
```

## Use

``` javascript
import timeoutConfirm from '@shahata/inquirer-timeout-confirm-prompt';

const answer = await timeoutConfirm({
  message: 'Are you sure you want to delete?', 
  timeout: 5, 
  timeoutTips: (t) => `(Automatic confirmation in ${t} seconds)`
});

console.log(answer);
```