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/server-keys", plugins: [ dts({ entryRoot: "src", tsconfigPath: "./tsconfig.lib.json", insertTypesEntry: true, }), ], build: { outDir: "./dist", emptyOutDir: true, reportCompressedSize: true, sourcemap: true, target: "node20", lib: { entry: { index: resolve(__dirname, "src/index.ts"), "error-codes/error-codes": resolve( __dirname, "src/error-codes/error-codes.ts" ), "otel/instruments": resolve( __dirname, "src/otel/instruments.ts" ), "run-function": resolve(__dirname, "src/run-function/index.ts"), "prompt/prompt": resolve(__dirname, "src/prompt/prompt.ts"), "commands/keys/keys": resolve( __dirname, "src/commands/keys/keys.ts" ), "commands/files/files": resolve( __dirname, "src/commands/files/files.ts" ), "commands/files/serve-file": resolve( __dirname, "src/commands/files/serve-file.ts" ), "commands/license/license": resolve( __dirname, "src/commands/license/license.ts" ), "bin/index": resolve(__dirname, "src/bin/index.ts"), "bin/license": resolve(__dirname, "src/bin/license.ts"), "bin/create-root-keys": resolve( __dirname, "src/bin/create-root-keys.ts" ), "bin/create-root-keys-chain": resolve( __dirname, "src/bin/create-root-keys-chain.ts" ), "bin/create-server-keys": resolve( __dirname, "src/bin/create-server-keys.ts" ), "bin/create-server-keys-chain": resolve( __dirname, "src/bin/create-server-keys-chain.ts" ), "bin/roll-server-keys": resolve( __dirname, "src/bin/roll-server-keys.ts" ), "bin/roll-server-keys-chain": resolve( __dirname, "src/bin/roll-server-keys-chain.ts" ), "bin/verify-key-chain": resolve( __dirname, "src/bin/verify-key-chain.ts" ), "bin/view-keys": resolve(__dirname, "src/bin/view-keys.ts"), "bin/view-vault": resolve(__dirname, "src/bin/view-vault.ts"), "bin/view-public-key-file": resolve( __dirname, "src/bin/view-public-key-file.ts" ), "bin/view-chain-public": resolve( __dirname, "src/bin/view-chain-public.ts" ), "bin/prepare-file": resolve( __dirname, "src/bin/prepare-file.ts" ), "bin/serve-file": resolve(__dirname, "src/bin/serve-file.ts"), "bin/validate-file": resolve( __dirname, "src/bin/validate-file.ts" ), "bin/get-file-stats": resolve( __dirname, "src/bin/get-file-stats.ts" ), "bin/validate-packet": resolve( __dirname, "src/bin/validate-packet.ts" ), }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: false, entryFileNames: "[name].js", chunkFileNames: "_chunks/[name]-[hash].js", }, external: [ /^@suaveplan\//, /^@opentelemetry\//, /^@inquirer\//, /^node:/, "tslib", "zod", "commander", ], }, }, });