{
  "name": "@triliumnext/server",
  "version": "0.102.2",
  "description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
  "private": true,
  "main": "./src/main.ts",
  "scripts": {
    "dev": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts",
    "dev-alt": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_DATA_DIR=data2 TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts",
    "start-no-dir": "cross-env NODE_ENV=development TRILIUM_ENV=dev TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts",
    "edit-integration-db": "cross-env NODE_ENV=development TRILIUM_PORT=8086 TRILIUM_ENV=dev TRILIUM_DATA_DIR=spec/db TRILIUM_INTEGRATION_TEST=edit TRILIUM_RESOURCE_DIR=src tsx watch --ignore '../client/node_modules/.vite-temp' ./src/main.ts",
    "build": "tsx scripts/build.ts",
    "package": "pnpm build && bash scripts/build-server.sh",
    "test": "vitest",
    "coverage": "vitest --coverage",
    "test-build": "vitest --config vitest.build.config.mts",
    "start-prod": "cross-env TRILIUM_DATA_DIR=data pnpm start-prod-no-dir",
    "start-prod-no-dir": "pnpm build && cross-env TRILIUM_ENV=production TRILIUM_PORT=8082 node dist/main.cjs",
    "e2e": "playwright test",
    "circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular",
    "docker-build-debian": "pnpm build && docker build . -t triliumnext-debian -f Dockerfile",
    "docker-build-alpine": "pnpm build && docker build . -t triliumnext-alpine -f Dockerfile.alpine",
    "docker-build-rootless-debian": "pnpm build && docker build . -t triliumnext-rootless-debian -f Dockerfile.rootless",
    "docker-build-rootless-alpine": "pnpm build && docker build . -t triliumnext-rootless-alpine -f Dockerfile.alpine.rootless",
    "docker-start-debian": "pnpm docker-build-debian && docker run -p 8081:8080 triliumnext-debian",
    "docker-start-alpine": "pnpm docker-build-alpine && docker run -p 8081:8080 triliumnext-alpine",
    "docker-start-rootless-debian": "pnpm docker-build-rootless-debian && docker run -p 8081:8080 triliumnext-rootless-debian",
    "docker-start-rootless-alpine": "pnpm docker-build-rootless-alpine && docker run -p 8081:8080 triliumnext-rootless-alpine",
    "generate-document": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=data TRILIUM_RESOURCE_DIR=src tsx ./scripts/generate_document.ts",
    "proxy-traefik": "docker run --name trilium-traefik --rm --network=host -v ./docker/traefik/traefik.yml:/etc/traefik/traefik.yml:ro -v ./docker/traefik/dynamic:/etc/traefik/dynamic traefik:latest",
    "proxy-nginx-subdir": "docker run --name trilium-nginx-subdir --rm --network=host -v ./docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro nginx:latest"
  },
  "dependencies": {
    "@ai-sdk/anthropic": "3.0.69",
    "@ai-sdk/google": "3.0.63",
    "@ai-sdk/openai": "3.0.53",
    "@modelcontextprotocol/sdk": "^1.12.1",
    "ai": "6.0.161",
    "better-sqlite3": "12.9.0",
    "html-to-text": "9.0.5",
    "i18next-fs-backend": "2.6.3",
    "i18next": "26.0.4",
    "js-yaml": "4.1.1",
    "unpdf": "1.6.0"
  },
  "devDependencies": {
    "@braintree/sanitize-url": "7.1.2",
    "@electron/remote": "2.1.3",
    "@triliumnext/commons": "workspace:*",
    "@triliumnext/core": "workspace:*",
    "@triliumnext/express-partial-content": "workspace:*",
    "@triliumnext/highlightjs": "workspace:*",
    "@types/archiver": "7.0.0",
    "@types/better-sqlite3": "7.6.13",
    "@types/cls-hooked": "4.3.9",
    "@types/compression": "1.8.1",
    "@types/cookie-parser": "1.4.10",
    "@types/debounce": "1.2.4",
    "@types/ejs": "3.1.5",
    "@types/express-http-proxy": "1.6.7",
    "@types/express-session": "1.19.0",
    "@types/fs-extra": "11.0.4",
    "@types/html": "1.0.4",
    "@types/ini": "4.1.1",
    "@types/js-yaml": "4.0.9",
    "@types/multer": "2.1.0",
    "@types/safe-compare": "1.1.2",
    "@types/serve-favicon": "2.5.7",
    "@types/serve-static": "2.2.0",
    "@types/stream-throttle": "0.1.4",
    "@types/supertest": "7.2.0",
    "@types/tmp": "0.2.6",
    "@types/turndown": "5.0.6",
    "@types/ws": "8.18.1",
    "@types/xml2js": "0.4.14",
    "archiver": "7.0.1",
    "cheerio": "1.2.0",
    "chokidar": "5.0.0",
    "cls-hooked": "4.2.2",
    "compression": "1.8.1",
    "cookie-parser": "1.4.7",
    "csrf-csrf": "4.0.3",
    "debounce": "3.0.0",
    "debug": "4.4.3",
    "ejs": "5.0.2",
    "electron": "41.2.0",
    "electron-window-state": "5.0.3",
    "express": "5.2.1",
    "express-http-proxy": "2.1.2",
    "express-openid-connect": "2.20.1",
    "express-rate-limit": "8.3.2",
    "express-session": "1.19.0",
    "file-uri-to-path": "2.0.0",
    "fs-extra": "11.3.4",
    "helmet": "8.1.0",
    "html": "1.0.0",
    "html2plaintext": "2.1.4",
    "http-proxy-agent": "9.0.0",
    "https-proxy-agent": "9.0.0",
    "image-type": "6.1.0",
    "ini": "6.0.0",
    "is-animated": "2.0.2",
    "is-svg": "6.1.0",
    "jimp": "1.6.1",
    "marked": "18.0.0",
    "multer": "2.1.1",
    "normalize-strings": "1.1.1",
    "officeparser": "6.1.0",
    "rand-token": "1.0.1",
    "safe-compare": "1.1.4",
    "sax": "1.6.0",
    "serve-favicon": "2.5.1",
    "stream-throttle": "0.1.3",
    "striptags": "3.2.0",
    "supertest": "7.2.2",
    "tesseract.js": "7.0.0",
    "time2fa": "1.4.2",
    "tmp": "0.2.5",
    "turnish": "1.8.0",
    "vite": "8.0.8",
    "xml2js": "0.6.2",
    "yauzl": "3.3.0"
  }
}