UNPKG

n8n-bookstack-agent-tool

Version:

Comprehensive BookStack API integration tool for n8n AI Agent with MCP framework compatibility

67 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BooksResource = void 0; const client_js_1 = require("../auth/client.js"); const zod_1 = require("zod"); const BookSchema = zod_1.z.object({ id: zod_1.z.number().optional(), name: zod_1.z.string().min(1, 'Book name is required'), description: zod_1.z.string().optional(), tags: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), value: zod_1.z.string() })).optional() }); const ListBooksParamsSchema = zod_1.z.object({ count: zod_1.z.number().min(1).max(500).optional(), offset: zod_1.z.number().min(0).optional(), sort: zod_1.z.string().optional() }); const BookIdParamsSchema = zod_1.z.object({ id: zod_1.z.number().min(1, 'Book ID is required') }); class BooksResource { constructor(config) { this.client = new client_js_1.BookStackClient(config); } async listBooks(params = {}) { const validatedParams = ListBooksParamsSchema.parse(params); return await this.client.get('/api/books', validatedParams); } async getBook(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.get('/api/books/{id}', validatedParams); } async createBook(params) { const validatedParams = BookSchema.parse(params); return await this.client.post('/api/books', validatedParams); } async updateBook(params) { const { id, ...bookData } = params; const validatedId = BookIdParamsSchema.parse({ id }); const validatedData = BookSchema.partial().parse(bookData); return await this.client.put('/api/books/{id}', { ...validatedId, ...validatedData }); } async deleteBook(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.delete('/api/books/{id}', validatedParams); } async exportBookHtml(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.get('/api/books/{id}/export/html', validatedParams); } async exportBookPdf(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.get('/api/books/{id}/export/pdf', validatedParams); } async exportBookPlaintext(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.get('/api/books/{id}/export/plaintext', validatedParams); } async exportBookMarkdown(params) { const validatedParams = BookIdParamsSchema.parse(params); return await this.client.get('/api/books/{id}/export/markdown', validatedParams); } } exports.BooksResource = BooksResource; //# sourceMappingURL=books.js.map