import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../node_modules/.vite/packages/crypto-browser", 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", "availability/availability": "src/availability/availability.ts", "engines/webcrypto-aead-engine/webcrypto-aead-engine": "src/engines/webcrypto-aead-engine/webcrypto-aead-engine.ts", "engines/webcrypto-sign-engine/webcrypto-sign-engine": "src/engines/webcrypto-sign-engine/webcrypto-sign-engine.ts", "engines/webcrypto-agree-engine/webcrypto-agree-engine": "src/engines/webcrypto-agree-engine/webcrypto-agree-engine.ts", "rsa/rsa": "src/rsa/rsa.ts", "aes-kw/aes-kw": "src/aes-kw/aes-kw.ts", "ecdsa-p384/ecdsa-p384": "src/ecdsa-p384/ecdsa-p384.ts", "ecdh-p384/ecdh-p384": "src/ecdh-p384/ecdh-p384.ts", "non-extractable-key/non-extractable-key": "src/non-extractable-key/non-extractable-key.ts", "errors/index": "src/errors/index.ts", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@suaveplan/crypto", "@suaveplan/error", "tslib", /^@suaveplan\//, /^node:/, ], }, }, });