import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../../node_modules/.vite/packages/pdf", plugins: [ dts({ entryRoot: "src", tsconfigPath: "./tsconfig.lib.json", insertTypesEntry: true, }), ], build: { outDir: "./dist", emptyOutDir: true, reportCompressedSize: true, sourcemap: true, lib: { entry: { index: "src/index.ts", "error-codes/error-codes": "src/error-codes/error-codes.ts", "schemas/schemas": "src/schemas/schemas.ts", "telemetry/telemetry": "src/telemetry/telemetry.ts", "units/units": "src/units/units.ts", "colors/colors": "src/colors/colors.ts", "pdf-writer/pdf-writer": "src/pdf-writer/pdf-writer.ts", "content-stream/content-stream": "src/content-stream/content-stream.ts", "text-element/text-element": "src/text-element/text-element.ts", "table-element/table-element": "src/table-element/table-element.ts", "image-element/image-element": "src/image-element/image-element.ts", "divider-element/divider-element": "src/divider-element/divider-element.ts", "style-resolver/style-resolver": "src/style-resolver/style-resolver.ts", "layout-engine/layout-engine": "src/layout-engine/layout-engine.ts", "document-builder/document-builder": "src/document-builder/document-builder.ts", "renderer/renderer": "src/renderer/renderer.ts", "render-pipeline/render-pipeline": "src/render-pipeline/render-pipeline.ts", "image-registry/image-registry": "src/image-registry/image-registry.ts", "types/index": "src/types/index.ts", "templates/receipt-template/receipt-template": "src/templates/receipt-template/receipt-template.ts", "templates/report-template/report-template": "src/templates/report-template/report-template.ts", "templates/invoice-template/invoice-template": "src/templates/invoice-template/invoice-template.ts", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@opentelemetry/api", "@suaveplan/error", "@suaveplan/opentelemetry", "@suaveplan/types", "pngjs", "tslib", "zod", /^node:/, ], }, }, });