open-index/open-npm huggingface dataset:
npm package: @nestjs-devtools-mcp/plugin
Description: NestJS dynamic module for Model Context Protocol (MCP) integration
Author: Hạo
Latest version: 0.1.13

# @nestjs-devtools-mcp/plugin

**NestJS Plugin for MCP DevTools**

This package is a NestJS module that allows AI coding agents (Claude, Cursor, etc.) to introspect your application's runtime state through the Model Context Protocol (MCP).

---

## Installation

```bash
npm install @nestjs-devtools-mcp/plugin
```

## Setup

### 1. Register Module in `app.module.ts`
```typescript
import { DevtoolsMcpModule } from '@nestjs-devtools-mcp/plugin';

@Module({
  imports: [
    DevtoolsMcpModule.register(),
  ],
})
export class AppModule {}
```

### 2. Apply Logger in `main.ts`
```typescript
import { NestFactory } from '@nestjs/core';
import { applyDevtoolsLogger } from '@nestjs-devtools-mcp/plugin';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, { bufferLogs: true });
  applyDevtoolsLogger(app);
  await app.listen(3000);
}
bootstrap();
```

---

## Features
- Circular log buffering for AI agents.
- Real-time route and module introspection (coming soon).
- Zero-config auto-discovery.
- Production-safe by default.

