{"_id":"texlite","_rev":"39-8e2f819685a2c899f6d45c10169c45a6","name":"texlite","dist-tags":{"latest":"0.11.0"},"versions":{"0.2.0":{"name":"texlite","version":"0.2.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.2.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"141aab28aed276216d5a78ebd27795192ceadf14","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.2.0.tgz","fileCount":51,"integrity":"sha512-uxuBY6snHvdNQZArINFdUbrBwXq7IWZSmjDN+sTeLJ2Kh1Uh3axZ1APQ+8bdHAhT/vovTThxjLNaz2GOHal85g==","signatures":[{"sig":"MEUCIQDgPHAXVDS2jFoNJ2onAyR8fDGJaCmsm3wM8m+1Z6CzvAIgLg+G6bZUbXH10htwmQqWXuvGwZarCjAHsiBgaVpGO2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4134087},"type":"module","engines":{"node":">=24"},"gitHead":"e4f0a7de9586f2c29040e38e8326d9f019e687d0","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.2.0_1786673335073_0.4552567679385544","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"texlite","version":"0.2.1","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.2.1","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"fb6195ce36d2b8ca43b554b1e3c9b496e5636ee0","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.2.1.tgz","fileCount":51,"integrity":"sha512-AnajdQyQVBrNk1NpXC1Hi8VwS2VxRdhH04yRqMxyLcP2PADKUQdnk2hCxeJQTE3p2GVwT6Ati4qUfzGyZ69ZEw==","signatures":[{"sig":"MEUCIEAZK5wrlw9bGpedf0zHcLXR8bNI5VxwAsjqHRwejYDRAiEA/ntqNxLNhKpQQCYzsnwSHeN9regrwppXcT3J8GPeMWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4134313},"type":"module","engines":{"node":">=24"},"gitHead":"1e0e42c2a4aabd5900705985fafdb89cd54aa879","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.2.1_1786673676003_0.905653116903598","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"texlite","version":"0.3.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.3.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"eae5ef9a72ed0a9114243c3d74938c17479d22c3","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.3.0.tgz","fileCount":54,"integrity":"sha512-GnT8alHdCGAbSuz2xSaWwAYd5PY+WCgLXiylKT6AfSVFAUYSCO0LdWRixdr1RXqqUKGhzYOuA2I/JYwXyMQBvw==","signatures":[{"sig":"MEUCIQC4/NlARaQxu5/Ipx2K5/Cfc9v/1S2UO5X1C54XNm+J9wIgGO6W18Re8KKLQzcNinDhsRjibe64rlJf1KBk05PBf2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4159663},"type":"module","engines":{"node":">=24"},"gitHead":"3c0ba4fbe72f90b011e7be8663f6ad4bf3c8578b","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.3.0_1786682935844_0.5067142656939712","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"texlite","version":"0.3.1","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.3.1","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"06ba6e64dd57701f6012278691731b5539bd7bd4","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.3.1.tgz","fileCount":54,"integrity":"sha512-rHLw2VYzHQGMwqdw8p94qLzrF1W5Waf4mmkW81lAS7pjBb95OSv18PJBr1k6w6OIiUH/l0ZsBxL34RqEUP5U6A==","signatures":[{"sig":"MEUCIAkMgAQa2w3dfpyM4jbc/qWl0RQcmw/ME8zHqjaTjb0uAiEAmdtgDFiyQWQHycZhWqgf0cPmbvAGDbugkPOTSmHtFY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4147678},"type":"module","engines":{"node":">=24"},"gitHead":"a3e34abc1d7200d2f31c183d275e704bae100532","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.3.1_1786688064875_0.5586735836156966","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"texlite","version":"0.3.5","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.3.5","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"bbf08baf698bf043d7e5838b4b907fd6fcdbe78a","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.3.5.tgz","fileCount":54,"integrity":"sha512-g+WhwQXowYuJWfTkQzKlCUDYolRNfJL8tuH7//M6iCR9hRZ9jsEwiHKF/Kgsibujl9tsd/LPMPwyyQYGc+Z/1g==","signatures":[{"sig":"MEQCICB3Ec3EohgMFzQxsvjjfXuYLDLZgeHEHMU2vWFQWt50AiBUarbmFzOHUm+NXlCbZRAgOjKX16NqxgCWquvVcCkHcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4149527},"type":"module","engines":{"node":">=24"},"gitHead":"fd1e9bdcec7f70386c0142a2a56cfc47934d6927","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.3.5_1786693357864_0.6810714041200694","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"texlite","version":"0.3.6","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.3.6","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"68056dad9dcd6a04adb376191a46a0f7a00f4a53","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.3.6.tgz","fileCount":54,"integrity":"sha512-XnmPmP0aJvI9JqoE3JLNLxMkFbOo6hXk1BismoQ9eR2JtqxfmTXqyeuxIjB4V3XWNQt5odKJznwHaLkqyFBTrg==","signatures":[{"sig":"MEUCIE6DICTwf368463HuNzFgdUbtngg6HsLeWrNeBGedzi5AiEA0iL39WNtxKvLxonRBfBihdGmgZp49S+feIgNPzG0H8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4151970},"type":"module","engines":{"node":">=24"},"gitHead":"e446b788c7098c3c51e65ce4d1015ccba7476bfa","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.3.6_1786695103297_0.29882773466818113","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"texlite","version":"0.3.7","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.3.7","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"aeb8e90e3e164bc5f93d2ae9c9be7efa9fc64be5","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.3.7.tgz","fileCount":54,"integrity":"sha512-CPjpmLb+YAOCgCDeGLfMVfyOn9D2Wr85Pyn6zE+RJuWBfJ24EQ5E614Iwcsx/OJArl3LbrStT4OGiI5yP+HIGg==","signatures":[{"sig":"MEUCIC/HdiCGCNZeBJ42VxF8nRLtDazHfFggCh0lgV9/aY+0AiEA9RrB2UuwWrjGXi5p6ZQYQtX42febvpQQqdScv5dLJaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4152008},"type":"module","engines":{"node":">=24"},"gitHead":"68ee01125b2311e3a1e105ccf770e218e3d33360","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.3.7_1786695656486_0.5590854892388497","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"texlite","version":"0.4.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.4.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"031d4b333b41e370cf1431148e65e41843a52961","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.4.0.tgz","fileCount":54,"integrity":"sha512-jXiLiF1BptdBl8CNxsNNDbz/Smcra5ItItNHhWASV+4+B5Sqa+4aQusYqvaXi330NwBDdLKnP2Vff60JcLbzPQ==","signatures":[{"sig":"MEYCIQD7bBpCzqdNy55sLsyfMF4XLvIUQQKl2pBKD7s1X9n/FwIhAID8AkJPyKNgFO0J1CMEtcbclW/ql1DiQTNC6XZdfW9b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4152465},"type":"module","engines":{"node":">=24"},"gitHead":"b92ad7179398924259c3028a83ed4b4a5bcbed85","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.4.0_1786698201559_0.7609872996102673","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"texlite","version":"0.4.1","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.4.1","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"d3aaa12d188c210ecbca0461b8c6e36aa6c688e1","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.4.1.tgz","fileCount":54,"integrity":"sha512-uwjg7XmVyPVlpYqeAOsjC8QFmyeRfzcCEitS4QjdQ8EYtSGmRw5cqoo9VGP2WkhTtae5Iac1OeTWUlQRZZ6iXA==","signatures":[{"sig":"MEUCIQCya8EoMKDJx+aQr3+sR065330Zt/H6cuhv8qis54mlKgIgAlt57UnMLofSEfTcmpWhaEmVPXvHqc5t9xpsWns9UQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4152418},"type":"module","engines":{"node":">=24"},"gitHead":"3657065a2f4145ea176d9a49eedda9df24513608","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.4.1_1786718773578_0.15071515202336094","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"texlite","version":"0.4.2","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.4.2","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"8c0bee640aafab07ec2a896ff9daeffe1a26c9fb","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.4.2.tgz","fileCount":54,"integrity":"sha512-2won2tiShZuov/URdp08oz7P2PpyDAtx8F4gTfCCvKURaPuf+v/KNSXcluJdiHYYop/nBpxwJHCpWpQ/aolTTA==","signatures":[{"sig":"MEUCIAtXRgfED9AowvgyFbQQMHQ6gMycC+SApSTUaS4LClJiAiEA+PclTx6i8lGfCIu/zNrX/EzRJCZ+jcKepHtr2H6fygU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4152547},"type":"module","engines":{"node":">=24"},"gitHead":"0bc862e014436e9e51a8de96b244d1a22d1a947b","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","nspell":"^2.1.5","fastify":"^5.4.0","i18next":"^25.3.2","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","dictionary-en":"^4.0.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.4.2_1786812702708_0.8537274124487781","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"texlite","version":"0.5.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.5.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"7a2f752af63a7ef9ba45c5db57791b16485a1722","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.5.0.tgz","fileCount":59,"integrity":"sha512-3AaE0CXsE1+3gbTeNFUC9BrRX2yRKi4rlozSgeP0BIDBnGty5RiRSXpbwTwFGJzKXtZ9/U2WXmDTrJuPV2LYcQ==","signatures":[{"sig":"MEUCICsDSEEkr9ddwNu66IVhe1O0/fFFXotoBzqphQOxnYvVAiEAmd+VnqJFdzK4MfSmzHETba/6lGzdEHtf5EaG9gpsfjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19636820},"type":"module","engines":{"node":">=24"},"gitHead":"c5c99617bece0d861c4707cab401fad927da717c","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.5.0_1786867575190_0.5150634036569959","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"texlite","version":"0.5.2","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.5.2","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"a4088662220c3971d7fc60c2444830dc543f61fc","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.5.2.tgz","fileCount":59,"integrity":"sha512-MfqWuwCiZ9CFeXKdR3SAtadKo4RAmqBOhQh77FdT6vtmSVJVL/Y4j8iP8CZv73p4j/nh9DCsrQ3D0gZ5XfAXjw==","signatures":[{"sig":"MEYCIQCQFd5L30VQ2ACgGl4U+ki2Peu8Ot7LrWCrLGslImzXpQIhAN8etysidYUISSvSNIhmhtk02wnnItp769OWhlQZnTDk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19639469},"type":"module","engines":{"node":">=24"},"gitHead":"6e8e0aaff03796371ea555f54f6c930d272b5988","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.5.2_1786889059927_0.6436665300920066","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"texlite","version":"0.5.4","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.5.4","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"22e68c2bcd6ad732ac174a31a3d1cbb9a0cebe8f","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.5.4.tgz","fileCount":59,"integrity":"sha512-vNgLzMu2noTjTwPxsuRegKjWAWEo5w6OjZDi3CBibXn6liLMabmw3JFzDnkQUzj2VG16BKIZ8U8eyeuPYCFbHQ==","signatures":[{"sig":"MEUCIQCdqmMX6KHqwzAl9IdR0bzeuI2Ko4QgHieAz8E1uyKKsgIgcw0RVEWdT+GRzTXuAOnnnl4GnKnZyLd1vOTyIoQrwPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19639915},"type":"module","engines":{"node":">=24"},"gitHead":"11a29a01d84fbf74372f08b995a859d2aea30932","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.5.4_1787032611460_0.618144384675092","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"texlite","version":"0.5.5","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.5.5","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"ef50b657179f9071d35084944ba88e747aab4368","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.5.5.tgz","fileCount":59,"integrity":"sha512-HlZ6R7dSuByqk2aPzSJW319NvCyRrRVeCRBPll79KKvS5SIzhfSbudv/dqj75jMev+1EtOvRmFUcj+UvMSLibQ==","signatures":[{"sig":"MEUCIBQ2tVTQlNLKg2NAgE5DfWX7sufhzH4wWLE7PGjTphWbAiEA7LE/QmzkT8kvRPiZFywXC1TT/q9pVwS19oBec7eUjEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19640076},"type":"module","engines":{"node":">=24"},"gitHead":"d438f2c2c805a12a284dad365a9927f259a3ea65","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.5.5_1787063010558_0.5436296058208137","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"texlite","version":"0.6.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"467cf639aa5d6ecafff5fdeb1c56c5d353194e64","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.0.tgz","fileCount":59,"integrity":"sha512-eBRcBmSUcg8K6FEGM0cL3wHUc1H19fMii0qlbh3dle4w7hpjMqnd8IaHncoogm/wBOeFCjIcFvCg8pj/GJ/yGg==","signatures":[{"sig":"MEQCICnJUKOBo+I5EfJ/cBhNZZ4HY5w1OitL/6185TVyNOI4AiA20NwX596vqpf7QaMwA8z4pSZ1sAiFFIVC+DnWmoq49A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19643653},"type":"module","engines":{"node":">=24"},"gitHead":"387034288c2811185ea4ccbbd74591218c75666f","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.0_1787066085543_0.5004249061903945","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"texlite","version":"0.6.5","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.5","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"0f2150752d2561130af7cd7156f1739c9f89f4d1","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.5.tgz","fileCount":62,"integrity":"sha512-hAvyBGg86vvEpdZeDB5lWU2U6PX3tOnCd0V2hWxzdTVU7KwqwEan+J98hU569PxaeII3MJOyGRYV3ek/1UrJiQ==","signatures":[{"sig":"MEYCIQDXK3O6MS7MWFjTGfakfdP7ZDOc6u7/TAEpKl5Uk4JT8gIhAM1cjr/tZQBz4R5h3lls4K0/6q2VUMnpdv8HImujprjz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19785329},"type":"module","engines":{"node":">=24"},"gitHead":"e928e027b038aee841e6e1710d5f4da58bb11a3d","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.5_1787237330190_0.5469746711990833","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"texlite","version":"0.6.6","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.6","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"accbe0d0573cfc1e8a686e2cfd02b3a3dcfc0c79","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.6.tgz","fileCount":62,"integrity":"sha512-H+wn+gLOTlIljGCyhdugNlVJ27kvscWJbuV+Kf7NFBgLiCK5Eq/9eK8DmyJpFJ7CHeNGKLIdnPFQ3oMKB0WeyA==","signatures":[{"sig":"MEQCIFjPVEwXKjPjI0LJl57Inyn832Q65Nqe4IorcPSonXtPAiAnWtbSLyF9xOCyXWwME/1zCw7SBydW9aqBCDVuiEa4Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19784407},"type":"module","engines":{"node":">=24"},"gitHead":"9a99fa71ef20c09f2bfd13cb305d0dda9bfff6a6","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.6_1787238039864_0.42845956654365636","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"texlite","version":"0.6.7","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.7","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"6956f8e08d15bbf57b87f2603ac0804f0a6df257","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.7.tgz","fileCount":62,"integrity":"sha512-5c9sTLvTpdvJItrKLab3LwUjEwtqa+My7b5CBzrtzhyU8W2VfHbugE3mL+OGBTCr+V8590K+B9tjGo4c6BXyDg==","signatures":[{"sig":"MEQCIH2bCduN3dLzQlbVH/XQjTAJ/0GYpUee0BeQOdYVVE9JAiB0ZQE1W9E+ZvmtVOQKevKzeDqRkSHanl3T/jKzGYfE4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19784078},"type":"module","engines":{"node":">=24"},"gitHead":"0a19ea14336e44e2f777263457a0375e04816e0f","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.7_1787238653032_0.516735690260828","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"texlite","version":"0.6.8","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.8","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"00182334a71e2c8f95cac21511049e58e4bca724","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.8.tgz","fileCount":62,"integrity":"sha512-riPa+3m1AXewKU2TogpzFvYtYH5Te2WieCHVeRbL5q+3ztj8lZhASbyDa2jQ9Ii6ShGs+V6wQ7nikeSJQJNxbg==","signatures":[{"sig":"MEQCIBXpOvhgMW5ye4b/efco4pkMZL8j18CV1e0HtXwcNpeVAiAXbFA+0GujKp3USAN1KmSSqGH8nY2wG5CGkRQ7jP4SyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19787662},"type":"module","engines":{"node":">=24"},"gitHead":"fed9a7e94da517078fe6a8282ffe207ca61f9cbf","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.8_1787293186857_0.7791587638686126","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"texlite","version":"0.6.9","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.6.9","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"b9708470d7ca3ea114c1fc0c6a943207470df283","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.6.9.tgz","fileCount":62,"integrity":"sha512-vC+gl4XFWNWk/nXSUTDc+MrszkJfADPN7WRjgaomDwvGm44/2okk3SuVRBj0CN9eBOyEOy65sS/Xq57OUYKYgg==","signatures":[{"sig":"MEQCIEpfqa870QEtU0e9v8lK/47P7UAScFZTb6folYDpYZVJAiBZuwNFFOzf7iR6LTC9vqsmyMVsrgO/cRzTwx7x1wsaeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19788706},"type":"module","engines":{"node":">=24"},"gitHead":"596b6369e9882d264875d93b84b1046c497202a0","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.6.9_1787293764612_0.7258974618949341","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"texlite","version":"0.7.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"090f78106fd126da223ac7596a2196f1ae5a9e69","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.0.tgz","fileCount":62,"integrity":"sha512-74m1ir5ETAEHsrSOfARgujaQAr0mVS9udi+7IqFdSBGDe9TH4JLuLLnxhSoukzRVE4cV7Spz5As/Uw9Cxc0kwA==","signatures":[{"sig":"MEQCIBgzBaWS0jtGB9xBoqNUyok3nyQMoqt/GBzLNGxGHRywAiBtArSviEmU6IlMC6wdD6uMkRRquTO+B6gsPRPzPU09BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19788831},"type":"module","engines":{"node":">=24"},"gitHead":"4a00360c71fe4bfa000d1a5ea5567cc28e8073f1","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.0_1787294425877_0.1731169694848107","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"texlite","version":"0.7.2","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.2","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"8b03900fb0efc2259bb3bde817027c95f15dd0a8","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.2.tgz","fileCount":63,"integrity":"sha512-D/PY92LmzlLaUdh6zMlYXEONgxkxPC2LMTPUrYWA3EHrq2o/PWSYAj6enexj/pgJaEyzvJjx4w1W4de13wfwbA==","signatures":[{"sig":"MEYCIQCcX80PGIY+uYKv61YFOfEc4ftH7CvGwyn3a3oHWqeJVQIhAIFL5Rgpq0ceUtYC2n++eh1igp+9nDEV8gCw00pKJ7Ow","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19986802},"type":"module","engines":{"node":">=24"},"gitHead":"689433c9ecfd62a745b2593b50e88c546a7c7971","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.2_1787325928364_0.11185193041325436","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"texlite","version":"0.7.3","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.3","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"4fd30f9f2c51751893378c9ff7725c3e6509b883","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.3.tgz","fileCount":63,"integrity":"sha512-I+9tSBsnsTIn0PTROrZhghN6ggaLlFouH3oZfghjBkBsX6Y6ckj6R8DZc4p3H7gk4in0rshH7b1d+VWON+wYHQ==","signatures":[{"sig":"MEQCIFzSDwtg1DC0j8RfeK8EBJyDhMDZoX8anizl/cjkJR2UAiAJ48t/zFB7sfGSZIKXCxj1Nc8vyIj1lKK78aF0NCj1+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19991956},"type":"module","engines":{"node":">=24"},"gitHead":"e09feb0327727643e5c9a5d5ff503b0c1d1b587b","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.3_1787329026172_0.6855752955532921","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"texlite","version":"0.7.5","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.5","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"246defbba8c14fd094a43d03b18f5ea67ff9d1f3","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.5.tgz","fileCount":64,"integrity":"sha512-PDEqrGKKYmkXVdJIuDqN5xT6RKDTjIodY4WNrBhRAhxIDy8qGW0pZY6yw2a5ZdHDU+bDUnovC/OzSTKpQaHmrQ==","signatures":[{"sig":"MEYCIQDY6Hn1meMurJ+oBrkzSP7ajMjVQ5bpq55rgtiN4L4xvAIhAIrz6KKUBnGhV8+ebten5Jo1uP3MEQU3ryOvWBZ1q4Vl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21690923},"type":"module","engines":{"node":">=24"},"gitHead":"487ab6308e35e6cebfce23c46052bb83ae31174d","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^6.0.14","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"^0.5.7","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.5_1787470295964_0.5392789382137952","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"texlite","version":"0.7.6","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.6","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"7d093b65b070742b71fe0edd43f6b24b76cdad47","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.6.tgz","fileCount":76,"integrity":"sha512-reXb/0dwFmZhyEaH7IQMD3NtjT6lLnxEgYntJjGqP9hGamnDZnyS5bCmbdaxSzBreURNpbRNmGjXBt/066j8mg==","signatures":[{"sig":"MEQCIBcOJ/NJD02Pux2X8focexqxZbmL5sUHhEOe2hdpdR48AiAyC5VjnK0WwpEyQVoQcTun3HqBBF8RCziKlMuA8slYOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5783430},"type":"module","engines":{"node":">=24"},"gitHead":"da9e7b26353814002909d5d0c3a493d177c7f983","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.6_1787532444440_0.5941556638710543","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"texlite","version":"0.7.7","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.7","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"d79f463998234d4e4b20228c9603c0956cc2e1ae","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.7.tgz","fileCount":76,"integrity":"sha512-gS6+Xy5wJzG8Zly/JlPEpub/InJKNMe7m7bvVCC9S4N1txJ88S8qJ5RtdN/DmOarIRCnIuRiLPBnI1l9YgVO6g==","signatures":[{"sig":"MEUCIEUtXoN6wL3hZ64lYiqI7YxNTULIhlwy55536V7Biyl/AiEAwm7dWhhY9iOrfjkYjO2P1N0X4xraaSMn3Ii+wtEFaJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5786035},"type":"module","engines":{"node":">=24"},"gitHead":"e0344cdb2da811feb66948eb1bd220021abb84f9","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.7_1787556636879_0.01118153125778365","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"texlite","version":"0.7.8","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.7.8","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"ddd961afc7deaa3caa30cac33f972f751a4c9e75","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.7.8.tgz","fileCount":76,"integrity":"sha512-En96/2RpjWIGJAmhXb+GTRrykXE+swFzCNuHYfXfJWzzFcUnn+BbZNBzRfFYk+4/O++uWpHkTSDzikpH9onfaQ==","signatures":[{"sig":"MEYCIQDEQ3HkQmXKvuXFkwc5AA2vBQFS2LawtCr2CLVpdsni6QIhAILFjy9YIbe4QDukY/olZBPNrlerhYBLDBRNk13gJ1qD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5799091},"type":"module","engines":{"node":">=24"},"gitHead":"57c2a906ca45073fe21b408db8439f1df9b48c08","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","harper.js":"^2.7.0","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.7.8_1787645487820_0.5813667397294742","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"texlite","version":"0.8.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.8.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"5bd1b7137993f56bc8351cab422bf7a9f156427b","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.8.0.tgz","fileCount":80,"integrity":"sha512-aitihJm1BrDdZiaxAn9hV6XNgsMOEbHCsEat8S0CUgnOm/SjfQIeZpc13DLEptps1ECC6VpJaTHRaLUEMzieag==","signatures":[{"sig":"MEQCIFebJPVbofRflyKkb7rC80/5TyewkbHhGSTkzUrAC/9eAiBcRg5SEyHSbH72+QnVDfSSq7G43th66gDJj8E4PSGDgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5829015},"type":"module","engines":{"node":">=24"},"gitHead":"281ab5973f5825c0726889dbf83d07fbd5d9630d","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.8.0_1787799765617_0.1536080977437928","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"texlite","version":"0.8.1","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.8.1","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"874d6c1653520d690e5b7acd89498dbbd1f0fe38","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.8.1.tgz","fileCount":83,"integrity":"sha512-1PKHIUc1HoxogcDgQY0x2GAhyS4Ld2Xc79Z/nfoDDfehrA01OTNAoJPRBAxJA34hJDdDNHwOHNiRY/Jb6JyvpA==","signatures":[{"sig":"MEQCICLhfZ24kJqLpQcT/+Xh8B64utyq4x/4P70GBlUeSPetAiAVXBdb6Uxbt2bgHWOyzr4t4l74XJkUklg36ap1mFShvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5998744},"type":"module","engines":{"node":">=24"},"gitHead":"097fd5d3d04253c81b962718d1e934d5e5c30a19","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.8.1_1787843150650_0.4065366845495624","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"texlite","version":"0.8.2","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.8.2","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"65e01dd45f0fc1d17da8a4c3fc9b9b1e7b3cbcfd","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.8.2.tgz","fileCount":146,"integrity":"sha512-Bjc7FxgcsApAS4rp24xKWeiGPBPgSsmt2NlkQuffIY8M7HqQNOvJs7JFzsnPDU5wW0XV2tOYRVDTVkPxbllP+w==","signatures":[{"sig":"MEYCIQC/dooxXSOKEhUXzdUQU01u0282URhDyxR+9KMSgGPPFwIhAICzC69xqjcKbBGybDvqRbu0Nj2/y9JCWrFgkGDeI77d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7453995},"type":"module","engines":{"node":">=24"},"gitHead":"9f9fae1fa491b166237385be61e529a40577592b","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.8.2_1788067345801_0.5014847255385129","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"texlite","version":"0.8.3","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.8.3","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"8a7f90fd45bb15be188c2c72a0c5706aff1da34e","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.8.3.tgz","fileCount":146,"integrity":"sha512-jSxKg+Spxu7CEQ5oD0SXwtke8WFLOb6zFjhJzZW7BrQifgHr4n8bfj/Qy2zdXx1LfgjlJiVdz38VrfMMYVo6KA==","signatures":[{"sig":"MEYCIQCKm1lVbi1w7zS5qcvgNePfRhnTKhFkmbbKJDfR9aiuPgIhAO5XiS44L86oVNnN0uzBIyUD/h/rRvh5pUhZoIWod1tP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7447945},"type":"module","engines":{"node":">=24"},"gitHead":"37c58c05ce2b24299cdee6918a4b7637ff01d393","scripts":{"dev":"tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.8.3_1788153550860_0.3445464398051663","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"texlite","version":"0.8.4","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.8.4","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"f0ab4fd3737c0f12355885ebc638c238ba9efdfe","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.8.4.tgz","fileCount":1712,"integrity":"sha512-E4MmTpEwHJpkvbv2txAQ5Dyjv+G98gFtxd/FqsPUsqLDDvuk4A7LCnrbDlyUiVkBOYVXPftiDmHN8K9I5kvfZg==","signatures":[{"sig":"MEUCIFTivODK/MAS/jhGwKqa963hmhgz71W9afq1KQQl+8PYAiEAnFLi0tATpMfDzjdLe9LCQyTIJfmdz39gqfIv2U/SU8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8119554},"type":"module","engines":{"node":">=24"},"gitHead":"a03b59c9d2bc734838a73196c17eeeb0a8f1f15f","scripts":{"dev":"npm run generate:lucide-icons && tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pretest":"npm run generate:lucide-icons","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.8.4_1788410941056_0.4962579321564442","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"texlite","version":"0.9.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.9.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"a869393be497addb4c312bbc65ac18d54943c238","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.9.0.tgz","fileCount":1720,"integrity":"sha512-GB0MNxFRxWw3DsEzlCcEO5ORNA8lhioNeKRBtZgc1zo+VRzFQOaVQgyXJHJ6V3kaqUUtf1F0X+8sTqwh8C3+QA==","signatures":[{"sig":"MEQCIETJWXhHklXR/2uiGPV9R/JnLufoOMg3ebneMcKAD9qEAiAjlkxcutQ+JYPnhxG1oMjVsDQ8Q9EFPmsyDXd4YVXNDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8238154},"type":"module","engines":{"node":">=24"},"gitHead":"6c5e45228ed5dc57c404f3eb9dd40d32841fc62f","scripts":{"dev":"npm run generate:lucide-icons && tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pretest":"npm run generate:lucide-icons","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.9.0_1788670167568_0.674332477501828","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"texlite","version":"0.9.1","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.9.1","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"ee3f39aebec6e7ebdfd42b98a13f1c1b1bb4cefb","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.9.1.tgz","fileCount":1720,"integrity":"sha512-cfELGZYaHeMq65p77IoeoVIDJKy+9c49Sgoo+mV+5rsTWewWbD0h1OPH7FJh92I83V/XNarFf9132bZ57bjTSg==","signatures":[{"sig":"MEUCIBiQP8n/wo3BxWfmZevqq05+YOd2v6J2GDcVjj7IsH7cAiEAytB0fda7gGm3hIRVqF5Vk7yiLVgr+yjccPdacVbjozk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8265301},"type":"module","engines":{"node":">=24"},"gitHead":"e8a7b20a0718b5678d1405581a63458e81b221c4","scripts":{"dev":"npm run generate:lucide-icons && tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"vite","prepack":"npm run build","pretest":"npm run generate:lucide-icons","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/view":"^6.38.1","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.9.1_1788878989871_0.688857040112697","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"texlite","version":"0.9.2","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.9.2","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"a9bac08256352355d82ef6727969368bf1bb14c9","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.9.2.tgz","fileCount":1734,"integrity":"sha512-NfyR2UTYRB73c+T4k5DIsQuf8MVKMpF6t5PIybHQJOukIpXgU2iz4b6C4vnga5dLCX8cyo+C00FULPJAJCL71Q==","signatures":[{"sig":"MEUCIQCOWR+4IRPBeU5n2m1tCmOpVK740GK7wwMj70uraaWyLgIgB6lFy73kOOXWTFW8zBXLp69X57vmpLkKR3bC+xEkLak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAt4Qno1/c0Km7X8J0NkTQq4lYPN3cKaJDdUvsMaLN8lAiEAoTb3Jt45wzNMx2+Swk++Jaf/c0TD6UDWBMDsne7zHi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8424751},"type":"module","engines":{"node":">=24"},"gitHead":"25b6df103bcfc6af22207937aed9569e6af1c2c0","scripts":{"dev":"npm run generate:lucide-icons && tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"npm run generate:bibtex-parser && vite","prepack":"npm run build","pretest":"npm run generate:lucide-icons && npm run generate:bibtex-parser","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"npm run generate:bibtex-parser && vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs","generate:bibtex-parser":"node scripts/generate-bibtex-parser.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","@lezer/lr":"^1.4.10","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","@lezer/common":"^1.5.2","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/lint":"^6.9.7","@codemirror/view":"^6.38.1","@lezer/highlight":"^1.2.3","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@lezer/generator":"^1.8.0","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.9.2_1789107933356_0.0694371234095672","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"texlite","version":"0.9.3","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.9.3","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"faed5ee6bd1a8d7f2042ea02637f7ae195863687","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.9.3.tgz","fileCount":1734,"integrity":"sha512-i83DQnuW0odJIrx7y74QW12mSc4Ivu0y7CuQnBdUVf9k/OIwuGP8eFZnE9EkUj++0zOaaKI6IujLhWaxtB3thA==","signatures":[{"sig":"MEYCIQDpbu/fcZb7gg4wMdSYVrOh5iDGWkgCHx6Lf92c4w2/fwIhAL8igBEvvegstcJpG0hqFI4O7zb4zFkGcKYrF+viBSgt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEcqqmvtzvpyGebyjwYWs/0RkAABQ6dwC0WWZQqrwzuBAiEAqZqDbqvomL0DhAi3s40gYo0ckE5Tv6EDJwS/JqCoM4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8460828},"type":"module","engines":{"node":">=24"},"gitHead":"b3ee8e42b61c9db15b2258138a51a5bf6ec8808b","scripts":{"dev":"npm run generate:lucide-icons && tsx watch src/server/index.ts","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"npm run generate:bibtex-parser && vite","prepack":"npm run build","pretest":"npm run generate:lucide-icons && npm run generate:bibtex-parser","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"npm run generate:bibtex-parser && vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs","generate:bibtex-parser":"node scripts/generate-bibtex-parser.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","@lezer/lr":"^1.4.10","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","@lezer/common":"^1.5.2","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/lint":"^6.9.7","@codemirror/view":"^6.38.1","@lezer/highlight":"^1.2.3","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@lezer/generator":"^1.8.0","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.9.3_1789474078393_0.2572011501207989","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"texlite","version":"0.9.4","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.9.4","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"1f397fa693edd85b7cbbd60f8088e4727af4cbdd","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.9.4.tgz","fileCount":1737,"integrity":"sha512-ct3xP5tpqs84A/CVsnTXOfvL0s0UBmSrBmICWc78DDfoYkTzg069RAozuRyVS+w4dgbuvn5zJFXK2eDtuAczMw==","signatures":[{"sig":"MEYCIQDIoETy/MaNiqT6L8Ff7yI4HQjSmbyLPfSZkgNxykfLKgIhAPvYA31EM81LZP+0U/219Cfs8AH4m9rYErCVrTL9qHeP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4E3e1yRTSSLld/z4cB+qUTtMzkL/ZSdyX6sRZ6piqjgIhANq936/cM/AgLW8r7C0LMar49UIebFefrGTpjcWuE552","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8475648},"type":"module","engines":{"node":">=24"},"gitHead":"7c5e18a5a003ae2831dd9211ebee8cc3e0d205d9","scripts":{"dev":"npm run generate:lucide-icons && node scripts/run-dev.mjs server","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"npm run generate:bibtex-parser && node scripts/run-dev.mjs web","prepack":"npm run build","pretest":"npm run generate:lucide-icons && npm run generate:bibtex-parser","dev:init":"node scripts/run-dev.mjs init","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"npm run generate:bibtex-parser && vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs","generate:bibtex-parser":"node scripts/generate-bibtex-parser.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","@lezer/lr":"^1.4.10","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","@lezer/common":"^1.5.2","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/lint":"^6.9.7","@codemirror/view":"^6.38.1","@lezer/highlight":"^1.2.3","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@lezer/generator":"^1.8.0","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.9.4_1789609977455_0.7190231191618648","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"texlite","version":"0.10.0","keywords":["latex","overleaf","collaboration","tex"],"license":"AGPL-3.0-only","_id":"texlite@0.10.0","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"homepage":"https://github.com/SWUFE-DB-Group/TexLite","bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"bin":{"texlite":"dist/server/cli.js"},"dist":{"shasum":"b651cc0d9891a8b46b6b869988de38af6f227965","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.10.0.tgz","fileCount":1737,"integrity":"sha512-uoGDfaqgRxT3EJf88kNYWY78+E4PqEotK706SnKrrBfq0RsuZXzRbZJ8PR+zKGg0AhxK43Uj2CJNIsMEBBLEAg==","signatures":[{"sig":"MEUCIEB5kRf/4tHj2znR4h4MKIO2IooumCm2FdlNbgc6RXCLAiEAns1QnZFkavFyC4XHX00IxYOAV1YmNbStOvXClIddUdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3B/Uaq+qqmEFHAf6RItzluDgFnQx6EhOj+ZrjC6MEaQIgB5dH8UW/YuADRG8n3doMjkuKEj+2PKunN2L3ewKv8Dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8477898},"type":"module","engines":{"node":">=24"},"gitHead":"c56faafbc3b1cab1e842fae885e2cb406bbb8a0f","scripts":{"dev":"npm run generate:lucide-icons && node scripts/run-dev.mjs server","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"npm run generate:bibtex-parser && node scripts/run-dev.mjs web","prepack":"npm run build","pretest":"npm run generate:lucide-icons && npm run generate:bibtex-parser","dev:init":"node scripts/run-dev.mjs init","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"npm run generate:bibtex-parser && vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs","generate:bibtex-parser":"node scripts/generate-bibtex-parser.mjs"},"_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","@lezer/lr":"^1.4.10","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","@lezer/common":"^1.5.2","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/lint":"^6.9.7","@codemirror/view":"^6.38.1","@lezer/highlight":"^1.2.3","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@lezer/generator":"^1.8.0","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"tmp":"tmp/texlite_0.10.0_1790060828100_0.48811923638312926","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"_id":"texlite@0.11.0","bin":{"texlite":"dist/server/cli.js"},"bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"dist":{"shasum":"b2c6b7767b48bc1f0030e3cee58ee0e75f925902","tarball":"https://registry.npmjs.org/texlite/-/texlite-0.11.0.tgz","fileCount":1740,"integrity":"sha512-1hdE0JLvQ7ZknBukXl3VQpY+86oUvQ4tyhnmjJXetrlFKZzmlAYwdSZXm1uu+HZw+g6VrC94ka3T/M4epvr0Kw==","signatures":[{"sig":"MEUCIHOAXwxlUVSDNWbqSQxcpaJmpTjHnWol5ARZ4no7IVKYAiEAqYcinMpTlfWi2Yy06aL1+xlDJcy0kul8uJTdhpb9hcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAxsXWVTMJm+BnizK0RuIBrldvNcsrKPcHCU3C77KGFYAiAeecLGKLZrywoSsfdYeo7+6uKrJFoEZoauS7b8Di8WAg=="}],"unpackedSize":8531246},"name":"texlite","type":"module","engines":{"node":">=24"},"gitHead":"0eb077742f27bef3c629149687e07956693f9f0e","license":"AGPL-3.0-only","scripts":{"dev":"npm run generate:lucide-icons && node scripts/run-dev.mjs server","init":"tsx src/server/cli.ts init","test":"vitest run --config vitest.config.ts","build":"npm run build:web && npm run build:server","start":"node dist/server/index.js","dev:web":"npm run generate:bibtex-parser && node scripts/run-dev.mjs web","prepack":"npm run build","pretest":"npm run generate:lucide-icons && npm run generate:bibtex-parser","dev:init":"node scripts/run-dev.mjs init","pm2:logs":"pm2 logs texlite","pm2:save":"pm2 save","pm2:stop":"pm2 stop texlite","build:web":"npm run generate:bibtex-parser && vite build","pm2:start":"pm2 start ecosystem.config.cjs","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.server.json --noEmit && tsc -p tsconfig.test.json --noEmit","pm2:delete":"pm2 delete texlite","pm2:restart":"pm2 restart texlite --update-env","build:server":"tsc -p tsconfig.server.json && npm run generate:lucide-icons","generate:lucide-icons":"node scripts/generate-lucide-static-icons.mjs","generate:bibtex-parser":"node scripts/generate-bibtex-parser.mjs"},"version":"0.11.0","_npmUser":{"name":"zhongpu","email":"chenloveit@gmail.com"},"homepage":"https://github.com/SWUFE-DB-Group/TexLite","keywords":["latex","overleaf","collaboration","tex"],"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"_npmVersion":"11.9.0","description":"A lightweight local-first collaborative LaTeX workspace","directories":{},"maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.21.1","pm2":"^7.0.3","yjs":"^13.6.31","lib0":"^0.2.117","yazl":"^3.3.1","katex":"^0.18.4","react":"^19.1.1","yauzl":"^3.2.0","fastify":"^5.4.0","i18next":"^25.3.2","tex-fmt":"0.5.7-npm.1","@lezer/lr":"^1.4.10","react-dom":"^19.1.1","pdfjs-dist":"^6.2.108","bibtex-tidy":"1.14.0","y-indexeddb":"^9.0.12","y-protocols":"^1.0.7","y-websocket":"^3.0.0","lucide-react":"^0.468.0","@lezer/common":"^1.5.2","react-i18next":"^15.6.1","better-sqlite3":"^13.0.2","@fastify/cookie":"^11.0.2","@fastify/static":"^10.1.2","@codemirror/lint":"^6.9.7","@codemirror/view":"^6.38.1","@lezer/highlight":"^1.2.3","diff-match-patch":"^1.0.5","@codemirror/state":"^6.5.2","y-codemirror.next":"^0.3.5","@codemirror/search":"^6.7.1","@fastify/multipart":"^9.2.1","@fastify/websocket":"^11.3.0","@codemirror/commands":"^6.8.1","@codemirror/language":"^6.11.3","@radix-ui/react-dialog":"^1.1.15","@replit/codemirror-vim":"^6.4.0","react-resizable-panels":"^2.1.9","@codemirror/autocomplete":"^6.18.6","@codemirror/legacy-modes":"^6.5.1","@codemirror/lang-markdown":"^6.3.3","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","vite":"^7.0.6","vitest":"^3.2.4","@types/ws":"^8.18.1","typescript":"^5.8.3","@types/node":"^24.1.0","@types/yazl":"^3.3.0","@types/react":"^19.1.9","@types/yauzl":"^2.10.3","@lezer/generator":"^1.8.0","@types/react-dom":"^19.1.7","vite-plugin-wasm":"^3.6.0","@vitejs/plugin-react":"^4.7.0","@types/better-sqlite3":"^9.6.0","@types/diff-match-patch":"^1.0.36"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/texlite_0.11.0_1790563336137_0.9590827406261562"}}},"time":{"created":"2026-08-14T02:08:54.909Z","modified":"2026-09-28T02:42:16.509Z","0.2.0":"2026-08-14T02:08:55.256Z","0.2.1":"2026-08-14T02:14:36.192Z","0.3.0":"2026-08-14T04:48:56.030Z","0.3.1":"2026-08-14T06:14:25.053Z","0.3.5":"2026-08-14T07:42:38.133Z","0.3.6":"2026-08-14T08:11:43.498Z","0.3.7":"2026-08-14T08:20:56.741Z","0.4.0":"2026-08-14T09:03:21.845Z","0.4.1":"2026-08-14T14:46:13.792Z","0.4.2":"2026-08-15T16:51:42.920Z","0.5.0":"2026-08-16T08:06:15.465Z","0.5.2":"2026-08-16T14:04:20.211Z","0.5.4":"2026-08-18T05:56:51.720Z","0.5.5":"2026-08-18T14:23:30.831Z","0.6.0":"2026-08-18T15:14:45.942Z","0.6.5":"2026-08-20T14:48:50.546Z","0.6.6":"2026-08-20T15:00:40.194Z","0.6.7":"2026-08-20T15:10:53.333Z","0.6.8":"2026-08-21T06:19:47.214Z","0.6.9":"2026-08-21T06:29:24.944Z","0.7.0":"2026-08-21T06:40:26.300Z","0.7.2":"2026-08-21T15:25:28.678Z","0.7.3":"2026-08-21T16:17:06.505Z","0.7.5":"2026-08-23T07:31:36.256Z","0.7.6":"2026-08-24T00:47:24.624Z","0.7.7":"2026-08-24T07:30:37.071Z","0.7.8":"2026-08-25T08:11:28.008Z","0.8.0":"2026-08-27T03:02:45.803Z","0.8.1":"2026-08-27T15:05:50.876Z","0.8.2":"2026-08-30T05:22:26.023Z","0.8.3":"2026-08-31T05:19:11.100Z","0.8.4":"2026-09-03T04:49:01.315Z","0.9.0":"2026-09-06T04:49:27.824Z","0.9.1":"2026-09-08T14:49:50.066Z","0.9.2":"2026-09-11T06:25:33.553Z","0.9.3":"2026-09-15T12:07:58.583Z","0.9.4":"2026-09-17T01:52:57.787Z","0.10.0":"2026-09-22T07:07:08.260Z","0.11.0":"2026-09-28T02:42:16.342Z"},"bugs":{"url":"https://github.com/SWUFE-DB-Group/TexLite/issues"},"license":"AGPL-3.0-only","homepage":"https://github.com/SWUFE-DB-Group/TexLite","keywords":["latex","overleaf","collaboration","tex"],"repository":{"url":"git+https://github.com/SWUFE-DB-Group/TexLite.git","type":"git"},"description":"A lightweight local-first collaborative LaTeX workspace","maintainers":[{"name":"zhongpu","email":"chenloveit@gmail.com"}],"readme":"# TexLite\n\n面向*小型、可信*研究团队的轻量自托管 Overleaf 替代方案。直接使用现有的 LaTeX\n发行版，无需沉重的服务栈。\n\n[![CI](https://github.com/SWUFE-DB-Group/TexLite/actions/workflows/ci.yml/badge.svg)](https://github.com/SWUFE-DB-Group/TexLite/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/texlite?logo=npm&label=npm)](https://www.npmjs.com/package/texlite)\n[![Docker Hub](https://img.shields.io/docker/v/zhongpu/texlite?logo=docker&label=Docker%20Hub)](https://hub.docker.com/r/zhongpu/texlite)\n\n**文档：** [English](README.md) · [运维指南（英文）](OPERATIONS.md) · [设计文档（英文）](DESIGN.md) · 简体中文（当前文件）\n\n**网站：** [TexLite GitHub Pages](https://swufe-db-group.github.io/TexLite/)\n\n> [!TIP]\n> **反馈：** 如果你正在使用 TexLite，欢迎填写简短的使用问卷：[Google Form](https://docs.google.com/forms/d/e/1FAIpQLSfc40WWMJpXsYm0FsSadZ-FBu6gdcPZVnoMulcQdkJxIoJtCA/viewform?usp=dialog) 或 [飞书问卷](https://swufe-dbg.feishu.cn/share/base/form/shrcnqKcPJwCCXXF6Vu52AfSy1d)，帮助我们改进后续版本。\n\n![TexLite 工作区](preview-1.png)\n![TexLite 项目视图](preview-2.png)\n\n## 为什么选择 TexLite\n\n- **掌控写作环境。** 直接使用宿主机 TeX 环境，并将源码、历史版本和编译产物保存在\n  一个本地数据目录中。\n- **无需庞大服务栈即可协作。** 默认部署只有一个 Node.js 进程、SQLite 和本地文件，\n  同时提供实时编辑和源码级批注，适合少量可信协作者。\n\n## 快速开始\n\n安装 Node.js 24 或更高版本、`latexmk`，以及至少一个 TeX 引擎，例如 `pdflatex`、\n`xelatex` 或 `lualatex`。只有使用可选 Git/GitHub 集成时才需要 Git。\n\n安装后可先执行 `texlite requirements`，检查相关宿主机软件及版本。\n\n```bash\nnpm install --global texlite\ntexlite requirements\ntexlite init\ntexlite start\ntexlite status\n```\n\n访问 <http://127.0.0.1:3000>。`texlite init` 会创建配置并建立第一个管理员；TexLite\n不开放公众注册。\n如需把 TexLite 挂载到现有域名的 `/texlite` 等子路径，请设置\n`server.basePath`，并参考[反向代理说明（英文）](OPERATIONS.md#reverse-proxy-subpath)。\n\n升级与日常管理：\n\n```bash\nnpm update --global texlite\ntexlite restart\ntexlite logs\n```\n\n`texlite serve` 会以前台方式运行，适合调试、Docker 或 systemd。`start`、`stop`、\n`restart`、`status`、`logs` 使用 npm 包内置的 PM2 运行时；完整命令请执行\n`texlite help`。\n\n<details>\n<summary>如何公开访问 TexLite</summary>\n\n建议让 TexLite 继续监听 `127.0.0.1`。如果需要方便、安全地公开访问，请使用\n[TexLite Share](https://share.zhongpu.info/)。TexLite Share 目前部署在香港，来自中国大陆或\n东南亚以外地区的访问可能较慢。确保 TexLite 已在默认端口启动，然后安装并运行隧道客户端：\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/ChenZhongPu/TexLite-Share/main/install-client.sh | bash\n~/.local/bin/texlite-tunnel-client --server-url https://share.zhongpu.info\n```\n\n如果 TexLite 使用非默认端口，请明确指定本地地址：\n\n```bash\n~/.local/bin/texlite-tunnel-client \\\n  --server-url https://share.zhongpu.info \\\n  --local-addr 127.0.0.1:8080\n```\n\n</details>\n\n## 与 Overleaf 的实际区别\n\n[Overleaf](https://www.overleaf.com/about/features-overview) 在团队需要其托管产品或更完整生态时\n仍然是很好的选择。TexLite 面向的是更窄的自托管场景：\n\n- 共享托管服务在使用高峰期可能排队、变慢或出现编译超时。\n- Overleaf 开源 [Community Edition](https://github.com/overleaf/overleaf) 的\n  [Docker 部署路径](https://docs.overleaf.com/on-premises/getting-started/what-is-the-overleaf-toolkit) 更复杂，且源码批注等高级功能 [仅限 Server Pro](https://docs.overleaf.com/on-premises/user-and-project-management/roles-and-permissions)。\n  *如果不介意一个更庞大的 Docker 镜像，[我们也准备好了](#docker-deployment) :)*\n\n自托管并不保证每份文档都编译得更快，速度仍取决于宿主机和文档本身；它带来的是对容量、\nTeX 更新、数据位置与协作工作流的掌控。\n\n若是以个人、本地桌面工作流为主，建议优先考虑\n[VS Code + LaTeX Workshop](https://github.com/James-Yu/LaTeX-Workshop) 或\n[TeXstudio](https://texstudio.org/)。TexLite 的目标是浏览器中的共同写作，而不是取代个人 IDE。\n\n## 核心写作工作流\n\n- 项目支持文件夹、ZIP 导入/导出、标签、分享、所有权转让、归档和私有的个人引用库。\n- 基于 CodeMirror 的编辑器提供 LaTeX/BibTeX 高亮、折叠、补全、可选 Vim 模式、格式化、\n  拼写/语法/ChkTeX 辅助、搜索替换及源码/PDF SyncTeX 跳转。\n- 基于 Yjs 的协同源码编辑支持活动会话、源码锚定批注、回复、解决状态，以及让审阅者\n  可批注但不能修改源码的权限模型。\n- 使用 `latexmk` 和可选择引擎进行编译，提供项目设置、结构化诊断、缓存的成功 PDF、\n  可下载产物以及可选的项目级 `latexmkrc`。\n- 每个项目拥有历史版本和仅所有者可用的 Git/GitHub 备份；Git 是可选依赖，仅在使用\n  集成时才检查。\n\n<a id=\"docker-deployment\"></a>\n\n### Docker 部署\n\n如果宿主机没有，或不希望自行维护 Node.js、TeX Live、Git 和 Harper 等软件，可使用更重的\n[TexLite-Docker](https://github.com/SWUFE-DB-Group/TexLite-Docker) 部署。其已发布镜像会\n一并提供这些运行时依赖。\n\n```bash\ngit clone https://github.com/SWUFE-DB-Group/TexLite-Docker.git\ncd texlite-docker\ncp deployment.example.json deployment.json\n# 首次启动前请编辑 deployment.json。\n./scripts/compose.sh pull\n./scripts/compose.sh up -d\n# 访问 <http://127.0.0.1:3040>\n```\n\nDocker 版的用户配置和日常运维请参见\n[TexLite-Docker README](https://github.com/SWUFE-DB-Group/TexLite-Docker#readme)。\n\n## 文档导航\n\n| 需要了解                                                       | 阅读                                                       |\n| -------------------------------------------------------------- | ---------------------------------------------------------- |\n| 安装、配置路径、生效默认值、环境变量、服务管理、备份与安全边界 | [运维指南（英文）](OPERATIONS.md)                          |\n| 协作、源码持久化、编译隔离、历史版本和设计权衡                 | [设计文档（英文）](DESIGN.md)                              |\n| 发布前测试 npm 包                                              | [NPM 测试指南（英文）](NPM_TESTING.md)                     |\n| 完整配置起点                                                   | [texlite.config.example.json](texlite.config.example.json) |\n\n## 范围与安全\n\nTexLite 是一个面向可信用户的单宿主机应用，并非 LaTeX 编译沙箱：LaTeX 本身以及启用的\n项目 `latexmkrc` 都可能执行强大的本机行为。\n不要直接暴露其服务端口。\n\n[TexLite Share](https://share.zhongpu.info/) 是最简单、专门面向 TexLite 的分享方式。\n根据部署环境，也可以使用 [Tailscale Serve](https://tailscale.com/docs/reference/tailscale-cli/serve)\n构建私有 Tailnet，通过 [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/)\n提供托管的公网入口，或使用 [frp](https://github.com/fatedier/frp) 自行维护反向隧道。\n无论采用哪一种访问层，都应保留 TexLite 登录认证、启用 HTTPS、限制访问范围，并注意\nLaTeX 编译环境并不是面向不可信代码的沙箱。\n\n## 许可证\n\nTexLite 使用 GNU Affero General Public License v3.0，详见 [LICENSE](LICENSE)。如需\n闭源修改，或需要不同于 AGPL-3.0 的商业条款，请联系版权所有者。\n","readmeFilename":"README.zh-CN.md"}