package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "notvex",
"version": "0.3.1",
"description": "Encrypted notes, 100% local. No account, no server, no cloud",
"keywords": [
"security",
"encryption",
"self-hosted",
"electron-app",
"notes-app"
],
"homepage": "https://notvex.vercel.app",
"bugs": {
"url": "https://github.com/GFrancV/notvex/issues",
"email": "gfrancv@hotmail.com"
},
"license": "AGPL-3.0-only",
"author": {
"name": "GFrancV",
"email": "gfrancv@hotmail.com",
"url": "https://gfrancv.vercel.app"
},
"main": "out/main/index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/GFrancV/notvex.git"
},
"scripts": {
"dev": "electron-vite dev",
"preview": "electron-vite preview",
"postinstall": "install-electron && electron-builder install-app-deps",
"gen:icon": "icon-gen -i build/icon.png -o build --ico --ico-name icon --icns --icns-name icon",
"build": "electron-vite build && pnpm gen:icon",
"build:unpack": "pnpm build && electron-builder --dir",
"build:win": "pnpm build && electron-builder --win",
"build:mac": "pnpm build && electron-builder --mac",
"build:linux": "pnpm build && electron-builder --linux",
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "tsc --noEmit -p tsconfig.json && pnpm typecheck:node && pnpm typecheck:web",
"lint": "eslint src tests --max-warnings 0 --cache",
"lint:fix": "eslint src tests --fix",
"format": "prettier --write \"src/**/*.{ts,tsx,css}\" \"tests/**/*.ts\" \"*.{ts,mjs,json}\"",
"format:check": "prettier --check \"src/**/*.{ts,tsx,css}\" \"tests/**/*.ts\" \"*.{ts,mjs,json}\"",
"doctor": "react-doctor",
"doctor:staged": "react-doctor --staged --verbose",
"test": "vitest run",
"test:watch": "vitest",
"test:main": "vitest run tests/main",
"test:vault": "vitest run tests/main/vault",
"test:db": "vitest run tests/main/db",
"test:ipc": "vitest run tests/main/ipc",
"test:app": "vitest run tests/main/app",
"test:preload": "vitest run tests/preload",
"test:renderer": "vitest run tests/renderer",
"test:coverage": "vitest run --coverage",
"depcruise": "depcruise src --config .dependency-cruiser.cjs",
"validate": "pnpm typecheck && pnpm lint && pnpm format:check",
"check:fast": "pnpm typecheck && pnpm lint",
"lint:commits": "commitlint --from origin/main --to HEAD",
"check:task": "pnpm validate && pnpm depcruise && pnpm lint:commits && pnpm test",
"check:full": "pnpm check:task && pnpm test:coverage",
"prepare": "husky"
},
"dependencies": {
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"@journeyapps/sqlcipher": "^5.3.1",
"bip39": "^3.1.0",
"dompurify": "^3.4.17",
"electron-updater": "^6.3.9",
"koffi": "^3.0.2",
"libsodium-wrappers-sumo": "^0.8.4"
},
"devDependencies": {
"@codemirror/commands": "^6.10.4",
"@codemirror/lang-markdown": "^6.5.0",
"@codemirror/language": "^6.12.4",
"@codemirror/language-data": "^6.5.2",
"@codemirror/search": "^6.7.1",
"@codemirror/state": "^6.7.6",
"@codemirror/view": "^6.43.13",
"@commitlint/cli": "^21.0.2",
"@commitlint/config-conventional": "^21.0.2",
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@electron-toolkit/tsconfig": "^2.0.0",
"@eslint/js": "^9.39.4",
"@fontsource-variable/inter": "5.3.0",
"@fontsource-variable/jetbrains-mono": "5.3.0",
"@radix-ui/react-dialog": "^1.1.17",
"@radix-ui/react-dropdown-menu": "^2.1.18",
"@radix-ui/react-label": "^2.1.10",
"@radix-ui/react-popover": "^1.1.17",
"@radix-ui/react-scroll-area": "^1.2.12",
"@radix-ui/react-separator": "^1.1.10",
"@radix-ui/react-slot": "^1.3.0",
"@radix-ui/react-tabs": "^1.1.15",
"@radix-ui/react-tooltip": "^1.2.10",
"@tailwindcss/typography": "^0.5.15",
"@tailwindcss/vite": "^4.3.1",
"@testing-library/dom": "^10.4.2",
"@testing-library/react": "^16.3.3",
"@types/libsodium-wrappers": "^0.7.14",
"@types/libsodium-wrappers-sumo": "^0.7.8",
"@types/node": "^22.19.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/sqlite3": "^3.1.11",
"@uiw/codemirror-theme-andromeda": "^4.25.11",
"@uiw/react-codemirror": "^4.25.10",
"@vitejs/plugin-react": "^5.1.1",
"@vitest/coverage-v8": "^4.1.12",
"class-variance-authority": "^0.7.1",
"cmdk": "^1.1.1",
"cn": "0.5.0",
"date-fns": "^4.4.0",
"dependency-cruiser": "^18.2.0",
"electron": "^44.9.3",
"electron-builder": "^26.0.12",
"electron-vite": "^5.0.0",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.5",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"eslint-plugin-unicorn": "^64.0.0",
"husky": "^9.1.7",
"icon-gen": "^5.0.0",
"jsdom": "^30.1.0",
"lint-staged": "^16.4.0",
"lucide-react": "^1.21.0",
"millify": "^6.1.0",
"next-themes": "^0.4.6",
"prettier": "^3.7.4",
"prettier-plugin-tailwindcss": "^0.8.0",
"radix-ui": "^1.6.0",
"react": "19.2.1",
"react-doctor": "^0.5.1",
"react-dom": "19.2.1",
"react-markdown": "^10.1.0",
"rehype-highlight": "^7.0.2",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"shadcn": "^4.21.5",
"sonner": "^2.0.7",
"tailwindcss": "^4.3.1",
"tw-animate-css": "^1.4.0",
"typescript": "^5.9.3",
"vite": "^7.3.7",
"vitest": "^4.1.12",
"zustand": "^5.0.14"
},
"engines": {
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
},
"packageManager": "pnpm@11.1.1",
"lint-staged": {
"src/**/*.{ts,tsx}": [
"eslint --fix --max-warnings 0",
"prettier --write"
],
"tests/**/*.ts": [
"eslint --fix --max-warnings 0",
"prettier --write"
],
"*.{json,md,yml,yaml}": [
"prettier --write"
]
}
}