feat: PWA Phase 2 — push notifications

Add web push notification support: push_subscriptions table (migration
0007), VAPID-based push service, subscribe/unsubscribe API routes, SW
push+notificationclick handlers, and subscribe UI on account page.
Triggers: new version uploaded (all project members) and version
approved/rejected (uploader).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Robin Choice
2026-04-23 10:09:22 +02:00
parent 9bad5c704a
commit e5d0b00761
18 changed files with 418 additions and 3 deletions

View File

@@ -2,3 +2,4 @@ export * from './auth.js';
export * from './project.js';
export * from './track.js';
export * from './comment.js';
export * from './push.js';

View File

@@ -0,0 +1,10 @@
import { z } from 'zod';
export const subscribePushSchema = z.object({
endpoint: z.string().url(),
keys: z.object({
p256dh: z.string(),
auth: z.string(),
}),
userAgent: z.string().optional(),
});