{
  "name": "blogging-desktop-server",
  "productName": "Blogging Desktop Server",
  "version": "1.0.0",
  "description": "A desktop blogging application with offline-first capabilities and cloud sync",
  "main": "dist/main/main.js",
  "scripts": {
    "dev": "concurrently --kill-others \"npm run dev:main\" \"npm run dev:renderer\" \"npm run dev:electron\"",
    "dev:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json --watch",
    "dev:renderer": "node ./node_modules/vite/bin/vite.js",
    "dev:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
    "start": "concurrently --kill-others \"npm run dev:renderer\" \"npm run start:electron\"",
    "start:electron": "wait-on http://localhost:5173 && cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
    "build": "npm run lint && npm run db:generate && npm run build:main && npm run build:cli && npm run build:renderer",
    "icons:generate": "node scripts/regenerate-icons.mjs",
    "package": "npm run icons:generate && npm run build && electron-builder --dir",
    "dist": "npm run icons:generate && npm run build && electron-builder",
    "dist:mac": "npm run icons:generate && npm run build && electron-builder --mac",
    "dist:win": "npm run icons:generate && npm run build && electron-builder --win",
    "dist:linux": "npm run icons:generate && npm run build && electron-builder --linux",
    "build:main": "node ./node_modules/typescript/bin/tsc -p tsconfig.main.json",
    "build:cli": "node ./node_modules/vite/bin/vite.js build --config vite.config.cli.ts",
    "build:renderer": "node ./node_modules/vite/bin/vite.js build",
    "start:prod": "node ./node_modules/electron/cli.js .",
    "start:dev": "cross-env NODE_ENV=development node ./node_modules/electron/cli.js .",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage",
    "test:ui": "vitest --ui",
    "bench:python-runtime": "node ./node_modules/tsx/dist/cli.mjs scripts/python-runtime-benchmark.ts",
    "docs:api": "node ./node_modules/tsx/dist/cli.mjs scripts/generate-api-docs.ts",
    "lint": "eslint \"src/renderer/**/*.{ts,tsx}\" --max-warnings 0",
    "lint:i18n": "eslint \"src/renderer/**/*.{ts,tsx}\" --max-warnings 0",
    "db:generate": "node ./node_modules/drizzle-kit/bin.cjs generate",
    "db:migrate": "node ./node_modules/tsx/dist/cli.mjs src/main/database/migrate.ts",
    "db:studio": "node ./node_modules/drizzle-kit/bin.cjs studio"
  },
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "@electron/notarize": "^3.1.0",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@testing-library/user-event": "^14.6.1",
    "@types/chokidar": "^1.7.5",
    "@types/node": "^25.2.3",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/turndown": "^5.0.6",
    "@typescript-eslint/eslint-plugin": "^8.56.0",
    "@typescript-eslint/parser": "^8.56.0",
    "@vitejs/plugin-react": "^5.1.4",
    "@vitest/coverage-v8": "^4.0.18",
    "@vitest/ui": "^4.0.18",
    "concurrently": "^9.2.1",
    "cross-env": "^10.1.0",
    "drizzle-kit": "^0.31.9",
    "electron": "^40.4.0",
    "electron-builder": "^26.7.0",
    "electron-store": "^11.0.2",
    "eslint": "^9.39.3",
    "eslint-plugin-i18next": "^6.1.3",
    "jsdom": "^28.0.0",
    "memfs": "^4.6.0",
    "png-to-ico": "^3.0.1",
    "tsx": "^4.6.0",
    "typescript": "^5.3.0",
    "vite": "^7.3.1",
    "vitest": "^4.0.18",
    "wait-on": "^9.0.3"
  },
  "dependencies": {
    "@braintree/sanitize-url": "^7.1.2",
    "@floating-ui/dom": "^1.7.5",
    "@highlightjs/cdn-assets": "^11.11.1",
    "@libsql/client": "^0.17.0",
    "@milkdown/kit": "^7.18.0",
    "@milkdown/plugin-block": "^7.18.0",
    "@milkdown/plugin-clipboard": "^7.18.0",
    "@milkdown/plugin-cursor": "^7.18.0",
    "@milkdown/plugin-history": "^7.18.0",
    "@milkdown/plugin-indent": "^7.18.0",
    "@milkdown/plugin-listener": "^7.18.0",
    "@milkdown/plugin-trailing": "^7.18.0",
    "@milkdown/react": "^7.18.0",
    "@milkdown/theme-nord": "^7.18.0",
    "@modelcontextprotocol/ext-apps": "^1.1.2",
    "@modelcontextprotocol/sdk": "^1.27.1",
    "@monaco-editor/react": "^4.7.0",
    "@picocss/pico": "^2.1.1",
    "@xmldom/xmldom": "^0.8.11",
    "chokidar": "^5.0.0",
    "d3-cloud": "^1.2.8",
    "date-fns": "^4.1.0",
    "drizzle-orm": "^0.45.1",
    "dropbox": "^10.34.0",
    "fast-xml-parser": "^5.3.8",
    "gray-matter": "^4.0.3",
    "lightbox2": "^2.11.5",
    "liquidjs": "^10.24.0",
    "marked-react": "^3.0.2",
    "monaco-editor": "^0.55.1",
    "node-scp": "^0.0.25",
    "pyodide": "^0.29.3",
    "react": "^19.2.4",
    "react-arborist": "^3.4.3",
    "react-dom": "^19.2.4",
    "react-hot-toast": "^2.6.0",
    "rsyncwrapper": "^3.1.0",
    "sharp": "^0.34.5",
    "simple-git": "^3.31.1",
    "snowball-stemmers": "^0.6.0",
    "turndown": "^7.2.2",
    "uuid": "^13.0.0",
    "vanilla-calendar-pro": "^3.1.0",
    "zod": "^4.3.6",
    "zustand": "^5.0.11"
  },
  "overrides": {
    "@esbuild-kit/core-utils": {
      "esbuild": "0.27.3"
    }
  },
  "build": {
    "appId": "com.bds.blogging-desktop-server",
    "productName": "Blogging Desktop Server",
    "asar": true,
    "afterSign": "scripts/notarize.mjs",
    "directories": {
      "output": "release"
    },
    "files": [
      "dist/**/*",
      "drizzle/**/*",
      "node_modules/**/*",
      "!**/.DS_Store",
      "!**/__MACOSX/**",
      "!**/._*"
    ],
    "extraResources": [
      {
        "from": "dist/cli/bds-mcp.cjs",
        "to": "bds-mcp.cjs"
      },
      {
        "from": "drizzle",
        "to": "drizzle"
      },
      {
        "from": "API.md",
        "to": "docs/API.md"
      },
      {
        "from": "DOCUMENTATION.md",
        "to": "docs/DOCUMENTATION.md"
      },
      {
        "from": "src/main/engine/templates",
        "to": "templates"
      }
    ],
    "protocols": [
      {
        "name": "bDS Blogmark Links",
        "schemes": [
          "bds"
        ]
      }
    ],
    "win": {
      "icon": "assets/icon.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64",
            "arm64"
          ]
        }
      ]
    },
    "mac": {
      "icon": "assets/icon.icns",
      "target": [
        "dmg",
        "zip"
      ],
      "category": "public.app-category.productivity",
      "hardenedRuntime": true,
      "gatekeeperAssess": false,
      "entitlements": "build/entitlements.mac.plist",
      "entitlementsInherit": "build/entitlements.mac.inherit.plist"
    },
    "linux": {
      "icon": "assets/icon.png",
      "target": [
        "AppImage",
        "deb",
        "rpm"
      ],
      "category": "Utility"
    }
  }
}
