import { IntegrationDefinition, z } from '@botpress/sdk' export default new IntegrationDefinition({ name: 'pdf-generator', version: '0.0.7', readme: 'hub.md', title: 'PDF Generator', icon: 'icon.svg', description: 'Converts markdown content to PDF using PDFShift', configuration: { schema: z.object({}), }, actions: { fromMarkdown: { title: 'Markdown to PDF', description: 'Converts a markdown content to a PDF file', input: { schema: z.object({ markdown: z.string().min(1).describe('The markdown content to convert to PDF').title('Markdown'), filename: z .string() .min(1) .endsWith('.pdf') .describe('The filename of the PDF') .title('Filename') .optional() .default('generated.pdf'), }), }, output: { schema: z.object({ fileId: z.string().describe('The generated PDF file ID').title('File ID'), fileUrl: z.string().describe('The public URL to download the PDF').title('File URL'), }), }, }, fromHtml: { title: 'HTML to PDF', description: 'Converts an HTML document to a PDF file', input: { schema: z.object({ html: z.string().min(1).describe('The HTML content to convert to PDF').title('HTML'), filename: z .string() .min(1) .endsWith('.pdf') .describe('The filename of the PDF') .title('Filename') .optional() .default('generated.pdf'), }), }, output: { schema: z.object({ fileId: z.string().describe('The generated PDF file ID').title('File ID'), fileUrl: z.string().describe('The public URL to download the PDF').title('File URL'), }), }, }, }, secrets: { PDFSHIFT_API_KEY: { description: 'The API key to use PDFShift (https://app.pdfshift.io/env/apikeys)', }, }, attributes: { category: 'Business Operations', repo: 'botpress', }, })