{ "main": "./electron-main.js", "bin": { "trilium": "src/main.js" }, "type": "module", "scripts": { "server:start": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nodemon src/main.ts", "server:start-safe": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nodemon src/main.ts", "server:start-no-dir": "cross-env TRILIUM_ENV=dev nodemon src/main.ts", "server:start-test": "npm run server:switch && rimraf ./data-test && cross-env TRILIUM_DATA_DIR=./data-test TRILIUM_ENV=dev TRILIUM_PORT=9999 nodemon src/main.ts", "server:qstart": "npm run server:switch && npm run server:start", "server:switch": "rimraf ./node_modules/better-sqlite3 && npm install", "electron:start": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron ./electron-main.ts --inspect=5858 .", "electron:start-no-dir": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 electron --inspect=5858 .", "electron:start-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"", "electron:start-nix-no-dir": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_ENV=dev TRILIUM_PORT=37742 nix-shell -p electron_33 --run \"electron ./electron-main.ts --inspect=5858 .\"", "electron:start-prod": "npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=prod electron ./dist/electron-main.js --inspect=5858 .", "electron:start-prod-no-dir": "npm run build:prepare-dist && cross-env TRILIUM_ENV=prod electron --inspect=5858 .", "electron:start-prod-nix": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"", "electron:start-prod-nix-no-dir": "electron-rebuild --version 33.3.1 && npm run build:prepare-dist && cross-env TRILIUM_ENV=dev nix-shell -p electron_33 --run \"electron ./dist/electron-main.js --inspect=5858 .\"", "electron:qstart": "npm run electron:switch && npm run electron:start", "electron:switch": "electron-rebuild", "docs:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-docs-main.ts .", "docs:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-docs-main.ts .\"", "demo:edit": "cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-demo TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=37741 electron ./electron-edit-demo.ts .", "demo:edit-nix": "electron-rebuild --version 33.3.1 && cross-env NODE_OPTIONS=\"--import tsx\" TRILIUM_DATA_DIR=./data-docs TRILIUM_PORT=37741 TRILIUM_ENV=dev TRILIUM_INTEGRATION_TEST=memory-no-store nix-shell -p electron_33 --run \"electron ./electron-edit-demo.ts .\"", "electron-forge:start": "npm run build:prepare-dist && cd ./build && electron-forge start", "electron-forge:make": "npm run build:prepare-dist && cross-env DEBUG=electron-windows-installer:* electron-forge make ./build", "electron-forge:package": "npm run build:prepare-dist && cd ./build && electron-forge package", "docs:build": "typedoc", "build:ts": "tsc -p tsconfig.build.json", "build:clean": "rimraf ./dist ./build", "build:prepare-dist": "npm run build:clean && npm run build:ts && npm run build:webpack && tsx ./bin/copy-dist.ts", "test": "npm run client:test && npm run server:test", "server:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest", "server:coverage": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --coverage", "client:test": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app", "client:coverage": "cross-env TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db TRILIUM_INTEGRATION_TEST=memory vitest --root src/public/app --coverage", "test:playwright": "playwright test --workers 1", "test:integration-edit-db": "cross-env TRILIUM_INTEGRATION_TEST=edit TRILIUM_PORT=8081 TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts", "test:integration-mem-db": "cross-env TRILIUM_INTEGRATION_TEST=memory TRILIUM_PORT=8082 TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts", "test:integration-mem-db-dev": "cross-env TRILIUM_INTEGRATION_TEST=memory TRILIUM_PORT=8082 TRILIUM_ENV=dev TRILIUM_DATA_DIR=./integration-tests/db nodemon src/main.ts", "dev:watch-dist": "tsx ./bin/watch-dist.ts", "dev:format-check": "eslint -c eslint.format.config.js .", "dev:format-fix": "eslint -c eslint.format.config.js . --fix", "dev:linter-check": "eslint .", "dev:linter-fix": "eslint . --fix", "chore:update-build-info": "tsx bin/update-build-info.ts", "chore:ci-update-nightly-version": "tsx ./bin/update-nightly-version.ts", "chore:generate-document": "cross-env nodemon ./bin/generate_document.ts 1000", "chore:generate-openapi": "tsx bin/generate-openapi.js" }, "dependencies": { "@anthropic-ai/sdk": "0.39.0", "@braintree/sanitize-url": "7.1.1", "@highlightjs/cdn-assets": "11.11.1", "@triliumnext/express-partial-content": "1.0.1", "archiver": "7.0.1", "async-mutex": "0.5.0", "autocomplete.js": "0.38.1", "axios": "1.8.4", "better-sqlite3": "11.9.1", "boxicons": "2.1.4", "chardet": "2.1.0", "cheerio": "1.0.0", "chokidar": "4.0.3", "cls-hooked": "4.2.2", "codemirror": "5.65.19", "compression": "1.8.0", "cookie-parser": "1.4.7", "csrf-csrf": "3.1.0", "dayjs": "1.11.13", "dayjs-plugin-utc": "0.1.2", "ejs": "3.1.10", "electron-debug": "4.1.0", "electron-dl": "4.0.0", "electron-squirrel-startup": "1.0.1", "electron-window-state": "5.0.3", "escape-html": "1.0.3", "express": "4.21.2", "express-openid-connect": "^2.17.1", "express-rate-limit": "7.5.0", "express-session": "1.18.1", "fs-extra": "11.3.0", "helmet": "8.1.0", "html": "1.0.0", "html2plaintext": "2.1.4", "http-proxy-agent": "7.0.2", "https-proxy-agent": "7.0.6", "i18next": "25.0.0", "i18next-fs-backend": "2.6.0", "image-type": "5.2.0", "ini": "5.0.0", "is-animated": "2.0.2", "is-svg": "5.1.0", "jimp": "1.6.0", "js-yaml": "4.1.0", "jsdom": "26.1.0", "katex": "0.16.22", "marked": "15.0.8", "mime-types": "3.0.1", "multer": "1.4.5-lts.2", "normalize-strings": "1.1.1", "normalize.css": "8.0.1", "ollama": "0.5.14", "openai": "4.93.0", "rand-token": "1.0.1", "safe-compare": "1.1.4", "sanitize-filename": "1.6.3", "sanitize-html": "2.16.0", "sax": "1.4.1", "serve-favicon": "2.5.0", "session-file-store": "1.5.0", "stream-throttle": "0.1.3", "strip-bom": "5.0.0", "striptags": "3.2.0", "swagger-ui-express": "5.0.1", "time2fa": "^1.3.0", "tmp": "0.2.3", "turndown": "7.2.0", "unescape": "1.0.1", "ws": "8.18.1", "xml2js": "0.6.2", "yauzl": "3.2.0" }, "devDependencies": { "@electron-forge/cli": "7.8.0", "@electron-forge/maker-deb": "7.8.0", "@electron-forge/maker-dmg": "7.8.0", "@electron-forge/maker-flatpak": "7.8.0", "@electron-forge/maker-rpm": "7.8.0", "@electron-forge/maker-squirrel": "7.8.0", "@electron-forge/maker-zip": "7.8.0", "@electron-forge/plugin-auto-unpack-natives": "7.8.0", "@electron/rebuild": "3.7.2", "@playwright/test": "1.51.1", "@stylistic/eslint-plugin": "4.2.0", "@types/archiver": "6.0.3", "@types/better-sqlite3": "7.6.13", "@types/cheerio": "0.22.35", "@types/cls-hooked": "4.3.9", "@types/compression": "1.7.5", "@types/cookie-parser": "1.4.8", "@types/debounce": "1.2.4", "@types/ejs": "3.1.5", "@types/electron-squirrel-startup": "1.0.2", "@types/escape-html": "1.0.4", "@types/express": "5.0.1", "@types/express-session": "1.18.1", "@types/fs-extra": "11.0.4", "@types/html": "1.0.4", "@types/ini": "4.1.1", "@types/js-yaml": "4.0.9", "@types/jsdom": "21.1.7", "@types/mime-types": "2.1.4", "@types/multer": "1.4.12", "@types/node": "22.14.1", "@types/safe-compare": "1.1.2", "@types/sanitize-html": "2.15.0", "@types/sax": "1.2.7", "@types/serve-favicon": "2.5.7", "@types/session-file-store": "1.2.5", "@types/stream-throttle": "0.1.4", "@types/supertest": "6.0.3", "@types/swagger-ui-express": "4.1.8", "@types/tmp": "0.2.6", "@types/turndown": "5.0.5", "@types/ws": "8.18.1", "@types/xml2js": "0.4.14", "@types/yargs": "17.0.33", "@vitest/coverage-v8": "3.1.1", "cross-env": "7.0.3", "electron": "35.1.5", "eslint": "9.24.0", "eslint-plugin-simple-import-sort": "12.1.1", "esm": "3.2.25", "globals": "16.0.0", "happy-dom": "17.4.4", "jsdoc": "4.0.4", "lorem-ipsum": "2.0.8", "nodemon": "3.1.9", "rcedit": "4.0.1", "rimraf": "6.0.1", "supertest": "7.1.0", "swagger-jsdoc": "6.2.8", "tslib": "2.8.1", "typedoc": "0.28.2", "typedoc-plugin-missing-exports": "4.0.0", "typescript": "5.8.3", "typescript-eslint": "8.30.1" }, "optionalDependencies": { "appdmg": "0.6.6" } }