open-index/open-npm huggingface dataset:
npm package: @igorklepacki/github-badges
Description: A neg4n's template for creating TypeScript libraries
Author: neg4n
Latest version: 1.1.0

# Badge Data & Shields URL Builders

Badge Data & Shields URL Builders is a small, typed helper I use across my personal projects to generate themed Shields.io badge assets for Markdown or HTML embeds.


## Usage

Install it with your package manager of choice:

```bash
pnpm add @igorklepacki/github-badges
# or
npm install @igorklepacki/github-badges
# or
yarn add @igorklepacki/github-badges
```

Create a badge by importing one of the builders. Each builder returns a `BadgeAsset` with alt text, href, and dark/light image sources ready to drop into documentation.

```ts
import { buildNpmDownloadsBadge } from "@igorklepacki/github-badges"

const downloads = buildNpmDownloadsBadge({
  packageName: "react",
})

console.log(downloads.alt)
console.log(downloads.src)
```

## Extending

This build wraps a private collection of helpers and intentionally exposes only the four badge builders. If you need additional badge shapes, copy one of the existing variants and tailor it in your project – each variant is a thin layer over `buildAsset` inside this package.

You can still pass `baseUrl`, `themePresets`, `baseTheme`, `extraQuery`, `logo`, and `style` overrides to the public builders to suit custom Shields instances or colour palettes.

## License

MIT © Igor Klepacki
npm package: @igorkosta/urlparams
Description: URL Params as JSON Object
Author: Igor Kostyuchenok
Latest version: 1.0.2

# @igorkosta/urlparams

A tiny utility that takes a URL and returns its search (query) parameters as a plain JavaScript object.

Useful for parsing URLs, handling query strings, or normalizing request parameters in Node.js and browser environments.

---

## Installation

```bash
npm install @igorkosta/urlparams
```

## Basic Example

```node
import urlparams from "@igorkosta/urlparams";

const params = urlparams("https://example.com/page?foo=bar&baz=123");

console.log(params);
// {
//   foo: "bar",
//   baz: "123"
// }
```

## With encoded values

```node
import urlparams from "@igorkosta/urlparams";

const params = urlparams("https://example.com/?q=hello%20world&lang=en");

console.log(params);
// {
//   q: "hello world",
//   lang: "en"
// }
```

## Repeated parameters

```node
import urlparams from "@igorkosta/urlparams";

const params = urlparams("https://example.com/?tag=js&tag=node&tag=web");

console.log(params);
// {
//   tag: ["js", "node", "web"]
// }
```

## Without parameters

```node
import urlparams from "@igorkosta/urlparams";

const params = urlparams("https://example.com/");

console.log(params);
// {}
```
npm package: @igorkowalczyk/countdown
Description: Fast, accurate and lightweight countdown & stopwatch written in Typescript.
Author: Igor Kowalczyk
Latest version: 1.1.0

