🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@nestjs-ai/document-reader-cheerio

Package Overview
Dependencies
Maintainers
2
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nestjs-ai/document-reader-cheerio - npm Package Compare versions

Comparing version
0.0.2
to
0.1.0
+11
-0
CHANGELOG.md
# @nestjs-ai/document-reader-cheerio
## 0.1.0
### Minor Changes
- ed9c6e0: Migrate CJS to ESM
### Patch Changes
- Updated dependencies [ed9c6e0]
- @nestjs-ai/commons@0.1.0
## 0.0.2

@@ -4,0 +15,0 @@

+1
-1
import { Document, type DocumentReader } from "@nestjs-ai/commons";
import { CheerioDocumentReaderConfig } from "./config";
import { CheerioDocumentReaderConfig } from "./config/index.js";
export interface CheerioDocumentReaderProps {

@@ -4,0 +4,0 @@ htmlResource: string | URL | Buffer;

@@ -1,1 +0,1 @@

{"version":3,"file":"cheerio-document-reader.d.ts","sourceRoot":"","sources":["../src/cheerio-document-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,EACV,YAAY,EACZ,MAAoD,EACpD,OAAO,GACR,EAAE,0BAA0B;IAS7B,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,EACnC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,GACrB,qBAAqB;IAIlB,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgD1B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIjC,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;YAYT,aAAa;IAwC3B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;CAGxB"}
{"version":3,"file":"cheerio-document-reader.d.ts","sourceRoot":"","sources":["../src/cheerio-document-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,EACV,YAAY,EACZ,MAAoD,EACpD,OAAO,GACR,EAAE,0BAA0B;IAS7B,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,EACnC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,GACrB,qBAAqB;IAIlB,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgD1B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIjC,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;YAYT,aAAa;IAwC3B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;CAGxB"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,20 +16,15 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheerioDocumentReader = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const promises_1 = require("node:fs/promises");
const node_path_1 = require("node:path");
const commons_1 = require("@nestjs-ai/commons");
const cheerio_1 = require("cheerio");
const config_1 = require("./config");
class CheerioDocumentReader {
import assert from "node:assert/strict";
import { readFile } from "node:fs/promises";
import { resolve } from "node:path";
import { Document } from "@nestjs-ai/commons";
import { load } from "cheerio";
import { CheerioDocumentReaderConfig } from "./config/index.js";
export class CheerioDocumentReader {
_htmlResource;
_config;
_baseUrl;
constructor({ htmlResource, config = config_1.CheerioDocumentReaderConfig.defaultConfig(), baseUrl, }) {
(0, strict_1.default)(htmlResource != null, "htmlResource must not be null");
(0, strict_1.default)(config != null, "config must not be null");
constructor({ htmlResource, config = CheerioDocumentReaderConfig.defaultConfig(), baseUrl, }) {
assert(htmlResource != null, "htmlResource must not be null");
assert(config != null, "config must not be null");
this._htmlResource = htmlResource;

@@ -46,3 +40,3 @@ this._config = config;

const html = await this._readResource();
const $ = (0, cheerio_1.load)(html);
const $ = load(html);
const effectiveBaseUrl = this._resolveBaseUrl($);

@@ -54,3 +48,3 @@ const documents = [];

const allText = this._normalizedText($("body").text());
const document = new commons_1.Document(allText);
const document = new Document(allText);
this._addMetadata($, document, effectiveBaseUrl);

@@ -64,3 +58,3 @@ documents.push(document);

const elementText = this._normalizedText($(element).text());
const document = new commons_1.Document(elementText);
const document = new Document(elementText);
// Do not add metadata from element to avoid duplication.

@@ -77,3 +71,3 @@ this._addMetadata($, document, effectiveBaseUrl);

.join(this._config.separator);
const document = new commons_1.Document(text);
const document = new Document(text);
this._addMetadata($, document, effectiveBaseUrl);

@@ -141,3 +135,3 @@ documents.push(document);

if (this._htmlResource.protocol === "file:") {
const buffer = await (0, promises_1.readFile)(this._htmlResource);
const buffer = await readFile(this._htmlResource);
return this._decode(buffer);

@@ -160,4 +154,4 @@ }

try {
const filePath = (0, node_path_1.resolve)(resource);
const buffer = await (0, promises_1.readFile)(filePath);
const filePath = resolve(resource);
const buffer = await readFile(filePath);
return this._decode(buffer);

@@ -181,3 +175,2 @@ }

}
exports.CheerioDocumentReader = CheerioDocumentReader;
//# sourceMappingURL=cheerio-document-reader.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"cheerio-document-reader.js","sourceRoot":"","sources":["../src/cheerio-document-reader.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"cheerio-document-reader.js","sourceRoot":"","sources":["../src/cheerio-document-reader.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,9 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheerioDocumentReaderConfigBuilder = exports.CheerioDocumentReaderConfig = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
class CheerioDocumentReaderConfig {
import assert from "node:assert/strict";
export class CheerioDocumentReaderConfig {
charset;

@@ -50,4 +44,3 @@ selector;

}
exports.CheerioDocumentReaderConfig = CheerioDocumentReaderConfig;
class CheerioDocumentReaderConfigBuilder {
export class CheerioDocumentReaderConfigBuilder {
_charset = "UTF-8";

@@ -86,4 +79,4 @@ _selector = "body";

_validateNonNull(value, message) {
strict_1.default.notEqual(value, null, message);
strict_1.default.notEqual(value, undefined, message);
assert.notEqual(value, null, message);
assert.notEqual(value, undefined, message);
}

@@ -137,3 +130,2 @@ charset(charset) {

}
exports.CheerioDocumentReaderConfigBuilder = CheerioDocumentReaderConfigBuilder;
//# sourceMappingURL=cheerio-document-reader-config.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"cheerio-document-reader-config.js","sourceRoot":"","sources":["../../src/config/cheerio-document-reader-config.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"cheerio-document-reader-config.js","sourceRoot":"","sources":["../../src/config/cheerio-document-reader-config.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

export { CheerioDocumentReaderConfig, CheerioDocumentReaderConfigBuilder, } from "./cheerio-document-reader-config";
export { CheerioDocumentReaderConfig, CheerioDocumentReaderConfigBuilder, } from "./cheerio-document-reader-config.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,kCAAkC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qCAAqC,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,7 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheerioDocumentReaderConfigBuilder = exports.CheerioDocumentReaderConfig = void 0;
var cheerio_document_reader_config_1 = require("./cheerio-document-reader-config");
Object.defineProperty(exports, "CheerioDocumentReaderConfig", { enumerable: true, get: function () { return cheerio_document_reader_config_1.CheerioDocumentReaderConfig; } });
Object.defineProperty(exports, "CheerioDocumentReaderConfigBuilder", { enumerable: true, get: function () { return cheerio_document_reader_config_1.CheerioDocumentReaderConfigBuilder; } });
export { CheerioDocumentReaderConfig, CheerioDocumentReaderConfigBuilder, } from "./cheerio-document-reader-config.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,mFAG0C;AAFxC,6IAAA,2BAA2B,OAAA;AAC3B,oJAAA,kCAAkC,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qCAAqC,CAAC"}

@@ -1,3 +0,3 @@

export { CheerioDocumentReader, type CheerioDocumentReaderProps, } from "./cheerio-document-reader";
export * from "./config";
export { CheerioDocumentReader, type CheerioDocumentReaderProps, } from "./cheerio-document-reader.js";
export * from "./config/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AACnC,cAAc,UAAU,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,8BAA8B,CAAC;AACtC,cAAc,mBAAmB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,21 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheerioDocumentReader = void 0;
var cheerio_document_reader_1 = require("./cheerio-document-reader");
Object.defineProperty(exports, "CheerioDocumentReader", { enumerable: true, get: function () { return cheerio_document_reader_1.CheerioDocumentReader; } });
__exportStar(require("./config"), exports);
export { CheerioDocumentReader, } from "./cheerio-document-reader.js";
export * from "./config/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;AAEH,qEAGmC;AAFjC,gIAAA,qBAAqB,OAAA;AAGvB,2CAAyB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
{
"name": "@nestjs-ai/document-reader-cheerio",
"version": "0.0.2",
"version": "0.1.0",
"private": false,
"description": "Cheerio-based document reader for NestJS AI",
"keywords": [
"ai",
"cheerio",
"document",
"nestjs",
"reader"
],
"homepage": "https://nestjs-port.github.io/nestjs-ai",
"license": "Apache-2.0",
"repository": {

@@ -12,10 +20,7 @@ "type": "git",

},
"keywords": [
"nestjs",
"ai",
"document",
"reader",
"cheerio"
"files": [
"dist",
"CHANGELOG.md"
],
"license": "Apache-2.0",
"type": "module",
"main": "./dist/index.js",

@@ -26,18 +31,17 @@ "types": "./dist/index.d.ts",

"types": "./dist/index.d.ts",
"require": "./dist/index.js"
"default": "./dist/index.js"
}
},
"peerDependencies": {
"@nestjs-ai/commons": "*"
"dependencies": {
"cheerio": "^1.2.0"
},
"devDependencies": {
"@nestjs-ai/commons": "0.0.2"
"@nestjs-ai/commons": "0.1.0"
},
"dependencies": {
"cheerio": "^1.2.0"
"peerDependencies": {
"@nestjs-ai/commons": "^0.1.0"
},
"files": [
"dist",
"CHANGELOG.md"
],
"engines": {
"node": ">=22.12.0"
},
"scripts": {

@@ -44,0 +48,0 @@ "build": "pnpm clean && tsc -p tsconfig.build.json",

+198
-61

@@ -5,3 +5,3 @@ # NestJS AI

**Last synced Spring AI commit:** `da8db657` (Remove Anthropic IT that no longer makes sense)
**Last synced Spring AI commit:** `d3e495d2` (Expose conversationHistoryEnabled getter in ToolCallAdvisor.Builder)

@@ -14,2 +14,8 @@ ## Overview

## Documentation & Resources
- 📖 **Reference Documentation**: [https://nestjs-port.github.io/nestjs-ai](https://nestjs-port.github.io/nestjs-ai)
- 💡 **Example Applications**: [nestjs-port/nestjs-ai-examples](https://github.com/nestjs-port/nestjs-ai-examples)
- 🔗 **Upstream Project**: [Spring AI](https://github.com/spring-projects/spring-ai) — the Java/Spring project this port tracks
## Key Features

@@ -30,55 +36,175 @@

| Category | Technology |
|---|---|
| Language | TypeScript 6.x (strict mode) |
| Runtime | Node.js >= 20 |
| Framework | NestJS 11.x |
| Package Manager | pnpm 10.x |
| Build | Turborepo + tsc |
| Test | Vitest 4.x + TestContainers |
| Lint/Format | Biomejs 2.x |
| Reactive | RxJS 7.x |
| Validation | Zod 4.x |
| Category | Technology |
| --------------- | ------------------------------------------------------------------------------ |
| Language | TypeScript 6.x (strict mode) |
| Runtime | Node.js >= 22.12 |
| Module format | ESM only |
| Framework | NestJS 11.x |
| Package Manager | pnpm 10.x |
| Build | Turborepo + tsc |
| Test | Vitest 4.x + TestContainers |
| Lint/Format | Oxlint + Oxfmt |
| Reactive | RxJS 7.x |
| Validation | [Standard Schema](https://standardschema.dev/) (zod / valibot / arktype / ...) |
## Porting Progress
Spring AI module porting status to NestJS AI. (~520 source files, ~180 test files ported across 22 packages)
| Category | Spring AI Module | nestjs-ai Package | Progress |
| ----------------------- | ------------------------------------- | ----------------------------------------------- | -------- |
| **Core** | spring-ai-model | `@nestjs-ai/model` | 100% |
| | spring-ai-client-chat | `@nestjs-ai/client-chat` | 100% |
| | spring-ai-commons | `@nestjs-ai/commons` | 100% |
| | spring-ai-retry | `@nestjs-ai/retry` | 100% |
| | spring-ai-template-st | `@nestjs-ai/template-st` | 100% |
| **Model Providers** | spring-ai-openai | `@nestjs-ai/model-openai` | 100% |
| | spring-ai-google-genai | `@nestjs-ai/model-google-genai` | 100% |
| | spring-ai-transformers | `@nestjs-ai/model-transformers` | 100% |
| | spring-ai-anthropic | `@nestjs-ai/model-anthropic` | 100% |
| | spring-ai-azure-openai | — | 0% |
| | spring-ai-bedrock | — | 0% |
| | spring-ai-mistral-ai | — | 0% |
| | spring-ai-ollama | — | 0% |
| **RAG & Vector Stores** | spring-ai-rag | `@nestjs-ai/rag` | 100% |
| | spring-ai-vector-store | `@nestjs-ai/vector-store` | 100% |
| | spring-ai-redis-store | `@nestjs-ai/vector-store-redis` | 100% |
| | spring-ai-advisors-vector-store | `@nestjs-ai/advisors-vector-store` | 100% |
| | spring-ai-pgvector-store | — | 0% |
| | spring-ai-chroma-store | — | 0% |
| | spring-ai-pinecone-store | — | 0% |
| | spring-ai-milvus-store | — | 0% |
| **Document Readers** | spring-ai-pdf-document-reader | `@nestjs-ai/document-reader-pdf` | 100% |
| | spring-ai-markdown-document-reader | `@nestjs-ai/document-reader-markdown` | 100% |
| | spring-ai-tika-document-reader | `@nestjs-ai/document-reader-tika` | 100% |
| | (cheerio - NestJS specific) | `@nestjs-ai/document-reader-cheerio` | 100% |
| **Memory** | spring-ai-model-chat-memory-redis | `@nestjs-ai/model-chat-memory-repository-redis` | 100% |
| | spring-ai-model-chat-memory-jdbc | `@nestjs-ai/model-chat-memory-repository-jsdbc` | 100% |
| | spring-ai-model-chat-memory-cassandra | — | 0% |
| **Platform** | spring-ai-autoconfigure | `@nestjs-ai/platform` | 100% |
| | spring-ai-mcp | `@nestjs-ai/mcp-common` | 10% |
| | spring-ai-mcp-annotations | `@nestjs-ai/mcp-annotations` | 5% |
| Category | Spring AI Module | nestjs-ai Package | Progress |
|---|---|---|---|
| **Core** | spring-ai-model | `@nestjs-ai/model` | 100% |
| | spring-ai-client-chat | `@nestjs-ai/client-chat` | 100% |
| | spring-ai-commons | `@nestjs-ai/commons` | 100% |
| | spring-ai-retry | `@nestjs-ai/retry` | 100% |
| | spring-ai-template-st | `@nestjs-ai/template-st` | 100% |
| | spring-ai-observation | `@nestjs-ai/observation` | 100% |
| | spring-ai-test | `@nestjs-ai/testing` | 100% |
| **Model Providers** | spring-ai-openai | `@nestjs-ai/model-openai` | 100% |
| | spring-ai-openai-sdk | `@nestjs-ai/model-openai-sdk` | 100% |
| | spring-ai-google-genai | `@nestjs-ai/model-google-genai` | 100% |
| | spring-ai-transformers | `@nestjs-ai/model-transformers` | 100% |
| | spring-ai-anthropic | — | 0% |
| | spring-ai-azure-openai | — | 0% |
| | spring-ai-bedrock | — | 0% |
| | spring-ai-mistral-ai | — | 0% |
| | spring-ai-ollama | — | 0% |
| **RAG & Vector Stores** | spring-ai-rag | `@nestjs-ai/rag` | 100% |
| | spring-ai-vector-store | `@nestjs-ai/vector-store` | 100% |
| | spring-ai-redis-store | `@nestjs-ai/vector-store-redis` | 100% |
| | spring-ai-advisors-vector-store | `@nestjs-ai/advisors-vector-store` | 100% |
| | spring-ai-pgvector-store | — | 0% |
| | spring-ai-chroma-store | — | 0% |
| | spring-ai-pinecone-store | — | 0% |
| | spring-ai-milvus-store | — | 0% |
| **Document Readers** | spring-ai-pdf-document-reader | `@nestjs-ai/document-reader-pdf` | 100% |
| | spring-ai-markdown-document-reader | `@nestjs-ai/document-reader-markdown` | 100% |
| | spring-ai-tika-document-reader | `@nestjs-ai/document-reader-tika` | 100% |
| | (cheerio - NestJS specific) | `@nestjs-ai/document-reader-cheerio` | 100% |
| **Memory** | spring-ai-model-chat-memory-redis | `@nestjs-ai/model-chat-memory-repository-redis` | 100% |
| | spring-ai-model-chat-memory-jdbc | — | 0% |
| | spring-ai-model-chat-memory-cassandra | — | 0% |
| **Platform** | spring-ai-autoconfigure | `@nestjs-ai/platform` | 100% |
| | spring-ai-mcp | `@nestjs-ai/mcp-common` | 10% |
| | spring-ai-jsdbc | `@nestjs-ai/jsdbc` | 30% |
## Differences from Spring AI
NestJS AI mirrors Spring AI's module structure and API design, but adapts the following areas to fit the Node.js / TypeScript ecosystem.
### 1. Standard Schema instead of reflection-based JSON Schema
Spring AI derives JSON Schema for tool/function calling from Java classes via reflection. Node.js reflection is limited, so NestJS AI accepts any schema that implements [**Standard Schema**](https://standardschema.dev/) as the source of truth for tool parameters and structured output. Standard Schema is a vendor-neutral interface (`~standard.validate()` + `~standard.jsonSchema`) that [zod](https://github.com/colinhacks/zod), [valibot](https://github.com/fabian-hiller/valibot), [arktype](https://github.com/arktypeio/arktype), [effect](https://github.com/Effect-TS/effect), and others implement out of the box, so you can pick whichever library you prefer. The schema is both the runtime validator and the JSON Schema fed to the model.
```typescript
import { Tool } from "@nestjs-ai/model";
import { z } from "zod"; // or valibot, arktype, ... — any Standard-Schema-compatible library works
class WeatherTools {
@Tool({
description: "Get current weather for a city",
parameters: z.object({
city: z.string(),
unit: z.enum(["celsius", "fahrenheit"]).optional(),
}),
})
getWeather(input: { city: string; unit?: "celsius" | "fahrenheit" }) {
return fetchWeather(input.city, input.unit);
}
}
```
Structured output works the same way — pass a Standard Schema to `.entity()`:
```typescript
const sentiment = await chatClient
.prompt("Classify: I love this product!")
.call()
.entity(z.object({ sentiment: z.enum(["positive", "negative", "neutral"]) }));
```
### 2. NestJS dynamic modules instead of Spring Boot auto-configuration
Spring AI wires beans through `@EnableAutoConfiguration` and `application.properties`. NestJS AI uses NestJS dynamic modules — `forRoot()`, `forFeature()`, `forFeatureAsync()` — so configuration is explicit in your module graph.
```typescript
import { Module } from "@nestjs/common";
import { NestAiModule } from "@nestjs-ai/platform";
import { OpenAiChatModelModule } from "@nestjs-ai/model-openai";
import { ChatClientModule } from "@nestjs-ai/client-chat";
@Module({
imports: [
NestAiModule.forRoot(),
OpenAiChatModelModule.forFeature({
apiKey: process.env.OPENAI_API_KEY,
options: { model: "gpt-4o-mini", temperature: 0.7 },
}),
ChatClientModule.forFeature(),
],
})
export class AppModule {}
```
For dynamic configuration (e.g., `ConfigService`), use the async variant:
```typescript
OpenAiChatModelModule.forFeatureAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
apiKey: config.getOrThrow("OPENAI_API_KEY"),
options: { model: config.get("OPENAI_MODEL", "gpt-4o-mini") },
}),
});
```
### 3. Props objects instead of builder-only configuration
Spring AI's options classes are constructed via `.builder()...build()`. NestJS AI keeps the builder available (via `.builder()` / `.mutate()`) but options constructors accept a **plain props object (JSON literal)**, which matches TypeScript idioms and avoids fluent-chain ceremony.
```typescript
import { OpenAiChatOptions } from "@nestjs-ai/model-openai";
// Props style (preferred)
const options = new OpenAiChatOptions({
model: "gpt-4o-mini",
temperature: 0.7,
maxTokens: 1024,
});
// Builder style (still supported, useful for partial mutation)
const tuned = OpenAiChatOptions.builder()
.temperature(0.9)
.maxTokens(2048)
.build();
```
### 4. ChatClient `prompt()` accepts both fluent API and JSON literal
Spring AI's `ChatClient.prompt()` is fluent. NestJS AI's `prompt()` is overloaded so you can pick whichever style fits the call site — a bare string, a `Prompt` instance, a props object, or the fluent chain.
```typescript
// Fluent API (Spring AI-style)
await chatClient
.prompt()
.system("You are a helpful assistant.")
.user("Summarize TypeScript in one sentence.")
.call()
.content();
// String shorthand
await chatClient
.prompt("Summarize TypeScript in one sentence.")
.call()
.content();
// JSON literal props — most ergonomic when options are dynamic
await chatClient
.prompt({
system: "You are a helpful assistant.",
user: "Summarize TypeScript in one sentence.",
options: OpenAiChatOptions.builder().temperature(0.3),
})
.call()
.content();
```
All four forms return the same `ChatClientRequestSpec`, so `.call()`, `.stream()`, `.entity(zodSchema)`, and advisor/tool composition work uniformly.
## Project Structure

@@ -90,18 +216,18 @@

│ ├── model/ # Core chat/embedding abstractions
│ ├── client-chat/ # High-level client API & advisors
│ ├── client-chat/ # High-level fluent ChatClient API
│ ├── commons/ # Shared utilities & tokens
│ ├── platform/ # NestJS module integration
│ ├── platform/ # NestJS module integration (NestAiModule)
│ ├── rag/ # RAG pipeline
│ ├── vector-store/ # Vector store abstractions
│ ├── observation/ # OpenTelemetry integration
│ ├── retry/ # Retry utilities
│ ├── template-st/ # Prompt templating
│ ├── testing/ # Test utilities
│ ├── jsdbc/ # JDBC integration layer
│ ├── template-st/ # StringTemplate-based prompt templating
│ ├── integration-tests/ # Cross-package integration test suite
│ ├── models/
│ │ ├── openai/ # OpenAI provider
│ │ ├── google-genai/ # Google GenAI provider
│ │ ├── google-genai/ # Google GenAI (Gemini / Vertex AI) provider
│ │ ├── anthropic/ # Anthropic (Claude) provider
│ │ └── transformers/ # Hugging Face local embeddings
│ ├── mcp/
│ │ └── common/ # Model Context Protocol
│ │ ├── common/ # Model Context Protocol core
│ │ └── annotations/ # MCP annotations (WIP)
│ ├── vector-stores/

@@ -111,5 +237,6 @@ │ │ └── redis-store/ # Redis vector store

│ │ └── repository/
│ │ └── model-chat-memory-repository-redis/
│ │ ├── model-chat-memory-repository-redis/ # Redis-backed chat memory
│ │ └── model-chat-memory-repository-jsdbc/ # SQL-backed chat memory (MySQL/Postgres/Oracle/SQL Server/SQLite)
│ ├── document-readers/
│ │ ├── pdf-reader/ # PDF.js reader
│ │ ├── pdf-reader/ # PDF reader
│ │ ├── markdown-reader/ # Markdown reader

@@ -119,3 +246,3 @@ │ │ ├── cheerio-reader/ # HTML/web scraping

│ └── advisors/
│ └── advisors-vector-store/
│ └── advisors-vector-store/ # Vector-store-backed advisors
├── docs/ # Antora documentation site

@@ -129,5 +256,7 @@ └── turbo.json # Turborepo configuration

- Node.js >= 20.0.0
- Node.js >= 22.12.0 (required for `require(esm)` support so ESM-only packages can be consumed from CJS)
- pnpm >= 10.0.0
All packages are published as **ESM only**. Consumer apps running Node.js 22.12+ can import them from either ESM or CJS code.
### Installation

@@ -157,1 +286,9 @@

```
## License
NestJS AI is released under the [Apache License 2.0](./LICENSE), matching the license of the upstream [Spring AI](https://github.com/spring-projects/spring-ai) project.
## Acknowledgments
NestJS AI would not exist without the foundational work of the [Spring AI](https://github.com/spring-projects/spring-ai) team and contributors. This project is a faithful TypeScript/NestJS port of Spring AI's abstractions, module structure, and API design — all credit for the original architecture and research belongs to them.