{
  "name": "nodewarden",
  "version": "1.8.0",
  "description": "Minimal Bitwarden-compatible server running on Cloudflare Workers",
  "author": "shuaiplus",
  "license": "LGPL-3.0",
  "main": "src/index.ts",
  "type": "module",
  "scripts": {
    "dev": "wrangler dev -c wrangler.toml",
    "dev:kv": "wrangler dev -c wrangler.kv.toml",
    "dev:demo": "vite --config webapp/vite.config.ts --mode demo --host 127.0.0.1 --port 5174",
    "build": "vite build --config webapp/vite.config.ts",
    "build:demo": "vite build --config webapp/vite.config.ts --mode demo && node scripts/pages-spa-redirects.cjs",
    "domains:sync": "node scripts/sync-global-domains.mjs",
    "i18n": "node scripts/i18n-validate.cjs",
    "i18n:validate": "node scripts/i18n-validate.cjs",
    "test:webauthn-mobile": "node --test scripts/webauthn-mobile-connector.test.mjs",
    "test:webauthn-connector": "node --test scripts/webauthn-connector.test.mjs && tsx --test scripts/webauthn-connector-headers.test.ts",
    "test:webauthn-connectors": "node --test scripts/webauthn-mobile-connector.test.mjs scripts/webauthn-connector.test.mjs && tsx --test scripts/webauthn-connector-headers.test.ts",
    "deploy": "wrangler deploy",
    "deploy:kv": "node scripts/ensure-kv.cjs && wrangler deploy -c wrangler.kv.toml",
    "deploy:demo": "npm run build:demo && wrangler pages deploy dist --project-name nw-demo"
  },
  "keywords": [
    "bitwarden",
    "vaultwarden",
    "cloudflare",
    "workers",
    "password-manager"
  ],
  "cloudflare": {
    "bindings": {
      "JWT_SECRET": {
        "description": "Use a strong random string (32+ characters recommended)"
      },
      "DB": {
        "description": "D1 database for storing vault data"
      },
      "ATTACHMENTS": {
        "description": "R2 bucket for storing file attachments"
      },
      "ATTACHMENTS_KV": {
        "description": "Optional KV namespace fallback for attachment/send-file storage"
      }
    }
  },
  "overrides": {
    "undici": ">=7.28.0",
    "@babel/core": ">=7.29.6",
    "esbuild": ">=0.28.1",
    "ws": "8.21.0"
  },
  "devDependencies": {
    "@cloudflare/workers-types": "^4.20260630.1",
    "@preact/preset-vite": "^2.10.5",
    "@types/node": "^26.0.1",
    "autoprefixer": "^10.5.2",
    "opencc-js": "^1.3.2",
    "postcss": "^8.5.16",
    "tailwindcss": "^3.4.19",
    "tsx": "^4.22.4",
    "typescript": "^6.0.3",
    "vite": "^8.1.3",
    "wrangler": "^4.105.0"
  },
  "dependencies": {
    "@noble/hashes": "^2.2.0",
    "@simplewebauthn/server": "^13.3.2",
    "@tanstack/react-query": "^5.101.2",
    "@zip.js/zip.js": "^2.8.26",
    "fflate": "^0.8.3",
    "jsqr": "1.4.0",
    "lucide-preact": "^1.22.0",
    "preact": "^10.29.3",
    "qrcode-generator": "^2.0.4",
    "wouter": "^3.10.0"
  }
}
