open-index/open-npm huggingface dataset:
npm package: @novelbrasil/diamond
Description: A Node.js library that helpful in creation of RestAPI
Author: Aaron King
Latest version: 1.0.0

<p align="center">
  <a href="" rel="noopener">
 <img width=600px height=250px src="https://c4.wallpaperflare.com/wallpaper/346/359/601/anime-houseki-no-kuni-diamond-houseki-no-kuni-wallpaper-preview.jpg" alt="Diamond Tool"></a>
</p>

<h3 align="center">Diamond Tool</h3>

<div align="center">

[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[![GitHub Issues](https://img.shields.io/github/issues/KingTimer12/diamond.svg)](https://github.com/KingTimer12/diamond/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/KingTimer12/diamond.svg)](https://github.com/KingTimer12/diamond/pulls)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)

</div>

---

<p align="center"> Diamond Tool tem como objetivo facilitar a criação de APIs Rest usando uma biblioteca recente chamada Fastify. O nome foi baseado no personagem Diamond de Houseki no Kuni, a ferramenta em si não nem nenhuma referência ao personagem além de seu nome.
    <br> 
</p>

## Sumário

- [Sobre](#about)
- [Começando](#getting_started)
- [Tecnologias](#built_using)
- [Autores](#authors)

## Sobre <a name = "about"></a>

Trazer facilidade é o principal foco da ferramenta. Nela há hooks que podem ser usados em qualquer arquivo, além de necessitar poucas linhas de código para sua inicilização. De início, o seu paradigma principal é orientação a objeto. Tenho planos para torna-la também flexível para outros tipos de paradigma, mas isso são planos futuros.

Como que funciona essa facilidade? Além dos hooks, há classes customizáveis que veem de uma classe abstrata. As routas já vem com uma classe base muito bem formulado, contudo, se desejar fazer uma de sua maneira ou para casos específicos, ela é totalmente usável e customizável. Isso vale principalmente para os controladores que não apresentam uma classe base, mas uma classe vazia e você definirá a classe base dela.

## Começando <a name = "getting_started"></a>

### Pré requisitos

Se seu objetivo for ajudar em algo, é necessário ter **Git**, **Node** e um gerenciador de pacotes de sua preferência, por exemplo: **pnpm**

Caso só queira usar a ferramenta, então é necessário ter um projeto e executar o comando de instalação, por exemplo:
```
pnpm install diamond
```

### Instalando

1. Clone o projeto:
```git
git clone https://github.com/KingTimer12/diamond.git
```
2. Entre na pasta usando: `cd diamond`
3. Instale todas as dependências usando seu gerenciador de pacotes, exemplo:
```
pnpm install
```
4. Use o script `build:dev` para buildar e testar usando o examples.
```
pnpm build:dev
```

## Tecnologias <a name = "built_using"></a>

- [Prisma](https://www.prisma.io/) - Database Framework
- [Fastify](https://fastify.dev/) - Server Framework
- [NodeJs](https://nodejs.org/en/) - Server Environment

## Autores <a name = "authors"></a>

- [@Aaron King](https://github.com/KingTimer12) - Ideia & programador principal
npm package: @novelist-world/ui
Description: <a href="https://pkg-size.dev/@novelist-world/ui"><img src="https://pkg-size.dev/badge/install/9866852" title="Install size for @novelist-world/ui"></a> <a href="https://pkg-size.dev/@novelist-world/ui"><img src="https://pkg-size.dev/badge/bundle/285042" 
Author: Ammar Ali
Latest version: 1.0.3-dev

<a href="https://pkg-size.dev/@novelist-world/ui"><img src="https://pkg-size.dev/badge/install/9866852" title="Install size for @novelist-world/ui"></a>
<a href="https://pkg-size.dev/@novelist-world/ui"><img src="https://pkg-size.dev/badge/bundle/285042" title="Bundle size for @novelist-world/ui"></a>

**novelist-world/ui**

The one UI library you need.
npm package: @novemberfiveco/eslint-config-cra
Description: ESLint configuration for Create React App projects used by November Five
Author: Jan Stevens
Latest version: 1.4.0
Deprecated: This package is no longer maintained, because CRA was sunsetted: https://react.dev/blog/2025/02/14/sunsetting-create-react-app. Please use @novemberfiveco/eslint-config-vite instead

ERROR: No README data found!
npm package: @novemberfiveco/eslint-config-next
Description: ESLint configuration for Next.js projects used by November Five
Latest version: 2.2.2

# @novemberfiveco/eslint-config-next

[← Back to Main README](../../README.md)

Next.js ESLint configuration used by November Five. This package extends our base TypeScript configuration with Next.js specific rules.

## Installation

```bash
npm install @novemberfiveco/eslint-config-next --save-dev
```

### Configuration

Create an `eslint.config.mjs` file in your project root with the following content:

```javascript
import novemberFiveConfig from "@novemberfiveco/eslint-config-next";
import { defineConfig } from "eslint/config";

export default defineConfig([novemberFiveConfig]);
```

## Included Plugins

This configuration includes the following plugins in addition to those from `@novemberfiveco/eslint-config-typescript`:

- [`@next/eslint-plugin-next`](https://github.com/vercel/next.js/tree/canary/packages/eslint-plugin-next) - Next.js specific ESLint rules
- [`eslint-plugin-react`](https://github.com/jsx-eslint/eslint-plugin-react) - React specific linting rules
- [`eslint-plugin-react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) - Rules for React Hooks
- [`@tanstack/eslint-plugin-query`](https://github.com/TanStack/query/tree/main/packages/eslint-plugin-query) - Rules for React Query
- [`eslint-plugin-storybook`](https://github.com/storybookjs/eslint-plugin-storybook) - Storybook specific rules
npm package: @novemberfiveco/eslint-config-react-native
Description: ESLint configuration for React Native projects used by November Five
Author: Lazlo De Bock
Latest version: 2.1.1

# @novemberfiveco/eslint-config-react-native

[← Back to Main README](../../README.md)

React Native ESLint configuration used by November Five. This package extends our base TypeScript configuration with React Native specific rules.

## Installation

```bash
npm install @novemberfiveco/eslint-config-react-native --save-dev
```

### Configuration

Create an `eslint.config.cjs` file in your project root with the following content:

```javascript
const novemberFiveConfig = require("@novemberfiveco/eslint-config-react-native");
const { defineConfig } = require("eslint/config");

module.exports = defineConfig([novemberFiveConfig]);
```

## Included Plugins

This configuration includes the following plugins in addition to those from `@novemberfiveco/eslint-config-typescript`:

- [`@tanstack/eslint-plugin-query`](https://github.com/TanStack/query/tree/main/packages/eslint-plugin-query) - Rules for React Query
- [`eslint-plugin-react`](https://github.com/jsx-eslint/eslint-plugin-react) - React specific linting rules
- [`eslint-plugin-react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) - Rules for React Hooks
- [`eslint-plugin-react-native`](https://github.com/Intellicode/eslint-plugin-react-native) - React Native specific rules
npm package: @novemberfiveco/eslint-config-serverless
Description: ESLint configuration for Serverless projects used by November Five
Author: Min Jie Fan
Latest version: 2.0.1

# @novemberfiveco/eslint-config-serverless

[← Back to Main README](../../README.md)

Serverless ESLint configuration used by November Five. This package extends our base TypeScript configuration with Serverless specific rules.

## Installation

```bash
npm install @novemberfiveco/eslint-config-serverless --save-dev
```

### Configuration

Create an `eslint.config.mjs` file in your project root with the following content:

```javascript
import novemberFiveConfig from "@novemberfiveco/eslint-config-serverless";
import { defineConfig } from "eslint/config";

export default defineConfig([novemberFiveConfig]);
```

## Included Plugins

This configuration includes the following plugins in addition to those from `@novemberfiveco/eslint-config-typescript`:

- [`eslint-plugin-drizzle`](https://github.com/drizzle-team/eslint-plugin-drizzle) - Drizzle ORM specific rules
npm package: @novemberfiveco/eslint-config-typescript
Description: Our base TypeScript ESLint configuration that all other packages extend from. Can also be used standalone for any TypeScript project or as the foundation for new framework-specific configurations.
Latest version: 2.0.2

# @novemberfiveco/eslint-config-typescript

[← Back to Main README](../../README.md)

Base TypeScript ESLint configuration used by November Five. This package provides the foundation for all other framework-specific configurations.

## Installation

```bash
npm install @novemberfiveco/eslint-config-typescript --save-dev
```

### Configuration

Create an `eslint.config.mjs` file in your project root with the following content:

```javascript
import novemberFiveConfig from "@novemberfiveco/eslint-config-typescript";
import { defineConfig } from "eslint/config";

export default defineConfig([novemberFiveConfig]);
```

## Included Plugins

This configuration includes the following plugins:

- [`@eslint/js`](https://github.com/eslint/eslint) - ESLint's built-in recommended rules
- [`typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) - TypeScript-specific ESLint rules
- [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) - Disables rules that conflict with Prettier
- [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import) - Rules for ES6+ import/export syntax
- [`eslint-plugin-no-relative-import-paths`](https://github.com/MelvinVermeer/eslint-plugin-no-relative-import-paths) - Prevents relative import paths
- [`eslint-plugin-simple-import-sort`](https://github.com/lydell/eslint-plugin-simple-import-sort) - Simple import sorting
npm package: @novemberfiveco/eslint-config-vite
Description: ESLint configuration for Vite projects used by November Five
Author: Adriaan Marain
Latest version: 2.2.1

# @novemberfiveco/eslint-config-vite

[← Back to Main README](../../README.md)

Vite ESLint configuration used by November Five. This package extends our base TypeScript configuration with Vite specific rules.

## Installation

```bash
npm install @novemberfiveco/eslint-config-vite --save-dev
```

### Configuration

Create an `eslint.config.mjs` file in your project root with the following content:

```javascript
import novemberFiveConfig from "@novemberfiveco/eslint-config-vite";
import { defineConfig } from "eslint/config";

export default defineConfig([novemberFiveConfig]);
```

## Included Plugins

This configuration includes the following plugins in addition to those from `@novemberfiveco/eslint-config-typescript`:

- [`eslint-plugin-react`](https://github.com/jsx-eslint/eslint-plugin-react) - React specific linting rules
- [`eslint-plugin-react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) - Rules for React Hooks
- [`@tanstack/eslint-plugin-query`](https://github.com/TanStack/query/tree/main/packages/eslint-plugin-query) - Rules for React Query
- [`eslint-plugin-storybook`](https://github.com/storybookjs/eslint-plugin-storybook) - Storybook specific rules
npm package: @novemberfiveco/release-it-rn-version-bumper
Description: Plugin that bumps CFBundleShortVersionString (iOS) and versionName (android)
Author: November Five Co.
Latest version: 1.0.3

# iOS and android version read/write plugin for release-it

This plugin reads and/or writes version/manifest files. It will set CFBundleShortVersionString (iOS) and versionName (android) to the package.json version. CFBundleVersion (iOS) and versionCode (android) will be incremented by 1.

### Installation

```sh
npm install --save-dev @novemberfiveco/release-it-rn-version-bumper
```

### Configuration Options

```json
"plugins": {
  "@novemberfiveco/release-it-rn-version-bumper": {
    "plistPath": "path-to/Info.plist",
    "gradlePath": "path-to/app/build.gradle"
  }
}
```

#### `plistPath: string`

Required - Path to Info.plist. This will likely be "ios/{PROJECT_NAME}/Info.plist"

#### `gradlePath: string`

Required - Path to app build.gradle. This will likely be "android/app/build.gradle"
npm package: @novemberfiveco/skidder-react
Description: November Five's logging library. Skidder will drag your logs where they need to go.
Author: Jens Reynders
Latest version: 1.0.2

# Skidder

Skidder will drag your logs to where they need to go. A small, uniform and extensible logging library, implemented across major technologies.

- iOS
- React
- React-Native
- Android

## Quick Start

```
npm install @novemberfiveco/skidder-react
```

## Usage

```
import skidder, { logInfo, SkidderLogLevel, SkidderServiceConsole } from ''@novemberfiveco/skidder-react'';

const consoleService = new SkidderServiceConsole(
    'console_1',
    __DEV__ ? SkidderLogLevel.trace : SkidderLogLevel.warn,
);
skidder.addService(consoleService);

skidder.setLogLevel(SkidderLogLevel.trace);

skidder.setMetaDataRecord('environment', config.ENVIRONMENT);
skidder.setGlobalData('tenant', config.BRAND_NAME);

logInfo("Info log")
```

## Extensible

Write your own logging service by confirming to `SkidderLogService` and add it as a service to Skidder.

## Roadmap

Build Skidder log services for the major app Crash and Analytics libraries. Further enhancing the crash reporting of your app, by providing a breadcrumb trail through your logs.

- [ ] Crashlytics
- [ ] Sentry
- [ ] Firebase
npm package: @novemberfiveco/skidder-typescript
Description: November Five's logging library. Skidder will drag your logs where they need to go.
Author: Jens Reynders
Latest version: 1.0.4

# Skidder

Skidder will drag your logs to where they need to go. A small, uniform and extensible logging library, implemented across major technologies.

- iOS
- React
- React-Native
- Android

## Quick Start

```
npm install @novemberfiveco/skidder-typescript
```

## Usage

```
import skidder, { logInfo, SkidderLogLevel, SkidderServiceConsole } from '@novemberfiveco/skidder-typescript';

const consoleService = new SkidderServiceConsole(
    'console_1',
    __DEV__ ? SkidderLogLevel.trace : SkidderLogLevel.warn,
);
skidder.addService(consoleService);

skidder.setLogLevel(SkidderLogLevel.trace);

skidder.setMetaDataRecord('environment', config.ENVIRONMENT);
skidder.setGlobalData('tenant', config.BRAND_NAME);

logInfo("Info log")
```

## Extensible

Write your own logging service by confirming to `SkidderLogService` and add it as a service to Skidder.

## Roadmap

Build Skidder log services for the major app Crash and Analytics libraries. Further enhancing the crash reporting of your app, by providing a breadcrumb trail through your logs.

- [ ] Crashlytics
- [ ] Sentry
- [ ] Firebase
npm package: @novembrecom/nlightbox
Description: 1. [Getting started](https://github.com/gitnovembre/lightbox-novembre/wiki/1.-Getting-started) 2. [Optional parameters](https://github.com/gitnovembre/lightbox-novembre/wiki/2.-Optional-parameters) 3. [Default types](https://github.com/gitnovembre/lightbo
Author: Jérémie Metter-Rothan
Latest version: 1.4.3

# nLightbox

1. [Getting started](https://github.com/gitnovembre/lightbox-novembre/wiki/1.-Getting-started)
2. [Optional parameters](https://github.com/gitnovembre/lightbox-novembre/wiki/2.-Optional-parameters)
3. [Default types](https://github.com/gitnovembre/lightbox-novembre/wiki/3.-Default-types)
4. [Lightbox API](https://github.com/gitnovembre/lightbox-novembre/wiki/4.-Lightbox-API)
5. [Fragment URL](https://github.com/gitnovembre/lightbox-novembre/wiki/5.-Fragment-URL)
6. [Style & custom themes](https://github.com/gitnovembre/lightbox-novembre/wiki/6.-Style-&-custom-themes)
7. [Custom types](https://github.com/gitnovembre/lightbox-novembre/wiki/7.-Custom-types)
8. [Custom animations](https://github.com/gitnovembre/lightbox-novembre/wiki/8.-Custom-animations)
npm package: @noveo/dual-rpc-ws
Description: Remote procedure call
Latest version: 0.0.25

# Dual rpc via websockets

![Tests](https://github.com/agsh/rpc/workflows/Tests/badge.svg)
[![Test Coverage](https://api.codeclimate.com/v1/badges/5ea026bd273c2043f2cb/test_coverage)](https://codeclimate.com/github/agsh/rpc/test_coverage)

This library helps to organize the remote methods calls via websockets in both
directions: from the server to the client and vice versa.

Docs: https://agsh.github.io/rpc

The project splits into two parts:

## Clent-side class `Client`

Can be imported from the `@noveo/dual-rpc-ws/client`

```typescript
import Client from '@noveo/dual-rpc-ws/client';
```

Documentation for it can be found here: https://agsh.github.io/rpc/classes/client.html

## Server-side class `Server`

Can be imported from the `@noveo/dual-rpc-ws/server`

```typescript
import Server from '@noveo/dual-rpc-ws/server';
// or
import { Server } from '@noveo/dual-rpc-ws';
```

Documentation for it can be found here: https://agsh.github.io/rpc/classes/server.html
npm package: @noveo/eslint-config-codestyle
Description: Shareable configuration package with code style settings
Author: Andrey Dergaev
Latest version: 2.1.0

# @noveo/eslint-config-codestyle
This module add eslint config and pre-commit hook based on [AirBnB Style Guid](https://github.com/airbnb/javascript)  with few differences:
```
"rules": {
    "indent": ["error", 4],
    "strict": [2, "global"],
    "no-console": "error",
    "require-jsdoc": ["error", {
        "require": {
            "FunctionDeclaration": true,
            "MethodDefinition": true,
            "ClassDeclaration": true,
            "ArrowFunctionExpression": true,
            "FunctionExpression": true
        }
    }],
    "valid-jsdoc": ["error", {
        "requireReturn": false,
        "preferType": {
            "boolean": "Boolean",
            "number": "Number",
            "object": "Object",
            "string": "String"
        }
    }],
    "comma-dangle": ["off", {
        "arrays": "always-multiline",
        "objects": "always-multiline",
        "imports": "always-multiline",
        "exports": "always-multiline",
        "functions": "always-multiline"
    }]
}
```

## Install
```
npm install @noveo/eslint-config-codestyle --save-dev
```
npm package: @noveo/react-components
Description: Noveo React Components
Latest version: 0.0.16

<p align="center">
    <a href="https://noveogroup.ru/" target="_blank">
      <img alt="Noveo Logo" width="300" src="https://noveogroup.ru/build/images/logo-noveo.e179f24f.svg">
    </a>
</p>

# Noveo React Components

React Components - wrapper for [@noveo/web-components](https://www.npmjs.com/package/@noveo/web-components).

Web Components was designed using Noveo UI Kit and built on Stencil.

These wrappers were written because React supports web-components only for 71%: [React web-components support](https://custom-elements-everywhere.com/libraries/react/results/results.html).

Documentation for UI kit is available in [Storybook](http://components.noveogroup.com).

## Installation

By `npm`:

```bash
npm install @noveo/react-components --save
```

Or by `yarn`:

```bash
yarn add @noveo/react-components
```

**IMPORTANT!** Almost all Noveo components depend on the `nv-icon` component to render icons,
so make sure to follow the [instructions](https://www.npmjs.com/package/@noveo/web-components#nv-icon) for that component before using the others!

## Usage
```jsx
import { NvButton } from '@noveo/react-components';

const EditButton = ({ handleClick, text }) => (
  <NvButton color="success" onClick={handleClick}>
    {text}
  </NvButton>
);
```
npm package: @noveo/react-components-v2
Description: Components to use in internal Noveo applications.
Latest version: 1.6.1

# Noveo React Components v2

Components to use in internal Noveo applications.

Documentation is available in [Storybook](https://storybook.js.org/): [Noveo React Components V2](http://noveo-internal-tools.gitlab.noveogroup.com/ui-kit-components/react-components-v2/?path=/docs/nvaccordion--docs)

## Installation

Add the library with your project's package manager

e.g.

```
npm i @noveo/react-components-v2
```

or

```
yarn add @noveo/react-components-v2
```

### Storybook deployment

You can check out this library's Storybook at the following link, which is publicly available: [react-componets-v2 storybook](http://noveo-internal-tools.gitlab.noveogroup.com/ui-kit-components/react-components-v2/?path=/docs/nvaccordion--docs)
This library is deployed using **Gitlab pages**.

***Caveats***: CI/CD is configured so that changes to master are published on successful jobs automatically.

**But you have the option to do publication to any other branch manually (```when: manual```) on a trigger with the same conditions (successful completion of past jobs).** 

This can be useful in case of testing individual features, **but don't forget to update the master deploy, after manual use (for this purpose it is enough to restart the stage "deploy" for the last commit on the master)**.

Also, Pipelines trigger only on new commits for the reasons above instead of optimizing (triggering only merge requests' events) the use of runners.

### Styles

The library comes with shipped CSS files. No need to import them directly, but in
order for the styles to work correctly, the bundler in your project should handle
CSS imports (the ones like `import index.css`).


### Icons

By default, all icons are stored in `src/assets/icons` and there is a specific folder for the dark theme - `src/assets/icons/dark`. 
You can also set your own paths for the light and dark icons by simply passing the `lightThemeIconsPath` and `darkThemeIconsPath` props to `NvPublicPathProvider`.
Please note that the `publicPath` property in the `NvPublicPathProvider` is depricated, we kept it as fallback and it will be removed in future with breaking change updates.


### Dark theme

To use the dark mode you need to wrap your components with the `NvLightDarkThemeProvider` and then use the `NvSwitchLightDarkTheme` to be able to  switch between light and dark theme.
Here an example how it can be used:

```
<NvLightDarkThemeProvider>
  <NvPublicPathProvider lightThemeIconsPath="assets/baseIcons" darkThemeIconsPath="assets/darkModeIcons">
    <NvSwitchLightDarkTheme showValue={false} />
    // your components here
  </NvPublicPathProvider>
</NvLightDarkThemeProvider>
```

### Semantic-release usage

RU Documentation: https://docs.google.com/document/d/1F-0xiE6TdRPtGFUPmaT_WTtx9sIV0q5yH-OVddafxr8/edit?usp=sharing

<!-- ## Contributing -->

<!-- See [CONTRIBUTING.md](CONTRIBUTING.md) -->
npm package: @noves/noves-sdk
Description: Noves Developer Kit
Author: Noves
Latest version: 1.5.0

<p align="center" style="padding: 10px 0;">
  <img src="https://raw.githubusercontent.com/Noves-Inc/noves-sdk/refs/heads/main/assets/noves-logo.png" width="300" alt="Noves Logo" />
</p>

# Noves SDK 🚀

The official SDK for interacting with the [Noves API](https://docs.noves.fi/reference/api-overview).

## 🌟 Features

- **Translate**: Understand what transactions do with clear labels and rich metadata
- **Foresight**: Get pre-sign insights about transactions before execution
- **Pricing**: Access real-time and historical token prices across chains
- **Multi-chain Support**: EVM, Cosmos, SVM, UTXO, TVM, and Polkadot
- **Retry Mechanism**: Built-in retry strategies with circuit breakers and intelligent backoff
- **TypeScript Support**: Full type definitions and autocompletion

## 📦 Installation

```bash
npm install @noves/noves-sdk
```

## 🚀 Quick Start

```typescript
import { Translate } from "@noves/noves-sdk";

// Initialize with your API key
const translate = Translate.evm("YOUR_API_KEY");

// Get transaction details
const txInfo = await translate.getTransaction(
  "eth",
  "0x1cd4d61b9750632da36980329c240a5d2d2219a8cb3daaaebfaed4ae7b4efa22"
);
```

## 📚 Documentation

For detailed documentation, please visit our [Documentation Site](https://docs.noves.fi).

### API Documentation

- [Translate API](docs/api/translate/README.md)
  - [EVM](docs/api/translate/evm.md)
  - [Cosmos](docs/api/translate/cosmos.md)
  - [SVM](docs/api/translate/svm.md)
  - [UTXO](docs/api/translate/utxo.md)
  - [TVM](docs/api/translate/tvm.md)
  - [Polkadot](docs/api/translate/polkadot.md)
- [Pricing API](docs/api/pricing/README.md)
  - [EVM](docs/api/pricing/evm.md)
  - [Cosmos](docs/api/pricing/cosmos.md)
  - [SVM](docs/api/pricing/svm.md)
  - [UTXO](docs/api/pricing/utxo.md)
  - [Move](docs/api/pricing/move.md)
- [Foresight API](docs/api/foresight/README.md)

### Guides

- [Retry Mechanism Guide](docs/retry-mechanism-guide.md) - Comprehensive guide to configuring retry behavior
- [Error Handling Guide](docs/error-handling.md) - Best practices for error handling

### Examples

Check out our [examples directory](docs/examples/) for complete code samples.
npm package: @novice1/amqp-client
Description: AMQP 0-9-1 client. Sends messages with predefined headers.
Author: demingongo
Latest version: 0.2.0

# @novice1/amqp-client

AMQP 0-9-1 client. Sends messages with predefined headers.
Extends [amqplib](https://www.npmjs.com/package/amqplib).

## Installation

```bash
$ npm install @novice1/amqp-client
```

## Usage

publisher.js
```js
const AMQPClient = require('@novice1/amqp-client');

const publisher = new AMQPClient(
  // url
  'amqp://guest:guest@localhost:5672/',
  // socket options
  null,
  // predefined headers for all messages sent
  {
    clientCode: 'guest101'
  }
);

publisher.connect().then((conn) => {
    return conn.createChannel();
  })
  .then((ch) => {
    return ch
      .assertQueue('queue_name', { durable: false })
      .then(function () {
        return ch.sendToQueue(
            'queue_name',
            Buffer.from('message')
          );
      });
  })
  .catch(console.error);
```

consumer.js
```js
const AMQPClient = require('@novice1/amqp-client');

const consumer = new AMQPClient(
  // url
  'amqp://guest:guest@localhost:5672/'
);

consumer.connect().then((conn) => {
    return conn.createChannel();
  })
  .then((ch) => {
    return ch
      .assertQueue('queue_name', { durable: false })
      .then(function () {
        return ch.consume('queue_name', (msg) => {
          let senderIP = msg.properties.headers.senderIP;
          let clientCodeHeader = msg.properties.headers.clientCode;
          let body = msg.content.toString();
          console.log(" [x] Received '%s' from '%s' with clientCode '%s'", body, senderIP, clientCodeHeader);
        });
      });
  })
  .catch(console.error);
```

## References
- [amqplib](https://www.npmjs.com/package/amqplib)
- [ip](https://www.npmjs.com/package/ip)
npm package: @novice1/app
Description: Create Express applications.
Author: demingongo
Latest version: 0.9.4

# @novice1/app

Create [Express v5](https://expressjs.com) applications.

## Installation

```bash
$ npm install @novice1/app
```

## Usage

```js
const routing = require('@novice1/routing'),
  { FrameworkApp } = require('@novice1/app');

// Router
const router = routing().get('/', (req, res) => {
  // ...
}).put('/', (req, res) => {
  // ...
});

// FrameworkApp
const app = new FrameworkApp({
  framework: {
    // middlewares
    middlewares: [
      (req, res, next) => {
        next();
      }
    ],
    // authorization middlewares
    auth: [
      (req, res, next) => {
        next();
      }
    ],
    // validation middlewares
    validators: [
      (req, res, next) => {
        next();
      }
    ]
  },
  // routers
  routers: [
    router
  ]
});

// http.Server
const server = app.listen(8000, '0.0.0.0', () => {
  console.log('Application started ...');
  console.log(app.meta)
});
```

### addOptions
Concatenate current application options with new options.
```js
app.addOptions({
  // add more routers
  routers: [router]
});
```

### Routing
```js
app.addRouters([router]);
```
```js
app.get({
  path: '/index',
  name: 'Home',
  tags: ['Index']
}, function homepage(req, res) {
  // ...
});

app.put('/add', (req, res) => {
  // ...
});

app.use((err, req, res) => {
  // ...
});
```
```js
const lazyRouter = app.lazyrouter();
lazyRouter.get({
  path: '/index',
  name: 'Home',
  tags: ['Index']
}, function homepage(req, res) {
  // ...
});

lazyRouter.put('/add', (req, res) => {
  // ...
});

lazyRouter.use((err, req, res) => {
  // ...
});
```

### http ServerOptions
```js
const httpServerOptions = {};

const server = app.build(httpServerOptions);
server.listen(8000, '0.0.0.0', () => {
  console.log('Application started ...');
  console.log(app.meta)
});
```

```js
const https = require('https');
const httpsServerOptions = {};

const server = app.build(httpsServerOptions, https);
server.listen(8000);
```
## References

- [Express](https://expressjs.com)
- [@novice1/app](https://kisiwu.github.io/novice-app/latest/)
npm package: @novice1/validator-zod
Description: Zod validator to use with @novice1/routing.
Author: demingongo
Latest version: 0.1.3

# @novice1/validator-zod

Zod validator to use with [@novice1/routing](https://www.npmjs.com/package/@novice1/routing).

It provides a middleware that can validate `req.params`, `req.body`, `req.query`, `req.headers`, `req.cookies` and `req.files` against a schema using [Zod 4](https://www.npmjs.com/package/zod).

## Installation

```bash
npm install @novice1/validator-zod
```

### Requirements

Zod4

```bash
npm install zod@next
```

## Usage

### Set validator

```ts
// router.ts

import routing from '@novice1/routing'
import { validatorZod } from '@novice1/validator-zod'

export default const router = routing()

router.setValidators(
  validatorZod(
    // parseAsync params
    { },
    // middleware in case validation fails
    function onerror(err, req, res, next) {
      res.status(400).json(err)
    }
    // name of the property containing the schema
    'schema'
  )
)
```

### Create schema 

```ts
// schema.ts

import { z } from 'zod/v4'
import { ValidatorZodSchema } from '@novice1/validator-zod'
import router from './router'

// schema for "req.body"
const bodySchema = z.object({                
  name: z.string()
})

// type for "req.body"
export type BodyItem = z.infer<typeof bodySchema>

export const routeSchema: ValidatorZodSchema = z.object({
    body: bodySchema
})

// or
/*
export const routeSchema: ValidatorZodSchema = {
    body: bodySchema
}
*/

// or
/*
export const routeSchema: ValidatorZodSchema = {
    body: {                
        name: z.string()
    }
}
*/
```

### Create route

```ts
import routing from '@novice1/routing'
import express from 'express'
import router from './router'
import { BodyItem, routeSchema } from './schema'

router.post(
  {
    name: 'Post item',
    path: '/items',

    parameters: {
        // the schema to validate
        schema: routeSchema
    },

    // body parser
    preValidators: express.json()
  },
  function (req: routing.Request<unknown, { name: string }, BodyItem>, res) {
    res.json({ name: req.body.name })
  }
)
```

### Overrides

Override the validator's options and the error handler for a route.

```ts
import routing from '@novice1/routing'
import { ValidatorZodOptions } from '@novice1/validator-zod'
import router from './router'

const onerror: routing.ErrorRequestHandler = (err, req, res) => {
  res.status(400).json(err)
}

const validatorZodOptions: ValidatorZodOptions = { }

router.get(
  {
    path: '/override',
    parameters: {
      // overrides
      onerror, 
      validatorZodOptions

    },
  },
  function (req, res) {
    // ...
  }
)
```

## References

- [Zod 4](https://v4.zod.dev/v4)
- [@novice1/routing](https://www.npmjs.com/package/@novice1/routing)
npm package: @novicell/cli
Description: A CLI to help developers start up new projects
Latest version: 3.0.2

[![npm version](https://badge.fury.io/js/@novicell%2Fcli.svg)](https://badge.fury.io/js/@novicell%2Fcli)
![node-current](https://img.shields.io/node/v/@jannick_sp/cli-tool)
# Novicell CLI tool

This is a tool that helps all Novicell developers to initialize a new project no matter which project type.
At the moment it supports all types such as:
- Embedded (Vite)
- Custom (Nuxt3)
- Premium SPA (Nuxt2)


Or watch this complete tutorial on how to use the tool: 📽️
 ![This is an image](https://media1.giphy.com/media/ESdDAtAIoXObbXAz1X/giphy.gif?cid=790b761110669036b1f71cc21088c3c7d47d005f37e0dc9a&rid=giphy.gif&ct=g) 

### Use Node Version `16.11.0` or later.
## Using the tool with NPX
```bash
npx @novicell/cli
```
npm package: @novicell/eslint-config-nuxt
Description: A Eslint config for Nuxt projects with TypeScript
Author: Simon Nørlund Eldevig
Latest version: 0.2.5

# Novicell ESLint config for Nuxt.js with TypeScript

![npm](https://img.shields.io/npm/v/@novicell/eslint-config-nuxt)

This is an ESLint config for Nuxt 2 and 3 projects with TypeScript.

## How to install
1.
    ```bash
    npm i eslint @novicell/eslint-config-nuxt
    ```

2. Create a `.eslintrc.json` in the root of the project
3. Add the following 👇
    ```json
    {
      "extends": "@novicell/eslint-config-nuxt",
      "rules": {
        // Your project specific rules or overrides
      }
    }
    ```
4. Add lint scripts to `package.json`
    ```json
    "scripts": {
      "eslint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore .",
      "eslint:fix": "eslint --ext .js,.vue,.ts --ignore-path .gitignore . --fix",
    }
    ```
5. Make VS Code autofix issues on save (optional)
   * Create a `.vscode` folder in root and add `settings.json` to it. **Remember to disable Prettier!**
   * Add the following
   ```json
    {
      "css.validate": false,
      "less.validate": false,
      "scss.validate": false,
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true,
      },
      "prettier.enable": false
    }

   ```
6. Configure webpack to autofix eslint issues during build (optional)
    ```javascript
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue|ts)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/,
          options: {
            fix: true
          }
        });
      }
    }
    ```

## Contribution

Looking to contribute something? Here's how you can help. Please take a moment to review our [contribution guidelines](https://github.com/Novicell/novicell-frontend/wiki/Contribution-guidelines) in order to make the contribution process easy and effective for everyone involved.

## License

The Novicell CSS Utils is licensed under the MIT license. (http://opensource.org/licenses/MIT)
npm package: @novicell/eslint-config-vue
Description: A Eslint config for Vue projects with TypeScript
Author: Simon Nørlund Eldevig
Latest version: 0.1.0

# Novicell ESLint config for Vue 3 with TypeScript

![npm](https://img.shields.io/npm/v/@novicell/eslint-config-vue)

This is an ESLint config for Vue 3 projects with TypeScript.

## How to install
1.
    ```bash
    npm i eslint @novicell/eslint-config-vue
    ```

2. Create a `.eslintrc.json` in the root of the project
3. Add the following 👇
    ```json
    {
      "extends": "@novicell/eslint-config-vue",
      "rules": {
        // Your project specific rules or overrides
      }
    }
    ```
4. Add lint scripts to `package.json`
    ```json
    "scripts": {
      "eslint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore .",
      "eslint:fix": "eslint --ext .js,.vue,.ts --ignore-path .gitignore . --fix",
    }
    ```
5. Make VS Code autofix issues on save (optional)
   * Create a `.vscode` folder in root and add `settings.json` to it. **Remember to disable Prettier!**
   * Add the following
   ```json
    {
      "css.validate": false,
      "less.validate": false,
      "scss.validate": false,
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true,
      },
      "prettier.enable": false
    }

   ```
6. Configure webpack to autofix eslint issues during build (optional)
    ```javascript
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue|ts)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/,
          options: {
            fix: true
          }
        });
      }
    }
    ```

## Contribution

Looking to contribute something? Here's how you can help. Please take a moment to review our [contribution guidelines](https://github.com/Novicell/novicell-frontend/wiki/Contribution-guidelines) in order to make the contribution process easy and effective for everyone involved.

## License

The Novicell CSS Utils is licensed under the MIT license. (http://opensource.org/licenses/MIT)
npm package: @novicell/ie-browser-redirect
Description: Present user with the overlay message built by Microsoft stating that the website is not suited for the Internet Explorer. If the user accepts, they get redirected to the same website just within Microsoft Edge
Author: Novicell DK
Latest version: 1.0.1

# ⚰️ Novicell Internet Explorer browser redirect

Present user with the overlay message built by Microsoft stating that the website is not suited for the Internet Explorer. If the user accepts, they get redirected to the same website just within Microsoft Edge

## Usage

```html
<script src="https://unpkg.com/@novicell/ie-browser-redirect@latest/dist/index.js"></script>
```

## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @novicell/offline-notification
Description: Offline notification component for nuxt setup
Author: Luka Gurovic
Latest version: 0.0.7

# nc-offline-notification

nc-offline-notification is a small component identifier for the Nuxt.js to inform the user when the app is offline.

## Installation

Use the package manager [npm](https://www.npmjs.com/package/@novicell/offline-notification) to install component.

```bash
npm i @novicell/offline-notification
```

## Usage
1. Create a plugin file inside /plugins. For example 'offline-notification.js'
```js
import Vue from 'vue'
import offlineNotification from '@novicell/offline-notification'

Vue.use(offlineNotification);
```

2. Register plugin in 'nuxt.config.js' under 'plugins'
```js
  plugins: [
    '~/plugins/offline-notification'
  ],
```
3. Display component
```js
  <nc-offline-notification v-if="$nuxt.isOffline"></nc-offline-notification>
```

## Add CSS modification
The aim of this component is to be customizable in order to be easily suited for different projects.

Customizable CSS variables: 

```css
:root {
  --offlineNotificationbackgroundColor: #1f2021;
  --offlineNotificationTextColor: #f2f4f5;
  --offlineNotificationFont: sans-serif;
  --offlineNotificationFontSize: .8em;
}
```
npm package: @novicell/stylelint-config
Description: A Stylelint config for CSS or PostCSS
Author: Simon Nørlund Eldevig
Latest version: 0.2.10

# Novicell Stylelint config

![npm](https://img.shields.io/npm/v/@novicell/stylelint-config)

This is an Stylelint config for all projects written with either vanilla CSS or PostCSS.

## How to install
1.
    ```bash
    npm i stylelint @novicell/stylelint-config
    ```

2. Create a `.stylelintrc.json` in the root of the project
3. Add the following 👇
    ```json
    {
      "extends": "@novicell/stylelint-config",
      "rules": {
        // Your project specific rules or overrides
      }
    }
    ```
4. Add lint scripts to `package.json`
    ```json
    "scripts": {
      "stylelint": "stylelint '**/*.{css,vue}'",
      "stylelint:fix": "stylelint '**/*.{css,vue}' --fix"
    }
    ```
5. Make VS Code autofix issues on save (optional)
   * Install the Stylelint extension
   * Create a `.vscode` folder in root and add `settings.json` to it. **Remember to disable Prettier!**
   * Add the following
   ```json
    {
      "css.validate": false,
      "less.validate": false,
      "scss.validate": false,
      "stylelint.validate": ["css", "postcss", "vue"],
      "editor.codeActionsOnSave": {
        "source.fixAll.stylelint": true,
      },
      "prettier.enable": false
    }

   ```
6. Use [StylelintWebPackPLugin](https://webpack.js.org/plugins/stylelint-webpack-plugin/). to fix your issues on build (optional)

## Contribution

Looking to contribute something? Here's how you can help. Please take a moment to review our [contribution guidelines](https://github.com/Novicell/novicell-frontend/wiki/Contribution-guidelines) in order to make the contribution process easy and effective for everyone involved.

## License

The Novicell CSS Utils is licensed under the MIT license. (http://opensource.org/licenses/MIT)
npm package: @novin-dev/formalite
Description: Generate MUI form with few line of code
Author: Mostafa Roosta
Latest version: 0.5.1

# `Formalite`

Generate MUI form with few line of code

[![Coverage Status](https://coveralls.io/repos/github/novin-develop/formalite/badge.svg?branch=main)](https://coveralls.io/github/novin-develop/formalite?branch=main)
[![size](https://img.shields.io/bundlephobia/min/@novin-dev/formalite)](https://bundlephobia.com/package/@novin-dev/formalite)
[![download](https://img.shields.io/npm/dw/@novin-dev/formalite)](https://www.npmjs.com/package/@novin-dev/formalite)
[![licence](https://img.shields.io/npm/l/@novin-dev/formalite)](https://www.npmjs.com/package/@novin-dev/formalite)
[![version](https://img.shields.io/npm/v/@novin-dev/formalite)](https://www.npmjs.com/package/@novin-dev/formalite)
[![last_commit](https://img.shields.io/github/last-commit/novin-develop/formalite)](https://github.com/novin-develop/formalite)

### [Website Link](https://formalite.novin.dev/)

### [Documents Link](https://formalite-docs.novin.dev/)

## Install

```
npm i --save @novin-dev/formalite
```

## Usage
a simple from widh one textView
```js
import React, { useMemo } from "react";
 import * as Yup from "yup";
 import {
   Formalite,
   ViewTypes,
   useFormaliteRef
 } from "@novin-dev/formalite";
 import type { MainType } from "@novin-dev/formalite";
 
 const validation = Yup.object({
   title: Yup.string().required(),
 });
 type ValidationType = Yup.InferType<typeof validation>;
 
 const iniValues: ValidationType = {
   title: "123",
 };
 
 export const TextView = () => {
   const formRef = useFormaliteRef<ValidationType>();
 
   const formString = useMemo<MainType>(() => {
     return {
       title: {
         type: ViewTypes.TextView,
         layoutProps: {
           md: 6,
           xs: 12,
         },
         mustRegex:
           /^([1-9]d*(.)d{1,4}|0?(.)d*[1-9]d*|0?|[1-9]d*|[1-9]d*(.))$/,
         inputProps: {
           label: "Title Input",
           helperText: "Helper text",
           placeholder: "some other title",
           onChange: (value) => {
             console.log(value);
           },
         },
       },
     };
   }, []);
 
   return (
     <Formalite<ValidationType>
       lang="en"
       formString={formString}
       initialValues={iniValues}
       validationSchema={validation}
       formRef={formRef}
       onSubmit={(values) => {
         console.log(values);
       }}
     />
   );
 };
```
[![Edit Button](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/formalite-simple-3y170m?file=/src/App.tsx)
npm package: @novin-develop/is-svg-cjs
Description: is-svg compiled in CommonJS.
Author: Hamid Zare
Latest version: 5.0.1

# Keycloak Admin Client in CommonJS

This lib exports the [@keycloak/keycloak-admin-client](https://www.npmjs.com/package/@keycloak/keycloak-admin-client) 
(an ECMA Script module) as a CommonJS module so it can be used in NestJS.

This repo is based on an idea by [Manuelbaun](https://github.com/Manuelbaun) on this issue https://github.com/keycloak/keycloak-nodejs-admin-client/issues/523

The version number of this repo will follow the version number of @keycloak/keycloak-admin-client.

## Install

```shell
npm i @s3pweb/keycloak-admin-client-cjs
```

## Usage

```ts
import { KeycloakAdminClient } from '@s3pweb/keycloak-admin-client-cjs';

@Injectable()
export class KeycloakService {
    private readonly kcAdminClient: KeycloakAdminClient;

    constructor(logger: LoggingService) {
        this.log = logger.getLogger(KeycloackService.name);
        this.kcAdminClient = new KeycloakAdminClient();
    }

}
```
npm package: @novin-develop/keycloak-admin-client-cjs
Description: Keycloak Admin Client compiled in CommonJS.
Author: Hamid Zare
Latest version: 25.0.2

# Keycloak Admin Client in CommonJS

This lib exports the [@keycloak/keycloak-admin-client](https://www.npmjs.com/package/@keycloak/keycloak-admin-client) 
(an ECMA Script module) as a CommonJS module so it can be used in NestJS.

This repo is based on an idea by [Manuelbaun](https://github.com/Manuelbaun) on this issue https://github.com/keycloak/keycloak-nodejs-admin-client/issues/523

The version number of this repo will follow the version number of @keycloak/keycloak-admin-client.

## Install

```shell
npm i @s3pweb/keycloak-admin-client-cjs
```

## Usage

```ts
import { KeycloakAdminClient } from '@s3pweb/keycloak-admin-client-cjs';

@Injectable()
export class KeycloakService {
    private readonly kcAdminClient: KeycloakAdminClient;

    constructor(logger: LoggingService) {
        this.log = logger.getLogger(KeycloackService.name);
        this.kcAdminClient = new KeycloakAdminClient();
    }

}
```