import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../node_modules/.vite/packages/crypto-vault", 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", "bip39/bip39": "src/bip39/bip39.ts", "argon2id/argon2id": "src/argon2id/argon2id.ts", "hd-key/hd-key": "src/hd-key/hd-key.ts", "twoskd/twoskd": "src/twoskd/twoskd.ts", "key-hierarchy/key-hierarchy": "src/key-hierarchy/key-hierarchy.ts", "srp/srp-client": "src/srp/srp-client.ts", "secure/secure-buffer": "src/secure/secure-buffer.ts", "handle/opaque-handle": "src/handle/opaque-handle.ts", "errors/index": "src/errors/index.ts", "schemas/schemas": "src/schemas/schemas.ts", "types/types": "src/types/types.ts", "otel/instruments": "src/otel/instruments.ts", "orchestration/orchestration": "src/orchestration/orchestration.ts", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@noble/curves", /^@noble\/curves\//, "@noble/hashes", /^@noble\/hashes\//, "@opentelemetry/api", "@scure/bip39", /^@scure\/bip39\//, "@suaveplan/crypto", /^@suaveplan\/crypto\//, "@suaveplan/crypto-cipher", /^@suaveplan\/crypto-cipher\//, "@suaveplan/crypto-curve", /^@suaveplan\/crypto-curve\//, "@suaveplan/crypto-hash", /^@suaveplan\/crypto-hash\//, "@suaveplan/crypto-utils", /^@suaveplan\/crypto-utils\//, "@suaveplan/error", "@suaveplan/storage", /^@suaveplan\/storage\//, "@suaveplan/types", "tslib", "zod", /^node:/, ], }, }, });