moonbridge-ts 0.2.0 → 0.2.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/moonbridge/index.d.ts +9 -2
- package/dist/moonbridge/index.d.ts.map +1 -1
- package/dist/moonbridge/index.js +55 -6
- package/dist/moonbridge/index.mjs +9 -2
- package/dist/moonbridge/kernel/bridge_module.d.ts +2 -31
- package/dist/moonbridge/kernel/bridge_module.d.ts.map +1 -1
- package/dist/moonbridge/kernel/bridge_module.js.map +1 -1
- package/dist/moonbridge/kernel/bridge_module.mjs.map +1 -1
- package/dist/moonbridge-ipc/extension/bridge_extension.d.ts +1 -1
- package/dist/moonbridge-ipc/extension/bridge_extension.d.ts.map +1 -1
- package/dist/moonbridge-ipc/extension/bridge_extension.js +5 -5
- package/dist/moonbridge-ipc/extension/bridge_extension.js.map +1 -1
- package/dist/moonbridge-ipc/extension/bridge_extension.mjs +5 -5
- package/dist/moonbridge-ipc/extension/bridge_extension.mjs.map +1 -1
- package/dist/moonbridge-ipc/index.d.ts +11 -3
- package/dist/moonbridge-ipc/index.d.ts.map +1 -1
- package/dist/moonbridge-ipc/index.js +75 -19
- package/dist/moonbridge-ipc/index.mjs +11 -3
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.d.ts.map +1 -1
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.js +12 -10
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.js.map +1 -1
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.mjs +12 -10
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.mjs.map +1 -1
- package/package.json +2 -2
- package/src/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.ts +15 -9
- package/dist/bridge_module-2N398tJq.d.ts +0 -126
- package/dist/bridge_module-Dd27cxv9.d.mts +0 -126
- package/dist/index.d.mts +0 -30
- package/dist/ipc_client_component_provider-CayqZGuB.d.ts +0 -205
- package/dist/ipc_client_component_provider-kXpa5anm.d.mts +0 -205
- package/dist/moonbridge/annotation/decorators.d.mts +0 -48
- package/dist/moonbridge/annotation/registry.d.mts +0 -77
- package/dist/moonbridge/index.d.mts +0 -7
- package/dist/moonbridge/kernel/bridge.d.mts +0 -4
- package/dist/moonbridge/kernel/bridge_module.d.mts +0 -4
- package/dist/moonbridge/kernel/executor.d.mts +0 -4
- package/dist/moonbridge/kernel/result_callback.d.mts +0 -19
- package/dist/moonbridge/logger/logger.d.mts +0 -55
- package/dist/moonbridge/message/internal/generic_message_parser.internal.d.mts +0 -18
- package/dist/moonbridge/message/message.d.mts +0 -13
- package/dist/moonbridge/message/message_parser.d.mts +0 -28
- package/dist/moonbridge/message/message_parser_manager.d.mts +0 -21
- package/dist/moonbridge/module/method_invoker.d.mts +0 -43
- package/dist/moonbridge/module/module_creator.d.mts +0 -4
- package/dist/moonbridge/utils/logger.d.mts +0 -9
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.d.mts +0 -68
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.d.mts +0 -23
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.d.mts +0 -54
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.d.mts +0 -90
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.d.mts +0 -134
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.d.mts +0 -29
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.d.mts +0 -17
- package/dist/moonbridge-ipc/client/types/ipc_messenger.d.mts +0 -45
- package/dist/moonbridge-ipc/client/types/ipc_types.d.mts +0 -52
- package/dist/moonbridge-ipc/extension/bridge_extension.d.mts +0 -33
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.d.mts +0 -23
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.d.mts +0 -34
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.d.mts +0 -19
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.d.mts +0 -37
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.d.mts +0 -32
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.d.mts +0 -40
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.d.mts +0 -14
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.d.mts +0 -27
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.d.mts +0 -28
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.d.mts +0 -46
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.d.mts +0 -41
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.d.mts +0 -33
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.d.mts +0 -29
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.d.mts +0 -29
- package/dist/moonbridge-ipc/general/error/ipc_error.d.mts +0 -28
- package/dist/moonbridge-ipc/general/index.d.mts +0 -10
- package/dist/moonbridge-ipc/general/lock/async_lock.d.mts +0 -26
- package/dist/moonbridge-ipc/general/lock/lock.d.mts +0 -10
- package/dist/moonbridge-ipc/general/message/constants/message_types.d.mts +0 -19
- package/dist/moonbridge-ipc/general/message/error.d.mts +0 -14
- package/dist/moonbridge-ipc/general/message/event.d.mts +0 -11
- package/dist/moonbridge-ipc/general/message/handshake.d.mts +0 -16
- package/dist/moonbridge-ipc/general/message/ping.d.mts +0 -9
- package/dist/moonbridge-ipc/general/message/registration.d.mts +0 -9
- package/dist/moonbridge-ipc/general/message/request.d.mts +0 -15
- package/dist/moonbridge-ipc/general/message/response.d.mts +0 -14
- package/dist/moonbridge-ipc/general/message/session_setup.d.mts +0 -23
- package/dist/moonbridge-ipc/general/message/unregistration.d.mts +0 -9
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.d.mts +0 -26
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.d.mts +0 -40
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.d.mts +0 -23
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.d.mts +0 -44
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.d.mts +0 -27
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.d.mts +0 -36
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.d.mts +0 -44
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.d.mts +0 -71
- package/dist/moonbridge-ipc/index.d.mts +0 -26
- package/dist/moonbridge-ipc/server/credential/client_identity.d.mts +0 -38
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.d.mts +0 -33
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.d.mts +0 -54
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.d.mts +0 -76
- package/dist/moonbridge-ipc/utils/env.d.mts +0 -7
- package/dist/moonbridge-ipc/utils/logger.d.mts +0 -9
- package/dist/moonbridge-ipc/utils/string_utils.d.mts +0 -10
- package/dist/wps-launcher/index.d.mts +0 -3
- package/dist/wps-launcher/launcher/wps_app_launcher.d.mts +0 -61
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { SerialMessageChannel, SerialMessageChannelSubscribeOptions } from '../interface/serial_message_channel.mjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* 基于 WebSocket 的 SerialMessageChannel 实现,对应 Flutter lib/general/transport/websocket/websocket_message_channel.dart。
|
|
5
|
-
* 复用 data_frame_codec 帧格式,以二进制帧收发,与 Flutter 端协议一致。
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** 可选日志接口(与 Flutter Logger 简化对应) */
|
|
9
|
-
interface ChannelLogger {
|
|
10
|
-
log(level: string, message: string, meta?: {
|
|
11
|
-
file?: string;
|
|
12
|
-
func?: string;
|
|
13
|
-
}): void;
|
|
14
|
-
}
|
|
15
|
-
interface WebSocketMessageChannelOptions {
|
|
16
|
-
address: string;
|
|
17
|
-
port: number;
|
|
18
|
-
remoteAddress: string;
|
|
19
|
-
remotePort: number;
|
|
20
|
-
logger?: ChannelLogger;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* WebSocket 消息通道
|
|
24
|
-
*/
|
|
25
|
-
declare class WebSocketMessageChannel implements SerialMessageChannel {
|
|
26
|
-
private readonly _ws;
|
|
27
|
-
private readonly _address;
|
|
28
|
-
private readonly _port;
|
|
29
|
-
private readonly _remoteAddress;
|
|
30
|
-
private readonly _remotePort;
|
|
31
|
-
private readonly _logger;
|
|
32
|
-
private readonly _lock;
|
|
33
|
-
constructor(ws: WebSocket, options: WebSocketMessageChannelOptions);
|
|
34
|
-
get address(): string;
|
|
35
|
-
get port(): number;
|
|
36
|
-
get remoteAddress(): string;
|
|
37
|
-
get remotePort(): number;
|
|
38
|
-
sendMessage(message: string): Promise<boolean>;
|
|
39
|
-
close(): Promise<void>;
|
|
40
|
-
destroy(): void;
|
|
41
|
-
subscribe(onMessage: ((value: string) => void) | undefined, options?: SerialMessageChannelSubscribeOptions): () => void;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export { type ChannelLogger, WebSocketMessageChannel, type WebSocketMessageChannelOptions };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { SerialMessageChannel } from '../interface/serial_message_channel.mjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* WebSocket 服务端,基于 HttpServer 升级为 WebSocket。
|
|
5
|
-
*
|
|
6
|
-
* 每收到一次 WebSocket 升级请求即生成一个 [SerialMessageChannel]([WebSocketMessageChannel]),
|
|
7
|
-
* 通过 [onClientConnected] 交给上层,与 [SocketServer] 产出的 [SerialMessageSocket] 契约一致。
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 封装服务器的 IP 地址和端口号信息
|
|
12
|
-
*
|
|
13
|
-
* 该类用于存储和展示服务器的 IP 地址和端口号信息。
|
|
14
|
-
*/
|
|
15
|
-
declare class ServerAddressInfo {
|
|
16
|
-
/** 服务器的 IP 地址 */
|
|
17
|
-
readonly ip: string;
|
|
18
|
-
/** 服务器的端口号 */
|
|
19
|
-
readonly port: number;
|
|
20
|
-
constructor(ip: string, port: number);
|
|
21
|
-
toString(): string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* SocketServer 类用于处理服务器端的 TCP 通信。
|
|
25
|
-
*
|
|
26
|
-
* 它可以启动服务器并监听来自客户端的连接。
|
|
27
|
-
*/
|
|
28
|
-
declare abstract class SocketServer {
|
|
29
|
-
static readonly anyIPv4 = "anyIPv4";
|
|
30
|
-
static readonly anyIPv6 = "anyIPv6";
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* WebSocket 服务端,基于 HttpServer 升级为 WebSocket。
|
|
34
|
-
* 仅支持 Node 环境,使用 ws + Node http。
|
|
35
|
-
*/
|
|
36
|
-
declare class WebSocketServer {
|
|
37
|
-
/** 绑定地址,同 [SocketServer] 语义(如 `anyIPv4`) */
|
|
38
|
-
readonly address: string;
|
|
39
|
-
/** 监听端口(建议与 Socket 端口不同) */
|
|
40
|
-
readonly port: number;
|
|
41
|
-
/** 升级路径,如 `/` 或 `/ws` */
|
|
42
|
-
readonly path: string;
|
|
43
|
-
private _httpServer?;
|
|
44
|
-
private _isServerRunning;
|
|
45
|
-
private _resolvedAddress;
|
|
46
|
-
/**
|
|
47
|
-
* 构造 WebSocket 服务端。
|
|
48
|
-
* @param address 绑定地址
|
|
49
|
-
* @param port 监听端口
|
|
50
|
-
* @param options.path 升级路径,默认 `'/'`
|
|
51
|
-
*/
|
|
52
|
-
constructor(address: string, port: number, options?: {
|
|
53
|
-
path?: string;
|
|
54
|
-
});
|
|
55
|
-
/**
|
|
56
|
-
* 启动 HTTP 服务并处理 WebSocket 升级;每建立一个 WebSocket 连接即调用 [onClientConnected]。
|
|
57
|
-
* @param onClientConnected 客户端连接回调
|
|
58
|
-
* @returns true 表示启动成功,false 表示失败
|
|
59
|
-
*/
|
|
60
|
-
startServer(onClientConnected: (channel: SerialMessageChannel) => void): Promise<boolean>;
|
|
61
|
-
/**
|
|
62
|
-
* 关闭 HTTP 服务并停止接受新连接
|
|
63
|
-
*/
|
|
64
|
-
close(): Promise<void>;
|
|
65
|
-
/** 是否正在运行 */
|
|
66
|
-
get isServerRunning(): boolean;
|
|
67
|
-
/** 本机地址与端口(若已启动) */
|
|
68
|
-
get serverAddressInfo(): ServerAddressInfo | undefined;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export { ServerAddressInfo, SocketServer, WebSocketServer };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export { MoonBridgeIpcClient, MoonBridgeIpcClientBuilder, MoonBridgeIpcClientRegistry } from './client/moonbridge_ipc_client.mjs';
|
|
2
|
-
export { AppInstallationPath, AppLaunchIdentifier } from './general/app_launch/model/app_info.mjs';
|
|
3
|
-
export { AppLaunchArguments, AppLaunchResult, emptyAppLaunchArguments } from './general/app_launch/model/app_launch_models.mjs';
|
|
4
|
-
export { APP_NOT_INSTALLED, LAUNCH_TIMEOUT, PERMISSION_DENIED, UNKNOWN } from './general/app_launch/model/app_launch_error_codes.mjs';
|
|
5
|
-
export { PortCandidateRule, maxAttemptsCap } from './general/config/port_candidate_rule.mjs';
|
|
6
|
-
export { WebSocketServerEndpoint } from './general/config/websocket_server_endpoint.mjs';
|
|
7
|
-
export { ServerAddressInfo, SocketServer, WebSocketServer } from './general/transport/websocket/websocket_server.mjs';
|
|
8
|
-
export { IpcError } from './general/error/ipc_error.mjs';
|
|
9
|
-
export { MessageType } from './general/message/constants/message_types.mjs';
|
|
10
|
-
export { Event } from './general/message/event.mjs';
|
|
11
|
-
export { DisconnectedCallback, IpcMessageReply, MessagePreprocessor, MoonBridgeIpcServer, MoonBridgeIpcServerBuilder, MoonBridgeIpcServerRegistry, OnMessageReceived, WakeAppInterceptor } from './server/moonbridge_ipc_server.mjs';
|
|
12
|
-
export { ClientIdentity, ClientIdentityProvider } from './server/credential/client_identity.mjs';
|
|
13
|
-
export { MessageCallOptions, MessageEndpoint, Messenger } from './client/types/ipc_messenger.mjs';
|
|
14
|
-
export { EventBus, Subscriber } from './client/types/ipc_event_bus.mjs';
|
|
15
|
-
export { IpcMessageStrategy } from './client/types/ipc_message_strategy.mjs';
|
|
16
|
-
export { ConnectionObserver, IpcConnectionCompletionHandler, IpcErrorCallback, IpcResponseCallback, MessageInterceptor } from './client/types/ipc_types.mjs';
|
|
17
|
-
export { BridgeModuleUtils } from './extension/bridge_extension.mjs';
|
|
18
|
-
import './general/app_launch/app_launcher.mjs';
|
|
19
|
-
import './general/transport/interface/serial_message_channel.mjs';
|
|
20
|
-
import './general/message/request.mjs';
|
|
21
|
-
import './general/message/response.mjs';
|
|
22
|
-
import './general/message/error.mjs';
|
|
23
|
-
import '../bridge_module-Dd27cxv9.mjs';
|
|
24
|
-
import '../moonbridge/message/message_parser_manager.mjs';
|
|
25
|
-
import '../moonbridge/message/message.mjs';
|
|
26
|
-
import '../moonbridge/message/message_parser.mjs';
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { AppInstallationPath, AppLaunchIdentifier } from '../../general/app_launch/model/app_info.mjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* IPC 客户端身份信息类
|
|
5
|
-
*
|
|
6
|
-
* 该类用于封装 IPC 客户端的身份信息,包括客户端名称、应用路径和启动标识符。
|
|
7
|
-
*
|
|
8
|
-
* 适用于需要通过跨平台(如 Windows、macOS、iOS 和 Android)的应用身份管理和操作场景。
|
|
9
|
-
*
|
|
10
|
-
* - **clientName**: 客户端的名称,用于标识特定的客户端应用。
|
|
11
|
-
* - **appInstallationPath**: 表示应用在不同平台上的安装路径,可选。
|
|
12
|
-
* - **appLaunchIdentifier**: 应用的启动标识符信息,用于唤醒或启动应用程序,可选。
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/** 提供客户端身份信息的函数类型 */
|
|
16
|
-
type ClientIdentityProvider = (clientName: string) => ClientIdentity | undefined;
|
|
17
|
-
declare class ClientIdentity {
|
|
18
|
-
/** 客户端名称 */
|
|
19
|
-
readonly clientName: string;
|
|
20
|
-
/** 应用的安装路径信息 */
|
|
21
|
-
readonly appInstallationPath?: AppInstallationPath;
|
|
22
|
-
/** 应用的启动标识符信息 */
|
|
23
|
-
readonly appLaunchIdentifier?: AppLaunchIdentifier;
|
|
24
|
-
/**
|
|
25
|
-
* 构造函数
|
|
26
|
-
*
|
|
27
|
-
* @param clientName 客户端名称,用于标识特定的 IPC 客户端
|
|
28
|
-
* @param options.appInstallationPath 客户端的安装路径信息,默认为空
|
|
29
|
-
* @param options.appLaunchIdentifier 客户端的启动标识符信息,默认为空
|
|
30
|
-
*/
|
|
31
|
-
constructor(clientName: string, options?: {
|
|
32
|
-
appInstallationPath?: AppInstallationPath;
|
|
33
|
-
appLaunchIdentifier?: AppLaunchIdentifier;
|
|
34
|
-
});
|
|
35
|
-
toString(): string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export { ClientIdentity, type ClientIdentityProvider };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ClientIdentityProvider, ClientIdentity } from '../../credential/client_identity.mjs';
|
|
2
|
-
import '../../../general/app_launch/model/app_info.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* IPC 客户端身份验证管理器类
|
|
6
|
-
*
|
|
7
|
-
* 该类用于管理和验证 IPC 客户端的身份信息。它通过维护一个客户端身份信息的映射表
|
|
8
|
-
* 和多个身份信息提供者来提供身份验证功能。
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
declare class ClientIdentityManager {
|
|
12
|
-
/** 客户端身份信息提供者列表 */
|
|
13
|
-
private readonly _providers;
|
|
14
|
-
/**
|
|
15
|
-
* 添加客户端身份信息提供者
|
|
16
|
-
*
|
|
17
|
-
* 该方法用于添加一个客户端身份信息提供者到提供者列表中。
|
|
18
|
-
*
|
|
19
|
-
* @param provider 一个 [ClientIdentityProvider] 类型的函数,用于提供客户端身份信息
|
|
20
|
-
*/
|
|
21
|
-
addClientIdentityProvider(provider: ClientIdentityProvider): void;
|
|
22
|
-
/**
|
|
23
|
-
* 获取 IPC 客户端身份信息
|
|
24
|
-
*
|
|
25
|
-
* 该方法用于根据客户端名称获取对应的客户端身份信息。
|
|
26
|
-
*
|
|
27
|
-
* @param clientName 客户端名称
|
|
28
|
-
* @returns 对应的 [ClientIdentity] 对象,如果未找到则返回 null
|
|
29
|
-
*/
|
|
30
|
-
getClientIdentity(clientName: string): ClientIdentity | undefined;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export { ClientIdentityManager };
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { WebSocketServerEndpoint } from '../../general/config/websocket_server_endpoint.mjs';
|
|
2
|
-
import { MoonBridgeIpcServer, WakeAppInterceptor, DisconnectedCallback, MessagePreprocessor, OnMessageReceived } from '../moonbridge_ipc_server.mjs';
|
|
3
|
-
import { ClientIdentityProvider } from '../credential/client_identity.mjs';
|
|
4
|
-
import '../../general/config/port_candidate_rule.mjs';
|
|
5
|
-
import '../../general/app_launch/model/app_info.mjs';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* MoonBridge IPC 服务器实现类
|
|
9
|
-
*
|
|
10
|
-
* 该类用于管理 IPC 服务器,包括启动服务器、处理客户端连接和消息等功能。
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
declare class RealMoonBridgeIpcServer implements MoonBridgeIpcServer {
|
|
14
|
-
private readonly _serverName;
|
|
15
|
-
private readonly _wakeAppInterceptor?;
|
|
16
|
-
private readonly _onClientDisconnected?;
|
|
17
|
-
private readonly _messagePreprocessor?;
|
|
18
|
-
private readonly _onMessageReceived?;
|
|
19
|
-
private readonly _webSocketServerEndpoint?;
|
|
20
|
-
private readonly _clientSocketMap;
|
|
21
|
-
private readonly _addressToClientNameMap;
|
|
22
|
-
private readonly _clientIdentityManager;
|
|
23
|
-
private readonly _timerMap;
|
|
24
|
-
private readonly _sessionSetupRequests;
|
|
25
|
-
private _webSocketServer?;
|
|
26
|
-
constructor(serverName: string, webSocketServerEndpoint?: WebSocketServerEndpoint, wakeAppInterceptor?: WakeAppInterceptor, clientIdentityProviders?: ClientIdentityProvider[], onClientDisconnected?: DisconnectedCallback, messagePreprocessor?: MessagePreprocessor, onMessageReceived?: OnMessageReceived);
|
|
27
|
-
get serverName(): string;
|
|
28
|
-
start(): Promise<boolean>;
|
|
29
|
-
stop(): Promise<void>;
|
|
30
|
-
get serverAddress(): string | undefined;
|
|
31
|
-
get serverPort(): number | undefined;
|
|
32
|
-
private _addClient;
|
|
33
|
-
private _removeClient;
|
|
34
|
-
private _getClientName;
|
|
35
|
-
private _getClientAddress;
|
|
36
|
-
private _onMessage;
|
|
37
|
-
private _onRegistration;
|
|
38
|
-
private _onUnregistration;
|
|
39
|
-
private _onEvent;
|
|
40
|
-
private _onError;
|
|
41
|
-
private _onRequest;
|
|
42
|
-
private _onResponse;
|
|
43
|
-
private _onSessionSetupRequest;
|
|
44
|
-
private _onPing;
|
|
45
|
-
private _onHandshake;
|
|
46
|
-
private _validateClientIdentity;
|
|
47
|
-
private _handleExistingTargetClient;
|
|
48
|
-
private _wakeUpTargetClient;
|
|
49
|
-
private _sendSessionSetupResponse;
|
|
50
|
-
private _cancelClientTimer;
|
|
51
|
-
private _processSessionSetupRequests;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export { RealMoonBridgeIpcServer };
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint.mjs';
|
|
2
|
-
import { ClientIdentityProvider, ClientIdentity } from './credential/client_identity.mjs';
|
|
3
|
-
import '../general/config/port_candidate_rule.mjs';
|
|
4
|
-
import '../general/app_launch/model/app_info.mjs';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* MoonBridge IPC 服务器入口类
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/** 消息回复函数,用于向客户端发送响应消息 */
|
|
11
|
-
type IpcMessageReply = (message: string) => Promise<boolean>;
|
|
12
|
-
/** 唤醒客户端应用拦截器 */
|
|
13
|
-
type WakeAppInterceptor = (clientIdentity: ClientIdentity) => boolean;
|
|
14
|
-
/** 客户端断开连接的回调函数 */
|
|
15
|
-
type DisconnectedCallback = (clientName: string) => void;
|
|
16
|
-
/** 消息预处理器 */
|
|
17
|
-
type MessagePreprocessor = (reply: IpcMessageReply, message: string) => boolean;
|
|
18
|
-
/** 消息接收回调 */
|
|
19
|
-
type OnMessageReceived = (clientName: string, type: string, message: string) => void;
|
|
20
|
-
/**
|
|
21
|
-
* MoonBridge IPC 服务器抽象类
|
|
22
|
-
*/
|
|
23
|
-
declare abstract class MoonBridgeIpcServer {
|
|
24
|
-
static readonly anyIPv4 = "anyIPv4";
|
|
25
|
-
static readonly anyIPv6 = "anyIPv6";
|
|
26
|
-
static builder(): MoonBridgeIpcServerBuilder;
|
|
27
|
-
abstract readonly serverName: string;
|
|
28
|
-
abstract start(): Promise<boolean>;
|
|
29
|
-
abstract stop(): Promise<void>;
|
|
30
|
-
abstract get serverAddress(): string | undefined;
|
|
31
|
-
abstract get serverPort(): number | undefined;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* MoonBridge IPC 服务器构造器
|
|
35
|
-
*/
|
|
36
|
-
declare class MoonBridgeIpcServerBuilder {
|
|
37
|
-
private _serverName;
|
|
38
|
-
private _webSocketServerEndpoint?;
|
|
39
|
-
private _clientIdentityProviders?;
|
|
40
|
-
private _wakeAppInterceptor?;
|
|
41
|
-
private _onClientDisconnected?;
|
|
42
|
-
private _messagePreprocessor?;
|
|
43
|
-
private _onMessageReceived?;
|
|
44
|
-
/** 设置服务器名称 */
|
|
45
|
-
serverName(name: string): this;
|
|
46
|
-
/** 设置 WebSocket 服务端通道监听配置;null 表示不启动 WebSocket。 */
|
|
47
|
-
useWebSocketChannel(endpoint: WebSocketServerEndpoint): this;
|
|
48
|
-
/** 设置客户端身份信息提供者列表 */
|
|
49
|
-
clientIdentityProviders(providers: ClientIdentityProvider[]): this;
|
|
50
|
-
/** 设置唤醒客户端应用的拦截器 */
|
|
51
|
-
wakeAppInterceptor(interceptor: WakeAppInterceptor): this;
|
|
52
|
-
/** 设置客户端断开连接的回调函数 */
|
|
53
|
-
onClientDisconnected(callback: DisconnectedCallback): this;
|
|
54
|
-
/** 设置消息预处理器 */
|
|
55
|
-
messagePreprocessor(preprocessor: MessagePreprocessor): this;
|
|
56
|
-
/** 设置消息接收回调 */
|
|
57
|
-
onMessageReceived(callback: OnMessageReceived): this;
|
|
58
|
-
/**
|
|
59
|
-
* 构建并返回配置完成的服务器实例
|
|
60
|
-
* @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false
|
|
61
|
-
*/
|
|
62
|
-
build(makeDefault?: boolean): MoonBridgeIpcServer;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* MoonBridge IPC 服务端注册器
|
|
66
|
-
*/
|
|
67
|
-
declare class MoonBridgeIpcServerRegistry {
|
|
68
|
-
private static _instance?;
|
|
69
|
-
private readonly _serverMap;
|
|
70
|
-
static get instance(): MoonBridgeIpcServerRegistry;
|
|
71
|
-
setDefault(server: MoonBridgeIpcServer): void;
|
|
72
|
-
register(server: MoonBridgeIpcServer): void;
|
|
73
|
-
get(serverName?: string): MoonBridgeIpcServer | undefined;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export { type DisconnectedCallback, type IpcMessageReply, type MessagePreprocessor, MoonBridgeIpcServer, MoonBridgeIpcServerBuilder, MoonBridgeIpcServerRegistry, type OnMessageReceived, type WakeAppInterceptor };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 字符串工具,对应 Flutter lib/general/utils/string_utils.dart StringExtension.generateRandomString。
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* 生成指定长度的随机字符串。
|
|
6
|
-
* @param length - 长度,默认 8
|
|
7
|
-
*/
|
|
8
|
-
declare function generateRandomString(length?: number): string;
|
|
9
|
-
|
|
10
|
-
export { generateRandomString };
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { AppLauncher } from '../../moonbridge-ipc/general/app_launch/app_launcher.mjs';
|
|
2
|
-
import { AppLaunchResult } from '../../moonbridge-ipc/general/app_launch/model/app_launch_models.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* WPS 加载项专属的 AppLauncher 实现。
|
|
6
|
-
* 使用 electron.shell.openExternal 或多种 fallback(模拟链接点击、location.href、iframe、window.open)触发 deeplink;
|
|
7
|
-
* 不包含 WPS.ShowTip、引导下载页等业务层能力,由 wps-addin 负责。
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* fallback 触发方式:模拟链接点击、location.href、隐藏 iframe、window.open
|
|
12
|
-
*/
|
|
13
|
-
type FallbackMethod = 'linkClick' | 'locationHref' | 'iframe' | 'windowOpen';
|
|
14
|
-
/**
|
|
15
|
-
* WpsAppLauncher 的配置项。
|
|
16
|
-
* 仅包含唤起所需参数;用户反馈(WPS.ShowTip、引导下载页)由 wps-addin 业务层负责。
|
|
17
|
-
*/
|
|
18
|
-
interface WpsAppLauncherOptions {
|
|
19
|
-
/**
|
|
20
|
-
* 完整的 Deeplink URL,格式必须为 scheme + "://" + "xxx"(xxx 可选)。
|
|
21
|
-
* 例如:server:// 或 server://link?source=wps。
|
|
22
|
-
* 强制要求:`://` 必须存在,调用方传入什么就使用什么,不做二次加工。
|
|
23
|
-
*/
|
|
24
|
-
appUrl: string;
|
|
25
|
-
/**
|
|
26
|
-
* electron 不可用时使用的 fallback 方式。默认 linkClick(模拟链接点击,多数 WebView 允许)。
|
|
27
|
-
* 可切换为 locationHref、iframe、windowOpen 用于测试。
|
|
28
|
-
*/
|
|
29
|
-
fallbackMethod?: FallbackMethod;
|
|
30
|
-
/**
|
|
31
|
-
* 为 true 时依次执行 linkClick、locationHref、iframe、window.open(间隔 300ms),用于调试。
|
|
32
|
-
* 会多次触发 scheme,仅用于验证哪种方式在 WPS WebView 中有效。
|
|
33
|
-
*/
|
|
34
|
-
tryAllMethods?: boolean;
|
|
35
|
-
}
|
|
36
|
-
declare global {
|
|
37
|
-
interface Window {
|
|
38
|
-
electron?: {
|
|
39
|
-
shell?: {
|
|
40
|
-
openExternal: (url: string) => void;
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* WPS 加载项专属的 AppLauncher 实现。
|
|
47
|
-
*/
|
|
48
|
-
declare class WpsAppLauncher implements AppLauncher {
|
|
49
|
-
private readonly appUrl;
|
|
50
|
-
private readonly fallbackMethod;
|
|
51
|
-
private readonly tryAllMethods;
|
|
52
|
-
constructor(options: WpsAppLauncherOptions);
|
|
53
|
-
launchApp(): Promise<AppLaunchResult>;
|
|
54
|
-
private triggerByLinkClick;
|
|
55
|
-
private triggerByLocationHref;
|
|
56
|
-
private triggerByIframe;
|
|
57
|
-
private triggerByWindowOpen;
|
|
58
|
-
private runFallback;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { type FallbackMethod, WpsAppLauncher, type WpsAppLauncherOptions };
|