moonbridge-ts 0.1.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.
- package/.eslintignore +5 -0
- package/.eslintrc.cjs +27 -0
- package/.prettierignore +5 -0
- package/.prettierrc +7 -0
- package/DEPENDENCIES.md +8 -0
- package/README.md +303 -0
- package/dist/bridge_module-2N398tJq.d.ts +126 -0
- package/dist/bridge_module-Dd27cxv9.d.mts +126 -0
- package/dist/index.d.mts +30 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/ipc_client_component_provider-CayqZGuB.d.ts +205 -0
- package/dist/ipc_client_component_provider-kXpa5anm.d.mts +205 -0
- package/dist/moonbridge/annotation/decorators.d.mts +48 -0
- package/dist/moonbridge/annotation/decorators.d.ts +43 -0
- package/dist/moonbridge/annotation/decorators.d.ts.map +1 -0
- package/dist/moonbridge/annotation/decorators.js +55 -0
- package/dist/moonbridge/annotation/decorators.js.map +1 -0
- package/dist/moonbridge/annotation/decorators.mjs +52 -0
- package/dist/moonbridge/annotation/decorators.mjs.map +1 -0
- package/dist/moonbridge/annotation/registry.d.mts +77 -0
- package/dist/moonbridge/annotation/registry.d.ts +72 -0
- package/dist/moonbridge/annotation/registry.d.ts.map +1 -0
- package/dist/moonbridge/annotation/registry.js +79 -0
- package/dist/moonbridge/annotation/registry.js.map +1 -0
- package/dist/moonbridge/annotation/registry.mjs +77 -0
- package/dist/moonbridge/annotation/registry.mjs.map +1 -0
- package/dist/moonbridge/index.d.mts +7 -0
- package/dist/moonbridge/index.d.ts +6 -0
- package/dist/moonbridge/index.d.ts.map +1 -0
- package/dist/moonbridge/index.js +42 -0
- package/dist/moonbridge/index.js.map +1 -0
- package/dist/moonbridge/index.mjs +7 -0
- package/dist/moonbridge/index.mjs.map +1 -0
- package/dist/moonbridge/kernel/bridge.d.mts +4 -0
- package/dist/moonbridge/kernel/bridge.d.ts +22 -0
- package/dist/moonbridge/kernel/bridge.d.ts.map +1 -0
- package/dist/moonbridge/kernel/bridge.js +4 -0
- package/dist/moonbridge/kernel/bridge.js.map +1 -0
- package/dist/moonbridge/kernel/bridge.mjs +3 -0
- package/dist/moonbridge/kernel/bridge.mjs.map +1 -0
- package/dist/moonbridge/kernel/bridge_module.d.mts +4 -0
- package/dist/moonbridge/kernel/bridge_module.d.ts +53 -0
- package/dist/moonbridge/kernel/bridge_module.d.ts.map +1 -0
- package/dist/moonbridge/kernel/bridge_module.js +22 -0
- package/dist/moonbridge/kernel/bridge_module.js.map +1 -0
- package/dist/moonbridge/kernel/bridge_module.mjs +20 -0
- package/dist/moonbridge/kernel/bridge_module.mjs.map +1 -0
- package/dist/moonbridge/kernel/executor.d.mts +4 -0
- package/dist/moonbridge/kernel/executor.d.ts +24 -0
- package/dist/moonbridge/kernel/executor.d.ts.map +1 -0
- package/dist/moonbridge/kernel/executor.js +22 -0
- package/dist/moonbridge/kernel/executor.js.map +1 -0
- package/dist/moonbridge/kernel/executor.mjs +20 -0
- package/dist/moonbridge/kernel/executor.mjs.map +1 -0
- package/dist/moonbridge/kernel/result_callback.d.mts +19 -0
- package/dist/moonbridge/kernel/result_callback.d.ts +18 -0
- package/dist/moonbridge/kernel/result_callback.d.ts.map +1 -0
- package/dist/moonbridge/kernel/result_callback.js +4 -0
- package/dist/moonbridge/kernel/result_callback.js.map +1 -0
- package/dist/moonbridge/kernel/result_callback.mjs +3 -0
- package/dist/moonbridge/kernel/result_callback.mjs.map +1 -0
- package/dist/moonbridge/logger/logger.d.mts +55 -0
- package/dist/moonbridge/logger/logger.d.ts +54 -0
- package/dist/moonbridge/logger/logger.d.ts.map +1 -0
- package/dist/moonbridge/logger/logger.js +67 -0
- package/dist/moonbridge/logger/logger.js.map +1 -0
- package/dist/moonbridge/logger/logger.mjs +65 -0
- package/dist/moonbridge/logger/logger.mjs.map +1 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.d.mts +18 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.d.ts +16 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.d.ts.map +1 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.js +29 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.js.map +1 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.mjs +27 -0
- package/dist/moonbridge/message/internal/generic_message_parser.internal.mjs.map +1 -0
- package/dist/moonbridge/message/message.d.mts +13 -0
- package/dist/moonbridge/message/message.d.ts +12 -0
- package/dist/moonbridge/message/message.d.ts.map +1 -0
- package/dist/moonbridge/message/message.js +4 -0
- package/dist/moonbridge/message/message.js.map +1 -0
- package/dist/moonbridge/message/message.mjs +3 -0
- package/dist/moonbridge/message/message.mjs.map +1 -0
- package/dist/moonbridge/message/message_parser.d.mts +28 -0
- package/dist/moonbridge/message/message_parser.d.ts +26 -0
- package/dist/moonbridge/message/message_parser.d.ts.map +1 -0
- package/dist/moonbridge/message/message_parser.js +11 -0
- package/dist/moonbridge/message/message_parser.js.map +1 -0
- package/dist/moonbridge/message/message_parser.mjs +8 -0
- package/dist/moonbridge/message/message_parser.mjs.map +1 -0
- package/dist/moonbridge/message/message_parser_manager.d.mts +21 -0
- package/dist/moonbridge/message/message_parser_manager.d.ts +19 -0
- package/dist/moonbridge/message/message_parser_manager.d.ts.map +1 -0
- package/dist/moonbridge/message/message_parser_manager.js +60 -0
- package/dist/moonbridge/message/message_parser_manager.js.map +1 -0
- package/dist/moonbridge/message/message_parser_manager.mjs +58 -0
- package/dist/moonbridge/message/message_parser_manager.mjs.map +1 -0
- package/dist/moonbridge/module/method_invoker.d.mts +43 -0
- package/dist/moonbridge/module/method_invoker.d.ts +38 -0
- package/dist/moonbridge/module/method_invoker.d.ts.map +1 -0
- package/dist/moonbridge/module/method_invoker.js +68 -0
- package/dist/moonbridge/module/method_invoker.js.map +1 -0
- package/dist/moonbridge/module/method_invoker.mjs +65 -0
- package/dist/moonbridge/module/method_invoker.mjs.map +1 -0
- package/dist/moonbridge/module/module_creator.d.mts +4 -0
- package/dist/moonbridge/module/module_creator.d.ts +28 -0
- package/dist/moonbridge/module/module_creator.d.ts.map +1 -0
- package/dist/moonbridge/module/module_creator.js +45 -0
- package/dist/moonbridge/module/module_creator.js.map +1 -0
- package/dist/moonbridge/module/module_creator.mjs +43 -0
- package/dist/moonbridge/module/module_creator.mjs.map +1 -0
- package/dist/moonbridge/utils/logger.d.mts +9 -0
- package/dist/moonbridge/utils/logger.d.ts +6 -0
- package/dist/moonbridge/utils/logger.d.ts.map +1 -0
- package/dist/moonbridge/utils/logger.js +9 -0
- package/dist/moonbridge/utils/logger.js.map +1 -0
- package/dist/moonbridge/utils/logger.mjs +7 -0
- package/dist/moonbridge/utils/logger.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.d.ts +41 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.js +45 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.mjs +43 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.d.mts +68 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.d.ts +47 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.js +163 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.mjs +161 -0
- package/dist/moonbridge-ipc/client/internal/bridge/ipc_client_executor.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.d.ts +37 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.js +161 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.mjs +159 -0
- package/dist/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.d.ts +59 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.js +364 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.mjs +362 -0
- package/dist/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.d.ts +28 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.js +102 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.mjs +100 -0
- package/dist/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.d.ts +16 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.js +62 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.mjs +60 -0
- package/dist/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.d.ts +27 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.js +4 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.mjs +3 -0
- package/dist/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.d.mts +23 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.d.ts +15 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.js +56 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.mjs +54 -0
- package/dist/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.d.mts +54 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.d.ts +40 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.js +102 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.mjs +100 -0
- package/dist/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.d.mts +90 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.d.ts +82 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.js +55 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.js.map +1 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.mjs +53 -0
- package/dist/moonbridge-ipc/client/internal/settings/ipc_client_settings.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.d.mts +134 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.d.ts +124 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.js +156 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.js.map +1 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.mjs +153 -0
- package/dist/moonbridge-ipc/client/moonbridge_ipc_client.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.d.mts +29 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.d.ts +26 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.js +12 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.js.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.mjs +10 -0
- package/dist/moonbridge-ipc/client/types/ipc_event_bus.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.d.mts +17 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.d.ts +16 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.js +18 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.js.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.mjs +16 -0
- package/dist/moonbridge-ipc/client/types/ipc_message_strategy.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.d.mts +45 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.d.ts +38 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.js +4 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.js.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.mjs +3 -0
- package/dist/moonbridge-ipc/client/types/ipc_messenger.mjs.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.d.mts +52 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.d.ts +49 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.d.ts.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.js +20 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.js.map +1 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.mjs +17 -0
- package/dist/moonbridge-ipc/client/types/ipc_types.mjs.map +1 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.d.mts +33 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.d.ts +15 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.d.ts.map +1 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.js +31 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.js.map +1 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.mjs +29 -0
- package/dist/moonbridge-ipc/extension/bridge_extension.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.d.mts +23 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.d.ts +20 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.js +4 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.mjs +3 -0
- package/dist/moonbridge-ipc/general/app_launch/app_launcher.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.d.mts +34 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.d.ts +33 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.js +70 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.mjs +66 -0
- package/dist/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.d.mts +19 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.d.ts +16 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.js +19 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.mjs +17 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.d.mts +37 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.d.ts +34 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.js +116 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.mjs +114 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/node_launcher.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.d.mts +32 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.d.ts +29 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.js +60 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.mjs +58 -0
- package/dist/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.d.mts +40 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.d.ts +39 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.js +41 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.mjs +38 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_info.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.d.mts +14 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.d.ts +13 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.js +13 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.mjs +8 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.d.mts +27 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.d.ts +26 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.js +28 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.mjs +24 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.d.mts +28 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.d.ts +25 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.js +49 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.mjs +47 -0
- package/dist/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.d.mts +46 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.d.ts +44 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.js +47 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.js.map +1 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.mjs +45 -0
- package/dist/moonbridge-ipc/general/app_launch/platform_app_launcher.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.d.mts +41 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.d.ts +40 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.js +65 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.js.map +1 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.mjs +62 -0
- package/dist/moonbridge-ipc/general/config/port_candidate_rule.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.d.mts +33 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.d.ts +30 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.js +32 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.js.map +1 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.mjs +30 -0
- package/dist/moonbridge-ipc/general/config/websocket_server_endpoint.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.d.mts +29 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.d.ts +26 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.js +118 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.js.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.mjs +116 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_decoder.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.d.mts +29 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.d.ts +26 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.js +93 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.js.map +1 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.mjs +91 -0
- package/dist/moonbridge-ipc/general/encode/ipc_message_encoder.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.d.mts +28 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.d.ts +27 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.js +30 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.js.map +1 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.mjs +28 -0
- package/dist/moonbridge-ipc/general/error/ipc_error.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/index.d.mts +10 -0
- package/dist/moonbridge-ipc/general/index.d.ts +10 -0
- package/dist/moonbridge-ipc/general/index.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/index.js +70 -0
- package/dist/moonbridge-ipc/general/index.js.map +1 -0
- package/dist/moonbridge-ipc/general/index.mjs +11 -0
- package/dist/moonbridge-ipc/general/index.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.d.mts +26 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.d.ts +23 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.js +48 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.js.map +1 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.mjs +46 -0
- package/dist/moonbridge-ipc/general/lock/async_lock.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/lock/lock.d.mts +10 -0
- package/dist/moonbridge-ipc/general/lock/lock.d.ts +9 -0
- package/dist/moonbridge-ipc/general/lock/lock.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/lock/lock.js +4 -0
- package/dist/moonbridge-ipc/general/lock/lock.js.map +1 -0
- package/dist/moonbridge-ipc/general/lock/lock.mjs +3 -0
- package/dist/moonbridge-ipc/general/lock/lock.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.d.mts +19 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.d.ts +18 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.js +19 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.mjs +17 -0
- package/dist/moonbridge-ipc/general/message/constants/message_types.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/error.d.mts +14 -0
- package/dist/moonbridge-ipc/general/message/error.d.ts +13 -0
- package/dist/moonbridge-ipc/general/message/error.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/error.js +16 -0
- package/dist/moonbridge-ipc/general/message/error.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/error.mjs +14 -0
- package/dist/moonbridge-ipc/general/message/error.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/event.d.mts +11 -0
- package/dist/moonbridge-ipc/general/message/event.d.ts +10 -0
- package/dist/moonbridge-ipc/general/message/event.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/event.js +13 -0
- package/dist/moonbridge-ipc/general/message/event.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/event.mjs +11 -0
- package/dist/moonbridge-ipc/general/message/event.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/handshake.d.mts +16 -0
- package/dist/moonbridge-ipc/general/message/handshake.d.ts +15 -0
- package/dist/moonbridge-ipc/general/message/handshake.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/handshake.js +18 -0
- package/dist/moonbridge-ipc/general/message/handshake.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/handshake.mjs +16 -0
- package/dist/moonbridge-ipc/general/message/handshake.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/ping.d.mts +9 -0
- package/dist/moonbridge-ipc/general/message/ping.d.ts +8 -0
- package/dist/moonbridge-ipc/general/message/ping.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/ping.js +11 -0
- package/dist/moonbridge-ipc/general/message/ping.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/ping.mjs +9 -0
- package/dist/moonbridge-ipc/general/message/ping.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/registration.d.mts +9 -0
- package/dist/moonbridge-ipc/general/message/registration.d.ts +8 -0
- package/dist/moonbridge-ipc/general/message/registration.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/registration.js +11 -0
- package/dist/moonbridge-ipc/general/message/registration.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/registration.mjs +9 -0
- package/dist/moonbridge-ipc/general/message/registration.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/request.d.mts +15 -0
- package/dist/moonbridge-ipc/general/message/request.d.ts +14 -0
- package/dist/moonbridge-ipc/general/message/request.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/request.js +16 -0
- package/dist/moonbridge-ipc/general/message/request.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/request.mjs +14 -0
- package/dist/moonbridge-ipc/general/message/request.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/response.d.mts +14 -0
- package/dist/moonbridge-ipc/general/message/response.d.ts +13 -0
- package/dist/moonbridge-ipc/general/message/response.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/response.js +16 -0
- package/dist/moonbridge-ipc/general/message/response.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/response.mjs +14 -0
- package/dist/moonbridge-ipc/general/message/response.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/session_setup.d.mts +23 -0
- package/dist/moonbridge-ipc/general/message/session_setup.d.ts +22 -0
- package/dist/moonbridge-ipc/general/message/session_setup.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/session_setup.js +27 -0
- package/dist/moonbridge-ipc/general/message/session_setup.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/session_setup.mjs +24 -0
- package/dist/moonbridge-ipc/general/message/session_setup.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/message/unregistration.d.mts +9 -0
- package/dist/moonbridge-ipc/general/message/unregistration.d.ts +8 -0
- package/dist/moonbridge-ipc/general/message/unregistration.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/message/unregistration.js +11 -0
- package/dist/moonbridge-ipc/general/message/unregistration.js.map +1 -0
- package/dist/moonbridge-ipc/general/message/unregistration.mjs +9 -0
- package/dist/moonbridge-ipc/general/message/unregistration.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.d.mts +26 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.d.ts +25 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.js +112 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.mjs +109 -0
- package/dist/moonbridge-ipc/general/transport/encode/data_frame_codec.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.d.mts +40 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.d.ts +39 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.js +4 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.mjs +3 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.d.mts +23 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.d.ts +20 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.js +35 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.mjs +27 -0
- package/dist/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.d.mts +44 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.d.ts +43 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.js +4 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.mjs +3 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.d.mts +27 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.d.ts +24 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.js +43 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.mjs +33 -0
- package/dist/moonbridge-ipc/general/transport/interface/transport_client_extension.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.d.mts +36 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.d.ts +33 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.js +109 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.mjs +107 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_client.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.d.mts +44 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.d.ts +41 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.js +109 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.mjs +107 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_message_channel.mjs.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.d.mts +71 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.d.ts +68 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.d.ts.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.js +155 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.js.map +1 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.mjs +151 -0
- package/dist/moonbridge-ipc/general/transport/websocket/websocket_server.mjs.map +1 -0
- package/dist/moonbridge-ipc/index.d.mts +26 -0
- package/dist/moonbridge-ipc/index.d.ts +10 -0
- package/dist/moonbridge-ipc/index.d.ts.map +1 -0
- package/dist/moonbridge-ipc/index.js +70 -0
- package/dist/moonbridge-ipc/index.js.map +1 -0
- package/dist/moonbridge-ipc/index.mjs +11 -0
- package/dist/moonbridge-ipc/index.mjs.map +1 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.d.mts +38 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.d.ts +35 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.d.ts.map +1 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.js +27 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.js.map +1 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.mjs +25 -0
- package/dist/moonbridge-ipc/server/credential/client_identity.mjs.map +1 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.d.mts +33 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.d.ts +29 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.d.ts.map +1 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.js +39 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.js.map +1 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.mjs +37 -0
- package/dist/moonbridge-ipc/server/internal/identity/client_identity_manager.mjs.map +1 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.d.mts +54 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.d.ts +49 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.d.ts.map +1 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.js +369 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.js.map +1 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.mjs +367 -0
- package/dist/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.mjs.map +1 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.d.mts +76 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.d.ts +71 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.d.ts.map +1 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.js +101 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.js.map +1 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.mjs +97 -0
- package/dist/moonbridge-ipc/server/moonbridge_ipc_server.mjs.map +1 -0
- package/dist/moonbridge-ipc/utils/env.d.mts +7 -0
- package/dist/moonbridge-ipc/utils/env.d.ts +6 -0
- package/dist/moonbridge-ipc/utils/env.d.ts.map +1 -0
- package/dist/moonbridge-ipc/utils/env.js +9 -0
- package/dist/moonbridge-ipc/utils/env.js.map +1 -0
- package/dist/moonbridge-ipc/utils/env.mjs +7 -0
- package/dist/moonbridge-ipc/utils/env.mjs.map +1 -0
- package/dist/moonbridge-ipc/utils/logger.d.mts +9 -0
- package/dist/moonbridge-ipc/utils/logger.d.ts +6 -0
- package/dist/moonbridge-ipc/utils/logger.d.ts.map +1 -0
- package/dist/moonbridge-ipc/utils/logger.js +9 -0
- package/dist/moonbridge-ipc/utils/logger.js.map +1 -0
- package/dist/moonbridge-ipc/utils/logger.mjs +7 -0
- package/dist/moonbridge-ipc/utils/logger.mjs.map +1 -0
- package/dist/moonbridge-ipc/utils/string_utils.d.mts +10 -0
- package/dist/moonbridge-ipc/utils/string_utils.d.ts +9 -0
- package/dist/moonbridge-ipc/utils/string_utils.d.ts.map +1 -0
- package/dist/moonbridge-ipc/utils/string_utils.js +14 -0
- package/dist/moonbridge-ipc/utils/string_utils.js.map +1 -0
- package/dist/moonbridge-ipc/utils/string_utils.mjs +12 -0
- package/dist/moonbridge-ipc/utils/string_utils.mjs.map +1 -0
- package/dist/wps-launcher/index.d.mts +3 -0
- package/dist/wps-launcher/index.d.ts +5 -0
- package/dist/wps-launcher/index.d.ts.map +1 -0
- package/dist/wps-launcher/index.js +14 -0
- package/dist/wps-launcher/index.js.map +1 -0
- package/dist/wps-launcher/index.mjs +3 -0
- package/dist/wps-launcher/index.mjs.map +1 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.d.mts +61 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.d.ts +58 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.d.ts.map +1 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.js +83 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.js.map +1 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.mjs +81 -0
- package/dist/wps-launcher/launcher/wps_app_launcher.mjs.map +1 -0
- package/docs/REFACTOR_SCOPE.md +53 -0
- package/docs/ROADMAP.md +143 -0
- package/docs/STRUCTURE.md +47 -0
- package/package.json +64 -0
- package/src/index.ts +3 -0
- package/src/moonbridge/annotation/decorators.ts +109 -0
- package/src/moonbridge/annotation/registry.ts +118 -0
- package/src/moonbridge/index.ts +5 -0
- package/src/moonbridge/kernel/bridge.ts +28 -0
- package/src/moonbridge/kernel/bridge_module.ts +38 -0
- package/src/moonbridge/kernel/executor.ts +41 -0
- package/src/moonbridge/kernel/result_callback.ts +19 -0
- package/src/moonbridge/logger/logger.ts +95 -0
- package/src/moonbridge/message/internal/generic_message_parser.internal.ts +39 -0
- package/src/moonbridge/message/message.ts +16 -0
- package/src/moonbridge/message/message_parser.ts +31 -0
- package/src/moonbridge/message/message_parser_manager.ts +96 -0
- package/src/moonbridge/module/method_invoker.ts +90 -0
- package/src/moonbridge/module/module_creator.ts +60 -0
- package/src/moonbridge/utils/logger.ts +6 -0
- package/src/moonbridge-ipc/client/internal/bridge/ipc_client_bridge.ts +74 -0
- package/src/moonbridge-ipc/client/internal/bridge/ipc_client_executor.ts +208 -0
- package/src/moonbridge-ipc/client/internal/ipc/communication/ipc_communication_agent.ts +226 -0
- package/src/moonbridge-ipc/client/internal/ipc/connect/ipc_connection_manager.ts +454 -0
- package/src/moonbridge-ipc/client/internal/ipc/coordinator/ipc_request_coordinator.ts +147 -0
- package/src/moonbridge-ipc/client/internal/ipc/eventbus/ipc_event_bus.ts +75 -0
- package/src/moonbridge-ipc/client/internal/ipc/ipc_client_component_provider.ts +28 -0
- package/src/moonbridge-ipc/client/internal/ipc/keep/ipc_connection_keeper.ts +70 -0
- package/src/moonbridge-ipc/client/internal/moonbridge_ipc_client.internal.ts +154 -0
- package/src/moonbridge-ipc/client/internal/settings/ipc_client_settings.ts +142 -0
- package/src/moonbridge-ipc/client/moonbridge_ipc_client.ts +222 -0
- package/src/moonbridge-ipc/client/types/ipc_event_bus.ts +28 -0
- package/src/moonbridge-ipc/client/types/ipc_message_strategy.ts +21 -0
- package/src/moonbridge-ipc/client/types/ipc_messenger.ts +42 -0
- package/src/moonbridge-ipc/client/types/ipc_types.ts +50 -0
- package/src/moonbridge-ipc/extension/bridge_extension.ts +32 -0
- package/src/moonbridge-ipc/general/app_launch/app_launcher.ts +21 -0
- package/src/moonbridge-ipc/general/app_launch/internal/real_platform_app_launcher.ts +97 -0
- package/src/moonbridge-ipc/general/app_launch/launcher/node_launcher.browser.ts +23 -0
- package/src/moonbridge-ipc/general/app_launch/launcher/node_launcher.ts +138 -0
- package/src/moonbridge-ipc/general/app_launch/launcher/url_scheme_launcher.ts +83 -0
- package/src/moonbridge-ipc/general/app_launch/model/app_info.ts +57 -0
- package/src/moonbridge-ipc/general/app_launch/model/app_launch_error_codes.ts +16 -0
- package/src/moonbridge-ipc/general/app_launch/model/app_launch_models.ts +35 -0
- package/src/moonbridge-ipc/general/app_launch/model/app_launch_models_extension.ts +65 -0
- package/src/moonbridge-ipc/general/app_launch/platform_app_launcher.ts +89 -0
- package/src/moonbridge-ipc/general/config/port_candidate_rule.ts +81 -0
- package/src/moonbridge-ipc/general/config/websocket_server_endpoint.ts +48 -0
- package/src/moonbridge-ipc/general/encode/ipc_message_decoder.ts +122 -0
- package/src/moonbridge-ipc/general/encode/ipc_message_encoder.ts +108 -0
- package/src/moonbridge-ipc/general/error/ipc_error.ts +28 -0
- package/src/moonbridge-ipc/general/index.ts +9 -0
- package/src/moonbridge-ipc/general/lock/async_lock.ts +58 -0
- package/src/moonbridge-ipc/general/lock/lock.ts +9 -0
- package/src/moonbridge-ipc/general/message/constants/message_types.ts +18 -0
- package/src/moonbridge-ipc/general/message/error.ts +13 -0
- package/src/moonbridge-ipc/general/message/event.ts +10 -0
- package/src/moonbridge-ipc/general/message/handshake.ts +16 -0
- package/src/moonbridge-ipc/general/message/ping.ts +6 -0
- package/src/moonbridge-ipc/general/message/registration.ts +6 -0
- package/src/moonbridge-ipc/general/message/request.ts +14 -0
- package/src/moonbridge-ipc/general/message/response.ts +13 -0
- package/src/moonbridge-ipc/general/message/session_setup.ts +25 -0
- package/src/moonbridge-ipc/general/message/unregistration.ts +6 -0
- package/src/moonbridge-ipc/general/transport/encode/data_frame_codec.ts +148 -0
- package/src/moonbridge-ipc/general/transport/interface/serial_message_channel.ts +49 -0
- package/src/moonbridge-ipc/general/transport/interface/serial_message_channel_extension.ts +45 -0
- package/src/moonbridge-ipc/general/transport/interface/transport_client.ts +44 -0
- package/src/moonbridge-ipc/general/transport/interface/transport_client_extension.ts +52 -0
- package/src/moonbridge-ipc/general/transport/websocket/websocket_client.ts +130 -0
- package/src/moonbridge-ipc/general/transport/websocket/websocket_message_channel.ts +145 -0
- package/src/moonbridge-ipc/general/transport/websocket/websocket_server.ts +205 -0
- package/src/moonbridge-ipc/index.ts +9 -0
- package/src/moonbridge-ipc/server/credential/client_identity.ts +54 -0
- package/src/moonbridge-ipc/server/internal/identity/client_identity_manager.ts +42 -0
- package/src/moonbridge-ipc/server/internal/moonbridge_ipc_server.internal.ts +441 -0
- package/src/moonbridge-ipc/server/moonbridge_ipc_server.ts +149 -0
- package/src/moonbridge-ipc/utils/env.ts +7 -0
- package/src/moonbridge-ipc/utils/logger.ts +6 -0
- package/src/moonbridge-ipc/utils/string_utils.ts +21 -0
- package/src/wps-launcher/index.ts +4 -0
- package/src/wps-launcher/launcher/wps_app_launcher.ts +135 -0
- package/tests/integration/.gitkeep +0 -0
- package/tests/integration/moonbridge_ipc_server_client.test.ts +64 -0
- package/tests/unit/.gitkeep +0 -0
- package/tests/unit/app_launcher.test.ts +32 -0
- package/tests/unit/data_frame_codec.test.ts +72 -0
- package/tests/unit/event_bus.test.ts +39 -0
- package/tests/unit/handler_registry.test.ts +34 -0
- package/tests/unit/handshake.test.ts +47 -0
- package/tests/unit/heartbeat.test.ts +18 -0
- package/tests/unit/interceptors.test.ts +43 -0
- package/tests/unit/ipc_connection_manager.handshake.test.ts +72 -0
- package/tests/unit/moonbridge_ipc_server.test.ts +78 -0
- package/tests/unit/result_callback.test.ts +49 -0
- package/tests/unit/websocket_server.test.ts +101 -0
- package/tsconfig.json +36 -0
- package/tsup.config.ts +15 -0
- package/vitest.config.ts +13 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
// 对应:
|
|
2
|
+
// moonbridge-ipc-flutter/lib/client/internal/ipc/connect/ipc_connection_manager.dart
|
|
3
|
+
//
|
|
4
|
+
// IPC 连接管理器,负责维护 IPC 通信的连接状态。
|
|
5
|
+
// 012 US1:JS 端仅使用 webSocketServerEndpoint 构造 WebSocket 客户端,不使用 socketServerEndpoint。
|
|
6
|
+
// 010 US1:握手在 performHandshake 内等待服务端 TYPE_NAME_HANDSHAKE 响应并校验 magic/role,与 Flutter 一致。
|
|
7
|
+
// 010 US4:当直接连接失败且 shouldAttemptWakeUp 为 true 时,调用 settings.appLauncher.launchApp() 后重试。
|
|
8
|
+
// 019:连接探测——唤醒后立即尝试连接,失败则短间隔重试,成功即停止;launchApp 返回 AppLaunchResult。
|
|
9
|
+
|
|
10
|
+
import { IpcClientComponentProvider } from '../ipc_client_component_provider';
|
|
11
|
+
import { IpcClientSettings } from '../../settings/ipc_client_settings';
|
|
12
|
+
import { IpcMessageStrategy } from '../../../types/ipc_message_strategy';
|
|
13
|
+
import { IpcConnectionCompletionHandler } from '../../../types/ipc_types';
|
|
14
|
+
import { TransportClient } from '../../../../general/transport/interface/transport_client';
|
|
15
|
+
import { PortCandidateRule } from '../../../../general/config/port_candidate_rule';
|
|
16
|
+
import { Handshake } from '../../../../general/message/handshake';
|
|
17
|
+
import { IpcSessionSetupRequest, IpcSessionSetupResponse } from '../../../../general/message/session_setup';
|
|
18
|
+
import { Request } from '../../../../general/message/request';
|
|
19
|
+
import { IpcError } from '../../../../general/error/ipc_error';
|
|
20
|
+
import { MessageType } from '../../../../general/message/constants/message_types';
|
|
21
|
+
import { IpcMessageDecoder } from '../../../../general/encode/ipc_message_decoder';
|
|
22
|
+
import { PlatformAppLauncherFactory } from '../../../../general/app_launch/platform_app_launcher';
|
|
23
|
+
import { logger } from '../../../../utils/logger';
|
|
24
|
+
import { sendHandshake, setupSession, } from '../../../../general/transport/interface/transport_client_extension';
|
|
25
|
+
import { WebSocketClient } from '../../../../general/transport/websocket/websocket_client';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* IPC 通信环境构建结果回调
|
|
29
|
+
*/
|
|
30
|
+
export type IpcSessionSetupCallback = (success: boolean, error?: IpcError) => void;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* IPC 连接管理器,负责维护 IPC 通信的连接状态
|
|
34
|
+
*/
|
|
35
|
+
export class IpcConnectionManager {
|
|
36
|
+
private readonly settings: IpcClientSettings;
|
|
37
|
+
private readonly componentProvider: IpcClientComponentProvider;
|
|
38
|
+
private readonly clientName: string;
|
|
39
|
+
|
|
40
|
+
private transportClient: TransportClient;
|
|
41
|
+
private connectionHandlers: Array<IpcConnectionCompletionHandler> = [];
|
|
42
|
+
private sessionSetupCallbacks: Map<string, Array<IpcSessionSetupCallback>> = new Map();
|
|
43
|
+
private onMessageReceivedListener?: (message: string) => void;
|
|
44
|
+
|
|
45
|
+
constructor(componentProvider: IpcClientComponentProvider) {
|
|
46
|
+
this.componentProvider = componentProvider;
|
|
47
|
+
this.settings = componentProvider.settings;
|
|
48
|
+
this.clientName = componentProvider.settings.clientName;
|
|
49
|
+
|
|
50
|
+
// 初始化传输通道(JS 端仅实现 WebSocket 通道)
|
|
51
|
+
const ws = this.settings.webSocketServerEndpoint;
|
|
52
|
+
if (!ws) {
|
|
53
|
+
throw new Error(
|
|
54
|
+
'IpcConnectionManager: webSocketServerEndpoint must be provided in IpcClientSettings for JS client.',
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
const ports = this.getPortList(ws.port, ws.portCandidateRule ?? undefined);
|
|
58
|
+
// 使用首个端口创建初始 client;有 portCandidateRule 时 attemptConnection 会按端口列表依次尝试
|
|
59
|
+
this.transportClient = new WebSocketClient(
|
|
60
|
+
ws.address,
|
|
61
|
+
ports[0],
|
|
62
|
+
ws.path,
|
|
63
|
+
ws.useTls,
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
initialize(): void {
|
|
68
|
+
this.bindTransportEvents();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
onMessageReceived(listener: (message: string) => void): void {
|
|
72
|
+
this.onMessageReceivedListener = listener;
|
|
73
|
+
this.transportClient.onMessage(listener);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async connect(
|
|
77
|
+
onResult?: IpcConnectionCompletionHandler,
|
|
78
|
+
options?: { autoLaunch?: boolean },
|
|
79
|
+
): Promise<void> {
|
|
80
|
+
logger.debug(`[ConnectionManager] connect 开始 clientName=${this.clientName}`);
|
|
81
|
+
if (this.isConnected()) {
|
|
82
|
+
this.handleAlreadyConnected(onResult);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (onResult) {
|
|
87
|
+
this.connectionHandlers.push(onResult);
|
|
88
|
+
}
|
|
89
|
+
if (this.connectionHandlers.length > 1) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (
|
|
94
|
+
await this.attemptConnection({
|
|
95
|
+
maxConnectionAttempts: 2,
|
|
96
|
+
notifyIfConnectionFailed: false,
|
|
97
|
+
})
|
|
98
|
+
) {
|
|
99
|
+
logger.info('直接建立与服务端进程的连接成功!');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const shouldWakeUp = this.shouldAttemptWakeUp(options?.autoLaunch);
|
|
104
|
+
if (shouldWakeUp) {
|
|
105
|
+
logger.warn('服务端进程不存在,尝试唤醒服务端并建立连接.');
|
|
106
|
+
const appLauncher = this.settings.appLauncher ?? PlatformAppLauncherFactory.create({
|
|
107
|
+
appIdentifier: this.settings.serverLaunchIdentifier,
|
|
108
|
+
appInstallationPath: this.settings.serverInstallationPath,
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
const result = await appLauncher.launchApp();
|
|
112
|
+
if (!result.isSuccess) {
|
|
113
|
+
logger.fatal(`客户端('${this.clientName}')唤醒服务端 App 失败: ${result.error ?? '未知原因'}`);
|
|
114
|
+
this.handleConnectionFailed(result.error);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
logger.info(`客户端('${this.clientName}')已触发唤醒,即将进行连接探测!`);
|
|
118
|
+
const connected = await this.attemptConnectionWithProbe();
|
|
119
|
+
if (connected) return;
|
|
120
|
+
this.handleConnectionFailed();
|
|
121
|
+
} else {
|
|
122
|
+
logger.warn('服务端进程不存在,触发服务端 socket 关闭事件.');
|
|
123
|
+
this.onServerClose();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
async disconnect(): Promise<void> {
|
|
128
|
+
await this.componentProvider.communicationAgent.unregister();
|
|
129
|
+
await this.transportClient.close();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
isConnected(): boolean {
|
|
133
|
+
return this.transportClient.isClientConnected;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
setupSession(
|
|
137
|
+
request: Request,
|
|
138
|
+
callback: IpcSessionSetupCallback,
|
|
139
|
+
autoLaunch: boolean,
|
|
140
|
+
): void {
|
|
141
|
+
if (!this.isConnected()) {
|
|
142
|
+
logger.info(`客户端('${this.clientName}')未连接,尝试建立连接...`);
|
|
143
|
+
void this.connect((success, error) => {
|
|
144
|
+
if (success) {
|
|
145
|
+
this.setupSessionAfterConnection(request, callback, autoLaunch);
|
|
146
|
+
} else {
|
|
147
|
+
callback(false, error ?? undefined);
|
|
148
|
+
}
|
|
149
|
+
}, { autoLaunch });
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
this.setupSessionAfterConnection(request, callback, autoLaunch);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
onSessionSetupCallback(response: IpcSessionSetupResponse): void {
|
|
157
|
+
const callbacks = this.sessionSetupCallbacks.get(response.callbackId);
|
|
158
|
+
if (!callbacks) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this.sessionSetupCallbacks.delete(response.callbackId);
|
|
162
|
+
|
|
163
|
+
const error = new IpcError(
|
|
164
|
+
IpcError.ERROR_IPC_SESSION_ABNORMAL,
|
|
165
|
+
response.message,
|
|
166
|
+
response.userInfo ?? undefined,
|
|
167
|
+
);
|
|
168
|
+
const result = response.result === IpcSessionSetupResponse.success;
|
|
169
|
+
|
|
170
|
+
for (const cb of callbacks) {
|
|
171
|
+
cb(result, result ? undefined : error);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
get transportClientInstance(): TransportClient {
|
|
176
|
+
return this.transportClient;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// PRIVATE HELPERS
|
|
180
|
+
|
|
181
|
+
private bindTransportEvents(): void {
|
|
182
|
+
this.transportClient.onErrorAndClose({
|
|
183
|
+
onError: this.onError.bind(this),
|
|
184
|
+
onServerClose: this.onServerClose.bind(this),
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
if (this.onMessageReceivedListener) {
|
|
188
|
+
this.transportClient.onMessage(this.onMessageReceivedListener);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
private getPortList(port: number, portCandidateRule?: PortCandidateRule): Array<number> {
|
|
193
|
+
if (portCandidateRule) {
|
|
194
|
+
return portCandidateRule.toOrderedPortList();
|
|
195
|
+
}
|
|
196
|
+
return [port];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 生成环境回调 ID,与 Flutter _generateSessionCallbackId 一致。
|
|
201
|
+
* 同一 (fromClient, toClient) 对的多个请求共享同一 sessionCallbackId,仅首次会发送 IpcSessionSetupRequest。
|
|
202
|
+
*/
|
|
203
|
+
private generateSessionCallbackId(request: Request): string {
|
|
204
|
+
return `${request.fromClient}_${request.toClient}`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* 对指定 client 执行应用层握手,与 Flutter _performHandshake 语义一致:
|
|
209
|
+
* 发送握手请求后,在短超时内等待带相同 magic 与 server 角色的握手响应,成功才返回 true。
|
|
210
|
+
*/
|
|
211
|
+
private async performHandshake(client: TransportClient): Promise<boolean> {
|
|
212
|
+
logger.debug(`[ConnectionManager] 开始握手 clientName=${this.clientName}`);
|
|
213
|
+
const hello = new Handshake(
|
|
214
|
+
this.clientName,
|
|
215
|
+
Handshake.ipcMagic,
|
|
216
|
+
Handshake.clientRole,
|
|
217
|
+
Handshake.ipcVersion,
|
|
218
|
+
);
|
|
219
|
+
const sent = await sendHandshake(client, hello);
|
|
220
|
+
if (!sent) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
let settled = false;
|
|
225
|
+
let complete: (value: boolean) => void;
|
|
226
|
+
const handshakePromise = new Promise<boolean>((resolve) => {
|
|
227
|
+
complete = resolve;
|
|
228
|
+
});
|
|
229
|
+
const resolveOnce = (value: boolean) => {
|
|
230
|
+
if (settled) return;
|
|
231
|
+
settled = true;
|
|
232
|
+
complete(value);
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
const onMessage = (message: string): void => {
|
|
236
|
+
if (settled) return;
|
|
237
|
+
// 约定:首条应用层消息若非握手响应,则判定非目标 IPC 服务,立即失败
|
|
238
|
+
if (!message.includes(MessageType.HANDSHAKE)) {
|
|
239
|
+
resolveOnce(false);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const hs = IpcMessageDecoder.decodeHandshake(message);
|
|
244
|
+
const isTargetServer =
|
|
245
|
+
hs.magic === Handshake.ipcMagic && hs.role === Handshake.serverRole;
|
|
246
|
+
resolveOnce(isTargetServer);
|
|
247
|
+
} catch {
|
|
248
|
+
resolveOnce(false);
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
client.onMessage(onMessage);
|
|
253
|
+
|
|
254
|
+
const timeoutMs = 1000;
|
|
255
|
+
const timeoutId = setTimeout(() => {
|
|
256
|
+
resolveOnce(false);
|
|
257
|
+
}, timeoutMs);
|
|
258
|
+
|
|
259
|
+
try {
|
|
260
|
+
const result = await handshakePromise;
|
|
261
|
+
logger.debug(`[ConnectionManager] 握手结束 clientName=${this.clientName} success=${result}`);
|
|
262
|
+
return result;
|
|
263
|
+
} finally {
|
|
264
|
+
clearTimeout(timeoutId);
|
|
265
|
+
if (this.onMessageReceivedListener) {
|
|
266
|
+
client.onMessage(this.onMessageReceivedListener);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* 019:唤醒后连接探测。立即尝试连接,失败则短间隔重试,成功即停止;支持多轮端口遍历。
|
|
273
|
+
*/
|
|
274
|
+
private async attemptConnectionWithProbe(): Promise<boolean> {
|
|
275
|
+
const intervalMs = this.settings.wakeUpProbeIntervalMs;
|
|
276
|
+
const timeoutMs = this.settings.wakeUpProbeTimeoutMs;
|
|
277
|
+
const start = Date.now();
|
|
278
|
+
let round = 0;
|
|
279
|
+
|
|
280
|
+
// eslint-disable-next-line no-constant-condition -- 连接探测循环,通过 return 退出
|
|
281
|
+
while (true) {
|
|
282
|
+
round += 1;
|
|
283
|
+
logger.debug(
|
|
284
|
+
`[ConnectionManager] 连接探测 第 ${round} 轮 clientName=${this.clientName}`,
|
|
285
|
+
);
|
|
286
|
+
const ok = await this.attemptConnection({
|
|
287
|
+
maxConnectionAttempts: 1,
|
|
288
|
+
notifyIfConnectionFailed: false,
|
|
289
|
+
});
|
|
290
|
+
if (ok) {
|
|
291
|
+
logger.info(`客户端('${this.clientName}')连接探测成功`);
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
const elapsed = Date.now() - start;
|
|
295
|
+
if (elapsed >= timeoutMs) {
|
|
296
|
+
logger.warn(
|
|
297
|
+
`客户端('${this.clientName}')连接探测超时,已耗时 ${elapsed}ms`,
|
|
298
|
+
);
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
await new Promise((r) => setTimeout(r, intervalMs));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
private async attemptConnection(options?: {
|
|
306
|
+
maxConnectionAttempts?: number;
|
|
307
|
+
notifyIfConnectionFailed?: boolean;
|
|
308
|
+
}): Promise<boolean> {
|
|
309
|
+
const maxAttempts = options?.maxConnectionAttempts ?? 1;
|
|
310
|
+
const ws = this.settings.webSocketServerEndpoint;
|
|
311
|
+
if (!ws) return false;
|
|
312
|
+
|
|
313
|
+
const portList = this.getPortList(ws.port, ws.portCandidateRule ?? undefined);
|
|
314
|
+
const hasPortRule = portList.length > 1;
|
|
315
|
+
|
|
316
|
+
if (hasPortRule) {
|
|
317
|
+
// 有 portCandidateRule 时:遍历端口列表,依次尝试 9100、9101、9102...
|
|
318
|
+
logger.debug(`[ConnectionManager] attemptConnection 遍历端口列表,共 ${portList.length} 个端口`);
|
|
319
|
+
for (const port of portList) {
|
|
320
|
+
try {
|
|
321
|
+
const client = new WebSocketClient(ws.address, port, ws.path, ws.useTls);
|
|
322
|
+
if (await client.connectWithServer()) {
|
|
323
|
+
const ok = await this.performHandshake(client);
|
|
324
|
+
if (ok) {
|
|
325
|
+
await this.transportClient.close();
|
|
326
|
+
this.transportClient = client;
|
|
327
|
+
this.bindTransportEvents();
|
|
328
|
+
const registered = await this.componentProvider.communicationAgent.register();
|
|
329
|
+
if (registered) {
|
|
330
|
+
logger.info(`客户端(${this.clientName})注册成功.`);
|
|
331
|
+
}
|
|
332
|
+
this.notifyConnectionResult(true, undefined);
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
await client.close();
|
|
336
|
+
}
|
|
337
|
+
} catch (e) {
|
|
338
|
+
this.handleConnectionException(e);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
} else {
|
|
342
|
+
// 无 portCandidateRule:沿用原逻辑,重试同一端口
|
|
343
|
+
logger.debug(`[ConnectionManager] attemptConnection maxAttempts=${maxAttempts}`);
|
|
344
|
+
for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
|
|
345
|
+
try {
|
|
346
|
+
if (await this.transportClient.connectWithServer()) {
|
|
347
|
+
const ok = await this.performHandshake(this.transportClient);
|
|
348
|
+
if (ok) {
|
|
349
|
+
const registered = await this.componentProvider.communicationAgent.register();
|
|
350
|
+
if (registered) {
|
|
351
|
+
logger.info(`客户端(${this.clientName})注册成功.`);
|
|
352
|
+
}
|
|
353
|
+
this.notifyConnectionResult(true, undefined);
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
await this.transportClient.close();
|
|
357
|
+
}
|
|
358
|
+
} catch (e) {
|
|
359
|
+
this.handleConnectionException(e);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
if (options?.notifyIfConnectionFailed ?? true) {
|
|
365
|
+
this.handleConnectionFailed();
|
|
366
|
+
}
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
private handleConnectionFailed(launchError?: string): void {
|
|
371
|
+
const message = launchError
|
|
372
|
+
? `Connect server socket failed! Launch error: ${launchError}`
|
|
373
|
+
: 'Connect server socket failed!';
|
|
374
|
+
const userInfo = launchError ? { launchError } : undefined;
|
|
375
|
+
this.notifyConnectionResult(
|
|
376
|
+
false,
|
|
377
|
+
new IpcError(IpcError.ERROR_BIND_SERVER, message, userInfo),
|
|
378
|
+
);
|
|
379
|
+
logger.error(`客户端('${this.clientName}')与服务端建立连接失败${launchError ? `: ${launchError}` : ''}`);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
private handleConnectionException(e: unknown): void {
|
|
383
|
+
this.notifyConnectionResult(
|
|
384
|
+
false,
|
|
385
|
+
new IpcError(
|
|
386
|
+
IpcError.ERROR_BIND_SERVER_EXCEPTION,
|
|
387
|
+
'Connect server socket exception!',
|
|
388
|
+
),
|
|
389
|
+
);
|
|
390
|
+
logger.error(`客户端('${this.clientName}')与服务端建立连接异常: ${String(e)}`);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
private handleAlreadyConnected(handler?: IpcConnectionCompletionHandler): void {
|
|
394
|
+
if (handler) {
|
|
395
|
+
handler(true, undefined);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
private shouldAttemptWakeUp(autoLaunchOverride?: boolean): boolean {
|
|
400
|
+
if (typeof autoLaunchOverride === 'boolean') {
|
|
401
|
+
return autoLaunchOverride;
|
|
402
|
+
}
|
|
403
|
+
const strategy: IpcMessageStrategy = this.settings.messageStrategy;
|
|
404
|
+
return strategy.autoLaunch;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
private setupSessionAfterConnection(
|
|
408
|
+
request: Request,
|
|
409
|
+
callback: IpcSessionSetupCallback,
|
|
410
|
+
autoLaunch: boolean,
|
|
411
|
+
): void {
|
|
412
|
+
const sessionCallbackId = this.generateSessionCallbackId(request);
|
|
413
|
+
const callbacks =
|
|
414
|
+
this.sessionSetupCallbacks.get(sessionCallbackId) ?? [];
|
|
415
|
+
callbacks.push(callback);
|
|
416
|
+
this.sessionSetupCallbacks.set(sessionCallbackId, callbacks);
|
|
417
|
+
|
|
418
|
+
// 仅首次构建目标会话时发起 IpcSessionSetupRequest(与 Flutter 一致)
|
|
419
|
+
if (callbacks.length === 1) {
|
|
420
|
+
const setupRequest = new IpcSessionSetupRequest(
|
|
421
|
+
this.clientName,
|
|
422
|
+
request.toClient,
|
|
423
|
+
sessionCallbackId,
|
|
424
|
+
autoLaunch,
|
|
425
|
+
);
|
|
426
|
+
setupSession(this.transportClient, setupRequest);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
private onError(_error: unknown): void {
|
|
431
|
+
logger.error(`客户端('${this.clientName}')与服务端连接出错: ${String(_error)}!`);
|
|
432
|
+
this.notifyConnectionResult(
|
|
433
|
+
false,
|
|
434
|
+
new IpcError(IpcError.ERROR_DISCONNECTED_WITH_SERVER, 'Disconnected from server!'),
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
private onServerClose(): void {
|
|
439
|
+
logger.error(`客户端('${this.clientName}')断开与服务端的连接,服务端 socket 关闭!`);
|
|
440
|
+
this.notifyConnectionResult(
|
|
441
|
+
false,
|
|
442
|
+
new IpcError(IpcError.ERROR_SERVER_SOCKET_CLOSED, 'Server socket closed!'),
|
|
443
|
+
);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
private notifyConnectionResult(success: boolean, error?: IpcError): void {
|
|
447
|
+
const handlers = this.connectionHandlers;
|
|
448
|
+
this.connectionHandlers = [];
|
|
449
|
+
for (const handler of handlers) {
|
|
450
|
+
handler(success, error ?? undefined);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// 对应:
|
|
2
|
+
// moonbridge-ipc-flutter/lib/client/internal/ipc/coordinator/ipc_request_coordinator.dart
|
|
3
|
+
//
|
|
4
|
+
// IPC 客户端请求与响应协调器。
|
|
5
|
+
|
|
6
|
+
import { IpcClientComponentProvider } from '../ipc_client_component_provider';
|
|
7
|
+
import { IpcErrorCallback, IpcResponseCallback } from '../../../types/ipc_types';
|
|
8
|
+
import { Request } from '../../../../general/message/request';
|
|
9
|
+
import { Response } from '../../../../general/message/response';
|
|
10
|
+
import { Error } from '../../../../general/message/error';
|
|
11
|
+
import { IpcError } from '../../../../general/error/ipc_error';
|
|
12
|
+
import { logger } from '../../../../utils/logger';
|
|
13
|
+
import { generateRandomString } from '../../../../utils/string_utils';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* IPC 客户端请求与响应协调器类
|
|
17
|
+
* 负责构建 IPC 请求的参数并管理相应的回调处理。
|
|
18
|
+
*/
|
|
19
|
+
export class IpcRequestCoordinator {
|
|
20
|
+
private readonly clientName: string;
|
|
21
|
+
|
|
22
|
+
private readonly responseCallbacks: Map<
|
|
23
|
+
string,
|
|
24
|
+
Map<string, IpcResponseCallback>
|
|
25
|
+
> = new Map();
|
|
26
|
+
|
|
27
|
+
private readonly errorCallbacks: Map<string, IpcErrorCallback> = new Map();
|
|
28
|
+
|
|
29
|
+
constructor(componentProvider: IpcClientComponentProvider) {
|
|
30
|
+
this.clientName = componentProvider.settings.clientName;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
initialize(): void {
|
|
34
|
+
// 与 Dart 保持一致,当前无初始化逻辑。
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
prepareAndCreateIpcRequest(options: {
|
|
38
|
+
toClient: string;
|
|
39
|
+
moduleName: string;
|
|
40
|
+
methodName: string;
|
|
41
|
+
arguments?: Array<unknown>;
|
|
42
|
+
onError?: IpcErrorCallback;
|
|
43
|
+
}): Request {
|
|
44
|
+
const {
|
|
45
|
+
toClient,
|
|
46
|
+
moduleName,
|
|
47
|
+
methodName,
|
|
48
|
+
arguments: args = [],
|
|
49
|
+
onError,
|
|
50
|
+
} = options;
|
|
51
|
+
|
|
52
|
+
const requestId = this.generateRequestId(
|
|
53
|
+
this.clientName,
|
|
54
|
+
toClient,
|
|
55
|
+
moduleName,
|
|
56
|
+
methodName,
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
if (onError) {
|
|
60
|
+
this.errorCallbacks.set(requestId, onError);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const ipcArgs: Array<unknown> = [];
|
|
64
|
+
const callbackMap: Map<string, IpcResponseCallback> = new Map();
|
|
65
|
+
|
|
66
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
67
|
+
const arg = args[i];
|
|
68
|
+
let ipcArg = arg;
|
|
69
|
+
|
|
70
|
+
if (typeof arg === 'function') {
|
|
71
|
+
if (callbackMap.size === 0) {
|
|
72
|
+
this.responseCallbacks.set(requestId, callbackMap);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const callbackId = this.generateCallbackId(requestId, i);
|
|
76
|
+
ipcArg = callbackId;
|
|
77
|
+
callbackMap.set(callbackId, arg as IpcResponseCallback);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ipcArgs.push(ipcArg);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return new Request(
|
|
84
|
+
requestId,
|
|
85
|
+
this.clientName,
|
|
86
|
+
toClient,
|
|
87
|
+
moduleName,
|
|
88
|
+
methodName,
|
|
89
|
+
ipcArgs,
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
onResponse(response: Response): void {
|
|
94
|
+
const callbackMap = this.responseCallbacks.get(response.requestId);
|
|
95
|
+
if (response.finished) {
|
|
96
|
+
this.responseCallbacks.delete(response.requestId);
|
|
97
|
+
this.errorCallbacks.delete(response.requestId);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (!callbackMap) {
|
|
101
|
+
logger.error('接收到响应消息但回调失败,callbackMap 为空!');
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const callback = callbackMap.get(response.callbackId);
|
|
106
|
+
if (!callback) {
|
|
107
|
+
logger.error('接收到响应消息但回调失败,callback 为空!');
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
callback(response.response);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
onError(error: Error): void {
|
|
115
|
+
logger.error(`接收到错误消息,error: ${String(error)}.`);
|
|
116
|
+
|
|
117
|
+
const errorCallback = this.errorCallbacks.get(error.requestId);
|
|
118
|
+
this.errorCallbacks.delete(error.requestId);
|
|
119
|
+
this.responseCallbacks.delete(error.requestId);
|
|
120
|
+
|
|
121
|
+
if (errorCallback) {
|
|
122
|
+
errorCallback(
|
|
123
|
+
new IpcError(error.code, error.message ?? undefined, error.userInfo ?? undefined),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
private generateRequestId(
|
|
129
|
+
fromClient: string,
|
|
130
|
+
toClient: string,
|
|
131
|
+
moduleName: string,
|
|
132
|
+
methodName: string,
|
|
133
|
+
): string {
|
|
134
|
+
const timestamp = new Date().toISOString();
|
|
135
|
+
const random = generateRandomString(6);
|
|
136
|
+
return `${fromClient}~${toClient}|${moduleName}@${methodName}|${timestamp}-${random}`;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
private generateCallbackId(requestId: string, index: number): string {
|
|
140
|
+
if (requestId.length < 6) {
|
|
141
|
+
return `_$_mb_callback_$_[${index}]`;
|
|
142
|
+
}
|
|
143
|
+
const suffix = requestId.slice(-6);
|
|
144
|
+
return `_$_mb_callback_$_[${index}]-${suffix}`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// 对应:
|
|
2
|
+
// moonbridge-ipc-flutter/lib/client/internal/ipc/eventbus/ipc_event_bus.dart
|
|
3
|
+
//
|
|
4
|
+
// 实现 EventBus 接口的 IPC 事件总线类。
|
|
5
|
+
|
|
6
|
+
import { IpcClientComponentProvider } from '../ipc_client_component_provider';
|
|
7
|
+
import { EventBus, Subscriber } from '../../../types/ipc_event_bus';
|
|
8
|
+
import { Event } from '../../../../general/message/event';
|
|
9
|
+
import { IpcError } from '../../../../general/error/ipc_error';
|
|
10
|
+
import { logger } from '../../../../utils/logger';
|
|
11
|
+
|
|
12
|
+
export class IpcEventBus implements EventBus {
|
|
13
|
+
private readonly componentProvider: IpcClientComponentProvider;
|
|
14
|
+
private readonly subscriberMap: Map<string, Array<Subscriber>> = new Map();
|
|
15
|
+
|
|
16
|
+
constructor(componentProvider: IpcClientComponentProvider) {
|
|
17
|
+
this.componentProvider = componentProvider;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
initialize(): void {
|
|
21
|
+
// 与 Dart 一致,当前无需额外初始化逻辑。
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private get connectionManager() {
|
|
25
|
+
return this.componentProvider.connectionManager;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private get communicationAgent() {
|
|
29
|
+
return this.componentProvider.communicationAgent;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
onEvent(event: Event): void {
|
|
33
|
+
const subscribers = this.subscriberMap.get(event.type);
|
|
34
|
+
if (subscribers) {
|
|
35
|
+
for (const subscriber of [...subscribers]) {
|
|
36
|
+
subscriber.onEvent(event);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
register(subscriber: Subscriber): void {
|
|
42
|
+
const list = this.subscriberMap.get(subscriber.eventType) ?? [];
|
|
43
|
+
list.push(subscriber);
|
|
44
|
+
this.subscriberMap.set(subscriber.eventType, list);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
unregister(subscriber: Subscriber): void {
|
|
48
|
+
const list = this.subscriberMap.get(subscriber.eventType);
|
|
49
|
+
if (!list) return;
|
|
50
|
+
const next = list.filter((s) => s !== subscriber);
|
|
51
|
+
if (next.length === 0) {
|
|
52
|
+
this.subscriberMap.delete(subscriber.eventType);
|
|
53
|
+
} else {
|
|
54
|
+
this.subscriberMap.set(subscriber.eventType, next);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async post(event: Event): Promise<void> {
|
|
59
|
+
this.connectionManager.connect(
|
|
60
|
+
(isConnected: boolean, error?: IpcError) => {
|
|
61
|
+
if (isConnected && !error) {
|
|
62
|
+
void this.communicationAgent.postEvent(event);
|
|
63
|
+
} else {
|
|
64
|
+
logger.fatal(
|
|
65
|
+
`发布 EventBus 事件时,与服务端的连接建立失败,error: ${String(
|
|
66
|
+
error,
|
|
67
|
+
)}`,
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{ autoLaunch: undefined },
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IpcClientComponentProvider 的默认实现,与 Flutter RealMoonBridgeIpcClient 的组件装配顺序一致。
|
|
3
|
+
* 由本类统一 new 各 IPC 组件,调用方仅需提供 IpcClientSettings。
|
|
4
|
+
* 012 对齐说明:Flutter 仅有抽象接口 IpcClientComponentProvider,装配在 RealMoonBridgeIpcClient 构造函数内;
|
|
5
|
+
* JS 保留本实现类,RealMoonBridgeIpcClient 通过继承此类获得组件,装配顺序与 Flutter 一致,Bridge 不传 moduleFactories。
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { IpcClientSettings } from '../settings/ipc_client_settings';
|
|
9
|
+
import { IpcConnectionManager } from './connect/ipc_connection_manager';
|
|
10
|
+
import { IpcRequestCoordinator } from './coordinator/ipc_request_coordinator';
|
|
11
|
+
import { IpcCommunicationAgent } from './communication/ipc_communication_agent';
|
|
12
|
+
import { IpcEventBus } from './eventbus/ipc_event_bus';
|
|
13
|
+
import { IpcConnectionKeeper } from './keep/ipc_connection_keeper';
|
|
14
|
+
import { IpcClientBridge } from '../bridge/ipc_client_bridge';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 单一装配点:按 Flutter 顺序创建并初始化 ConnectionManager → RequestCoordinator →
|
|
18
|
+
* CommunicationAgent → EventBus → ConnectionKeeper → Bridge。
|
|
19
|
+
*/
|
|
20
|
+
export interface IpcClientComponentProvider {
|
|
21
|
+
readonly settings: IpcClientSettings;
|
|
22
|
+
readonly connectionManager: IpcConnectionManager;
|
|
23
|
+
readonly requestCoordinator: IpcRequestCoordinator;
|
|
24
|
+
readonly communicationAgent: IpcCommunicationAgent;
|
|
25
|
+
readonly ipcEventBus: IpcEventBus;
|
|
26
|
+
readonly connectionKeeper: IpcConnectionKeeper;
|
|
27
|
+
readonly bridge: IpcClientBridge;
|
|
28
|
+
}
|