<p align="center">
  <img src="https://raw.githubusercontent.com/rbrightline/puq/refs/heads/main/libs/meta/favicon.png" alt="Logo" />
</p>

# @puq/meta

## Summary

A TypeScript utility for managing resource metadata using the reflect-metadata library. This module provides a way to define and retrieve metadata for resource entities, such as entity classes, names, paths, and public access flags, typically used in frameworks like REST APIs or ORMs.

## Features

- **Metadata Storage**: Store metadata (e.g., entity factory, resource names, paths) on target classes - using reflect-metadata.
- **Type Safety**: Strongly typed with TypeScript generics and custom types (Names, Paths, Keys, Type).
- **Public Access Control**: Mark resources as public to bypass authentication/authorization.
- **Simple API**: Easy-to-use static methods for setting and retrieving metadata.

## Install

```bash
  pnpm add @puq/meta
```

## Funding

Thank you for using `@puq/meta` It's an open-source project, and maintaining it takes time and effort. If you find this library useful, please consider supporting its ongoing development. Your contributions help ensure that the project stays up-to-date, secure, and well-maintained.

[Instant Funding](https://cash.app/$puqlib)

### Your funding will go toward

- **Bug fixes and updates** to ensure compatibility with the latest versions of dependencies.
- **New features** that will make the library even more powerful.
- **Documentation** improvements to help users get the most out of [Your Library Name].
- **General maintenance** to keep the library running smoothly and securely.

Contact to the developer: [robert.brightline@gmail.com]

[Support the developer](https://cash.app/$puqlib)
