Embeddable Replay Widget: - web/embed.html: Minimal standalone HTML with Open Graph and Twitter Card tags - web/src/embed.ts: TypeScript embed viewer with auto-play, progress bar, keyboard controls - R2 warm cache + B2 cold archive fallback for replay loading - ~7KB gzipped (well under 50KB target) Replay Playlists: - cmd/acb-indexer/src/playlists.ts: Auto-curated playlist generator - Featured, upsets, comebacks, domination, close games, long games, weekly categories - Uses match data to detect notable games - web/src/pages/playlists.ts: SPA page for browsing playlists - web/src/api-types.ts: Added playlist types and fetch functions Other changes: - web/src/replay-viewer.ts: Added getIsPlaying() method for embed viewer - web/vite.config.ts: Added embed.html as build entry point - web/app.html: Added Playlists nav link - web/public/img/embed-placeholder.svg: OG image placeholder Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
398 B
TypeScript
20 lines
398 B
TypeScript
import { defineConfig } from 'vite'
|
|
import { resolve } from 'path'
|
|
|
|
export default defineConfig({
|
|
root: '.',
|
|
build: {
|
|
outDir: 'dist',
|
|
sourcemap: true,
|
|
rollupOptions: {
|
|
input: {
|
|
main: resolve(__dirname, 'index.html'),
|
|
app: resolve(__dirname, 'app.html'),
|
|
embed: resolve(__dirname, 'embed.html'),
|
|
},
|
|
},
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
},
|
|
})
|