import { resolve } from "node:path"; import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../node_modules/.vite/packages/email-processing", plugins: [ dts({ entryRoot: "src", tsconfigPath: "./tsconfig.lib.json", insertTypesEntry: true, }), ], build: { outDir: "./dist", emptyOutDir: true, reportCompressedSize: true, sourcemap: true, lib: { entry: { index: resolve(__dirname, "src/index.ts"), "parser/index": resolve(__dirname, "src/parser/index.ts"), "mime-utils/index": resolve( __dirname, "src/mime-utils/index.ts" ), "hooks/index": resolve(__dirname, "src/hooks/index.ts"), "attachment-processor/index": resolve( __dirname, "src/attachment-processor/index.ts" ), "cid-resolver/index": resolve( __dirname, "src/cid-resolver/index.ts" ), "calendar-parser/index": resolve( __dirname, "src/calendar-parser/index.ts" ), "data-extractor/index": resolve( __dirname, "src/data-extractor/index.ts" ), "dkim-canonicalize/index": resolve( __dirname, "src/dkim-canonicalize/index.ts" ), "dkim-verifier/index": resolve( __dirname, "src/dkim-verifier/index.ts" ), "dmarc-checker/index": resolve( __dirname, "src/dmarc-checker/index.ts" ), "spf-checker/index": resolve( __dirname, "src/spf-checker/index.ts" ), "spam-scorer/index": resolve( __dirname, "src/spam-scorer/index.ts" ), "thread-grouper/index": resolve( __dirname, "src/thread-grouper/index.ts" ), "error-codes/index": resolve( __dirname, "src/error-codes/index.ts" ), "telemetry/index": resolve(__dirname, "src/telemetry/index.ts"), }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@suaveplan/error", "@suaveplan/events", "@suaveplan/events/hooks", "@suaveplan/events/hooks.types", "@suaveplan/logger", "@suaveplan/opentelemetry", "@suaveplan/types", "@opentelemetry/api", "postal-mime", "libmime", "tslib", "zod", /^node:/, ], }, }, });