![Countdown.js](https://github.com/IgorKowalczyk/countdown/assets/49127376/06b07e58-b5c0-43aa-b193-c88d5d4a18b2)

<div align="center">
  <a aria-label="GitHub License" href="https://github.com/igorkowalczyk/countdown/blob/master/license.md">
    <img src="https://img.shields.io/github/license/igorkowalczyk/countdown?color=%2334D058&logo=github&style=flat-square">
  </a>
  <a aria-label="Version" href="https://github.com/igorkowalczyk/countdown/releases">
    <img src="https://img.shields.io/github/v/release/igorkowalczyk/countdown?color=%2334D058&logo=github&style=flat-square">
  </a>
  <a aria-label="NPM Downloads" href="https://npmjs.org/package/@igorkowalczyk/countdown">
    <img src="https://img.shields.io/npm/dt/@igorkowalczyk/countdown?style=flat-square&logo=npm&color=%2334D058">
  </a>
</div>

## 📥 Installation

```
npm install @igorkowalczyk/countdown
yarn add @igorkowalczyk/countdown
pnpm add @igorkowalczyk/countdown
```

## 📦 Usage

<!-- automd:file src="./examples/example.ts" code -->

```ts [example.ts]
import Timer from "@igorkowalczyk/countdown";
const timer = new Timer();

timer.on("tick", (ms) => console.log("tick", ms));
timer.on("done", () => console.log("done!"));
timer.on("statusChanged", (status) => console.log("Status: ", status));

timer.start(20000); // Timer for 20s
```

<!-- /automd -->

## ⁉️ Issues

If you come across any errors or have suggestions for improvements, please create a [new issue here](https://github.com/igorkowalczyk/countdown/issues) and describe it clearly.

## 📥 Pull Requests

When submitting a pull request, please follow these steps:

- Clone [this repository](https://github.com/igorkowalczyk/countdown) `https://github.com/IgorKowalczyk/countdown.git`
- Create a branch from `main` and give it a meaningful name (e.g. `my-awesome-new-feature`).
- Open a [pull request](https://github.com/igorkowalczyk/countdown/pulls) on [GitHub](https://github.com/) and clearly describe the feature or fix you are proposing.

## 📋 License

This project is licensed under the MIT. See the [LICENSE](https://github.com/igorkowalczyk/countdown/blob/master/license.md) file for details
npm package: @igorkowalczyk/prettier-config
Description: ☔ My sharable Prettier config
Author: Igor Kowalczyk
Latest version: 3.2.1

![Prettier config](https://github.com/IgorKowalczyk/shared-configs/assets/49127376/323f15c6-83ac-4219-97ed-8fbbb502442c)

<!--START_SECTION:prettier-->
### 📥 Installation

```bash
npm install --save-dev @igorkowalczyk/prettier-config
yarn add --dev @igorkowalczyk/prettier-config
pnpm install --save-dev @igorkowalczyk/prettier-config
```

### 🔩 Usage

```js
// .prettierrc.js
module.exports = {
 ...require("@igorkowalczyk/prettier-config"),
};
```

```js
// prettier.config.js
import prettierConfig from "@igorkowalczyk/prettier-config";

export default {
  ...prettierConfig,
};
```

```json
{
  "extends": "@igorkowalczyk/prettier-config"
}
```

### ⚙️ Rules overview

<!--START_SECTION:prettier-table -->
| Rule                         | Style       | Documentation                                                                          |
| ---------------------------- | ----------- | -------------------------------------------------------------------------------------- |
| `arrowParens`                | `always`    | [Documentation](https://prettier.io/docs/en/options.html#arrow-parens)                 |
| `bracketSpacing`             | `true`      | [Documentation](https://prettier.io/docs/en/options.html#bracket-spacing)              |
| `embeddedLanguageFormatting` | `auto`      | [Documentation](https://prettier.io/docs/en/options.html#embedded-language-formatting) |
| `htmlWhitespaceSensitivity`  | `css`       | [Documentation](https://prettier.io/docs/en/options.html#html-whitespace-sensitivity)  |
| `jsxSingleQuote`             | `false`     | [Documentation](https://prettier.io/docs/en/options.html#jsx-single-quote)             |
| `printWidth`                 | `180`       | [Documentation](https://prettier.io/docs/en/options.html#print-width)                  |
| `proseWrap`                  | `preserve`  | [Documentation](https://prettier.io/docs/en/options.html#prose-wrap)                   |
| `quoteProps`                 | `as-needed` | [Documentation](https://prettier.io/docs/en/options.html#quote-props)                  |
| `requirePragma`              | `false`     | [Documentation](https://prettier.io/docs/en/options.html#require-pragma)               |
| `semi`                       | `true`      | [Documentation](https://prettier.io/docs/en/options.html#semi)                         |
| `singleQuote`                | `false`     | [Documentation](https://prettier.io/docs/en/options.html#single-quote)                 |
| `tabWidth`                   | `2`         | [Documentation](https://prettier.io/docs/en/options.html#tab-width)                    |
| `trailingComma`              | `es5`       | [Documentation](https://prettier.io/docs/en/options.html#trailing-comma)               |
| `useTabs`                    | `false`     | [Documentation](https://prettier.io/docs/en/options.html#use-tabs)                     |
<!--END_SECTION:prettier-table -->
<!--END_SECTION:prettier-->
npm package: @igormaka/llenv
Description: Lightweight CLI to apply environment variables from a single JSON config before launching any command
Author: Igor Makarov
Latest version: 0.0.2

# llenv

Lightweight CLI to apply environment variables from a single JSON config before launching any command. Zero dependencies — just Node.js.

## Install

No installation needed! Use with `npx`:

```bash
npx @igormaka/llenv --help
```

## Config

Create `~/.llenv/config.json`:

```json
{
  "defaultEnv": "litellm",
  "envs": {
    "litellm": {
      "ANTHROPIC_BASE_URL": "https://litellm.example.com",
      "ANTHROPIC_AUTH_TOKEN": "$LITELLM_KEY"
    },
    "litellm-local": {
      "ANTHROPIC_BASE_URL": "http://localhost:4000",
      "ANTHROPIC_AUTH_TOKEN": "sk-local-proxy-1234"
    },
    "ollama": {
      "ANTHROPIC_BASE_URL": "http://localhost:11434",
      "ANTHROPIC_AUTH_TOKEN": "ollama",
      "ANTHROPIC_MODEL": "llama3:latest"
    }
  }
}
```

- `envs` — object mapping environment names to their variables.
- `defaultEnv` (optional) — env to use when `--env` is omitted. If not set, the first entry in `envs` is used.

### Variable interpolation

Values can reference existing environment variables using `$VAR` or `${VAR}` syntax. Unset variables expand to an empty string.

```json
{
  "envs": {
    "dev": {
      "DEBUG": "$SHOULD_DEBUG",
      "GREETING": "hello ${USER}"
    }
  }
}
```

```bash
SHOULD_DEBUG=1 npx @igormaka/llenv --env dev my-app
# DEBUG=1, GREETING=hello <your username>
```

## Usage

```bash
# Launch with default env (litellm)
npx @igormaka/llenv claude

# Launch with a named env
npx @igormaka/llenv --env ollama claude

# Works with any command
npx @igormaka/llenv --env litellm-local npm start

# List available environments
npx @igormaka/llenv --list

# Preview env vars without running anything
npx @igormaka/llenv --show ollama
```

## Options

| Flag | Description |
|------|-------------|
| `--env <name>` | Use a named env from config |
| `--list` | List available environments |
| `--show [name]` | Print resolved vars without executing |
| `--help` | Show help |

## Override config path

Set `LLENV_CONFIG` to use a different config file:

```bash
LLENV_CONFIG=./my-config.json npx @igormaka/llenv --env prod my-app
```

## Try it out

Clone the repo to try example configs:

```bash
git clone https://github.com/igor-makarov/llenv.git
cd llenv

LLENV_CONFIG=./examples/simple.json npx @igormaka/llenv --list
LLENV_CONFIG=./examples/simple.json npx @igormaka/llenv --show dev
LLENV_CONFIG=./examples/simple.json npx @igormaka/llenv --env prod printenv APP_ENV

# Variable interpolation
SHOULD_DEBUG=1 LLENV_CONFIG=./examples/interpolation.json npx @igormaka/llenv --show dev
```
npm package: @igorpdasilvaa/validator
Description: Middleware for form validation on express
Latest version: 1.0.0

# What is this ? 
Hi, i use AJV to make form validations and i was made to make this more simplest, so just put some jsons in the right place and ou will have a good form validator for you !
# How install
Just copy and paste the code below
```
npm i -S @igorpdasilvaa/validator
```
# How use
This validator is maked to use with express framework, you will need to have a folder called `validator` and put a JSON with the validator. The name o json file is used to know what is the route who will be validated, so if you put a `users.json` anything you put in the json `will have /users` as base route

In addition to this you will need to configure me as a `middleware` in the express, so i suggest to make something like that 

```
const validator = require('@igorpdasilvaa/validator');

validator.loadJsonSchema('src'); // as param pass the parent folder of the validator subfolder

app.use(validator);
```

in addition to this you can find a real usage example in that [link](https://gitlab.com/igorpdasilvaa-opensource/nodejs-skeleton/-/blob/master/src/config/middlewares.js#L14)

# Options to make you form validator more custom
you can pass a custom options object in the json schema as a local option or when you call the loadJsonSchema as a global configuration. In the options object you can pass the following options:

-  customMessage `type string` replace the error message of ajv for a custom message who you want to return to you user when fail in the validation
- customKey `type string` replace the key used to pass the message of error, the default it's `error`, but with that you can change to other this, eg: `message`
- status `type int` replace the default status returned to the client when a error is found, default it's 400

example of usage of options above
```
validator.loadJsonSchema('src',{
    customMessage: 'Wrong information, please try again',
    customKey: 'message',
    status: '401'
});
```
npm package: @igorpronin/coinmarketcap-client
Description: CoinMarketCap client for internal purposes
Author: legalsolut@gmail.com
Latest version: 0.1.2

# CoinMarketCap API Client

This TypeScript library provides a convenient wrapper for the CoinMarketCap API, allowing easy access to cryptocurrency data.

## Features

- Fetch and cache cryptocurrency map data
- Retrieve coin information by symbol
- Get latest quotes for cryptocurrencies
- Fetch USD prices for assets

## Usage

### Installation

```bash
npm install @igorpronin/coinmarketcap-client
```

### Code Example

```typescript
import { Client } from '@igorpronin/coinmarketcap-client';
const client = new Client({ 
  api_key: 'YOUR_API_KEY',
  save_map_to_file: true, // optional, default: false
  map_file_folder: './tmp', // optional, default: './tmp'
});
client.ee.on('ready', async () => {
  // Get coin information
  const bitcoin = client.get_coin_by_symbol('BTC');
  console.log(bitcoin);
  // Get latest quotes
  const btcQuotes = await client.get_coin_quotes_latest_by_symbol('BTC');
  console.log(btcQuotes);
  // Get USD price
  const ethPrice = await client.get_usd_price_of_asset('ETH');
  console.log(`ETH price: $${ethPrice}`);
});
```

## API

- `get_coins_by_symbol(symbol: string): Coin[] | null`
- `get_coin_by_symbol(symbol: string): Coin | null`
- `get_coin_by_id(id: number): Coin | null`
- `get_all_coins(): Coin[][]`
- `get_coin_id_by_symbol(symbol: string): number | null`
- `get_status(): boolean`
- `get_coin_quotes_latest(coin_id: number): Promise<CoinQuote>`
- `get_coin_quotes_latest_by_symbol(symbol: string): Promise<CoinQuote>`
- `get_usd_price_of_asset(symbol: string): Promise<number | null>`
- `get_usd_price_of_assets(symbols: string[]): Promise<Record<string, number | null>>`

## Note

Make sure to replace 'YOUR_API_KEY' with your actual CoinMarketCap API key when initializing the client.
npm package: @igorriti/react-fluid-animation
Description: Fluid media animation for React powered by WebGL.
Author: igorriti
Latest version: 0.0.2

## Installation

```bash
npm install @igorriti/react-fluid-animation
```

or

```bash
yarn add @igorriti/react-fluid-animation
```

## Usage


```jsx
import ReactFluidAnimation from '@igorriti/react-fluid-animation';

export default function App() {
  return (
    <ReactFluidAnimation />
  );
}

```

## Usage with server-side rendering

This package works only on client side because it depdends on WebGL technology.

We need to load package dynamically after the hydration process is complete.

Let's see how this can be done:

```jsx
const DynamicAnimation = dynamic(() => import('@igorriti/react-fluid-animation'));

export default function App() {
  const [isAfterHydration, setIsAfterHydration] = useState<boolean>(false);
  
  useEffect(() => {
    if (!isAfterHydration) setIsAfterHydration(true);
  }, [isAfterHydration, setIsAfterHydration]);

  return isAfterHydration ? <DynamicAnimation /> : null;
}

```

This workaround give us the opportunity to dynamically load the component and mount it right after hydration is complete to get around hydration errors from React.

## Props & types

#### Props of the `ReactFluidAnimation` component:

```typescript
export interface Props {
  config?: IAnimationConfig; // animation config
  style?: object; // styles object passed to container <div>
  animationRef?: (animation: Animation) => void, // function to capture animation object
}
```

#### Animation config



```typescript
export interface IAnimationConfig {
  textureDownsample: number;
  densityDissipation: number;
  velocityDissipation: number;
  pressureDissipation: number;
  pressureIterations: number;
  curl: number;
  splatRadius: number;
}
```

#### Animation object

```typescript
export class Animation {
  config: IAnimationConfig; // current config of the animation
  width: number; // width of the canvas
  height: number; // height of the canvas
  addRandomSplats(count: number): void; // function to apply random splats on screen
}
```
npm package: @igorriti/web-ascii-theater
Description: Play ASCII animations on the web.
Author: datsfilipe
Latest version: 1.3.0

# Ascii Theater

As it says, using this package you can play whatever video you want in React.js as an Ascii animation. Follow the steps to do it.

# Showcase

You can see how it would be in here: [deploy](https://react-bad-apple.vercel.app).

# Steps
  
  - You can see the examples, in main repo inside "[src/scripts](./src/scripts)", of the scripts used to download the video and extract the frames;
  - If you cannot see it in the main repo, you can try to find package folder inside your node_modules, the scripts will be there;
  - You need to specify the path for the frames (recommend you to use ``public`` folder inside your app :));
  - Some of the props are mandatory, like: framesDir, framesCount, width and height.

# Usage

```jsx
import { AsciiTheater } from '@datsfilipe/web-ascii-theater'

// ...
return (
  // ...
  <AsciiTheater
    width={90}
    height={50}
    framesDir={/* path to your frames folder */}
    framesCount={/* total frames/images in the folder */}
    customStyles={/* add custom styles in object style */}
    loop={true}
  />
  // ...
)
```

# Installation

  ```bash
# npm
  npm i @datsfilipe/web-ascii-theater@latest
# pnpm
  pnpm i @datsfilipe/web-ascii-theater@latest
# yarn
  yarn add @datsfilipe/web-ascii-theater@latest
  ```