<div align="center">
<p>
    <a href="https://discord.gg/TgHdvJd"><img src="https://img.shields.io/discord/413193536188579841?color=7289da&logo=discord&logoColor=white" alt="Discord server" /></a>
    <a href="https://www.npmjs.com/package/tiny-essentials"><img src="https://img.shields.io/npm/v/tiny-essentials.svg?maxAge=3600" alt="NPM version" /></a>
    <a href="https://www.npmjs.com/package/tiny-essentials"><img src="https://img.shields.io/npm/dt/tiny-essentials.svg?maxAge=3600" alt="NPM downloads" /></a>
    <a href="https://www.patreon.com/JasminDreasond"><img src="https://img.shields.io/badge/donate-patreon-F96854.svg?logo=patreon" alt="Patreon" /></a>
    <a href="https://ko-fi.com/jasmindreasond"><img src="https://img.shields.io/badge/donate-ko%20fi-29ABE0.svg?logo=ko-fi" alt="Ko-Fi" /></a>
</p>
<p>
    <a href="https://nodei.co/npm/tiny-essentials/"><img src="https://nodei.co/npm/tiny-essentials.png?downloads=true&stars=true" alt="npm installnfo" /></a>
</p>
</div>

# 🧩 Tiny Essentials

**Tiny Essentials** is a collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility. From date calculations to formatting, object manipulations, and array operations, these scripts serve as building blocks for more complex applications.

## ✨ Features

- 🔀 **Array Manipulations**: Functions like `shuffleArray` to randomize elements in place.
- ⏱️ **Time Calculations**: Easily calculate durations, format timers, and more.
- 🧠 **Object Utilities**: Perform type checks, count object properties, and calculate percentages.
- 🛠️ **Custom Utilities**: Includes various helper functions like `ruleOfThree` for proportion calculations and `getAge` to calculate the age based on a given birth date.

## 📦 Installation

You can install Tiny Essentials via npm:

```bash
npm install tiny-essentials
```

Or download the scripts directly from this repository.

## 🗃️ Legacy Code

Some scripts in this repository have been preserved for backwards compatibility. These include modules like:

- `@tinypudding/firebase-lib`
- `@tinypudding/discord-oauth2`
- `@tinypudding/mysql-connector`
- `@tinypudding/puddy-lib`

These modules have been updated to work with modern environments but may not be actively developed further.

## 🧪 Module Versions

The core version of Tiny Essentials (version 1) is located in the folder [`/src/v1`](./src/v1).  

A detailed README is available inside the [`v1`](./src/v1) folder, which contains a full description of all utility modules and their functionalities.  
We recommend checking it out if you want to see all available tools in this version and how to use them individually or collectively via the `index.mjs` global module.

## 📚 Documentation

Looking for detailed module explanations and usage examples?  
Check out the full documentation here:

👉 [Go to docs page](./docs/v1/README.md)

---

## 📦 More Tiny Essentials Modules

- 🤖 [**tiny-ai-api**](https://github.com/JasminDreasond/Tiny-AI-API) — Minimal AI API wrapper.
- 🎲 [**tiny-dices**](https://github.com/JasminDreasond/Tiny-Dices) — Simple dice and randomness utilities.
- 🔐 [**tiny-crypto-suite**](https://github.com/JasminDreasond/Tiny-Crypto-Suite) — Lightweight cryptography toolkit.
- 🖥️ [**tiny-server-essentials**](https://github.com/JasminDreasond/Tiny-Server-Essentials) — Node.js server utilities.
- 🪟 [**tiny-electron-essentials**](https://github.com/JasminDreasond/Tiny-Electron-Essentials) — Essential tools for Electron apps.
- 🗃️ [**puddysql**](https://github.com/JasminDreasond/PuddySQL) — Smart SQL engine for structured data, tags, and advanced queries.

---

### 🔧 Recommended Tool: **JsStore**

Although not part of Tiny Essentials, we recommend using [**JsStore**](https://www.npmjs.com/package/jsstore) if you're looking for a well-maintained and developer-friendly solution to interact with **IndexedDB** using SQL-like syntax.

> 💬 *This is a personal recommendation. This project is not sponsored or affiliated with JsStore.*

---

## 🤝 Contributions

Feel free to fork, contribute, and create pull requests for improvements! Whether it's a bug fix or an additional feature, contributions are always welcome.

## 📝 License

This project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details.

### 💡 Credits

This project was inspired by the need for lightweight, reusable code that can be used across many different kinds of applications. Contributions and suggestions are always appreciated!

> 🧠 **Note**: This documentation was written by [ChatGPT](https://openai.com/chatgpt), an AI assistant developed by OpenAI, based on the project structure and descriptions provided by the repository author.  
> If you find any inaccuracies or need improvements, feel free to contribute or open an issue!

---

<div align="center">
<a href="./test/img/"><img src="./test/img/5ec92aff-7a9d-4b86-bcc3-fe715def537a.png" height="300" /></a>
<br/>
Made with tiny love!
</div>