moonbridge-ts 0.2.3 → 0.5.0

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.
@@ -9,32 +9,38 @@ import { IpcMessageStrategy } from './types/ipc_message_strategy';
9
9
  import { ConnectionObserver, IpcConnectionCompletionHandler, MessageInterceptor } from './types/ipc_types';
10
10
  import { EventBus } from './types/ipc_event_bus';
11
11
  import { Messenger } from './types/ipc_messenger';
12
- /** MoonBridge IPC 客户端抽象接口 */
13
- export interface MoonBridgeIpcClient {
12
+ /**
13
+ * MoonBridge IPC 客户端抽象接口
14
+ */
15
+ export declare abstract class MoonBridgeIpcClient {
14
16
  /**
15
- * 连接到 IPC 服务器
17
+ * 创建客户端构建器
16
18
  */
17
- connect(onResult?: IpcConnectionCompletionHandler): void;
19
+ static builder(): MoonBridgeIpcClientBuilder;
18
20
  /**
19
- * 断开与 IPC 服务器的连接
21
+ * 客户端名称
22
+ */
23
+ abstract readonly clientName: string;
24
+ /**
25
+ * 消息发送器
20
26
  */
21
- disconnect(): Promise<void>;
27
+ abstract readonly messenger: Messenger;
22
28
  /**
23
- * 检查是否已连接到 IPC 服务器
29
+ * 事件总线
24
30
  */
25
- isConnected(): boolean;
31
+ abstract readonly eventBus: EventBus;
26
32
  /**
27
- * 客户端名称
33
+ * 连接到 IPC 服务器
28
34
  */
29
- readonly clientName: string;
35
+ abstract connect(onResult?: IpcConnectionCompletionHandler): void;
30
36
  /**
31
- * 消息发送器
37
+ * 断开与 IPC 服务器的连接
32
38
  */
33
- readonly messenger: Messenger;
39
+ abstract disconnect(): Promise<void>;
34
40
  /**
35
- * 事件总线
41
+ * 检查是否已连接到 IPC 服务器
36
42
  */
37
- readonly eventBus: EventBus;
43
+ abstract isConnected(): boolean;
38
44
  }
39
45
  /** 构造器,用于链式配置并构建客户端实例 */
40
46
  export declare class MoonBridgeIpcClientBuilder {
@@ -48,10 +54,6 @@ export declare class MoonBridgeIpcClientBuilder {
48
54
  private _messageInterceptor?;
49
55
  private _connectionObserver?;
50
56
  private _appLauncher?;
51
- /**
52
- * 创建客户端构建器
53
- */
54
- static builder(): MoonBridgeIpcClientBuilder;
55
57
  /**
56
58
  * 设置客户端名称
57
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"moonbridge_ipc_client.d.ts","sourceRoot":"","sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moonbridge_ipc_client.d.ts","sourceRoot":"","sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,19 @@
3
3
  var ipc_client_settings = require('./internal/settings/ipc_client_settings');
4
4
  var moonbridge_ipc_client_internal = require('./internal/moonbridge_ipc_client.internal');
5
5
 
6
- class MoonBridgeIpcClientBuilder {
7
- constructor() {
8
- this._clientName = "";
9
- }
10
- // PUBLIC METHODS
6
+ class MoonBridgeIpcClient {
11
7
  /**
12
8
  * 创建客户端构建器
13
9
  */
14
10
  static builder() {
15
11
  return new MoonBridgeIpcClientBuilder();
16
12
  }
13
+ }
14
+ class MoonBridgeIpcClientBuilder {
15
+ constructor() {
16
+ this._clientName = "";
17
+ }
18
+ // PUBLIC METHODS
17
19
  /**
18
20
  * 设置客户端名称
19
21
  */
@@ -150,6 +152,7 @@ class MoonBridgeIpcClientRegistry {
150
152
  }
151
153
  }
152
154
 
155
+ exports.MoonBridgeIpcClient = MoonBridgeIpcClient;
153
156
  exports.MoonBridgeIpcClientBuilder = MoonBridgeIpcClientBuilder;
154
157
  exports.MoonBridgeIpcClientRegistry = MoonBridgeIpcClientRegistry;
155
158
  //# sourceMappingURL=moonbridge_ipc_client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":["IpcClientSettings","RealMoonBridgeIpcClient"],"mappings":"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","file":"moonbridge_ipc_client.js","sourcesContent":["/**\n * MoonBridge IPC 客户端入口类,对应 Flutter lib/client/moonbridge_ipc_client.dart。\n * 定义连接管理、消息发送与事件总线等公开 API;不含 RPC(JS 端不实现)。\n */\n\nimport { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport { AppInstallationPath, AppLaunchIdentifier } from '../general/app_launch/model/app_info';\nimport { AppLauncher } from '../general/app_launch/app_launcher';\nimport { IpcClientSettings } from './internal/settings/ipc_client_settings';\nimport { IpcMessageStrategy } from './types/ipc_message_strategy';\nimport { ConnectionObserver, IpcConnectionCompletionHandler, MessageInterceptor } from './types/ipc_types';\nimport { EventBus } from './types/ipc_event_bus';\nimport { Messenger } from './types/ipc_messenger';\nimport { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';\n\n/** MoonBridge IPC 客户端抽象接口 */\nexport interface MoonBridgeIpcClient {\n /** \n * 连接到 IPC 服务器 \n */\n connect(onResult?: IpcConnectionCompletionHandler): void;\n /** \n * 断开与 IPC 服务器的连接 \n */\n disconnect(): Promise<void>;\n /** \n * 检查是否已连接到 IPC 服务器 \n */\n isConnected(): boolean;\n /** \n * 客户端名称 \n */\n readonly clientName: string;\n /** \n * 消息发送器 \n */\n readonly messenger: Messenger;\n /** \n * 事件总线 \n */\n readonly eventBus: EventBus;\n}\n\n// PUBLIC CLASS\n\n/** 构造器,用于链式配置并构建客户端实例 */\nexport class MoonBridgeIpcClientBuilder {\n private _clientName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _serverInstallationPath?: AppInstallationPath;\n private _serverLaunchIdentifier?: AppLaunchIdentifier;\n private _enableHeartbeat?: boolean;\n private _heartbeatIntervalMs?: number;\n private _messageStrategy?: IpcMessageStrategy;\n private _messageInterceptor?: MessageInterceptor;\n private _connectionObserver?: ConnectionObserver;\n private _appLauncher?: AppLauncher;\n\n // PUBLIC METHODS\n\n /**\n * 创建客户端构建器 \n */\n static builder(): MoonBridgeIpcClientBuilder {\n return new MoonBridgeIpcClientBuilder();\n }\n\n /**\n * 设置客户端名称 \n */\n clientName(name: string): this {\n this._clientName = name;\n return this;\n }\n\n /**\n * 设置 WebSocket 连接配置 \n */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint | undefined): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /**\n * 设置服务器应用路径 \n */\n serverInstallationPath(path: AppInstallationPath): this {\n this._serverInstallationPath = path;\n return this;\n }\n\n /**\n * 设置服务器应用标识符 \n */\n serverLaunchIdentifier(identifier: AppLaunchIdentifier): this {\n this._serverLaunchIdentifier = identifier;\n return this;\n }\n\n /**\n * 设置是否启用心跳检测 \n */\n enableHeartbeat(enable: boolean): this {\n this._enableHeartbeat = enable;\n return this;\n }\n\n /**\n * 设置心跳检测间隔时间 \n */\n heartbeatIntervalMs(ms: number): this {\n this._heartbeatIntervalMs = ms;\n return this;\n }\n\n /**\n * 设置消息策略 \n */\n messageStrategy(strategy: IpcMessageStrategy): this {\n this._messageStrategy = strategy;\n return this;\n }\n\n /**\n * 设置消息拦截器 \n */\n messageInterceptor(interceptor?: MessageInterceptor): this {\n this._messageInterceptor = interceptor;\n return this;\n }\n\n /**\n * 设置连接状态观察者 \n */\n connectionObserver(observer?: ConnectionObserver): this {\n this._connectionObserver = observer;\n return this;\n }\n\n /** \n * 注入应用启动器\n * 用于覆盖默认的唤醒方式(如 wps-addin 通过 URL Scheme 唤起) \n */\n appLauncher(launcher: AppLauncher | undefined): this {\n this._appLauncher = launcher;\n return this;\n }\n\n /**\n * 构建客户端实例并可选注册为默认客户端。\n */\n build(makeDefault = false): MoonBridgeIpcClient {\n if (!this._clientName || this._clientName.trim() === '') {\n throw new Error('clientName must be non-empty.');\n }\n if (!this._webSocketServerEndpoint) {\n throw new Error(\n 'Call useWebSocketChannel to set the transport configuration.',\n );\n }\n\n const settings = new IpcClientSettings({\n clientName: this._clientName,\n webSocketServerEndpoint: this._webSocketServerEndpoint,\n serverInstallationPath: this._serverInstallationPath,\n serverLaunchIdentifier: this._serverLaunchIdentifier,\n enableHeartbeat: this._enableHeartbeat,\n heartbeatIntervalMs: this._heartbeatIntervalMs,\n messageStrategy: this._messageStrategy,\n messageInterceptor: this._messageInterceptor,\n connectionObserver: this._connectionObserver,\n appLauncher: this._appLauncher,\n });\n\n const client = new RealMoonBridgeIpcClient(settings);\n MoonBridgeIpcClientRegistry.getInstance().register(client);\n if (makeDefault) {\n MoonBridgeIpcClientRegistry.getInstance().setDefault(client);\n }\n return client;\n }\n}\n\n\n/** \n * 客户端注册表单例 \n */\nexport class MoonBridgeIpcClientRegistry {\n private static _instance: MoonBridgeIpcClientRegistry;\n private readonly _clientMap = new Map<string, MoonBridgeIpcClient>();\n\n /**\n * 获取客户端注册表单例 \n */\n static getInstance(): MoonBridgeIpcClientRegistry {\n if (!MoonBridgeIpcClientRegistry._instance) {\n MoonBridgeIpcClientRegistry._instance = new MoonBridgeIpcClientRegistry();\n }\n return MoonBridgeIpcClientRegistry._instance;\n }\n\n /**\n * 设置默认客户端 \n */\n setDefault(client: MoonBridgeIpcClient): void {\n this._clientMap.set('__default__', client);\n }\n\n /**\n * 注册客户端 \n */\n register(client: MoonBridgeIpcClient): void {\n this._clientMap.set(client.clientName, client);\n }\n\n /**\n * 获取客户端 \n */\n get(clientName?: string): MoonBridgeIpcClient | undefined {\n return this._clientMap.get(clientName ?? '__default__');\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":["IpcClientSettings","RealMoonBridgeIpcClient"],"mappings":"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","file":"moonbridge_ipc_client.js","sourcesContent":["/**\n * MoonBridge IPC 客户端入口类,对应 Flutter lib/client/moonbridge_ipc_client.dart。\n * 定义连接管理、消息发送与事件总线等公开 API;不含 RPC(JS 端不实现)。\n */\n\nimport { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport { AppInstallationPath, AppLaunchIdentifier } from '../general/app_launch/model/app_info';\nimport { AppLauncher } from '../general/app_launch/app_launcher';\nimport { IpcClientSettings } from './internal/settings/ipc_client_settings';\nimport { IpcMessageStrategy } from './types/ipc_message_strategy';\nimport { ConnectionObserver, IpcConnectionCompletionHandler, MessageInterceptor } from './types/ipc_types';\nimport { EventBus } from './types/ipc_event_bus';\nimport { Messenger } from './types/ipc_messenger';\nimport { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';\n\n/** \n * MoonBridge IPC 客户端抽象接口 \n */\nexport abstract class MoonBridgeIpcClient {\n /**\n * 创建客户端构建器 \n */\n static builder(): MoonBridgeIpcClientBuilder {\n return new MoonBridgeIpcClientBuilder();\n }\n\n /** \n * 客户端名称 \n */\n abstract readonly clientName: string;\n /** \n * 消息发送器 \n */\n abstract readonly messenger: Messenger;\n /** \n * 事件总线 \n */\n abstract readonly eventBus: EventBus;\n\n /** \n * 连接到 IPC 服务器 \n */\n abstract connect(onResult?: IpcConnectionCompletionHandler): void;\n /** \n * 断开与 IPC 服务器的连接 \n */\n abstract disconnect(): Promise<void>;\n /** \n * 检查是否已连接到 IPC 服务器 \n */\n abstract isConnected(): boolean;\n}\n\n// PUBLIC CLASS\n\n/** 构造器,用于链式配置并构建客户端实例 */\nexport class MoonBridgeIpcClientBuilder {\n private _clientName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _serverInstallationPath?: AppInstallationPath;\n private _serverLaunchIdentifier?: AppLaunchIdentifier;\n private _enableHeartbeat?: boolean;\n private _heartbeatIntervalMs?: number;\n private _messageStrategy?: IpcMessageStrategy;\n private _messageInterceptor?: MessageInterceptor;\n private _connectionObserver?: ConnectionObserver;\n private _appLauncher?: AppLauncher;\n\n // PUBLIC METHODS\n\n /**\n * 设置客户端名称 \n */\n clientName(name: string): this {\n this._clientName = name;\n return this;\n }\n\n /**\n * 设置 WebSocket 连接配置 \n */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint | undefined): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /**\n * 设置服务器应用路径 \n */\n serverInstallationPath(path: AppInstallationPath): this {\n this._serverInstallationPath = path;\n return this;\n }\n\n /**\n * 设置服务器应用标识符 \n */\n serverLaunchIdentifier(identifier: AppLaunchIdentifier): this {\n this._serverLaunchIdentifier = identifier;\n return this;\n }\n\n /**\n * 设置是否启用心跳检测 \n */\n enableHeartbeat(enable: boolean): this {\n this._enableHeartbeat = enable;\n return this;\n }\n\n /**\n * 设置心跳检测间隔时间 \n */\n heartbeatIntervalMs(ms: number): this {\n this._heartbeatIntervalMs = ms;\n return this;\n }\n\n /**\n * 设置消息策略 \n */\n messageStrategy(strategy: IpcMessageStrategy): this {\n this._messageStrategy = strategy;\n return this;\n }\n\n /**\n * 设置消息拦截器 \n */\n messageInterceptor(interceptor?: MessageInterceptor): this {\n this._messageInterceptor = interceptor;\n return this;\n }\n\n /**\n * 设置连接状态观察者 \n */\n connectionObserver(observer?: ConnectionObserver): this {\n this._connectionObserver = observer;\n return this;\n }\n\n /** \n * 注入应用启动器\n * 用于覆盖默认的唤醒方式(如 wps-addin 通过 URL Scheme 唤起) \n */\n appLauncher(launcher: AppLauncher | undefined): this {\n this._appLauncher = launcher;\n return this;\n }\n\n /**\n * 构建客户端实例并可选注册为默认客户端。\n */\n build(makeDefault = false): MoonBridgeIpcClient {\n if (!this._clientName || this._clientName.trim() === '') {\n throw new Error('clientName must be non-empty.');\n }\n if (!this._webSocketServerEndpoint) {\n throw new Error(\n 'Call useWebSocketChannel to set the transport configuration.',\n );\n }\n\n const settings = new IpcClientSettings({\n clientName: this._clientName,\n webSocketServerEndpoint: this._webSocketServerEndpoint,\n serverInstallationPath: this._serverInstallationPath,\n serverLaunchIdentifier: this._serverLaunchIdentifier,\n enableHeartbeat: this._enableHeartbeat,\n heartbeatIntervalMs: this._heartbeatIntervalMs,\n messageStrategy: this._messageStrategy,\n messageInterceptor: this._messageInterceptor,\n connectionObserver: this._connectionObserver,\n appLauncher: this._appLauncher,\n });\n\n const client = new RealMoonBridgeIpcClient(settings);\n MoonBridgeIpcClientRegistry.getInstance().register(client);\n if (makeDefault) {\n MoonBridgeIpcClientRegistry.getInstance().setDefault(client);\n }\n return client;\n }\n}\n\n\n/** \n * 客户端注册表单例 \n */\nexport class MoonBridgeIpcClientRegistry {\n private static _instance: MoonBridgeIpcClientRegistry;\n private readonly _clientMap = new Map<string, MoonBridgeIpcClient>();\n\n /**\n * 获取客户端注册表单例 \n */\n static getInstance(): MoonBridgeIpcClientRegistry {\n if (!MoonBridgeIpcClientRegistry._instance) {\n MoonBridgeIpcClientRegistry._instance = new MoonBridgeIpcClientRegistry();\n }\n return MoonBridgeIpcClientRegistry._instance;\n }\n\n /**\n * 设置默认客户端 \n */\n setDefault(client: MoonBridgeIpcClient): void {\n this._clientMap.set('__default__', client);\n }\n\n /**\n * 注册客户端 \n */\n register(client: MoonBridgeIpcClient): void {\n this._clientMap.set(client.clientName, client);\n }\n\n /**\n * 获取客户端 \n */\n get(clientName?: string): MoonBridgeIpcClient | undefined {\n return this._clientMap.get(clientName ?? '__default__');\n }\n}\n"]}
@@ -1,17 +1,19 @@
1
1
  import { IpcClientSettings } from './internal/settings/ipc_client_settings';
2
2
  import { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';
3
3
 
4
- class MoonBridgeIpcClientBuilder {
5
- constructor() {
6
- this._clientName = "";
7
- }
8
- // PUBLIC METHODS
4
+ class MoonBridgeIpcClient {
9
5
  /**
10
6
  * 创建客户端构建器
11
7
  */
12
8
  static builder() {
13
9
  return new MoonBridgeIpcClientBuilder();
14
10
  }
11
+ }
12
+ class MoonBridgeIpcClientBuilder {
13
+ constructor() {
14
+ this._clientName = "";
15
+ }
16
+ // PUBLIC METHODS
15
17
  /**
16
18
  * 设置客户端名称
17
19
  */
@@ -148,6 +150,6 @@ class MoonBridgeIpcClientRegistry {
148
150
  }
149
151
  }
150
152
 
151
- export { MoonBridgeIpcClientBuilder, MoonBridgeIpcClientRegistry };
153
+ export { MoonBridgeIpcClient, MoonBridgeIpcClientBuilder, MoonBridgeIpcClientRegistry };
152
154
  //# sourceMappingURL=moonbridge_ipc_client.mjs.map
153
155
  //# sourceMappingURL=moonbridge_ipc_client.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":[],"mappings":"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","file":"moonbridge_ipc_client.mjs","sourcesContent":["/**\n * MoonBridge IPC 客户端入口类,对应 Flutter lib/client/moonbridge_ipc_client.dart。\n * 定义连接管理、消息发送与事件总线等公开 API;不含 RPC(JS 端不实现)。\n */\n\nimport { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport { AppInstallationPath, AppLaunchIdentifier } from '../general/app_launch/model/app_info';\nimport { AppLauncher } from '../general/app_launch/app_launcher';\nimport { IpcClientSettings } from './internal/settings/ipc_client_settings';\nimport { IpcMessageStrategy } from './types/ipc_message_strategy';\nimport { ConnectionObserver, IpcConnectionCompletionHandler, MessageInterceptor } from './types/ipc_types';\nimport { EventBus } from './types/ipc_event_bus';\nimport { Messenger } from './types/ipc_messenger';\nimport { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';\n\n/** MoonBridge IPC 客户端抽象接口 */\nexport interface MoonBridgeIpcClient {\n /** \n * 连接到 IPC 服务器 \n */\n connect(onResult?: IpcConnectionCompletionHandler): void;\n /** \n * 断开与 IPC 服务器的连接 \n */\n disconnect(): Promise<void>;\n /** \n * 检查是否已连接到 IPC 服务器 \n */\n isConnected(): boolean;\n /** \n * 客户端名称 \n */\n readonly clientName: string;\n /** \n * 消息发送器 \n */\n readonly messenger: Messenger;\n /** \n * 事件总线 \n */\n readonly eventBus: EventBus;\n}\n\n// PUBLIC CLASS\n\n/** 构造器,用于链式配置并构建客户端实例 */\nexport class MoonBridgeIpcClientBuilder {\n private _clientName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _serverInstallationPath?: AppInstallationPath;\n private _serverLaunchIdentifier?: AppLaunchIdentifier;\n private _enableHeartbeat?: boolean;\n private _heartbeatIntervalMs?: number;\n private _messageStrategy?: IpcMessageStrategy;\n private _messageInterceptor?: MessageInterceptor;\n private _connectionObserver?: ConnectionObserver;\n private _appLauncher?: AppLauncher;\n\n // PUBLIC METHODS\n\n /**\n * 创建客户端构建器 \n */\n static builder(): MoonBridgeIpcClientBuilder {\n return new MoonBridgeIpcClientBuilder();\n }\n\n /**\n * 设置客户端名称 \n */\n clientName(name: string): this {\n this._clientName = name;\n return this;\n }\n\n /**\n * 设置 WebSocket 连接配置 \n */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint | undefined): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /**\n * 设置服务器应用路径 \n */\n serverInstallationPath(path: AppInstallationPath): this {\n this._serverInstallationPath = path;\n return this;\n }\n\n /**\n * 设置服务器应用标识符 \n */\n serverLaunchIdentifier(identifier: AppLaunchIdentifier): this {\n this._serverLaunchIdentifier = identifier;\n return this;\n }\n\n /**\n * 设置是否启用心跳检测 \n */\n enableHeartbeat(enable: boolean): this {\n this._enableHeartbeat = enable;\n return this;\n }\n\n /**\n * 设置心跳检测间隔时间 \n */\n heartbeatIntervalMs(ms: number): this {\n this._heartbeatIntervalMs = ms;\n return this;\n }\n\n /**\n * 设置消息策略 \n */\n messageStrategy(strategy: IpcMessageStrategy): this {\n this._messageStrategy = strategy;\n return this;\n }\n\n /**\n * 设置消息拦截器 \n */\n messageInterceptor(interceptor?: MessageInterceptor): this {\n this._messageInterceptor = interceptor;\n return this;\n }\n\n /**\n * 设置连接状态观察者 \n */\n connectionObserver(observer?: ConnectionObserver): this {\n this._connectionObserver = observer;\n return this;\n }\n\n /** \n * 注入应用启动器\n * 用于覆盖默认的唤醒方式(如 wps-addin 通过 URL Scheme 唤起) \n */\n appLauncher(launcher: AppLauncher | undefined): this {\n this._appLauncher = launcher;\n return this;\n }\n\n /**\n * 构建客户端实例并可选注册为默认客户端。\n */\n build(makeDefault = false): MoonBridgeIpcClient {\n if (!this._clientName || this._clientName.trim() === '') {\n throw new Error('clientName must be non-empty.');\n }\n if (!this._webSocketServerEndpoint) {\n throw new Error(\n 'Call useWebSocketChannel to set the transport configuration.',\n );\n }\n\n const settings = new IpcClientSettings({\n clientName: this._clientName,\n webSocketServerEndpoint: this._webSocketServerEndpoint,\n serverInstallationPath: this._serverInstallationPath,\n serverLaunchIdentifier: this._serverLaunchIdentifier,\n enableHeartbeat: this._enableHeartbeat,\n heartbeatIntervalMs: this._heartbeatIntervalMs,\n messageStrategy: this._messageStrategy,\n messageInterceptor: this._messageInterceptor,\n connectionObserver: this._connectionObserver,\n appLauncher: this._appLauncher,\n });\n\n const client = new RealMoonBridgeIpcClient(settings);\n MoonBridgeIpcClientRegistry.getInstance().register(client);\n if (makeDefault) {\n MoonBridgeIpcClientRegistry.getInstance().setDefault(client);\n }\n return client;\n }\n}\n\n\n/** \n * 客户端注册表单例 \n */\nexport class MoonBridgeIpcClientRegistry {\n private static _instance: MoonBridgeIpcClientRegistry;\n private readonly _clientMap = new Map<string, MoonBridgeIpcClient>();\n\n /**\n * 获取客户端注册表单例 \n */\n static getInstance(): MoonBridgeIpcClientRegistry {\n if (!MoonBridgeIpcClientRegistry._instance) {\n MoonBridgeIpcClientRegistry._instance = new MoonBridgeIpcClientRegistry();\n }\n return MoonBridgeIpcClientRegistry._instance;\n }\n\n /**\n * 设置默认客户端 \n */\n setDefault(client: MoonBridgeIpcClient): void {\n this._clientMap.set('__default__', client);\n }\n\n /**\n * 注册客户端 \n */\n register(client: MoonBridgeIpcClient): void {\n this._clientMap.set(client.clientName, client);\n }\n\n /**\n * 获取客户端 \n */\n get(clientName?: string): MoonBridgeIpcClient | undefined {\n return this._clientMap.get(clientName ?? '__default__');\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/moonbridge-ipc/client/moonbridge_ipc_client.ts"],"names":[],"mappings":"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","file":"moonbridge_ipc_client.mjs","sourcesContent":["/**\n * MoonBridge IPC 客户端入口类,对应 Flutter lib/client/moonbridge_ipc_client.dart。\n * 定义连接管理、消息发送与事件总线等公开 API;不含 RPC(JS 端不实现)。\n */\n\nimport { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport { AppInstallationPath, AppLaunchIdentifier } from '../general/app_launch/model/app_info';\nimport { AppLauncher } from '../general/app_launch/app_launcher';\nimport { IpcClientSettings } from './internal/settings/ipc_client_settings';\nimport { IpcMessageStrategy } from './types/ipc_message_strategy';\nimport { ConnectionObserver, IpcConnectionCompletionHandler, MessageInterceptor } from './types/ipc_types';\nimport { EventBus } from './types/ipc_event_bus';\nimport { Messenger } from './types/ipc_messenger';\nimport { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';\n\n/** \n * MoonBridge IPC 客户端抽象接口 \n */\nexport abstract class MoonBridgeIpcClient {\n /**\n * 创建客户端构建器 \n */\n static builder(): MoonBridgeIpcClientBuilder {\n return new MoonBridgeIpcClientBuilder();\n }\n\n /** \n * 客户端名称 \n */\n abstract readonly clientName: string;\n /** \n * 消息发送器 \n */\n abstract readonly messenger: Messenger;\n /** \n * 事件总线 \n */\n abstract readonly eventBus: EventBus;\n\n /** \n * 连接到 IPC 服务器 \n */\n abstract connect(onResult?: IpcConnectionCompletionHandler): void;\n /** \n * 断开与 IPC 服务器的连接 \n */\n abstract disconnect(): Promise<void>;\n /** \n * 检查是否已连接到 IPC 服务器 \n */\n abstract isConnected(): boolean;\n}\n\n// PUBLIC CLASS\n\n/** 构造器,用于链式配置并构建客户端实例 */\nexport class MoonBridgeIpcClientBuilder {\n private _clientName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _serverInstallationPath?: AppInstallationPath;\n private _serverLaunchIdentifier?: AppLaunchIdentifier;\n private _enableHeartbeat?: boolean;\n private _heartbeatIntervalMs?: number;\n private _messageStrategy?: IpcMessageStrategy;\n private _messageInterceptor?: MessageInterceptor;\n private _connectionObserver?: ConnectionObserver;\n private _appLauncher?: AppLauncher;\n\n // PUBLIC METHODS\n\n /**\n * 设置客户端名称 \n */\n clientName(name: string): this {\n this._clientName = name;\n return this;\n }\n\n /**\n * 设置 WebSocket 连接配置 \n */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint | undefined): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /**\n * 设置服务器应用路径 \n */\n serverInstallationPath(path: AppInstallationPath): this {\n this._serverInstallationPath = path;\n return this;\n }\n\n /**\n * 设置服务器应用标识符 \n */\n serverLaunchIdentifier(identifier: AppLaunchIdentifier): this {\n this._serverLaunchIdentifier = identifier;\n return this;\n }\n\n /**\n * 设置是否启用心跳检测 \n */\n enableHeartbeat(enable: boolean): this {\n this._enableHeartbeat = enable;\n return this;\n }\n\n /**\n * 设置心跳检测间隔时间 \n */\n heartbeatIntervalMs(ms: number): this {\n this._heartbeatIntervalMs = ms;\n return this;\n }\n\n /**\n * 设置消息策略 \n */\n messageStrategy(strategy: IpcMessageStrategy): this {\n this._messageStrategy = strategy;\n return this;\n }\n\n /**\n * 设置消息拦截器 \n */\n messageInterceptor(interceptor?: MessageInterceptor): this {\n this._messageInterceptor = interceptor;\n return this;\n }\n\n /**\n * 设置连接状态观察者 \n */\n connectionObserver(observer?: ConnectionObserver): this {\n this._connectionObserver = observer;\n return this;\n }\n\n /** \n * 注入应用启动器\n * 用于覆盖默认的唤醒方式(如 wps-addin 通过 URL Scheme 唤起) \n */\n appLauncher(launcher: AppLauncher | undefined): this {\n this._appLauncher = launcher;\n return this;\n }\n\n /**\n * 构建客户端实例并可选注册为默认客户端。\n */\n build(makeDefault = false): MoonBridgeIpcClient {\n if (!this._clientName || this._clientName.trim() === '') {\n throw new Error('clientName must be non-empty.');\n }\n if (!this._webSocketServerEndpoint) {\n throw new Error(\n 'Call useWebSocketChannel to set the transport configuration.',\n );\n }\n\n const settings = new IpcClientSettings({\n clientName: this._clientName,\n webSocketServerEndpoint: this._webSocketServerEndpoint,\n serverInstallationPath: this._serverInstallationPath,\n serverLaunchIdentifier: this._serverLaunchIdentifier,\n enableHeartbeat: this._enableHeartbeat,\n heartbeatIntervalMs: this._heartbeatIntervalMs,\n messageStrategy: this._messageStrategy,\n messageInterceptor: this._messageInterceptor,\n connectionObserver: this._connectionObserver,\n appLauncher: this._appLauncher,\n });\n\n const client = new RealMoonBridgeIpcClient(settings);\n MoonBridgeIpcClientRegistry.getInstance().register(client);\n if (makeDefault) {\n MoonBridgeIpcClientRegistry.getInstance().setDefault(client);\n }\n return client;\n }\n}\n\n\n/** \n * 客户端注册表单例 \n */\nexport class MoonBridgeIpcClientRegistry {\n private static _instance: MoonBridgeIpcClientRegistry;\n private readonly _clientMap = new Map<string, MoonBridgeIpcClient>();\n\n /**\n * 获取客户端注册表单例 \n */\n static getInstance(): MoonBridgeIpcClientRegistry {\n if (!MoonBridgeIpcClientRegistry._instance) {\n MoonBridgeIpcClientRegistry._instance = new MoonBridgeIpcClientRegistry();\n }\n return MoonBridgeIpcClientRegistry._instance;\n }\n\n /**\n * 设置默认客户端 \n */\n setDefault(client: MoonBridgeIpcClient): void {\n this._clientMap.set('__default__', client);\n }\n\n /**\n * 注册客户端 \n */\n register(client: MoonBridgeIpcClient): void {\n this._clientMap.set(client.clientName, client);\n }\n\n /**\n * 获取客户端 \n */\n get(clientName?: string): MoonBridgeIpcClient | undefined {\n return this._clientMap.get(clientName ?? '__default__');\n }\n}\n"]}
@@ -17,13 +17,32 @@ export type OnMessageReceived = (clientName: string, type: string, message: stri
17
17
  * MoonBridge IPC 服务器抽象类
18
18
  */
19
19
  export declare abstract class MoonBridgeIpcServer {
20
+ /** 任意 IPv4 地址 */
20
21
  static readonly anyIPv4 = "anyIPv4";
22
+ /** 任意 IPv6 地址 */
21
23
  static readonly anyIPv6 = "anyIPv6";
24
+ /**
25
+ * 构建 MoonBridgeIpcServerBuilder 实例
26
+ * @returns MoonBridgeIpcServerBuilder 实例
27
+ */
22
28
  static builder(): MoonBridgeIpcServerBuilder;
29
+ /**
30
+ * 服务器名称
31
+ */
23
32
  abstract readonly serverName: string;
33
+ /**
34
+ * 启动服务器
35
+ * @returns 是否成功启动
36
+ */
24
37
  abstract start(): Promise<boolean>;
25
38
  abstract stop(): Promise<void>;
39
+ /**
40
+ * 服务器地址
41
+ */
26
42
  abstract get serverAddress(): string | undefined;
43
+ /**
44
+ * 服务器端口
45
+ */
27
46
  abstract get serverPort(): number | undefined;
28
47
  }
29
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"moonbridge_ipc_server.d.ts","sourceRoot":"","sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3F,0BAA0B;AAC1B,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpE,iBAAiB;AACjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC;AAE7E,mBAAmB;AACnB,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhE,aAAa;AACb,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;AAEvF,aAAa;AACb,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5F;;GAEG;AACH,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAwB;IAC/C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAwB;IAE/C,MAAM,CAAC,OAAO,IAAI,0BAA0B;IAI5C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,QAAQ,KAAK,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,KAAK,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,wBAAwB,CAAC,CAA0B;IAC3D,OAAO,CAAC,wBAAwB,CAAC,CAA2B;IAC5D,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IACrD,OAAO,CAAC,oBAAoB,CAAC,CAAsB;IACnD,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAE/C,cAAc;IACd,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,mDAAmD;IACnD,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAK5D,qBAAqB;IACrB,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAKlE,oBAAoB;IACpB,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAKzD,qBAAqB;IACrB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAK1D,eAAe;IACf,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI;IAK5D,eAAe;IACf,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAKpD;;;OAGG;IACH,KAAK,CAAC,WAAW,UAAQ,GAAG,mBAAmB;CAwBhD;AAED;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IAErE,MAAM,KAAK,QAAQ,IAAI,2BAA2B,CAEjD;IAED,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAI7C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAI3C,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;CAG1D"}
1
+ {"version":3,"file":"moonbridge_ipc_server.d.ts","sourceRoot":"","sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,17 @@ var websocket_server = require('../general/transport/websocket/websocket_server'
4
4
  var moonbridge_ipc_server_internal = require('./internal/moonbridge_ipc_server.internal');
5
5
 
6
6
  class MoonBridgeIpcServer {
7
+ /**
8
+ * 构建 MoonBridgeIpcServerBuilder 实例
9
+ * @returns MoonBridgeIpcServerBuilder 实例
10
+ */
7
11
  static builder() {
8
12
  return new MoonBridgeIpcServerBuilder();
9
13
  }
10
14
  }
15
+ /** 任意 IPv4 地址 */
11
16
  MoonBridgeIpcServer.anyIPv4 = websocket_server.SocketServer.anyIPv4;
17
+ /** 任意 IPv6 地址 */
12
18
  MoonBridgeIpcServer.anyIPv6 = websocket_server.SocketServer.anyIPv6;
13
19
  class MoonBridgeIpcServerBuilder {
14
20
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":["SocketServer","RealMoonBridgeIpcServer"],"mappings":"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","file":"moonbridge_ipc_server.js","sourcesContent":["/**\n * MoonBridge IPC 服务器入口类\n */\n\nimport { SocketServer } from '../general/transport/websocket/websocket_server';\nimport type { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport type { ClientIdentity, ClientIdentityProvider } from './credential/client_identity';\nimport { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';\n\n/** 消息回复函数,用于向客户端发送响应消息 */\nexport type IpcMessageReply = (message: string) => Promise<boolean>;\n\n/** 唤醒客户端应用拦截器 */\nexport type WakeAppInterceptor = (clientIdentity: ClientIdentity) => boolean;\n\n/** 客户端断开连接的回调函数 */\nexport type DisconnectedCallback = (clientName: string) => void;\n\n/** 消息预处理器 */\nexport type MessagePreprocessor = (reply: IpcMessageReply, message: string) => boolean;\n\n/** 消息接收回调 */\nexport type OnMessageReceived = (clientName: string, type: string, message: string) => void;\n\n/**\n * MoonBridge IPC 服务器抽象类\n */\nexport abstract class MoonBridgeIpcServer {\n static readonly anyIPv4 = SocketServer.anyIPv4;\n static readonly anyIPv6 = SocketServer.anyIPv6;\n\n static builder(): MoonBridgeIpcServerBuilder {\n return new MoonBridgeIpcServerBuilder();\n }\n\n abstract readonly serverName: string;\n abstract start(): Promise<boolean>;\n abstract stop(): Promise<void>;\n abstract get serverAddress(): string | undefined;\n abstract get serverPort(): number | undefined;\n}\n\n/**\n * MoonBridge IPC 服务器构造器\n */\nexport class MoonBridgeIpcServerBuilder {\n private _serverName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _clientIdentityProviders?: ClientIdentityProvider[];\n private _wakeAppInterceptor?: WakeAppInterceptor;\n private _onClientDisconnected?: DisconnectedCallback;\n private _messagePreprocessor?: MessagePreprocessor;\n private _onMessageReceived?: OnMessageReceived;\n\n /** 设置服务器名称 */\n serverName(name: string): this {\n this._serverName = name;\n return this;\n }\n\n /** 设置 WebSocket 服务端通道监听配置;null 表示不启动 WebSocket。 */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /** 设置客户端身份信息提供者列表 */\n clientIdentityProviders(providers: ClientIdentityProvider[]): this {\n this._clientIdentityProviders = providers;\n return this;\n }\n\n /** 设置唤醒客户端应用的拦截器 */\n wakeAppInterceptor(interceptor: WakeAppInterceptor): this {\n this._wakeAppInterceptor = interceptor;\n return this;\n }\n\n /** 设置客户端断开连接的回调函数 */\n onClientDisconnected(callback: DisconnectedCallback): this {\n this._onClientDisconnected = callback;\n return this;\n }\n\n /** 设置消息预处理器 */\n messagePreprocessor(preprocessor: MessagePreprocessor): this {\n this._messagePreprocessor = preprocessor;\n return this;\n }\n\n /** 设置消息接收回调 */\n onMessageReceived(callback: OnMessageReceived): this {\n this._onMessageReceived = callback;\n return this;\n }\n\n /**\n * 构建并返回配置完成的服务器实例\n * @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false\n */\n build(makeDefault = false): MoonBridgeIpcServer {\n if (this._webSocketServerEndpoint == null) {\n throw new Error(\n 'TS 端仅支持 WebSocket 通道,请使用 useWebSocketChannel 设置传输配置。',\n );\n }\n\n const server = new RealMoonBridgeIpcServer(\n this._serverName,\n this._webSocketServerEndpoint,\n this._wakeAppInterceptor,\n this._clientIdentityProviders,\n this._onClientDisconnected,\n this._messagePreprocessor,\n this._onMessageReceived,\n );\n\n MoonBridgeIpcServerRegistry.instance.register(server);\n\n if (makeDefault) {\n MoonBridgeIpcServerRegistry.instance.setDefault(server);\n }\n return server;\n }\n}\n\n/**\n * MoonBridge IPC 服务端注册器\n */\nexport class MoonBridgeIpcServerRegistry {\n private static _instance?: MoonBridgeIpcServerRegistry;\n private readonly _serverMap = new Map<string, MoonBridgeIpcServer>();\n\n static get instance(): MoonBridgeIpcServerRegistry {\n return MoonBridgeIpcServerRegistry._instance ??= new MoonBridgeIpcServerRegistry();\n }\n\n setDefault(server: MoonBridgeIpcServer): void {\n this._serverMap.set('__default__', server);\n }\n\n register(server: MoonBridgeIpcServer): void {\n this._serverMap.set(server.serverName, server);\n }\n\n get(serverName?: string): MoonBridgeIpcServer | undefined {\n return this._serverMap.get(serverName ?? '__default__');\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":["SocketServer","RealMoonBridgeIpcServer"],"mappings":"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","file":"moonbridge_ipc_server.js","sourcesContent":["/**\n * MoonBridge IPC 服务器入口类\n */\n\nimport { SocketServer } from '../general/transport/websocket/websocket_server';\nimport type { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport type { ClientIdentity, ClientIdentityProvider } from './credential/client_identity';\nimport { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';\n\n/** 消息回复函数,用于向客户端发送响应消息 */\nexport type IpcMessageReply = (message: string) => Promise<boolean>;\n\n/** 唤醒客户端应用拦截器 */\nexport type WakeAppInterceptor = (clientIdentity: ClientIdentity) => boolean;\n\n/** 客户端断开连接的回调函数 */\nexport type DisconnectedCallback = (clientName: string) => void;\n\n/** 消息预处理器 */\nexport type MessagePreprocessor = (reply: IpcMessageReply, message: string) => boolean;\n\n/** 消息接收回调 */\nexport type OnMessageReceived = (clientName: string, type: string, message: string) => void;\n\n/**\n * MoonBridge IPC 服务器抽象类\n */\nexport abstract class MoonBridgeIpcServer {\n /** 任意 IPv4 地址 */\n static readonly anyIPv4 = SocketServer.anyIPv4;\n /** 任意 IPv6 地址 */\n static readonly anyIPv6 = SocketServer.anyIPv6;\n\n /** \n * 构建 MoonBridgeIpcServerBuilder 实例\n * @returns MoonBridgeIpcServerBuilder 实例\n */\n static builder(): MoonBridgeIpcServerBuilder {\n return new MoonBridgeIpcServerBuilder();\n }\n\n /**\n * 服务器名称 \n */\n abstract readonly serverName: string;\n\n /** \n * 启动服务器\n * @returns 是否成功启动\n */\n abstract start(): Promise<boolean>;\n\n /* \n * 停止服务器\n * @returns 是否成功停止\n */\n abstract stop(): Promise<void>;\n\n /** \n * 服务器地址 \n */\n abstract get serverAddress(): string | undefined;\n\n /** \n * 服务器端口 \n */\n abstract get serverPort(): number | undefined;\n}\n\n/**\n * MoonBridge IPC 服务器构造器\n */\nexport class MoonBridgeIpcServerBuilder {\n private _serverName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _clientIdentityProviders?: ClientIdentityProvider[];\n private _wakeAppInterceptor?: WakeAppInterceptor;\n private _onClientDisconnected?: DisconnectedCallback;\n private _messagePreprocessor?: MessagePreprocessor;\n private _onMessageReceived?: OnMessageReceived;\n\n /** 设置服务器名称 */\n serverName(name: string): this {\n this._serverName = name;\n return this;\n }\n\n /** 设置 WebSocket 服务端通道监听配置;null 表示不启动 WebSocket。 */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /** 设置客户端身份信息提供者列表 */\n clientIdentityProviders(providers: ClientIdentityProvider[]): this {\n this._clientIdentityProviders = providers;\n return this;\n }\n\n /** 设置唤醒客户端应用的拦截器 */\n wakeAppInterceptor(interceptor: WakeAppInterceptor): this {\n this._wakeAppInterceptor = interceptor;\n return this;\n }\n\n /** 设置客户端断开连接的回调函数 */\n onClientDisconnected(callback: DisconnectedCallback): this {\n this._onClientDisconnected = callback;\n return this;\n }\n\n /** 设置消息预处理器 */\n messagePreprocessor(preprocessor: MessagePreprocessor): this {\n this._messagePreprocessor = preprocessor;\n return this;\n }\n\n /** 设置消息接收回调 */\n onMessageReceived(callback: OnMessageReceived): this {\n this._onMessageReceived = callback;\n return this;\n }\n\n /**\n * 构建并返回配置完成的服务器实例\n * @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false\n */\n build(makeDefault = false): MoonBridgeIpcServer {\n if (this._webSocketServerEndpoint == null) {\n throw new Error(\n 'TS 端仅支持 WebSocket 通道,请使用 useWebSocketChannel 设置传输配置。',\n );\n }\n\n const server = new RealMoonBridgeIpcServer(\n this._serverName,\n this._webSocketServerEndpoint,\n this._wakeAppInterceptor,\n this._clientIdentityProviders,\n this._onClientDisconnected,\n this._messagePreprocessor,\n this._onMessageReceived,\n );\n\n MoonBridgeIpcServerRegistry.instance.register(server);\n\n if (makeDefault) {\n MoonBridgeIpcServerRegistry.instance.setDefault(server);\n }\n return server;\n }\n}\n\n/**\n * MoonBridge IPC 服务端注册器\n */\nexport class MoonBridgeIpcServerRegistry {\n private static _instance?: MoonBridgeIpcServerRegistry;\n private readonly _serverMap = new Map<string, MoonBridgeIpcServer>();\n\n static get instance(): MoonBridgeIpcServerRegistry {\n return MoonBridgeIpcServerRegistry._instance ??= new MoonBridgeIpcServerRegistry();\n }\n\n setDefault(server: MoonBridgeIpcServer): void {\n this._serverMap.set('__default__', server);\n }\n\n register(server: MoonBridgeIpcServer): void {\n this._serverMap.set(server.serverName, server);\n }\n\n get(serverName?: string): MoonBridgeIpcServer | undefined {\n return this._serverMap.get(serverName ?? '__default__');\n }\n}\n"]}
@@ -2,11 +2,17 @@ import { SocketServer } from '../general/transport/websocket/websocket_server';
2
2
  import { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';
3
3
 
4
4
  class MoonBridgeIpcServer {
5
+ /**
6
+ * 构建 MoonBridgeIpcServerBuilder 实例
7
+ * @returns MoonBridgeIpcServerBuilder 实例
8
+ */
5
9
  static builder() {
6
10
  return new MoonBridgeIpcServerBuilder();
7
11
  }
8
12
  }
13
+ /** 任意 IPv4 地址 */
9
14
  MoonBridgeIpcServer.anyIPv4 = SocketServer.anyIPv4;
15
+ /** 任意 IPv6 地址 */
10
16
  MoonBridgeIpcServer.anyIPv6 = SocketServer.anyIPv6;
11
17
  class MoonBridgeIpcServerBuilder {
12
18
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":[],"mappings":"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","file":"moonbridge_ipc_server.mjs","sourcesContent":["/**\n * MoonBridge IPC 服务器入口类\n */\n\nimport { SocketServer } from '../general/transport/websocket/websocket_server';\nimport type { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport type { ClientIdentity, ClientIdentityProvider } from './credential/client_identity';\nimport { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';\n\n/** 消息回复函数,用于向客户端发送响应消息 */\nexport type IpcMessageReply = (message: string) => Promise<boolean>;\n\n/** 唤醒客户端应用拦截器 */\nexport type WakeAppInterceptor = (clientIdentity: ClientIdentity) => boolean;\n\n/** 客户端断开连接的回调函数 */\nexport type DisconnectedCallback = (clientName: string) => void;\n\n/** 消息预处理器 */\nexport type MessagePreprocessor = (reply: IpcMessageReply, message: string) => boolean;\n\n/** 消息接收回调 */\nexport type OnMessageReceived = (clientName: string, type: string, message: string) => void;\n\n/**\n * MoonBridge IPC 服务器抽象类\n */\nexport abstract class MoonBridgeIpcServer {\n static readonly anyIPv4 = SocketServer.anyIPv4;\n static readonly anyIPv6 = SocketServer.anyIPv6;\n\n static builder(): MoonBridgeIpcServerBuilder {\n return new MoonBridgeIpcServerBuilder();\n }\n\n abstract readonly serverName: string;\n abstract start(): Promise<boolean>;\n abstract stop(): Promise<void>;\n abstract get serverAddress(): string | undefined;\n abstract get serverPort(): number | undefined;\n}\n\n/**\n * MoonBridge IPC 服务器构造器\n */\nexport class MoonBridgeIpcServerBuilder {\n private _serverName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _clientIdentityProviders?: ClientIdentityProvider[];\n private _wakeAppInterceptor?: WakeAppInterceptor;\n private _onClientDisconnected?: DisconnectedCallback;\n private _messagePreprocessor?: MessagePreprocessor;\n private _onMessageReceived?: OnMessageReceived;\n\n /** 设置服务器名称 */\n serverName(name: string): this {\n this._serverName = name;\n return this;\n }\n\n /** 设置 WebSocket 服务端通道监听配置;null 表示不启动 WebSocket。 */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /** 设置客户端身份信息提供者列表 */\n clientIdentityProviders(providers: ClientIdentityProvider[]): this {\n this._clientIdentityProviders = providers;\n return this;\n }\n\n /** 设置唤醒客户端应用的拦截器 */\n wakeAppInterceptor(interceptor: WakeAppInterceptor): this {\n this._wakeAppInterceptor = interceptor;\n return this;\n }\n\n /** 设置客户端断开连接的回调函数 */\n onClientDisconnected(callback: DisconnectedCallback): this {\n this._onClientDisconnected = callback;\n return this;\n }\n\n /** 设置消息预处理器 */\n messagePreprocessor(preprocessor: MessagePreprocessor): this {\n this._messagePreprocessor = preprocessor;\n return this;\n }\n\n /** 设置消息接收回调 */\n onMessageReceived(callback: OnMessageReceived): this {\n this._onMessageReceived = callback;\n return this;\n }\n\n /**\n * 构建并返回配置完成的服务器实例\n * @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false\n */\n build(makeDefault = false): MoonBridgeIpcServer {\n if (this._webSocketServerEndpoint == null) {\n throw new Error(\n 'TS 端仅支持 WebSocket 通道,请使用 useWebSocketChannel 设置传输配置。',\n );\n }\n\n const server = new RealMoonBridgeIpcServer(\n this._serverName,\n this._webSocketServerEndpoint,\n this._wakeAppInterceptor,\n this._clientIdentityProviders,\n this._onClientDisconnected,\n this._messagePreprocessor,\n this._onMessageReceived,\n );\n\n MoonBridgeIpcServerRegistry.instance.register(server);\n\n if (makeDefault) {\n MoonBridgeIpcServerRegistry.instance.setDefault(server);\n }\n return server;\n }\n}\n\n/**\n * MoonBridge IPC 服务端注册器\n */\nexport class MoonBridgeIpcServerRegistry {\n private static _instance?: MoonBridgeIpcServerRegistry;\n private readonly _serverMap = new Map<string, MoonBridgeIpcServer>();\n\n static get instance(): MoonBridgeIpcServerRegistry {\n return MoonBridgeIpcServerRegistry._instance ??= new MoonBridgeIpcServerRegistry();\n }\n\n setDefault(server: MoonBridgeIpcServer): void {\n this._serverMap.set('__default__', server);\n }\n\n register(server: MoonBridgeIpcServer): void {\n this._serverMap.set(server.serverName, server);\n }\n\n get(serverName?: string): MoonBridgeIpcServer | undefined {\n return this._serverMap.get(serverName ?? '__default__');\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/moonbridge-ipc/server/moonbridge_ipc_server.ts"],"names":[],"mappings":"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","file":"moonbridge_ipc_server.mjs","sourcesContent":["/**\n * MoonBridge IPC 服务器入口类\n */\n\nimport { SocketServer } from '../general/transport/websocket/websocket_server';\nimport type { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';\nimport type { ClientIdentity, ClientIdentityProvider } from './credential/client_identity';\nimport { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';\n\n/** 消息回复函数,用于向客户端发送响应消息 */\nexport type IpcMessageReply = (message: string) => Promise<boolean>;\n\n/** 唤醒客户端应用拦截器 */\nexport type WakeAppInterceptor = (clientIdentity: ClientIdentity) => boolean;\n\n/** 客户端断开连接的回调函数 */\nexport type DisconnectedCallback = (clientName: string) => void;\n\n/** 消息预处理器 */\nexport type MessagePreprocessor = (reply: IpcMessageReply, message: string) => boolean;\n\n/** 消息接收回调 */\nexport type OnMessageReceived = (clientName: string, type: string, message: string) => void;\n\n/**\n * MoonBridge IPC 服务器抽象类\n */\nexport abstract class MoonBridgeIpcServer {\n /** 任意 IPv4 地址 */\n static readonly anyIPv4 = SocketServer.anyIPv4;\n /** 任意 IPv6 地址 */\n static readonly anyIPv6 = SocketServer.anyIPv6;\n\n /** \n * 构建 MoonBridgeIpcServerBuilder 实例\n * @returns MoonBridgeIpcServerBuilder 实例\n */\n static builder(): MoonBridgeIpcServerBuilder {\n return new MoonBridgeIpcServerBuilder();\n }\n\n /**\n * 服务器名称 \n */\n abstract readonly serverName: string;\n\n /** \n * 启动服务器\n * @returns 是否成功启动\n */\n abstract start(): Promise<boolean>;\n\n /* \n * 停止服务器\n * @returns 是否成功停止\n */\n abstract stop(): Promise<void>;\n\n /** \n * 服务器地址 \n */\n abstract get serverAddress(): string | undefined;\n\n /** \n * 服务器端口 \n */\n abstract get serverPort(): number | undefined;\n}\n\n/**\n * MoonBridge IPC 服务器构造器\n */\nexport class MoonBridgeIpcServerBuilder {\n private _serverName = '';\n private _webSocketServerEndpoint?: WebSocketServerEndpoint;\n private _clientIdentityProviders?: ClientIdentityProvider[];\n private _wakeAppInterceptor?: WakeAppInterceptor;\n private _onClientDisconnected?: DisconnectedCallback;\n private _messagePreprocessor?: MessagePreprocessor;\n private _onMessageReceived?: OnMessageReceived;\n\n /** 设置服务器名称 */\n serverName(name: string): this {\n this._serverName = name;\n return this;\n }\n\n /** 设置 WebSocket 服务端通道监听配置;null 表示不启动 WebSocket。 */\n useWebSocketChannel(endpoint: WebSocketServerEndpoint): this {\n this._webSocketServerEndpoint = endpoint;\n return this;\n }\n\n /** 设置客户端身份信息提供者列表 */\n clientIdentityProviders(providers: ClientIdentityProvider[]): this {\n this._clientIdentityProviders = providers;\n return this;\n }\n\n /** 设置唤醒客户端应用的拦截器 */\n wakeAppInterceptor(interceptor: WakeAppInterceptor): this {\n this._wakeAppInterceptor = interceptor;\n return this;\n }\n\n /** 设置客户端断开连接的回调函数 */\n onClientDisconnected(callback: DisconnectedCallback): this {\n this._onClientDisconnected = callback;\n return this;\n }\n\n /** 设置消息预处理器 */\n messagePreprocessor(preprocessor: MessagePreprocessor): this {\n this._messagePreprocessor = preprocessor;\n return this;\n }\n\n /** 设置消息接收回调 */\n onMessageReceived(callback: OnMessageReceived): this {\n this._onMessageReceived = callback;\n return this;\n }\n\n /**\n * 构建并返回配置完成的服务器实例\n * @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false\n */\n build(makeDefault = false): MoonBridgeIpcServer {\n if (this._webSocketServerEndpoint == null) {\n throw new Error(\n 'TS 端仅支持 WebSocket 通道,请使用 useWebSocketChannel 设置传输配置。',\n );\n }\n\n const server = new RealMoonBridgeIpcServer(\n this._serverName,\n this._webSocketServerEndpoint,\n this._wakeAppInterceptor,\n this._clientIdentityProviders,\n this._onClientDisconnected,\n this._messagePreprocessor,\n this._onMessageReceived,\n );\n\n MoonBridgeIpcServerRegistry.instance.register(server);\n\n if (makeDefault) {\n MoonBridgeIpcServerRegistry.instance.setDefault(server);\n }\n return server;\n }\n}\n\n/**\n * MoonBridge IPC 服务端注册器\n */\nexport class MoonBridgeIpcServerRegistry {\n private static _instance?: MoonBridgeIpcServerRegistry;\n private readonly _serverMap = new Map<string, MoonBridgeIpcServer>();\n\n static get instance(): MoonBridgeIpcServerRegistry {\n return MoonBridgeIpcServerRegistry._instance ??= new MoonBridgeIpcServerRegistry();\n }\n\n setDefault(server: MoonBridgeIpcServer): void {\n this._serverMap.set('__default__', server);\n }\n\n register(server: MoonBridgeIpcServer): void {\n this._serverMap.set(server.serverName, server);\n }\n\n get(serverName?: string): MoonBridgeIpcServer | undefined {\n return this._serverMap.get(serverName ?? '__default__');\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moonbridge-ts",
3
- "version": "0.2.3",
3
+ "version": "0.5.0",
4
4
  "description": "MoonBridge IPC by WebSocket for node(server) and browser(client).",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -13,32 +13,42 @@ import { EventBus } from './types/ipc_event_bus';
13
13
  import { Messenger } from './types/ipc_messenger';
14
14
  import { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';
15
15
 
16
- /** MoonBridge IPC 客户端抽象接口 */
17
- export interface MoonBridgeIpcClient {
18
- /**
19
- * 连接到 IPC 服务器
16
+ /**
17
+ * MoonBridge IPC 客户端抽象接口
18
+ */
19
+ export abstract class MoonBridgeIpcClient {
20
+ /**
21
+ * 创建客户端构建器
20
22
  */
21
- connect(onResult?: IpcConnectionCompletionHandler): void;
23
+ static builder(): MoonBridgeIpcClientBuilder {
24
+ return new MoonBridgeIpcClientBuilder();
25
+ }
26
+
22
27
  /**
23
- * 断开与 IPC 服务器的连接
28
+ * 客户端名称
29
+ */
30
+ abstract readonly clientName: string;
31
+ /**
32
+ * 消息发送器
24
33
  */
25
- disconnect(): Promise<void>;
34
+ abstract readonly messenger: Messenger;
26
35
  /**
27
- * 检查是否已连接到 IPC 服务器
36
+ * 事件总线
28
37
  */
29
- isConnected(): boolean;
38
+ abstract readonly eventBus: EventBus;
39
+
30
40
  /**
31
- * 客户端名称
41
+ * 连接到 IPC 服务器
32
42
  */
33
- readonly clientName: string;
43
+ abstract connect(onResult?: IpcConnectionCompletionHandler): void;
34
44
  /**
35
- * 消息发送器
45
+ * 断开与 IPC 服务器的连接
36
46
  */
37
- readonly messenger: Messenger;
47
+ abstract disconnect(): Promise<void>;
38
48
  /**
39
- * 事件总线
49
+ * 检查是否已连接到 IPC 服务器
40
50
  */
41
- readonly eventBus: EventBus;
51
+ abstract isConnected(): boolean;
42
52
  }
43
53
 
44
54
  // PUBLIC CLASS
@@ -58,13 +68,6 @@ export class MoonBridgeIpcClientBuilder {
58
68
 
59
69
  // PUBLIC METHODS
60
70
 
61
- /**
62
- * 创建客户端构建器
63
- */
64
- static builder(): MoonBridgeIpcClientBuilder {
65
- return new MoonBridgeIpcClientBuilder();
66
- }
67
-
68
71
  /**
69
72
  * 设置客户端名称
70
73
  */
@@ -26,17 +26,44 @@ export type OnMessageReceived = (clientName: string, type: string, message: stri
26
26
  * MoonBridge IPC 服务器抽象类
27
27
  */
28
28
  export abstract class MoonBridgeIpcServer {
29
+ /** 任意 IPv4 地址 */
29
30
  static readonly anyIPv4 = SocketServer.anyIPv4;
31
+ /** 任意 IPv6 地址 */
30
32
  static readonly anyIPv6 = SocketServer.anyIPv6;
31
33
 
34
+ /**
35
+ * 构建 MoonBridgeIpcServerBuilder 实例
36
+ * @returns MoonBridgeIpcServerBuilder 实例
37
+ */
32
38
  static builder(): MoonBridgeIpcServerBuilder {
33
39
  return new MoonBridgeIpcServerBuilder();
34
40
  }
35
41
 
42
+ /**
43
+ * 服务器名称
44
+ */
36
45
  abstract readonly serverName: string;
46
+
47
+ /**
48
+ * 启动服务器
49
+ * @returns 是否成功启动
50
+ */
37
51
  abstract start(): Promise<boolean>;
52
+
53
+ /*
54
+ * 停止服务器
55
+ * @returns 是否成功停止
56
+ */
38
57
  abstract stop(): Promise<void>;
58
+
59
+ /**
60
+ * 服务器地址
61
+ */
39
62
  abstract get serverAddress(): string | undefined;
63
+
64
+ /**
65
+ * 服务器端口
66
+ */
40
67
  abstract get serverPort(): number | undefined;
41
68
  }
42
69