From 43a2b7b418c28c9a32be5088365493ce32455dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Da=C3=9Fler?= Date: Fri, 29 Aug 2025 11:50:43 +0200 Subject: [PATCH] Replace index.d.ts with self-contained type declarations - Remove obsolete index.d.ts with relative imports - Use self-contained type declarations for IOR compatibility - Keep native/libp2p.d.ts for internal use --- index.d.ts | 238 ++++++++++++++++++++++++++++++++------ libp2p-native-bridge.d.ts | 212 --------------------------------- 2 files changed, 205 insertions(+), 245 deletions(-) delete mode 100644 libp2p-native-bridge.d.ts diff --git a/index.d.ts b/index.d.ts index cc8e64f..850a745 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,40 +1,212 @@ /** * Type declarations for @metatrom/libp2p-native-bridge + * Self-contained for IOR type generation */ -// Main component exports -export { Libp2pComponent, SimplePeerId, SimpleMultiaddr } from './implementations/Libp2pComponent'; +// Core types +export interface PeerId { + toString(): string; + toBytes(): Uint8Array; + equals(other: PeerId): boolean; +} -// Settings exports -export { - SettingsService, - getSettingsService, - DEFAULT_SETTINGS, - type AppSettings, - type INativeModules -} from './implementations/SettingsService'; +export interface Multiaddr { + toString(): string; + bytes: Uint8Array; + protos(): Array<{ code: number; name: string }>; + getPeerId(): string | null; +} + +export interface Connection { + id: string; + remotePeer: PeerId; + remoteAddr: Multiaddr; + stat: { + direction: 'inbound' | 'outbound'; + status: 'pending' | 'open' | 'closing' | 'closed'; + timeline: { + open: number; + upgraded?: number; + close?: number; + }; + }; +} + +export interface PeerInfo { + id: PeerId; + multiaddrs: Multiaddr[]; +} + +export interface ProtocolHandler { + protocolId: string; + handler: (data: { peerId: string; data?: Uint8Array }) => void | Promise; +} + +export interface ILibp2pComponent { + peerId: PeerId | null; + multiaddrs: Multiaddr[]; + + start(): Promise; + stop(): Promise; + dial(multiaddr: string): Promise; + hangUp(peerId: string): Promise; + getConnections(peerId?: string): Promise; + sendProtocolData(peerId: string, protocolId: string, data: Uint8Array): Promise; + refreshDiscovery(): Promise; + pingPeer(peerId: string): Promise<{ success: boolean; rtt?: number; peerId: string }>; + + addEventListener( + event: K, + handler: (evt: Libp2pEvents[K]) => void, + ): void; + + removeEventListener( + event: K, + handler: (evt: Libp2pEvents[K]) => void, + ): void; +} + +export interface Libp2pEvents { + 'peer:discovery': CustomEvent; + 'peer:lost': CustomEvent<{ id: PeerId }>; + 'peer:connect': CustomEvent; + 'peer:disconnect': CustomEvent; + 'connection:open': CustomEvent; + 'connection:close': CustomEvent; + 'self:peer:update': CustomEvent<{ peerId: PeerId; multiaddrs: Multiaddr[] }>; +} + +export interface Libp2pOptions { + config?: { + tcpPort?: number; + wsPort?: number; + }; + protocols?: ProtocolHandler[]; + keypair?: { + privateKey: Uint8Array; + publicKey: Uint8Array; + }; +} + +// Event types +export interface ConnectionStatusEvent { + peerId: string; + status: string; + direction?: 'inbound' | 'outbound'; + multiaddr?: string; +} + +export interface PeerDiscoveredEvent { + peerId: string; + addresses?: string[]; + multiaddrs?: string[]; + metadata?: { + userName?: string; + deviceName?: string; + timestamp?: number; + }; +} + +export interface PeerInfoEvent { + peerId: string; + multiaddrs: string[]; +} + +// Settings types +export interface AppSettings { + tcpPort: number; + wsPort: number; + discoveryTimeout: number; + enableDebugLogs: boolean; + autoDiscovery: boolean; + useCustomPorts: boolean; + dhtServerUrl: string; +} + +export interface INativeModules { + Libp2pModule?: any; + DiscoveryModule?: any; + SecureStorageModule?: any; +} + +// Constants +export declare const LIBP2P_CONFIG: { + CONNECTION_STATUS: { + CONNECTED: string; + PENDING: string; + DISCONNECTED: string; + FAILED: string; + }; + DEFAULT_TCP_PORT: number; + DEFAULT_WS_PORT: number; +}; + +export declare const DEFAULT_SETTINGS: AppSettings; + +// Component classes +export declare class SimplePeerId implements PeerId { + constructor(id: string); + toString(): string; + toBytes(): Uint8Array; + equals(other: PeerId): boolean; +} + +export declare class SimpleMultiaddr implements Multiaddr { + bytes: Uint8Array; + constructor(addr: string); + toString(): string; + protos(): Array<{ code: number; name: string }>; + getPeerId(): string | null; +} + +export declare class Libp2pComponent implements ILibp2pComponent { + constructor(options?: Libp2pOptions, nativeModules?: any); + + peerId: PeerId | null; + multiaddrs: Multiaddr[]; + + start(): Promise; + stop(): Promise; + dial(multiaddr: string): Promise; + hangUp(peerId: string): Promise; + getConnections(peerId?: string): Promise; + sendProtocolData(peerId: string, protocolId: string, data: Uint8Array): Promise; + refreshDiscovery(): Promise; + pingPeer(peerId: string): Promise<{ success: boolean; rtt?: number; peerId: string }>; + + addEventListener( + event: K, + handler: (evt: Libp2pEvents[K]) => void, + ): void; + + removeEventListener( + event: K, + handler: (evt: Libp2pEvents[K]) => void, + ): void; +} + +export declare class SettingsService { + static getInstance(nativeModules?: INativeModules): SettingsService; + static resetInstance(): void; + + initialize(): Promise; + loadSettings(): Promise; + saveSettings(settings: AppSettings): Promise; + getSettings(): AppSettings; + getSetting(key: K): AppSettings[K]; + updateSetting(key: K, value: AppSettings[K]): Promise; + resetAllData(): Promise; + exportDebugData(): Promise; + isFirstLaunch(): Promise; + getStorageInfo(): Promise<{ keys: string[]; totalSize: number; }>; +} + +export declare function getSettingsService(nativeModules?: INativeModules): SettingsService; // UI Components -export { SettingsUI } from './implementations/SettingsUI'; - -// Interface exports -export type { - Connection, - ILibp2pComponent, - Libp2pEvents, - Libp2pOptions, - Multiaddr, - PeerId, - PeerInfo, - ProtocolHandler, -} from './interfaces/ILibp2pComponent'; - -// Type exports -export type { - ConnectionStatusEvent, - PeerDiscoveredEvent, - PeerInfoEvent -} from './utils/types'; - -// Constant exports -export { LIBP2P_CONFIG } from './utils/constants'; \ No newline at end of file +export declare const SettingsUI: React.FC<{ + initialSettings?: AppSettings; + onSettingsChange?: (settings: AppSettings) => void; + onPortsSaved?: () => void; + onReset?: () => void; +}>; \ No newline at end of file diff --git a/libp2p-native-bridge.d.ts b/libp2p-native-bridge.d.ts deleted file mode 100644 index 850a745..0000000 --- a/libp2p-native-bridge.d.ts +++ /dev/null @@ -1,212 +0,0 @@ -/** - * Type declarations for @metatrom/libp2p-native-bridge - * Self-contained for IOR type generation - */ - -// Core types -export interface PeerId { - toString(): string; - toBytes(): Uint8Array; - equals(other: PeerId): boolean; -} - -export interface Multiaddr { - toString(): string; - bytes: Uint8Array; - protos(): Array<{ code: number; name: string }>; - getPeerId(): string | null; -} - -export interface Connection { - id: string; - remotePeer: PeerId; - remoteAddr: Multiaddr; - stat: { - direction: 'inbound' | 'outbound'; - status: 'pending' | 'open' | 'closing' | 'closed'; - timeline: { - open: number; - upgraded?: number; - close?: number; - }; - }; -} - -export interface PeerInfo { - id: PeerId; - multiaddrs: Multiaddr[]; -} - -export interface ProtocolHandler { - protocolId: string; - handler: (data: { peerId: string; data?: Uint8Array }) => void | Promise; -} - -export interface ILibp2pComponent { - peerId: PeerId | null; - multiaddrs: Multiaddr[]; - - start(): Promise; - stop(): Promise; - dial(multiaddr: string): Promise; - hangUp(peerId: string): Promise; - getConnections(peerId?: string): Promise; - sendProtocolData(peerId: string, protocolId: string, data: Uint8Array): Promise; - refreshDiscovery(): Promise; - pingPeer(peerId: string): Promise<{ success: boolean; rtt?: number; peerId: string }>; - - addEventListener( - event: K, - handler: (evt: Libp2pEvents[K]) => void, - ): void; - - removeEventListener( - event: K, - handler: (evt: Libp2pEvents[K]) => void, - ): void; -} - -export interface Libp2pEvents { - 'peer:discovery': CustomEvent; - 'peer:lost': CustomEvent<{ id: PeerId }>; - 'peer:connect': CustomEvent; - 'peer:disconnect': CustomEvent; - 'connection:open': CustomEvent; - 'connection:close': CustomEvent; - 'self:peer:update': CustomEvent<{ peerId: PeerId; multiaddrs: Multiaddr[] }>; -} - -export interface Libp2pOptions { - config?: { - tcpPort?: number; - wsPort?: number; - }; - protocols?: ProtocolHandler[]; - keypair?: { - privateKey: Uint8Array; - publicKey: Uint8Array; - }; -} - -// Event types -export interface ConnectionStatusEvent { - peerId: string; - status: string; - direction?: 'inbound' | 'outbound'; - multiaddr?: string; -} - -export interface PeerDiscoveredEvent { - peerId: string; - addresses?: string[]; - multiaddrs?: string[]; - metadata?: { - userName?: string; - deviceName?: string; - timestamp?: number; - }; -} - -export interface PeerInfoEvent { - peerId: string; - multiaddrs: string[]; -} - -// Settings types -export interface AppSettings { - tcpPort: number; - wsPort: number; - discoveryTimeout: number; - enableDebugLogs: boolean; - autoDiscovery: boolean; - useCustomPorts: boolean; - dhtServerUrl: string; -} - -export interface INativeModules { - Libp2pModule?: any; - DiscoveryModule?: any; - SecureStorageModule?: any; -} - -// Constants -export declare const LIBP2P_CONFIG: { - CONNECTION_STATUS: { - CONNECTED: string; - PENDING: string; - DISCONNECTED: string; - FAILED: string; - }; - DEFAULT_TCP_PORT: number; - DEFAULT_WS_PORT: number; -}; - -export declare const DEFAULT_SETTINGS: AppSettings; - -// Component classes -export declare class SimplePeerId implements PeerId { - constructor(id: string); - toString(): string; - toBytes(): Uint8Array; - equals(other: PeerId): boolean; -} - -export declare class SimpleMultiaddr implements Multiaddr { - bytes: Uint8Array; - constructor(addr: string); - toString(): string; - protos(): Array<{ code: number; name: string }>; - getPeerId(): string | null; -} - -export declare class Libp2pComponent implements ILibp2pComponent { - constructor(options?: Libp2pOptions, nativeModules?: any); - - peerId: PeerId | null; - multiaddrs: Multiaddr[]; - - start(): Promise; - stop(): Promise; - dial(multiaddr: string): Promise; - hangUp(peerId: string): Promise; - getConnections(peerId?: string): Promise; - sendProtocolData(peerId: string, protocolId: string, data: Uint8Array): Promise; - refreshDiscovery(): Promise; - pingPeer(peerId: string): Promise<{ success: boolean; rtt?: number; peerId: string }>; - - addEventListener( - event: K, - handler: (evt: Libp2pEvents[K]) => void, - ): void; - - removeEventListener( - event: K, - handler: (evt: Libp2pEvents[K]) => void, - ): void; -} - -export declare class SettingsService { - static getInstance(nativeModules?: INativeModules): SettingsService; - static resetInstance(): void; - - initialize(): Promise; - loadSettings(): Promise; - saveSettings(settings: AppSettings): Promise; - getSettings(): AppSettings; - getSetting(key: K): AppSettings[K]; - updateSetting(key: K, value: AppSettings[K]): Promise; - resetAllData(): Promise; - exportDebugData(): Promise; - isFirstLaunch(): Promise; - getStorageInfo(): Promise<{ keys: string[]; totalSize: number; }>; -} - -export declare function getSettingsService(nativeModules?: INativeModules): SettingsService; - -// UI Components -export declare const SettingsUI: React.FC<{ - initialSettings?: AppSettings; - onSettingsChange?: (settings: AppSettings) => void; - onPortsSaved?: () => void; - onReset?: () => void; -}>; \ No newline at end of file