For detailed documentation, visit the [Main README](https://github.com/HaoNgo232/nestjs-devtools-mcp).
npm package: @nestjs-ex/zeebe
Description: Zeebe module for Nest JS
Latest version: 8.0.1


<p align="center">
  <a href="https://www.npmjs.com/package/@nestjs-ex/zeebe"><img alt="NPM Status" src="https://badge.fury.io/js/@nestjs-ex%2Fzeebe.svg" height="18"></a>
  <a href="https://github.com/nestjs-ex/zeebe/actions/workflows/development.yml"><img alt="CI Status" src="https://github.com/nestjs-ex/zeebe/actions/workflows/development.yml/badge.svg"></a>
</p>
npm package: @nestjs-ext/message-broker
Description: <p align="center">   <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a> </p>
Author: Ofir G.
Latest version: 0.0.1-beta.2

<p align="center">
  <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
</p>

<p align="center">A generic Message Broker module for <a href="https://nestjs.com/" target="_blank"> NestJS</a> framework for .</p>
<p align="center">
  <a href="https://github.com/OfirTheOne/nestjs-message-broker" target="_blank"><img src="https://github.com/OfirTheOne/nestjs-message-broker/actions/workflows/on-push.yaml/badge.svg" alt="Build" /></a>
  <a href="https://www.npmjs.com/package/@nestjs-ext/message-broker" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs-ext/message-broker.svg" alt="NPM Version" /></a>
  <a href="https://www.npmjs.com/package/@nestjs-ext/message-broker" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs-ext/message-broker.svg" alt="Package License" /></a>
  <a href="https://www.npmjs.com/package/@nestjs-ext/message-broker" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs-ext/message-broker.svg" alt="NPM Downloads" /></a>
  <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
  <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
</p>

## Description

[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

## Installation

```bash
$ npm install
```

## Perquisite  

* node v14.x and higher.
* NestJs v9.x and higher.


## License

[MIT licensed](LICENSE).
npm package: @nestjs-extend/mongoose-crud
Description: Nest.js CRUD for RESTful APIs - Mongoose
Latest version: 1.0.6

# Warning

由于个人考虑不周，导致此包版本迭代异常。如果您使用过程中感到不悦，对此深感抱歉。该 scope 下的包（稳定版）将迁移到 `nests` scope 下。

[mongoose-crud(@nests/mongoose-crud)](https://www.npmjs.com/package/@nests/mongoose-crud)
npm package: @nestjs-filter-grammar/mikroorm
Description: MikroORM adapter for @nestjs-filter-grammar — translates FilterTree into MikroORM FilterQuery objects
Latest version: 0.1.3

# @nestjs-filter-grammar/mikroorm

MikroORM adapter for nestjs-filter-grammar. Translates `FilterTree` and `SortEntry[]` into MikroORM `FilterQuery` and `QueryOrderMap` objects.

## Installation

```bash
npm install @nestjs-filter-grammar/mikroorm @nestjs-filter-grammar/core
```

### Peer Dependencies

- `@mikro-orm/core` >= 6.0.0

## API

### `applyFilter(tree, options?): Record<string, MikroOrmQueryValue>`

Converts a `FilterTree` into a MikroORM `FilterQuery` object.

```typescript
import { applyFilter } from '@nestjs-filter-grammar/mikroorm';

const users = await em.find(User, applyFilter(filterTree));
```

**Output examples:**

| Input | Output |
|-------|--------|
| `status=active` | `{ status: { $eq: 'active' } }` |
| `status!=deleted` | `{ status: { $ne: 'deleted' } }` |
| `status=active,pending` | `{ status: { $in: ['active', 'pending'] } }` |
| `name*~john` | `{ name: { $ilike: '%john%' } }` |
| `status=active;age>=18` | `{ $and: [{ status: { $eq: 'active' } }, { age: { $gte: '18' } }] }` |
| `status=active\|status=pending` | `{ $or: [{ status: { $eq: 'active' } }, { status: { $eq: 'pending' } }] }` |

### `applySort(entries, options?): Record<string, MikroOrmQueryValue>`

Converts `SortEntry[]` into a MikroORM `QueryOrderMap`.

```typescript
import { applySort } from '@nestjs-filter-grammar/mikroorm';

const users = await em.find(User, {}, { orderBy: applySort(sortEntries) });
// orderBy: { name: 'asc', age: 'desc' }
```

### Column Mapping

**String rename:**

```typescript
applyFilter(tree, {
  columnMap: { name: 'userName' },
});
// { userName: { $eq: 'John' } }
```

**Callback for nested relations:**

```typescript
applyFilter(tree, {
  columnMap: {
    department: (operator, values) => ({
      department: { name: { $eq: values[0].value } },
    }),
  },
});
```

Sort column mapping:

```typescript
applySort(entries, {
  columnMap: {
    department: (direction) => ({ department: { name: direction } }),
  },
});
// { department: { name: 'asc' } }
```

## Full Example

```typescript
@Controller('users')
export class UsersController {
  constructor(private readonly em: EntityManager) {}

  @Get()
  async findAll(@Filter(UserQuery, { optional: true }) { filter, sort }: FilterResult) {
    return this.em.find(User,
      filter ? applyFilter(filter) : {},
      { orderBy: sort ? applySort(sort) : {} },
    );
  }
}
```
npm package: @nestjs-filter-grammar/prisma
Description: Prisma adapter for @nestjs-filter-grammar — translates FilterTree into Prisma where/orderBy objects
Latest version: 0.1.3

# @nestjs-filter-grammar/prisma

Prisma adapter for nestjs-filter-grammar. Translates `FilterTree` and `SortEntry[]` into Prisma `where` and `orderBy` objects.

## Installation

```bash
npm install @nestjs-filter-grammar/prisma @nestjs-filter-grammar/core
```

### Peer Dependencies

- `@prisma/client` >= 5.0.0

## API

### `applyFilter(tree, options?): Record<string, PrismaQueryValue>`

Converts a `FilterTree` into a Prisma `where` object.

```typescript
import { applyFilter } from '@nestjs-filter-grammar/prisma';

const users = await prisma.user.findMany({
  where: applyFilter(filterTree),
});
```

**Output examples:**

| Input | Output |
|-------|--------|
| `status=active` | `{ status: { equals: 'active' } }` |
| `status!=deleted` | `{ status: { not: { equals: 'deleted' } } }` |
| `status=active,pending` | `{ status: { in: ['active', 'pending'] } }` |
| `name*~john` | `{ name: { contains: 'john', mode: 'insensitive' } }` |
| `status=active;age>=18` | `{ AND: [{ status: { equals: 'active' } }, { age: { gte: '18' } }] }` |
| `status=active\|status=pending` | `{ OR: [{ status: { equals: 'active' } }, { status: { equals: 'pending' } }] }` |

### `applySort(entries, options?): Record<string, PrismaQueryValue>[]`

Converts `SortEntry[]` into a Prisma `orderBy` array.

```typescript
import { applySort } from '@nestjs-filter-grammar/prisma';

const users = await prisma.user.findMany({
  orderBy: applySort(sortEntries),
});
// orderBy: [{ name: 'asc' }, { age: 'desc' }]
```

### Column Mapping

**String rename:**

```typescript
applyFilter(tree, {
  columnMap: { name: 'userName' },
});
// { userName: { equals: 'John' } }
```

**Callback for nested relations:**

```typescript
applyFilter(tree, {
  columnMap: {
    department: (operator, values) => ({
      department: { name: { equals: values[0].value } },
    }),
  },
});
```

Sort column mapping:

```typescript
applySort(entries, {
  columnMap: {
    department: (direction) => ({ department: { name: direction } }),
  },
});
// [{ department: { name: 'asc' } }]
```

## Full Example

```typescript
@Controller('users')
export class UsersController {
  constructor(private readonly prisma: PrismaService) {}

  @Get()
  async findAll(@Filter(UserQuery, { optional: true }) { filter, sort }: FilterResult) {
    return this.prisma.user.findMany({
      where: filter ? applyFilter(filter) : undefined,
      orderBy: sort ? applySort(sort) : undefined,
    });
  }
}
```
npm package: @nestjs-filter-grammar/typeorm
Description: TypeORM adapter for @nestjs-filter-grammar — translates FilterTree into TypeORM query builder clauses
Latest version: 0.1.3

# @nestjs-filter-grammar/typeorm

TypeORM adapter for nestjs-filter-grammar. Translates `FilterTree` and `SortEntry[]` into `SelectQueryBuilder` WHERE and ORDER BY clauses.

## Installation

```bash
npm install @nestjs-filter-grammar/typeorm @nestjs-filter-grammar/core
```

### Peer Dependencies

- `typeorm` >= 0.3.0

## API

### `applyFilter<T>(qb, tree, options?): SelectQueryBuilder<T>`

Applies a `FilterTree` to a TypeORM `SelectQueryBuilder`. Mutates and returns the same query builder for chaining.

```typescript
import { applyFilter } from '@nestjs-filter-grammar/typeorm';

const qb = repo.createQueryBuilder('user');
applyFilter(qb, filterTree);
const users = await qb.getMany();
```

### `applySort<T>(qb, entries, options?): SelectQueryBuilder<T>`

Applies `SortEntry[]` as ORDER BY clauses.

```typescript
import { applySort } from '@nestjs-filter-grammar/typeorm';

const qb = repo.createQueryBuilder('user');
applySort(qb, [{ field: 'name', direction: SortDirection.asc }]);
```

### Column Mapping

By default, field names map to `entity.fieldName`. Use `columnMap` to rename columns or provide custom query logic.

**String rename:**

```typescript
applyFilter(qb, tree, {
  columnMap: {
    name: 'entity.user_name',
  },
});
```

**Callback for full control (joins, subqueries):**

```typescript
applyFilter(qb, tree, {
  columnMap: {
    department: (qb, operator, values) => {
      qb.leftJoin('entity.department', 'dept')
        .andWhere('dept.name = :dept', { dept: values[0].value });
    },
  },
});
```

Sort column mapping works the same way:

```typescript
applySort(qb, entries, {
  columnMap: {
    name: 'entity.user_name',
    department: (qb, direction) => {
      qb.leftJoin('entity.department', 'dept')
        .addOrderBy('dept.name', direction);
    },
  },
});
```

## Full Example

```typescript
@Controller('users')
export class UsersController {
  constructor(private readonly repo: Repository<User>) {}

  @Get()
  async findAll(@Filter(UserQuery, { optional: true }) { filter, sort }: FilterResult) {
    const qb = this.repo.createQueryBuilder('entity');
    if (filter) applyFilter(qb, filter);
    if (sort) applySort(qb, sort);
    return qb.getMany();
  }
}
```