{ "name": "note-gen", "version": "0.1.0", "private": true, "scripts": { "dev": "pnpm plugin-runtime:build && pnpm markdown-lexer:build && next dev --turbopack -p 3456 -H 0.0.0.0", "build": "pnpm plugin-runtime:build && pnpm markdown-lexer:build && next build --turbopack && pnpm build:prune-maps", "plugin-runtime:build": "esbuild src/lib/plugins/runtime/plugin-runtime.worker.ts --bundle --format=esm --platform=browser --target=es2022 --minify --outfile=public/plugin-runtime.js", "plugin-runtime:watch": "pnpm plugin-runtime:build --watch", "markdown-lexer:build": "esbuild src/app/core/main/editor/markdown/markdown-lexer-worker.ts --bundle --format=esm --platform=browser --target=es2022 --minify --outfile=public/markdown-lexer.js", "build:prune-maps": "node -e \"const fs=require('fs'),path=require('path');const roots=['out','.next'];function walk(dir){if(!fs.existsSync(dir))return;for(const entry of fs.readdirSync(dir,{withFileTypes:true})){const file=path.join(dir,entry.name);if(entry.isDirectory())walk(file);else if(entry.isFile()){if(entry.name.endsWith('.map'))fs.rmSync(file,{force:true});else if(entry.name.endsWith('.js')||entry.name.endsWith('.css')){const text=fs.readFileSync(file,'utf8');const next=text.replace(/\\n?\\/\\/# sourceMappingURL=[^\\n\\r]*/g,'').replace(/\\/\\*# sourceMappingURL=[^*]*\\*\\//g,'');if(next!==text)fs.writeFileSync(file,next);}}}}roots.forEach(walk);\"", "start": "next start --turbopack -p 3456", "lint": "next lint", "tauri": "tauri", "docs:build": "npm --prefix ./docs run build", "sync-version": "./scripts/sync-version.sh", "sync:self-hosted-schema": "pnpm dlx openapi-typescript@7.13.0 ${NOTEGEN_SERVER_OPENAPI_URL:-http://localhost:3000/openapi.json} -o src/lib/self-hosted-sync/generated/openapi.ts", "ios-build": "npm run sync-version && pnpm tauri ios build --open", "macos-app-store-build": "tauri build --config src-tauri/tauri.macos-app-store.conf.json", "plugin-api:check-version": "python3 scripts/check-plugin-contract.py", "plugin-market:check-key": "bash ./scripts/check-plugin-market-public-key.sh" }, "dependencies": { "@antv/infographic": "^0.2.7", "@codemirror/commands": "^6.7.1", "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-markdown": "^6.5.2", "@codemirror/language": "^6.12.4", "@codemirror/search": "^6.7.1", "@codemirror/state": "^6.7.1", "@codemirror/view": "^6.43.8", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@formatjs/icu-messageformat-parser": "2.11.2", "@headless-tree/core": "1.7.0", "@headless-tree/react": "1.7.0", "@jitl/quickjs-singlefile-browser-release-sync": "0.32.0", "@json-render/core": "0.21.3", "@json-render/react": "0.21.3", "@mozilla/readability": "^0.6.0", "@notegen/plugin-api": "0.1.14", "@sereneinserenade/tiptap-search-and-replace": "^0.1.1", "@shadcn/react": "^0.2.1", "@streamdown/cjk": "^1.0.3", "@streamdown/math": "^1.0.2", "@tanstack/react-virtual": "^3.14.9", "@tauri-apps/api": "2.11.1", "@tauri-apps/plugin-autostart": "~2.4.0", "@tauri-apps/plugin-clipboard-manager": "~2", "@tauri-apps/plugin-dialog": "~2", "@tauri-apps/plugin-fs": "~2", "@tauri-apps/plugin-global-shortcut": "~2.3.0", "@tauri-apps/plugin-http": "~2.3.0", "@tauri-apps/plugin-notification": "^2.4.0", "@tauri-apps/plugin-opener": "^2.4.0", "@tauri-apps/plugin-os": "~2.3.2", "@tauri-apps/plugin-process": "~2.2.1", "@tauri-apps/plugin-shell": "~2", "@tauri-apps/plugin-sql": "~2", "@tauri-apps/plugin-store": "~2", "@tauri-apps/plugin-updater": "~2", "@tiptap/core": "^3.19.0", "@tiptap/extension-bubble-menu": "^3.19.0", "@tiptap/extension-character-count": "^3.19.0", "@tiptap/extension-code-block": "^3.19.0", "@tiptap/extension-collaboration": "3.19.0", "@tiptap/extension-drag-handle": "3.19.0", "@tiptap/extension-dropcursor": "^3.19.0", "@tiptap/extension-floating-menu": "^3.19.0", "@tiptap/extension-highlight": "^3.19.0", "@tiptap/extension-horizontal-rule": "^3.19.0", "@tiptap/extension-image": "^3.19.0", "@tiptap/extension-link": "^3.19.0", "@tiptap/extension-list": "3.19.0", "@tiptap/extension-node-range": "3.19.0", "@tiptap/extension-placeholder": "^3.19.0", "@tiptap/extension-table": "^3.19.0", "@tiptap/extension-table-cell": "^3.19.0", "@tiptap/extension-table-header": "^3.19.0", "@tiptap/extension-table-row": "^3.19.0", "@tiptap/extension-task-item": "^3.19.0", "@tiptap/extension-task-list": "^3.19.0", "@tiptap/extension-text-align": "^3.19.0", "@tiptap/extension-typography": "^3.19.0", "@tiptap/extension-underline": "^3.19.0", "@tiptap/markdown": "^3.19.0", "@tiptap/pm": "^3.19.0", "@tiptap/react": "^3.19.0", "@tiptap/starter-kit": "^3.19.0", "@tiptap/suggestion": "^3.19.0", "@tiptap/y-tiptap": "3.0.2", "@types/lodash-es": "^4.17.12", "@xyflow/react": "^12.11.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cmdk": "1.1.1", "cropperjs": "1", "crypto-js": "^4.2.0", "date-fns": "^4.1.0", "dayjs": "^1.11.13", "elkjs": "^0.12.0", "embla-carousel-react": "^8.6.0", "framer-motion": "^12.26.2", "highlight.js": "^11.11.1", "hotkeys-js": "^3.13.15", "html-to-image": "^1.11.13", "katex": "^0.16.28", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "lowlight": "^3.3.0", "lucide-react": "^1.25.0", "markdown-it": "^14.1.0", "marked": "17.0.1", "marked-cjk-friendly": "0.1.3", "mermaid": "^11.12.2", "mitt": "^3.0.1", "next": "^15.1.0", "next-intl": "^3.26.5", "next-themes": "^0.4.3", "openai": "^4.78.1", "perfect-freehand": "^1.2.3", "quickjs-emscripten-core": "0.32.0", "radix-ui": "^1.6.2", "react": "19.2.3", "react-advanced-cropper": "^0.20.1", "react-day-picker": "^10.0.1", "react-dom": "19.2.3", "react-hook-form": "^7.53.2", "react-photo-view": "^1.2.6", "react-resizable-panels": "^4.12.2", "react-use": "^17.6.0", "recharts": "3.8.0", "shadcn": "^4.13.1", "shiki": "3.23.0", "sonner": "^2.0.7", "streamdown": "^2.5.0", "tailwind-merge": "^3.6.0", "tauri-plugin-clipboard-api": "^2.1.11", "tippy.js": "^6.3.7", "turndown": "^7.2.4", "usehooks-ts": "^3.1.1", "uuid": "^11.0.3", "vaul": "^1.1.1", "yaml": "^2.8.0", "yjs": "13.6.31", "zod": "^4.3.6", "zustand": "^5.0.1" }, "devDependencies": { "@tailwindcss/postcss": "^4.3.3", "@tauri-apps/cli": "2.11.3", "@types/crypto-js": "^4.2.2", "@types/markdown-it": "^14.1.2", "@types/node": "^20", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@types/turndown": "^5.0.6", "esbuild": "0.28.2", "eslint": "^8", "eslint-config-next": "15.0.3", "tailwindcss": "^4.3.3", "tw-animate-css": "^1.4.0", "typescript": "^5" }, "pnpm": { "overrides": { "@lezer/common": "1.5.2" } } }