Merge pull request #720 from mauriceboe/feat/pkpass-mime

Support Apple Wallet (.pkpass) file handoff
This commit is contained in:
Maurice
2026-04-18 12:25:02 +02:00
committed by GitHub
2 changed files with 8 additions and 1 deletions
+7
View File
@@ -98,6 +98,13 @@ router.get('/:id/download', (req: Request, res: Response) => {
if (!safe) return res.status(403).json({ error: 'Forbidden' });
if (!fs.existsSync(resolved)) return res.status(404).json({ error: 'File not found' });
// Serve Apple Wallet passes inline with the canonical MIME type so Safari
// (iOS/macOS) hands them off to Wallet instead of downloading as a blob.
if (path.extname(resolved).toLowerCase() === '.pkpass') {
res.setHeader('Content-Type', 'application/vnd.apple.pkpass');
res.setHeader('Content-Disposition', `inline; filename="${path.basename(file.original_name || resolved)}"`);
}
res.sendFile(resolved);
});
+1 -1
View File
@@ -11,7 +11,7 @@ import { TripFile } from '../types';
// ---------------------------------------------------------------------------
export const MAX_FILE_SIZE = 50 * 1024 * 1024; // 50 MB
export const DEFAULT_ALLOWED_EXTENSIONS = 'jpg,jpeg,png,gif,webp,heic,pdf,doc,docx,xls,xlsx,txt,csv';
export const DEFAULT_ALLOWED_EXTENSIONS = 'jpg,jpeg,png,gif,webp,heic,pdf,doc,docx,xls,xlsx,txt,csv,pkpass';
export const BLOCKED_EXTENSIONS = ['.svg', '.html', '.htm', '.xml'];
export const filesDir = path.join(__dirname, '../../uploads/files');