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

@nestjs-ai/document-reader-markdown

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-markdown - npm Package Compare versions

Comparing version
0.0.2
to
0.1.0
+11
-0
CHANGELOG.md
# @nestjs-ai/document-reader-markdown
## 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

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

export { MarkdownDocumentReaderConfig, MarkdownDocumentReaderConfigBuilder, } from "./markdown-document-reader-config";
export { MarkdownDocumentReaderConfig, MarkdownDocumentReaderConfigBuilder, } from "./markdown-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,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,mCAAmC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,sCAAsC,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.MarkdownDocumentReaderConfigBuilder = exports.MarkdownDocumentReaderConfig = void 0;
var markdown_document_reader_config_1 = require("./markdown-document-reader-config");
Object.defineProperty(exports, "MarkdownDocumentReaderConfig", { enumerable: true, get: function () { return markdown_document_reader_config_1.MarkdownDocumentReaderConfig; } });
Object.defineProperty(exports, "MarkdownDocumentReaderConfigBuilder", { enumerable: true, get: function () { return markdown_document_reader_config_1.MarkdownDocumentReaderConfigBuilder; } });
export { MarkdownDocumentReaderConfig, MarkdownDocumentReaderConfigBuilder, } from "./markdown-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,qFAG2C;AAFzC,+IAAA,4BAA4B,OAAA;AAC5B,sJAAA,mCAAmC,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,GACpC,MAAM,sCAAsC,CAAC"}

