open-index/open-npm huggingface dataset:
npm package: @santi020k/eslint-config-typescript
Description: TypeScript ESLint configuration
Author: santi020k
Latest version: 1.2.0

# @santi020k/eslint-config-typescript

Type-aware rules, project-service usage, and virtual file behavior.

This package is part of the [`@santi020k/eslint-config-basic`](https://github.com/santi020k/eslint-config-basic) monorepo.

- Docs: [TypeScript guide](https://santi020k.github.io/eslint-config-basic/frameworks/typescript.html)
- Repository: [santi020k/eslint-config-basic](https://github.com/santi020k/eslint-config-basic)
- Author: [santi020k](https://santi020k.me)

The canonical documentation lives on the VitePress site, so this README intentionally stays short to avoid duplication.
npm package: @santi020k/eslint-config-vue
Description: Vue ESLint configuration
Author: santi020k
Latest version: 1.2.0

# @santi020k/eslint-config-vue

Vue single-file component support for the shared toolchain.

This package is part of the [`@santi020k/eslint-config-basic`](https://github.com/santi020k/eslint-config-basic) monorepo.

- Docs: [Vue guide](https://santi020k.github.io/eslint-config-basic/frameworks/vue.html)
- Repository: [santi020k/eslint-config-basic](https://github.com/santi020k/eslint-config-basic)
- Author: [santi020k](https://santi020k.me)

The canonical documentation lives on the VitePress site, so this README intentionally stays short to avoid duplication.
npm package: @santi100/average-lib
Description: Santi's Advanced Averaging Library: Effortlessly find the average!
Author: santi100a
Latest version: 0.0.1

# Santi's Small Summation Library

[![Build Status](https://github.com/santi100a/average-lib/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/average-lib/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/average-lib)](https://npmjs.org/package/@santi100/average-lib)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/average-lib.svg)](https://github.com/santi100a/average-lib)
[![License](https://img.shields.io/github/license/santi100a/average-lib.svg)](https://github.com/santi100a/average-lib)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/average-lib)](https://bundlephobia.com/package/@santi100/average-lib@latest)

- 📘 Comes with built-in TypeScript definitions
- 🚀 Lightweight and fast
- 👴 Compliant with ECMAScript 3

## API

- `function average(array: number[]): number;` Finds the average of an array of numbers.

  | Name | Type | Description | Optional? |
  |------|------|-------------|-----------|
  | `array` | `number[]` | The array whose average is to be calculated. | No |

## Usage

```typescript
import sum from '@santi100/average-lib'; // ESM
const sum = require('@santi100/average-lib'); // CJS

// Example 1: Summing up numbers in an array
const arr = [1, 2, 3, 4, 5];
const result1 = sum(arr);
console.log(result1); // Output: 15

// Example 2: Summing up numbers in a range with a step
const fn = (n: number) => 1 / n;
const start = 1;
const end = 5;
const step = 2;
const result2 = sum(fn, start, end, step);
console.log(result2); // Output: 1.5333333333333332
```
npm package: @santi100/base64-lib
Description: Santi's Base64 Library: A lightweight, portable, ES3-compliant Base64 library!
Latest version: 0.0.5

# Santi's Base64 Library

[![Build Status](https://github.com/santi100a/base64-lib/actions/workflows/main.yml/badge.svg)](https://github.com/santi100a/base64-lib/actions)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/base64-lib.svg)](https://github.com/santi100a/base64-lib)
[![License](https://img.shields.io/github/license/santi100a/base64-lib.svg)](https://github.com/santi100a/base64-lib)
[![npm bundle size](https://img.shields.io/bundlephobia/min/@santi100/base64-lib)](https://bundlephobia.com/package/@santi100/base64-lib@latest)


- 🚀 Lightweight and fast[^](#disclaimers)
- 👴 ES3-compliant[*](#disclaimers)
- 💻 Portable between the browser and Node.js


## What's this?
This is a lightweight, fast library for encoding and decoding strings in base64 format.
It's portable between the browser and Node.js. In order to keep backwards compatibility with old browsers, this library can only encode and decode strings. This serves as a lighweight, portable replacement for the `btoa` and `atob` functions, and provides clearer names. 

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/base64-lib/issues) or [pull request](https://github.com/santi100a/base64-lib/pulls)!
Make sure you follow the [contribution Code of Conduct](https://github.com/santi100a/base64-lib/blob/main/CODE_OF_CONDUCT.md).
## Installation
- Via NPM: `npm install @santi100/base64-lib`
- Via Yarn: `yarn add @santi100/base64-lib`
- Via PNPM: `pnpm install @santi100/base64-lib`

## API
- `function encode(input: string): string;` Encodes `input` to base64 format. It takes a string as an argument, and returns a base64 representation of `input`.
- `function decode(input: string): string;` Decodes `input` back to its original form. Must be a valid base64 string. It takes a valid base64 string, and returns the decoded value of `input`.

## My Goals
The above functions must:
1. Be able to handle strings that contain non-printable ASCII (the result of stringifying a buffer, for example).
2. Be fully ES3 compliant (no ArrayBuffer, Uint8Array or anything like that).
3. Use padding `=` signs.
4. Be fully portable between the browser and Node.js (no reliance in any browser- or Node-exclusive API).
5. Not modify the argument vector.

**If any of the above is not being satisfied, open a pull request or issue. I have no idea how to satisfy idea #1 reliably (see [Contribute](CONTRIBUTE.md) (for instructions) and [disclaimers](#disclaimers)😀).**

### Disclaimers
- **Keep in mind this library can only reliably handle plaintext for now.**
- **Hasn't been tested in an actual ES3 environment. Feel free to open an issue or pull request if you find any non-ES3 thing.*
- *^The source code is about 3 kilobytes.*
npm package: @santi100/binet-formula
Description: Santi's Basic Binet Formula Library: What is F_n?
Author: santi100a
Latest version: 0.0.1

# Santi's Basic Binet Formula Library

[![Build Status](https://github.com/santi100a/binet-formula/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/binet-formula/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/binet-formula)](https://npmjs.org/package/@santi100/binet-formula)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/binet-formula.svg)](https://github.com/santi100a/binet-formula)
[![License](https://img.shields.io/github/license/santi100a/binet-formula.svg)](https://github.com/santi100a/binet-formula)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/binet-formula)](https://bundlephobia.com/package/@santi100/binet-formula@latest)

This is a lightweight and fast library that provides a basic implementation of Binet's Formula to calculate Fibonacci numbers using the golden ratio. Please keep in mind that this function may be prone to floating-point JavaScript imprecision.

- 📘 Comes with built-in TypeScript definitions
- 🚀 Lightweight and fast
- 👴 Compliant with ECMAScript 3

## API

- `function binetFormula(n: number): number;`

  Calculates the Fibonacci number at the given position using Binet's Formula.

  Binet's Formula is an efficient way to calculate Fibonacci numbers using the golden ratio.

  **Keep in mind this function may be prone to floating-point JavaScript imprecision.**

  | Name | Type     | Description                                                          | Optional? |
  | ---- | -------- | -------------------------------------------------------------------- | --------- |
  | `n`  | `number` | The positive integer position in the Fibonacci sequence to look for. | No        |

  Throws a `TypeError` if `n` is not a number, negative, or not an integer. Returns the Fibonacci number at position `n`.

## Usage

```typescript
import binet = require('@santi100/binet-formula'); // TypeScript
import binet from '@santi100/binet-formula'; // ESM
const binet = require('@santi100/binet-formula'); // CJS

// Example usage of the binet function
const fibonacciNumber = binet(5); // Calculate the Fibonacci number at position 5
console.log(fibonacciNumber); // Output: Approximately 5
```

Feel free to use this library to calculate Fibonacci numbers efficiently using Binet's Formula. The implementation supports various module systems, including TypeScript and CommonJS.

If you're curious, Binet's Formula is: $$ F_n = \frac{\varphi^n - \frac{1}{(-\varphi)^n}}{\sqrt{5}} $$
npm package: @santi100/eratosthenes-sieve
Description: Santi's Energetic Sieve of Eratosthenes: How can you sift numbers?
Author: santi100a
Latest version: 0.0.1

# Santi's Energetic Sieve of Eratosthenes

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/eratosthenes-sieve/actions/workflows/ci.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100/eratosthenes-sieve
[stars badge]: https://img.shields.io/github/stars/santi100a/eratosthenes-sieve.svg
[license badge]: https://img.shields.io/github/license/santi100a/eratosthenes-sieve.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100/eratosthenes-sieve
[npm home]: https://npmjs.org/package/@santi100/eratosthenes-sieve
[repo actions]: https://github.com/santi100a/eratosthenes-sieve/actions
[repo url]: https://github.com/santi100a/eratosthenes-sieve
[bundlephobia url]: https://bundlephobia.com/package/@santi100/eratosthenes-sieve@latest

- 🚀 Lightweight and fast
- 👴 ES3-compliant
- 💻 Portable between the browser and Node.js
- 📘 Includes TypeScript definitions

## What's this?

This is a simple, lightweight implementation of the [Sieve of Eratosthenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)

## Installation

- Via NPM: `npm install @santi100/eratosthenes-sieve`
- Via Yarn: `yarn add @santi100/eratosthenes-sieve`
- Via PNPM: `pnpm install @santi100/eratosthenes-sieve`

## API

- `function sieve(n: number): number[];` Finds all prime numbers from 2 up to a given number `n`.

  | Name | Type | Description | Optional? | Default |
  | ---- | ---- | ----------- | --------- | ------- |
  | `n` | `number` | The upper limit of the range of numbers to check for primes. | No | _N/A_ |

## Usage

```typescript
// Import the sieve function
const sieve = require('@santi100/eratosthenes-sieve'); // CJS
import sieve = require('@santi100/eratosthenes-sieve'); // TypeScript
import sieve from '@santi100/eratosthenes-sieve'; // ESM


// Use the sieve function to find prime numbers up to 100
const primesUpTo100 = sieve(100);

// Print the prime numbers
console.log('Prime numbers up to 100:', primesUpTo100); // outputs [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

```

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/eratosthenes-sieve/issues) or [pull request](https://github.com/santi100a/eratosthenes-sieve/pulls)!
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).
npm package: @santi100/factorial-lib
Description: Santi's Factorial Library: A small factorial function!
Author: santi100a
Latest version: 0.0.2

# Santi's Sorting Library

[![Build Status](https://github.com/santi100a/factorial-lib/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/factorial-lib/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/factorial-lib)](https://npmjs.org/package/@santi100/factorial-lib)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/factorial-lib.svg)](https://github.com/santi100a/factorial-lib)
[![License](https://img.shields.io/github/license/santi100a/factorial-lib.svg)](https://github.com/santi100a/factorial-lib)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/factorial-lib)](https://bundlephobia.com/package/@santi100/factorial-lib@latest)

- 🚀 Lightweight and fast[^](#disclaimers)
- 👴 ES3-compliant[*](#disclaimers)
- 💻 Portable between the browser and Node.js

## What's this?

This is a small, lightweight library for computing the factorial of any positive finite integer.

## Installation

- Via NPM: `npm install @santi100/factorial-lib`
- Via Yarn: `yarn add @santi100/factorial-lib`
- Via PNPM: `pnpm install @santi100/factorial-lib`

## API

- `function factorial(n: number): number;`
Returns -1 if $n$ is negative, or `NaN` if it's infinite, itself `NaN` or a float.

It takes the number for which the factorial is to be calculated, and returns $n!$

## Usage

```typescript
import { factorial } from '@santi100/factorial-lib'; // ESM
const { factorial } = require('@santi100/factorial-lib'); // CJS

console.log(factorial(5)); // prints 120
console.log(factorial(7)); // prints 5,040

console.log(factorial(-60)); // prints -1
console.log(factorial(3.5)); // prints NaN
console.log(factorial(NaN)); // prints NaN
console.log(factorial(Infinity)); // prints NaN
console.log(factorial(-Infinity)); // prints NaN
```

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/factorial-lib/issues) or [pull request](https://github.com/santi100a/factorial-lib/pulls)!
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).

## Disclaimers

**Hasn't been tested in an actual ES3 environment. Feel free to open an issue or pull request if you find any non-ES3 thing. See "Contribute" for instructions on how to do so.*

*^The source code is just a few kilobytes in size.*
npm package: @santi100/product-series
Description: Santi's Powerful Product Series Library: Π in a breeze!
Author: santi100a
Latest version: 0.0.1

# Santi's Powerful Product Series Library

[![Build Status](https://github.com/santi100a/product-series/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/product-series/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/product-series)](https://npmjs.org/package/@santi100/product-series)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/product-series.svg)](https://github.com/santi100a/product-series)
[![License](https://img.shields.io/github/license/santi100a/product-series.svg)](https://github.com/santi100a/product-series)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/product-series)](https://bundlephobia.com/package/@santi100/product-series@latest)

- 📘 Comes with built-in TypeScript definitions
- 🚀 Lightweight and fast
- 👴 Compliant with ECMAScript 3

## API

- `function product(arr: number[]): number;`

  Product of the numbers in an array.

  | Name  | Type       | Description           | Optional? |
  | ----- | ---------- | --------------------- | --------- |
  | `arr` | `number[]` | An array of numbers.  | No        |

  Returns the product of all numbers in the array.

- `function product(fn: (n: number) => number, start: number, end: number): number;`

  Product of numbers in [`start`, `end`].

  | Name    | Type                    | Description                                            | Optional? |
  | ------- | ----------------------- | ------------------------------------------------------ | --------- |
  | `fn`    | `(n: number) => number` | A math function to process every number in the range.  | No        |
  | `start` | `number`                | Inclusive start of the range.                          | No        |
  | `end`   | `number`                | Inclusive end of the range.                            | No        |

  Returns the product of [`start`, `end`] with a step of `step`.

## Usage

```typescript
import product from '@santi100/product-series'; // ESM
const product = require('@santi100/product-series'); // CJS

// Example 1: Product of numbers in an array
const arr = [1, 2, 3, 4, 5];
const result1 = product(arr);
console.log(result1); // Output: 120

// Example 2: Product of numbers in a range
const fn = (n: number) => n ** 2;
const start = 1;
const end = 5;
const result2 = product(fn, start, end);
console.log(result2); // Output: 14400

```
npm package: @santi100/queue-lib
Description: Santi's Quick Queue: First in, first out!
Author: santi100a
Latest version: 0.0.1

# Santi's Quick Queue

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/queue-lib/actions/workflows/ci.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100/queue-lib
[stars badge]: https://img.shields.io/github/stars/santi100a/queue-lib.svg
[license badge]: https://img.shields.io/github/license/santi100a/queue-lib.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100a/queue-lib

[npm home]: https://npmjs.org/package/@santi100/queue-lib
[repo actions]: https://github.com/santi100a/queue-lib/actions
[repo url]: https://github.com/santi100a/queue-lib
[bundlephobia url]: https://bundlephobia.com/package/@santi100/queue-lib@latest

- 🚀 Lightweight and fast[^](#disclaimers)
- 👴 ES3-compliant[*](#disclaimers)
- 💻 Portable between the browser and Node.js
- 📘 Comes with built-in TypeScript definitions

## What's this?

This is a simple TypeScript implementation of a queue data structure, where the first item put
onto it (enqueued) is the first to be taken out (dequeued).

- Via NPM: `npm install @santi100/queue-lib`
- Via Yarn: `yarn add @santi100/queue-lib`
- Via PNPM: `pnpm install @santi100/queue-lib`

## API
<!--
* If a class/function/variable is deprecated, you must cross it out by wrapping the 
* `<class/function/variable prototype/definition/type def>;` with tildes, like this:
* ~~`<class/function/variable prototype/definition/type def>;`~~ (deprecated [since <version>])

- `class Queue<T = unknown>;` Main class.
   | Name       |     Type    | Description        | Optional? | Default                                |
   |------------|-------------|--------------------|-----------|----------------------------------------|
   |<param name>|<param type> |<param description> | <Yes/No>  | <N/A if not optional, else the default>|
- ...
-->

<!-- ## Usage -->
<!-- Usage examples (code snippets) -->
<!-- 
Usage examples go here
* This is a very important step.
```typescript
```
-->
<!-- ## Contribute -->

<!-- Contribution hints and basic instructions -->
<!-- Example:
Wanna contribute? [File an issue](issues) or [pull request](pulls)! 
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).
-->

<!-- ## Disclaimers -->
<!-- Any disclaimers you may need. -->
<!--
**Hasn't been tested in an actual ES3 environment. Feel free to open an issue or pull request if you find any non-ES3 thing. See "Contribute" for instructions on how to do so.*

*^The source code is just a few kilobytes in size.*
-->
npm package: @santi100/randomjs-game
Description: Random Number Game: Guess the number!
Author: santi100a
Latest version: 0.0.1

# Santi's Random Numbers Game

[![Build Status][build status badge]][actions]
[![npm homepage][npm homepage badge]][npm homepage]
[![GitHub stars][gh stars badge]][repo]
[![License][license badge]][repo]

[build status badge]: https://github.com/santi100a/randomjs-game/actions/workflows/ci.yml/badge.svg
[npm homepage badge]: https://img.shields.io/npm/v/@santi100/randomjs-game
[gh stars badge]: https://img.shields.io/github/stars/santi100a/randomjs-game.svg
[license badge]: https://img.shields.io/github/license/santi100a/randomjs-game.svg

[actions]: https://github.com/santi100a/randomjs-game/actions
[npm homepage]: https://npmjs.org/package/@santi100/randomjs-game
[repo]: https://github.com/santi100a/randomjs-game

## Installation via NPM

- Using NPM: `npm install -g @santi100/randomjs-game`
- Using Yarn: `yarn global add @santi100/randomjs-game`
- Using PNPM: `pnpm install -g @santi100/randomjs-game`

## Usage

### How to Run

Execute `npx @santi100/randomjs-game [options]`. Options are detailed below.

### Flags

`-c, --no-clear`: Never clear the screen.
`-i, --no-initial-clear`: Don't clear the screen at startup.
`-g, --no-guess-clear`: Don't clear the screen after every guess.
`-m, --monochrome`: Don't use colors.
`-h, --help`: Display help for command.

### Workflow

The game starts by asking you for your name. Type your name or hit ENTER to use the name
"Player".

After this, the game will ask for your guess. Type a positive whole number
between 0 and 30 (both inclusive) and hit ENTER.

If your guess is equal to the right answer, the game will congratulate you and ask you to play again.
If you say no, the game will exit; otherwise, the game will generate a new random answer and
go back to the point where it asks for your guess.
npm package: @santi100/stack-lib
Description: Santi's Small Stack: Imagine a pile of dishes!
Author: santi100a
Latest version: 0.0.1

<!-- START README TEMPLATE -->
<!-- 
* Make sure to replace ALL placeholders.
! The readme will be broken otherwise!
-->

# Santi's Small Stack
<!-- Badges -->

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/stack-lib/actions/workflows/main.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100/stack-lib
[stars badge]: https://img.shields.io/github/stars/santi100a/stack-lib.svg
[license badge]: https://img.shields.io/github/license/santi100a/stack-lib.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100/stack-lib

[npm home]: https://npmjs.org/package/@santi100/stack-lib
[repo actions]: https://github.com/santi100a/stack-lib/actions
[repo url]: https://github.com/santi100a/stack-lib
[bundlephobia url]: https://bundlephobia.com/package/@santi100/stack-lib@latest
-->

- 🚀 Lightweight and fast[^](#disclaimers)
- 👴 ES3-compliant[*](#disclaimers)
- 💻 Portable between the browser and Node.js
- 📘 Comes with built-in TypeScript definitions

## What's this?

This is an implementation of the stack data structure in TypeScript.
It aims to be complete, yet versatile, portable, lightweight and easy to use.

<!-- Mentions, inspirations -->

- Via NPM: `npm install @santi100/stack-lib`
- Via Yarn: `yarn add @santi100/stack-lib`
- Via PNPM: `pnpm install @santi100/stack-lib`

## API

Coming soon! Check the JSDoc to get a look at what's coming to this section.
<!--

- `<class/function/variable prototype/definition/type def>;` ([since <version if not first version>]) ([deprecated [since <version>]]) <description>
   | Name       |     Type    | Description        | Optional? | Default                                |
   |------------|-------------|--------------------|-----------|----------------------------------------|
   |<param name>|<param type> |<param description> | <Yes/No>  | <N/A if not optional, else the default>|
- ...
-->

<!-- ## Usage -->
<!-- Usage examples (code snippets) -->
<!-- 
Usage examples go here
* This is a very important step.
```typescript
```
-->
<!-- ## Contribute -->

<!-- Contribution hints and basic instructions -->
<!-- Example:
Wanna contribute? [File an issue](issues) or [pull request](pulls)! 
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).
-->

<!-- ## Disclaimers -->
<!-- Any disclaimers you may need. -->
<!--
**Hasn't been tested in an actual ES3 environment. Feel free to open an issue or pull request if you find any non-ES3 thing. See "Contribute" for instructions on how to do so.*

*^The source code is just a few kilobytes in size.*
-->
npm package: @santi100/summation-lib
Description: Santi's Small Summation Library: Easily use Σ in your JavaScript!
Author: santi100a
Latest version: 0.0.2

# Santi's Small Summation Library

[![Build Status](https://github.com/santi100a/summation-lib/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/summation-lib/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100/summation-lib)](https://npmjs.org/package/@santi100/summation-lib)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/summation-lib.svg)](https://github.com/santi100a/summation-lib)
[![License](https://img.shields.io/github/license/santi100a/summation-lib.svg)](https://github.com/santi100a/summation-lib)
[![Bundlephobia stats](https://img.shields.io/bundlephobia/min/@santi100/summation-lib)](https://bundlephobia.com/package/@santi100/summation-lib@latest)

- 📘 Comes with built-in TypeScript definitions
- 🚀 Lightweight and fast
- 👴 Compliant with ECMAScript 3

## API

- `function sum(arr: number[]): number;` Sum up the numbers in an array.
  |Name | Type | Description | Optional? |
  |------|----------|-----------------------------------------|-----------|
  |`arr` | `number[]` | An array of numbers. | No |

  Returns the sum of all numbers in the array.

- `function sum(fn: (n: number) => number, start: number, end: number, step?: number): number;`

  Sums up numbers in [`start`, `end`] (with a step of `step`).

  | Name    | Type                    | Description                                            | Optional? |
  | ------- | ----------------------- | ------------------------------------------------------ | --------- |
  | `fn`    | `(n: number) => number` | A math function to process every number in the range.  | No        |
  | `start` | `number`                | Inclusive start of the range.                          | No        |
  | `end`   | `number`                | Inclusive end of the range.                            | No        |
  | `step`  | `number`                | Optional step between every iteration (defaults to 1). | Yes       |

  Returns the sum of [`start`, `end`] with a step of `step`.

## Usage

```typescript
import sum from '@santi100/summation-lib'; // ESM
const sum = require('@santi100/summation-lib'); // CJS

// Example 1: Summing up numbers in an array
const arr = [1, 2, 3, 4, 5];
const result1 = sum(arr);
console.log(result1); // Output: 15

// Example 2: Summing up numbers in a range with a step
const fn = (n: number) => 1 / n;
const start = 1;
const end = 5;
const step = 2;
const result2 = sum(fn, start, end, step);
console.log(result2); // Output: 1.5333333333333332
```
npm package: @santi100a/collatz-conjecture
Description: Santi's Collatz Sequence Generator: See the 3x+1 of any natural!
Author: Santiago Rojas
Latest version: 0.0.1

# Library Name

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/collatz-conjecture/actions/workflows/ci.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100a/collatz-conjecture
[stars badge]: https://img.shields.io/github/stars/santi100a/collatz-conjecture.svg
[license badge]: https://img.shields.io/github/license/santi100a/collatz-conjecture.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100a/collatz-conjecture
[npm home]: https://npmjs.org/package/@santi100a/collatz-conjecture
[repo actions]: https://github.com/santi100a/collatz-conjecture/actions
[repo url]: https://github.com/santi100a/collatz-conjecture
[bundlephobia url]: https://bundlephobia.com/package/@santi100a/collatz-conjecture@latest

- 🚀 Lightweight and fast
- 👴 ES3-compliant
- 💻 Portable between the browser and Node.js

## What's this?

This is a library that generates the [Collatz sequence](https://en.m.wikipedia.org/Collatz_conjecture) for any positive integer.
Let $ n_0 $ be the initial number, a non-zero positive integer. The conjecture claims that the sequence

$$
n_k =  \begin{cases}
  \frac 1 2 \cdot n_{k-1} & n_{k-1} \in \{2, 4, 6, 8, \dots\} \\
  3\cdot n_{k-1} + 1      & n_{k-1} \in \{1, 3, 5, 7, \dots\}
 \end{cases}
$$

converges eventually to the infinite loop $ {4, 2, 1, 4, 2, 1, \dots} $ for all natural numbers (integers strictly greater than zero). As of this writing (April 2024), this behavior hasn't been proven or disproven.

## Installation

- Via NPM: `npm install @santi100a/collatz-conjecture`
- Via Yarn: `yarn add @santi100a/collatz-conjecture`
- Via PNPM: `pnpm install @santi100a/collatz-conjecture`

## API

- `function collatzSequence(n: number): number[];` Calculates the Collatz sequence for a given number.

  | Name | Type     | Description                                       | Optional? | Default |
  | ---- | -------- | ------------------------------------------------- | --------- | ------- |
  | `n`  | `number` | The number to calculate the Collatz sequence for. | No        | _N/A_   |

## Usage

```typescript
// Import the collatzSequence function
const collatzSequence = require('@santi100a/collatz-conjecture');

// Example usage
const input = 5;
console.log(`Collatz sequence for input ${input}:`);
const sequence = collatzSequence(input);
console.log(sequence);
```

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/collatz-conjecture/issues) or [pull request](https://github.com/santi100a/collatz-conjecture/pulls)!
Look at [the contribution instructions](https://github.com/santi100a/collatz-conjecture/CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](https://github.com/santi100a/collatz-conjecture/CODE_OF_CONDUCT.md).
npm package: @santi100a/mp3-meta
Description: Santi's MP3-Meta CLI: Add the ID3 tags!
Author: santi100a
Latest version: 0.0.2

# Santi's MP3-Meta CLI

[![Build Status](https://github.com/santi100a/mp3-meta/actions/workflows/ci.yml/badge.svg)](https://github.com/santi100a/mp3-meta/actions)
[![npm homepage](https://img.shields.io/npm/v/@santi100a/mp3-meta)](https://npmjs.org/package/@santi100a/mp3-meta)
[![GitHub stars](https://img.shields.io/github/stars/santi100a/mp3-meta.svg)](https://github.com/santi100a/mp3-meta)
[![License](https://img.shields.io/github/license/santi100a/mp3-meta.svg)](https://github.com/santi100a/mp3-meta)

## What's this?

This is a CLI that uses [`node-id3`](https://github.com/Zazama/node-id3) to mark
[ID3](https://en.m.wikipedia.org/wiki/ID3) tags into MP3 files.
This allows you to quickly and easily include things like the album, artist, song name, composers,
genre and cover art into your MP3 files.

## Installation

- npm: `npm install --global @santi100a/mp3-meta`
- Yarn: `yarn global add @santi100a/mp3-meta`
- PNPM: `pnpm install --global @santi100a/mp3-meta`

## Usage

Access the CLI by using `npx @santi100a/mp3-meta` after running one of the above commands, or
by downloading an executable from the releases and running it.
npm package: @santi100a/percentage-lib
Description: Santi's Powerful Percentage Function: Easily find percentages!
Author: Santiago Rojas
Latest version: 0.0.1

# Santi's Powerful Percentage Function

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/percentage-lib/actions/workflows/ci.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100a/percentage-lib
[stars badge]: https://img.shields.io/github/stars/santi100a/percentage-lib.svg
[license badge]: https://img.shields.io/github/license/santi100a/percentage-lib.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100a/percentage-lib
[npm home]: https://npmjs.org/package/@santi100a/percentage-lib
[repo actions]: https://github.com/santi100a/percentage-lib/actions
[repo url]: https://github.com/santi100a/percentage-lib
[bundlephobia url]: https://bundlephobia.com/package/@santi100a/percentage-lib@latest

- 🚀 Lightweight and fast
- 👴 ES3-compliant
- 💻 Portable between the browser and Node.js
- 📘 Includes TypeScript definitions

## What's this?

This is a lightweight, portable NPM package to take the percentage of any number.

$$ P = \frac{1}{100} \cdot n \cdot p $$

## Installation

- Via NPM: `npm install @santi100a/percentage-lib`
- Via Yarn: `yarn add @santi100a/percentage-lib`
- Via PNPM: `pnpm install @santi100a/percentage-lib`

## API

- `function percentage(num: number, percentage: number): number;`

  Calculates the percentage of a given number.

  | Name         | Type     | Description                                                 | Optional? | Default |
  | ------------ | -------- | ----------------------------------------------------------- | --------- | ------- |
  | `num`        | `number` | The number for which the percentage needs to be calculated. | No        | _N/A_   |
  | `percentage` | `number` | The percentage value to calculate. Must be positive.        | No        | _N/A_   |

  Returns the calculated percentage value.
  Throws a `TypeError` If `num` is not a number or `percentage` is not a number.
  Throws a `TypeError` If `percentage` is not positive.

## Usage

```typescript
const percentage = require('@santi100a/percentage-lib'); // CJS
import percentage from '@santi100a/percentage-lib'; // ESM
import percentage = require('@santi100a/percentage-lib'); // TypeScript

const result = percentage(50, 20);
console.log(result); // Output: 10
```

## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/percentage-lib/issues) or [pull request](https://github.com/santi100a/percentage-lib/pulls)!
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).
npm package: @santi100a/quadratic-function
Description: Santi's Quadratic Function Toolkit: A simple library for common tasks regarding quadratic functions.
Author: santi100a
Latest version: 0.0.3

# Santi's Quadratic Function Toolkit

[![Build Status][workflow badge]][repo actions]
[![npm homepage][npm badge]][npm home]
[![GitHub stars][stars badge]][repo url]
[![License][license badge]][repo url]
[![Bundlephobia stats][bundlephobia badge]][bundlephobia url]

[workflow badge]: https://github.com/santi100a/quadratic-function/actions/workflows/ci.yml/badge.svg
[npm badge]: https://img.shields.io/npm/v/@santi100a/quadratic-function
[stars badge]: https://img.shields.io/github/stars/santi100a/quadratic-function.svg
[license badge]: https://img.shields.io/github/license/santi100a/quadratic-function.svg
[bundlephobia badge]: https://img.shields.io/bundlephobia/min/@santi100a/quadratic-function

[npm home]: https://npmjs.org/package/@santi100a/quadratic-function
[repo actions]: https://github.com/santi100a/quadratic-function/actions
[repo url]: https://github.com/santi100a/quadratic-function
[bundlephobia url]: https://bundlephobia.com/package/@santi100a/quadratic-function@latest

- 🚀 Lightweight and fast
- 👴 ES3-compliant
- 💻 Portable between the browser and Node.js


## What's this?

This is a small library that allows you to calculate things like the vertex or roots of a
quadratic function. Quadratic equations can be solved using the latter.

## Installation

- Via NPM: `npm install @santi100a/quadratic-function`
- Via Yarn: `yarn add @santi100a/quadratic-function`
- Via PNPM: `pnpm install @santi100a/quadratic-function`

## API
- `QuadraticFunction.vertex(): { x: number, y: number };` Returns an object containing the coordinates of the highest or lowest point the function will reach.
- `QuadraticFunction.roots(): [number?, number?];` Calculates the real roots of the `QuadraticFunction`.
- `QuadraticFunction.evaluate(x: number): number;` Evaluates the `QuadraticFunction` at `x`.
   | Name       |     Type    | Description        | Optional? | Default                                |
   |------------|-------------|--------------------|-----------|----------------------------------------|
   |`x`|`number`|The value at which to evaluate the function.|Yes | _N/A_|

## Usage

```typescript
import QuadraticFunction = require('@santi100a/quadratic-function'); // TypeScript
const QuadraticFunction = require('@santi100a/quadratic-function'); // CommonJS
import QuadraticFunction from '@santi100a/quadratic-function'; // ESM

const fn = new QuadraticFunction(1, -1, -1);
fn.evaluate(12); // => 131
fn.evaluate(0); // => -1
fn.vertex(); // => { x: 0.5, y: -1.25 }
fn.roots(); // => [ (1 + sqrt(5)) / 2, (1 - sqrt(5)) / 2 ]
```
## Contribute

Wanna contribute? [File an issue](https://github.com/santi100a/quadratic-function/issues) or [pull request](https://github.com/santi100a/quadratic-function/pulls)! 
Look at [the contribution instructions](CONTRIBUTING.md) and make sure you follow the [contribution Code of Conduct](CODE_OF_CONDUCT.md).
npm package: @santi100a/statlib
Description: Santi's Statistics Library
Author: Santiago Rojas
Latest version: 0.0.1

# Santi's Statistics Library

This library has a few modules that help you easily calculate things like variance, standard deviation, mean, median and mode.

## Installation

* NPM/PNPM: `npm install @santi100a/statlib` or `pnpm install @santi100a/statlib`
* Yarn: `yarn add @santi100a/statlib`

## Usage example

```typescript

const statlib = require('@santi100a/statlib');

statlib.average([1, 2, 3, 4, 5]); // => 3
statlib.median([1, 2, 3, 4, 5]); // => [3]

```