mirror of
https://github.com/xtr-dev/rondevu-server.git
synced 2025-12-12 03:43:23 +00:00
Remove legacy V1 code and clean up unused remnants
- Delete unused bloom.ts module (leftover from topic-based discovery) - Remove maxTopicsPerOffer configuration (no longer used) - Remove unused info field from Offer types - Simplify generateOfferHash() to only hash SDP (remove topics param) - Update outdated comments referencing deprecated features - Remove backward compatibility topics field from answer responses This completes the migration to V2 service-based architecture by removing all remnants of the V1 topic-based system. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,7 @@ export class D1Storage implements Storage {
|
||||
*/
|
||||
async initializeDatabase(): Promise<void> {
|
||||
await this.db.exec(`
|
||||
-- Offers table (no topics)
|
||||
-- WebRTC signaling offers
|
||||
CREATE TABLE IF NOT EXISTS offers (
|
||||
id TEXT PRIMARY KEY,
|
||||
peer_id TEXT NOT NULL,
|
||||
@@ -125,7 +125,7 @@ export class D1Storage implements Storage {
|
||||
|
||||
// D1 doesn't support true transactions yet, so we do this sequentially
|
||||
for (const offer of offers) {
|
||||
const id = offer.id || await generateOfferHash(offer.sdp, []);
|
||||
const id = offer.id || await generateOfferHash(offer.sdp);
|
||||
const now = Date.now();
|
||||
|
||||
await this.db.prepare(`
|
||||
|
||||
@@ -1,22 +1,17 @@
|
||||
/**
|
||||
* Generates a content-based offer ID using SHA-256 hash
|
||||
* Creates deterministic IDs based on offer content (sdp, topics)
|
||||
* Creates deterministic IDs based on offer SDP content
|
||||
* PeerID is not included as it's inferred from authentication
|
||||
* Uses Web Crypto API for compatibility with both Node.js and Cloudflare Workers
|
||||
*
|
||||
* @param sdp - The WebRTC SDP offer
|
||||
* @param topics - Array of topic strings
|
||||
* @returns SHA-256 hash of the sanitized offer content
|
||||
* @returns SHA-256 hash of the SDP content
|
||||
*/
|
||||
export async function generateOfferHash(
|
||||
sdp: string,
|
||||
topics: string[]
|
||||
): Promise<string> {
|
||||
export async function generateOfferHash(sdp: string): Promise<string> {
|
||||
// Sanitize and normalize the offer content
|
||||
// Only include core offer content (not peerId - that's inferred from auth)
|
||||
const sanitizedOffer = {
|
||||
sdp,
|
||||
topics: [...topics].sort(), // Sort topics for consistency
|
||||
sdp
|
||||
};
|
||||
|
||||
// Create non-prettified JSON string
|
||||
|
||||
@@ -36,7 +36,7 @@ export class SQLiteStorage implements Storage {
|
||||
*/
|
||||
private initializeDatabase(): void {
|
||||
this.db.exec(`
|
||||
-- Offers table (no topics)
|
||||
-- WebRTC signaling offers
|
||||
CREATE TABLE IF NOT EXISTS offers (
|
||||
id TEXT PRIMARY KEY,
|
||||
peer_id TEXT NOT NULL,
|
||||
@@ -132,7 +132,7 @@ export class SQLiteStorage implements Storage {
|
||||
const offersWithIds = await Promise.all(
|
||||
offers.map(async (offer) => ({
|
||||
...offer,
|
||||
id: offer.id || await generateOfferHash(offer.sdp, []),
|
||||
id: offer.id || await generateOfferHash(offer.sdp),
|
||||
}))
|
||||
);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Represents a WebRTC signaling offer (no topics)
|
||||
* Represents a WebRTC signaling offer
|
||||
*/
|
||||
export interface Offer {
|
||||
id: string;
|
||||
@@ -9,7 +9,6 @@ export interface Offer {
|
||||
expiresAt: number;
|
||||
lastSeen: number;
|
||||
secret?: string;
|
||||
info?: string;
|
||||
answererPeerId?: string;
|
||||
answerSdp?: string;
|
||||
answeredAt?: number;
|
||||
@@ -37,7 +36,6 @@ export interface CreateOfferRequest {
|
||||
sdp: string;
|
||||
expiresAt: number;
|
||||
secret?: string;
|
||||
info?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user