@@ -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.MarkdownDocumentReaderConfigBuilder = exports.MarkdownDocumentReaderConfig = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
class MarkdownDocumentReaderConfig {
import assert from "node:assert/strict";
export class MarkdownDocumentReaderConfig {
horizontalRuleCreateDocument;

@@ -43,4 +37,3 @@ includeCodeBlock;

}
exports.MarkdownDocumentReaderConfig = MarkdownDocumentReaderConfig;
class MarkdownDocumentReaderConfigBuilder {
export class MarkdownDocumentReaderConfigBuilder {
_horizontalRuleCreateDocument = false;

@@ -63,4 +56,4 @@ _includeCodeBlock = false;

_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);
}

@@ -94,3 +87,2 @@ horizontalRuleCreateDocument(horizontalRuleCreateDocument) {

}
exports.MarkdownDocumentReaderConfigBuilder = MarkdownDocumentReaderConfigBuilder;
//# sourceMappingURL=markdown-document-reader-config.js.map

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

{"version":3,"file":"markdown-document-reader-config.js","sourceRoot":"","sources":["../../src/config/markdown-document-reader-config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,MAAa,4BAA4B;IAC9B,4BAA4B,CAAU;IACtC,gBAAgB,CAAU;IAC1B,iBAAiB,CAAU;IAC3B,kBAAkB,CAA0B;IAErD,YAAY,OAA4C;QACtD,IAAI,CAAC,4BAA4B;YAC/B,OAAO,CAAC,iCAAiC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,mCAAmC,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,4BAA4B,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;CACF;AArBD,oEAqBC;AAED,MAAa,mCAAmC;IACtC,6BAA6B,GAAG,KAAK,CAAC;IACtC,iBAAiB,GAAG,KAAK,CAAC;IAC1B,kBAAkB,GAAG,KAAK,CAAC;IAC3B,mBAAmB,GAA4B,EAAE,CAAC;IAE1D,IAAI,iCAAiC;QACnC,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC5C,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,gBAAgB,CACtB,KAAQ,EACR,OAAe;QAEf,gBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,gBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAC,4BAAqC;QAChE,IAAI,CAAC,6BAA6B,GAAG,4BAA4B,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,gBAAyB;QACxC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,iBAA0B;QAC1C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAID,kBAAkB,CAChB,aAA+C,EAC/C,KAAe;QAEf,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;YACvD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAlED,kFAkEC"}
{"version":3,"file":"markdown-document-reader-config.js","sourceRoot":"","sources":["../../src/config/markdown-document-reader-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,MAAM,OAAO,4BAA4B;IAC9B,4BAA4B,CAAU;IACtC,gBAAgB,CAAU;IAC1B,iBAAiB,CAAU;IAC3B,kBAAkB,CAA0B;IAErD,YAAY,OAA4C;QACtD,IAAI,CAAC,4BAA4B;YAC/B,OAAO,CAAC,iCAAiC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,mCAAmC,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,4BAA4B,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,mCAAmC;IACtC,6BAA6B,GAAG,KAAK,CAAC;IACtC,iBAAiB,GAAG,KAAK,CAAC;IAC1B,kBAAkB,GAAG,KAAK,CAAC;IAC3B,mBAAmB,GAA4B,EAAE,CAAC;IAE1D,IAAI,iCAAiC;QACnC,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC5C,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,gBAAgB,CACtB,KAAQ,EACR,OAAe;QAEf,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAC,4BAAqC;QAChE,IAAI,CAAC,6BAA6B,GAAG,4BAA4B,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,gBAAyB;QACxC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,iBAA0B;QAC1C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAID,kBAAkB,CAChB,aAA+C,EAC/C,KAAe;QAEf,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;YACvD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF"}

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

export * from "./config";
export { MarkdownDocumentReader, type MarkdownDocumentReaderProps, } from "./markdown-document-reader";
export * from "./config/index.js";
export { MarkdownDocumentReader, type MarkdownDocumentReaderProps, } from "./markdown-document-reader.js";
//# sourceMappingURL=index.d.ts.map

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

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,4BAA4B,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,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.MarkdownDocumentReader = void 0;
__exportStar(require("./config"), exports);
var markdown_document_reader_1 = require("./markdown-document-reader");
Object.defineProperty(exports, "MarkdownDocumentReader", { enumerable: true, get: function () { return markdown_document_reader_1.MarkdownDocumentReader; } });
export * from "./config/index.js";
export { MarkdownDocumentReader, } from "./markdown-document-reader.js";
//# sourceMappingURL=index.js.map

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

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,uEAGoC;AAFlC,kIAAA,sBAAsB,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC"}
import { Document, type DocumentReader } from "@nestjs-ai/commons";
import { MarkdownDocumentReaderConfig } from "./config";
import { MarkdownDocumentReaderConfig } from "./config/index.js";
type MarkdownResource = string | URL | Buffer;

@@ -4,0 +4,0 @@ export interface MarkdownDocumentReaderProps {

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

{"version":3,"file":"markdown-document-reader.d.ts","sourceRoot":"","sources":["../src/markdown-document-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,QAAQ,EAER,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAExD,KAAK,gBAAgB,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACzD,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC;AAED,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,EACV,iBAAiB,EACjB,MAAqD,GACtD,EAAE,2BAA2B;IAW9B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACvD,sBAAsB;IAInB,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAe1B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAInB,iBAAiB;YA4BjB,aAAa;IAiC3B,OAAO,CAAC,OAAO;CAGhB"}
{"version":3,"file":"markdown-document-reader.d.ts","sourceRoot":"","sources":["../src/markdown-document-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,QAAQ,EAER,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,KAAK,gBAAgB,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACzD,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC;AAED,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;gBAEhC,EACV,iBAAiB,EACjB,MAAqD,GACtD,EAAE,2BAA2B;IAW9B,MAAM,CAAC,YAAY,CACjB,iBAAiB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACvD,sBAAsB;IAInB,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAe1B,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAInB,iBAAiB;YA4BjB,aAAa;IAiC3B,OAAO,CAAC,OAAO;CAGhB"}

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

"use strict";
/*

@@ -17,54 +16,16 @@ * 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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarkdownDocumentReader = 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 commonmark = __importStar(require("commonmark"));
const fast_glob_1 = __importDefault(require("fast-glob"));
const config_1 = require("./config");
class MarkdownDocumentReader {
import assert from "node:assert/strict";
import { readFile } from "node:fs/promises";
import { resolve } from "node:path";
import { Document, } from "@nestjs-ai/commons";
import * as commonmark from "commonmark";
import fg from "fast-glob";
import { MarkdownDocumentReaderConfig } from "./config/index.js";
export class MarkdownDocumentReader {
_markdownResources;
_config;
_parser;
constructor({ markdownResources, config = config_1.MarkdownDocumentReaderConfig.defaultConfig(), }) {
(0, strict_1.default)(markdownResources != null, "markdownResources must not be null");
(0, strict_1.default)(config != null, "config must not be null");
constructor({ markdownResources, config = MarkdownDocumentReaderConfig.defaultConfig(), }) {
assert(markdownResources != null, "markdownResources must not be null");
assert(config != null, "config must not be null");
this._markdownResources = Array.isArray(markdownResources)

@@ -101,7 +62,7 @@ ? markdownResources

}
if (!fast_glob_1.default.isDynamicPattern(resource)) {
if (!fg.isDynamicPattern(resource)) {
resolved.push(resource);
continue;
}
const expanded = await (0, fast_glob_1.default)(resource, {
const expanded = await fg(resource, {
onlyFiles: true,

@@ -122,3 +83,3 @@ absolute: true,

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

@@ -139,4 +100,4 @@ }

}
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);

@@ -148,3 +109,2 @@ }

}
exports.MarkdownDocumentReader = MarkdownDocumentReader;
class MarkdownDocumentVisitor {

@@ -154,3 +114,3 @@ _documents = [];

_config;
_currentDocumentBuilder = commons_1.Document.builder();
_currentDocumentBuilder = Document.builder();
constructor(config) {

@@ -160,3 +120,3 @@ this._config = config;

visit(document) {
this._currentDocumentBuilder = commons_1.Document.builder();
this._currentDocumentBuilder = Document.builder();
const walker = document.walker();

@@ -239,3 +199,3 @@ let event = walker.next();

}
this._currentDocumentBuilder = commons_1.Document.builder();
this._currentDocumentBuilder = Document.builder();
}

@@ -242,0 +202,0 @@ _translateLineBreakToSpace() {

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

{"version":3,"file":"markdown-document-reader.js","sourceRoot":"","sources":["../src/markdown-document-reader.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"markdown-document-reader.js","sourceRoot":"","sources":["../src/markdown-document-reader.ts"],"names":[],"mappings":"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"}
{
"name": "@nestjs-ai/document-reader-markdown",
"version": "0.0.2",
"version": "0.1.0",
"private": false,
"description": "Markdown document reader for NestJS AI",
"keywords": [
"ai",
"document",
"markdown",
"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",
"markdown"
"files": [
"dist",
"CHANGELOG.md"
],
"license": "Apache-2.0",
"type": "module",
"main": "./dist/index.js",

@@ -26,20 +31,19 @@ "types": "./dist/index.d.ts",

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

@@ -46,0 +50,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.