- Add PageView model for daily-bucketed view tracking - Add viewCount fields to Tool, Collection, Agent models - Add social proof fields to StatsSnapshot - Add POST /api/track/view endpoint with IP-based dedup - Add GET /api/activity/public endpoint for real activity stream - Add /api/sync/view-rollup daily cron for aggregating views - Expand stats-snapshot cron with new social proof queries - Replace hardcoded homepage stats with real DB-driven props - Add downloads to hero metrics strip - Add PublicActivityStream component fetching real UserActivity - Add useTrackView hook for tool, collection, agent detail pages - Add forkCount column to collections and agents listings - Add views/reviews to tool detail statistics sidebar - Remove deprecated hardcoded statistics and categories from homePageData |
||
|---|---|---|
| .. | ||
| prisma | ||
| scripts | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| check-tool.js | ||
| check-tool.mjs | ||
| package.json | ||
| README.md | ||
| sync-single-tool.mjs | ||
| test-query.mjs | ||
| tsconfig.json | ||
@tpmjs/db
Database package for TPMJS NPM Registry. Provides Prisma ORM setup and database client for storing tool metadata.
Setup
1. Create Neon Database
- Go to https://neon.tech/
- Create a new project
- Copy the connection string
2. Configure Environment
cp .env.example .env
# Edit .env and add your DATABASE_URL
3. Run Migrations
pnpm db:migrate
pnpm db:seed
Usage
import { prisma } from '@tpmjs/db';
// Query tools
const tools = await prisma.tool.findMany({
where: {
category: 'web-scraping',
isOfficial: true,
},
orderBy: {
qualityScore: 'desc',
},
take: 10,
});
// Update sync checkpoint
await prisma.syncCheckpoint.update({
where: { source: 'changes-feed' },
data: {
checkpoint: {
sequence: '12345',
lastProcessed: new Date().toISOString(),
},
},
});
Scripts
pnpm db:generate- Generate Prisma clientpnpm db:push- Push schema to database (for development)pnpm db:migrate- Create and run migrations (for production)pnpm db:studio- Open Prisma Studio GUIpnpm db:seed- Seed initial data
Schema
Tool
Stores NPM packages with TPMJS metadata from their package.json.
SyncCheckpoint
Tracks progress of sync workers (changes feed, keyword search, metrics).
SyncLog
Audit trail of all sync operations.