send-to-ereader/package.json
Stefan 39292bfee9 Add file upload (POST /send-file) and drag-and-drop UI
Adds a second flow alongside the URL-to-EPUB pipeline:

- New POST /send-file endpoint accepts multipart/form-data with a `file`
  and `readerEmail`, attaches the file to an email, and ships it to the
  reader as-is. No conversion — the device decides what it accepts
  (EPUB, PDF, MOBI, FB2, ...).
- 25 MB cap enforced both client-side and server-side (multer).
- Shares the same 20/hour rate limit as /send-article (now sendLimiter).
- UI: dropzone with drag/drop + click-to-pick + visible filename feedback.
- Shared e-reader email input across both flows.
- Codeberg source link added to the footer.
- Version bumped 0.1.0 → 0.2.0.
2026-05-21 23:43:17 +03:00

38 lines
1 KiB
JSON

{
"name": "send-to-ereader",
"version": "0.2.0",
"description": "Convert web articles to EPUB and email them to your e-reader, or upload a file (EPUB, PDF, etc.) directly.",
"homepage": "https://atanasov.fi",
"main": "app.js",
"type": "module",
"scripts": {
"dev": "tsx watch ./src/app.ts",
"build": "tsc",
"start": "node dist/app.js",
"prod": "npm run build && npm run start"
},
"keywords": [],
"author": "Stefan Atanasov",
"license": "GPL-3.0-only",
"dependencies": {
"@lesjoursfr/html-to-epub": "^6.1.0",
"@mozilla/readability": "^0.6.0",
"dotenv": "^17.4.2",
"express": "^5.2.1",
"express-rate-limit": "^8.5.2",
"jsdom": "^29.1.1",
"multer": "^2.1.1",
"nodemailer": "^8.0.7",
"sanitize-filename": "^1.6.4",
"tsx": "^4.22.3"
},
"devDependencies": {
"@types/express": "^5.0.6",
"@types/jsdom": "^28.0.3",
"@types/multer": "^2.1.0",
"@types/node": "^25.9.1",
"@types/nodemailer": "^8.0.0",
"@types/sanitize-filename": "^1.1.28",
"typescript": "^6.0.3"
}
}