@frp-bridge/types 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -524,4 +524,137 @@ interface SUDPVisitorConfig extends BaseVisitorConfig {
524
524
  /** Union type of all visitor configurations */
525
525
  type VisitorConfig = STCPVisitorConfig | XTCPVisitorConfig | SUDPVisitorConfig;
526
526
 
527
- export type { AuthClientConfig, AuthMethod, AuthOIDCClientConfig, AuthOIDCServerConfig, AuthScope, AuthServerConfig, BaseProxyConfig, BaseVisitorConfig, ClientCommonConfig, ClientConfig, ClientTransportConfig, ClientTransportProtocol, FileSource, HTTPHeader, HTTPPluginOptions, HTTPProxyConfig, HTTPSProxyConfig, HeaderOperations, LoadBalancerStrategy, LogConfig, LogLevel, NatTraversalConfig, PortsRange, ProxyConfig, ProxyType, QUICOptions, SSHTunnelGateway, STCPProxyConfig, STCPVisitorConfig, SUDPProxyConfig, SUDPVisitorConfig, ServerConfig, ServerTransportConfig, TCPMUXProxyConfig, TCPProxyConfig, TLSClientConfig, TLSConfig, TLSServerConfig, UDPProxyConfig, ValueSource, ValueSourceType, VirtualNetConfig, VisitorConfig, VisitorType, WebServerConfig, XTCPProxyConfig, XTCPVisitorConfig };
527
+ /**
528
+ * Node management types
529
+ * Defines types for managing frp-bridge client nodes connected to server
530
+ */
531
+
532
+ /** Node information structure */
533
+ interface NodeInfo {
534
+ id: string;
535
+ ip: string;
536
+ port: number;
537
+ protocol: 'tcp' | 'udp';
538
+ serverAddr: string;
539
+ serverPort: number;
540
+ hostname?: string;
541
+ osType?: string;
542
+ osRelease?: string;
543
+ platform?: string;
544
+ cpuCores?: number;
545
+ memTotal?: number;
546
+ frpVersion?: string;
547
+ bridgeVersion?: string;
548
+ status: 'online' | 'offline' | 'connecting' | 'error';
549
+ lastHeartbeat?: number;
550
+ connectedAt?: number;
551
+ labels?: Record<string, string>;
552
+ metadata?: Record<string, unknown>;
553
+ token?: string;
554
+ tunnels?: ProxyConfig[];
555
+ createdAt: number;
556
+ updatedAt: number;
557
+ }
558
+ /** Payload for node registration (Client → Server) */
559
+ interface NodeRegisterPayload {
560
+ ip: string;
561
+ port: number;
562
+ serverAddr: string;
563
+ serverPort: number;
564
+ protocol: 'tcp' | 'udp';
565
+ hostname: string;
566
+ osType: string;
567
+ osRelease: string;
568
+ platform: string;
569
+ cpuCores: number;
570
+ memTotal: number;
571
+ frpVersion: string;
572
+ bridgeVersion: string;
573
+ token?: string;
574
+ }
575
+ /** Payload for node heartbeat (Client → Server) */
576
+ interface NodeHeartbeatPayload {
577
+ nodeId: string;
578
+ status: 'online' | 'error';
579
+ lastHeartbeat: number;
580
+ cpuCores?: number;
581
+ memTotal?: number;
582
+ }
583
+ /** Payload for tunnel synchronization (Client → Server) */
584
+ interface TunnelSyncPayload {
585
+ nodeId: string;
586
+ tunnels: ProxyConfig[];
587
+ timestamp: number;
588
+ }
589
+ /** Payload for tunnel management via RPC (Server → Client) */
590
+ interface TunnelManagePayload {
591
+ action: 'add' | 'update' | 'remove' | 'list';
592
+ tunnel?: ProxyConfig | Partial<ProxyConfig>;
593
+ name?: string;
594
+ }
595
+ /** Response for tunnel management */
596
+ interface TunnelManageResponse {
597
+ success: boolean;
598
+ tunnel?: ProxyConfig;
599
+ tunnels?: ProxyConfig[];
600
+ error?: string;
601
+ }
602
+ /** Query parameters for listing nodes */
603
+ interface NodeListQuery {
604
+ page?: number;
605
+ pageSize?: number;
606
+ status?: NodeInfo['status'];
607
+ labels?: Record<string, string>;
608
+ search?: string;
609
+ }
610
+ /** Response for node list query */
611
+ interface NodeListResponse {
612
+ items: NodeInfo[];
613
+ total: number;
614
+ page: number;
615
+ pageSize: number;
616
+ hasMore: boolean;
617
+ }
618
+ /** Node statistics */
619
+ interface NodeStatistics {
620
+ total: number;
621
+ online: number;
622
+ offline: number;
623
+ connecting: number;
624
+ error: number;
625
+ }
626
+ /** Error codes for node operations */
627
+ type NodeErrorCode = 'NODE_NOT_FOUND' | 'NODE_ALREADY_EXISTS' | 'INVALID_NODE_DATA' | 'HEARTBEAT_TIMEOUT' | 'STORAGE_ERROR' | 'UNAUTHORIZED';
628
+
629
+ interface RpcRequest {
630
+ id: string;
631
+ method: string;
632
+ params: Record<string, unknown>;
633
+ timeout?: number;
634
+ }
635
+ interface RpcResponse {
636
+ id: string;
637
+ status: 'success' | 'error';
638
+ result?: unknown;
639
+ error?: {
640
+ code: string;
641
+ message: string;
642
+ };
643
+ }
644
+ interface PingMessage {
645
+ type: 'ping';
646
+ timestamp: number;
647
+ }
648
+ interface PongMessage {
649
+ type: 'pong';
650
+ timestamp: number;
651
+ }
652
+ interface RegisterMessage {
653
+ type: 'register';
654
+ nodeId: string;
655
+ payload: NodeInfo;
656
+ }
657
+ type RpcInboundMessage = RpcResponse | PongMessage;
658
+ type RpcOutboundMessage = RpcRequest | PingMessage | RegisterMessage;
659
+
660
+ export type { AuthClientConfig, AuthMethod, AuthOIDCClientConfig, AuthOIDCServerConfig, AuthScope, AuthServerConfig, BaseProxyConfig, BaseVisitorConfig, ClientCommonConfig, ClientConfig, ClientTransportConfig, ClientTransportProtocol, FileSource, HTTPHeader, HTTPPluginOptions, HTTPProxyConfig, HTTPSProxyConfig, HeaderOperations, LoadBalancerStrategy, LogConfig, LogLevel, NatTraversalConfig, NodeErrorCode, NodeHeartbeatPayload, NodeInfo, NodeListQuery, NodeListResponse, NodeRegisterPayload, NodeStatistics, PingMessage, PongMessage, PortsRange, ProxyConfig, ProxyType, QUICOptions, RegisterMessage, RpcInboundMessage, RpcOutboundMessage, RpcRequest, RpcResponse, SSHTunnelGateway, STCPProxyConfig, STCPVisitorConfig, SUDPProxyConfig, SUDPVisitorConfig, ServerConfig, ServerTransportConfig, TCPMUXProxyConfig, TCPProxyConfig, TLSClientConfig, TLSConfig, TLSServerConfig, TunnelManagePayload, TunnelManageResponse, TunnelSyncPayload, UDPProxyConfig, ValueSource, ValueSourceType, VirtualNetConfig, VisitorConfig, VisitorType, WebServerConfig, XTCPProxyConfig, XTCPVisitorConfig };
package/dist/index.d.ts CHANGED
@@ -524,4 +524,137 @@ interface SUDPVisitorConfig extends BaseVisitorConfig {
524
524
  /** Union type of all visitor configurations */
525
525
  type VisitorConfig = STCPVisitorConfig | XTCPVisitorConfig | SUDPVisitorConfig;
526
526
 
527
- export type { AuthClientConfig, AuthMethod, AuthOIDCClientConfig, AuthOIDCServerConfig, AuthScope, AuthServerConfig, BaseProxyConfig, BaseVisitorConfig, ClientCommonConfig, ClientConfig, ClientTransportConfig, ClientTransportProtocol, FileSource, HTTPHeader, HTTPPluginOptions, HTTPProxyConfig, HTTPSProxyConfig, HeaderOperations, LoadBalancerStrategy, LogConfig, LogLevel, NatTraversalConfig, PortsRange, ProxyConfig, ProxyType, QUICOptions, SSHTunnelGateway, STCPProxyConfig, STCPVisitorConfig, SUDPProxyConfig, SUDPVisitorConfig, ServerConfig, ServerTransportConfig, TCPMUXProxyConfig, TCPProxyConfig, TLSClientConfig, TLSConfig, TLSServerConfig, UDPProxyConfig, ValueSource, ValueSourceType, VirtualNetConfig, VisitorConfig, VisitorType, WebServerConfig, XTCPProxyConfig, XTCPVisitorConfig };
527
+ /**
528
+ * Node management types
529
+ * Defines types for managing frp-bridge client nodes connected to server
530
+ */
531
+
532
+ /** Node information structure */
533
+ interface NodeInfo {
534
+ id: string;
535
+ ip: string;
536
+ port: number;
537
+ protocol: 'tcp' | 'udp';
538
+ serverAddr: string;
539
+ serverPort: number;
540
+ hostname?: string;
541
+ osType?: string;
542
+ osRelease?: string;
543
+ platform?: string;
544
+ cpuCores?: number;
545
+ memTotal?: number;
546
+ frpVersion?: string;
547
+ bridgeVersion?: string;
548
+ status: 'online' | 'offline' | 'connecting' | 'error';
549
+ lastHeartbeat?: number;
550
+ connectedAt?: number;
551
+ labels?: Record<string, string>;
552
+ metadata?: Record<string, unknown>;
553
+ token?: string;
554
+ tunnels?: ProxyConfig[];
555
+ createdAt: number;
556
+ updatedAt: number;
557
+ }
558
+ /** Payload for node registration (Client → Server) */
559
+ interface NodeRegisterPayload {
560
+ ip: string;
561
+ port: number;
562
+ serverAddr: string;
563
+ serverPort: number;
564
+ protocol: 'tcp' | 'udp';
565
+ hostname: string;
566
+ osType: string;
567
+ osRelease: string;
568
+ platform: string;
569
+ cpuCores: number;
570
+ memTotal: number;
571
+ frpVersion: string;
572
+ bridgeVersion: string;
573
+ token?: string;
574
+ }
575
+ /** Payload for node heartbeat (Client → Server) */
576
+ interface NodeHeartbeatPayload {
577
+ nodeId: string;
578
+ status: 'online' | 'error';
579
+ lastHeartbeat: number;
580
+ cpuCores?: number;
581
+ memTotal?: number;
582
+ }
583
+ /** Payload for tunnel synchronization (Client → Server) */
584
+ interface TunnelSyncPayload {
585
+ nodeId: string;
586
+ tunnels: ProxyConfig[];
587
+ timestamp: number;
588
+ }
589
+ /** Payload for tunnel management via RPC (Server → Client) */
590
+ interface TunnelManagePayload {
591
+ action: 'add' | 'update' | 'remove' | 'list';
592
+ tunnel?: ProxyConfig | Partial<ProxyConfig>;
593
+ name?: string;
594
+ }
595
+ /** Response for tunnel management */
596
+ interface TunnelManageResponse {
597
+ success: boolean;
598
+ tunnel?: ProxyConfig;
599
+ tunnels?: ProxyConfig[];
600
+ error?: string;
601
+ }
602
+ /** Query parameters for listing nodes */
603
+ interface NodeListQuery {
604
+ page?: number;
605
+ pageSize?: number;
606
+ status?: NodeInfo['status'];
607
+ labels?: Record<string, string>;
608
+ search?: string;
609
+ }
610
+ /** Response for node list query */
611
+ interface NodeListResponse {
612
+ items: NodeInfo[];
613
+ total: number;
614
+ page: number;
615
+ pageSize: number;
616
+ hasMore: boolean;
617
+ }
618
+ /** Node statistics */
619
+ interface NodeStatistics {
620
+ total: number;
621
+ online: number;
622
+ offline: number;
623
+ connecting: number;
624
+ error: number;
625
+ }
626
+ /** Error codes for node operations */
627
+ type NodeErrorCode = 'NODE_NOT_FOUND' | 'NODE_ALREADY_EXISTS' | 'INVALID_NODE_DATA' | 'HEARTBEAT_TIMEOUT' | 'STORAGE_ERROR' | 'UNAUTHORIZED';
628
+
629
+ interface RpcRequest {
630
+ id: string;
631
+ method: string;
632
+ params: Record<string, unknown>;
633
+ timeout?: number;
634
+ }
635
+ interface RpcResponse {
636
+ id: string;
637
+ status: 'success' | 'error';
638
+ result?: unknown;
639
+ error?: {
640
+ code: string;
641
+ message: string;
642
+ };
643
+ }
644
+ interface PingMessage {
645
+ type: 'ping';
646
+ timestamp: number;
647
+ }
648
+ interface PongMessage {
649
+ type: 'pong';
650
+ timestamp: number;
651
+ }
652
+ interface RegisterMessage {
653
+ type: 'register';
654
+ nodeId: string;
655
+ payload: NodeInfo;
656
+ }
657
+ type RpcInboundMessage = RpcResponse | PongMessage;
658
+ type RpcOutboundMessage = RpcRequest | PingMessage | RegisterMessage;
659
+
660
+ export type { AuthClientConfig, AuthMethod, AuthOIDCClientConfig, AuthOIDCServerConfig, AuthScope, AuthServerConfig, BaseProxyConfig, BaseVisitorConfig, ClientCommonConfig, ClientConfig, ClientTransportConfig, ClientTransportProtocol, FileSource, HTTPHeader, HTTPPluginOptions, HTTPProxyConfig, HTTPSProxyConfig, HeaderOperations, LoadBalancerStrategy, LogConfig, LogLevel, NatTraversalConfig, NodeErrorCode, NodeHeartbeatPayload, NodeInfo, NodeListQuery, NodeListResponse, NodeRegisterPayload, NodeStatistics, PingMessage, PongMessage, PortsRange, ProxyConfig, ProxyType, QUICOptions, RegisterMessage, RpcInboundMessage, RpcOutboundMessage, RpcRequest, RpcResponse, SSHTunnelGateway, STCPProxyConfig, STCPVisitorConfig, SUDPProxyConfig, SUDPVisitorConfig, ServerConfig, ServerTransportConfig, TCPMUXProxyConfig, TCPProxyConfig, TLSClientConfig, TLSConfig, TLSServerConfig, TunnelManagePayload, TunnelManageResponse, TunnelSyncPayload, UDPProxyConfig, ValueSource, ValueSourceType, VirtualNetConfig, VisitorConfig, VisitorType, WebServerConfig, XTCPProxyConfig, XTCPVisitorConfig };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frp-bridge/types",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.2",
5
5
  "description": "Frp bridge type definitions",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/frp-web/bridge#readme",