gitextract_vkfrubuv/ ├── .github/ │ └── CONTRIBUTING.md ├── .gitignore ├── .whitesource ├── FILE_HEADER ├── LICENSE ├── NOTICE ├── README.md ├── add-file-headers.bat ├── build.bat ├── build.gradle ├── desktop/ │ ├── .gitignore │ ├── .nuget-local-packages/ │ │ └── README.txt │ ├── NuGet.Config │ ├── README.txt │ ├── build.cmd │ ├── build.gradle │ ├── coverage-broker.cmd │ ├── coverage-client.cmd │ ├── coverage.cmd │ ├── dotnet.cmd │ ├── global.json │ ├── push.cmd │ ├── src/ │ │ ├── Common.csproj │ │ ├── Plexus.Channels/ │ │ │ ├── ChannelExtensions.cs │ │ │ └── Plexus.Channels.csproj │ │ ├── Plexus.Common.Contracts/ │ │ │ ├── AppConnectionDescriptor.cs │ │ │ ├── BrokerFeatures.cs │ │ │ ├── Channels/ │ │ │ │ ├── ChannelWriteTimeoutException.cs │ │ │ │ ├── IChannel.cs │ │ │ │ ├── IReadableChannel.cs │ │ │ │ ├── ITerminatableWritableChannel.cs │ │ │ │ └── IWritableChannel.cs │ │ │ ├── EnvironmentHelper.cs │ │ │ ├── Maybe.cs │ │ │ ├── Nothing.cs │ │ │ ├── Plexus.Common.Contracts.csproj │ │ │ ├── Pools/ │ │ │ │ ├── IPooledBuffer.cs │ │ │ │ └── IPooledObject.cs │ │ │ ├── TransportType.cs │ │ │ └── UniqueId.cs │ │ ├── Plexus.Host/ │ │ │ ├── Generate.cmd │ │ │ ├── Internal/ │ │ │ │ ├── BrokerCliOptions.cs │ │ │ │ ├── BrokerProgram.cs │ │ │ │ ├── Generated/ │ │ │ │ │ └── interop/ │ │ │ │ │ ├── AppConnectionDescriptor.msg.g.cs │ │ │ │ │ ├── AppLaunchMode.msg.g.cs │ │ │ │ │ ├── AppLifecycleService.msg.g.cs │ │ │ │ │ ├── AppLifecycleService.svc.g.cs │ │ │ │ │ ├── CommandLineTool.app.g.cs │ │ │ │ │ ├── InvocationDescriptor.msg.g.cs │ │ │ │ │ ├── Options.msg.g.cs │ │ │ │ │ └── UniqueId.msg.g.cs │ │ │ │ ├── IProgram.cs │ │ │ │ ├── InstanceAwareness.cs │ │ │ │ ├── InteropCliProgram.cs │ │ │ │ ├── LaunchCliOptions.cs │ │ │ │ ├── LockFile.cs │ │ │ │ ├── ProgramLoader.cs │ │ │ │ ├── StopCliOptions.cs │ │ │ │ ├── StudioCliOptions.cs │ │ │ │ └── VerbOptions.cs │ │ │ ├── Plexus.Host.csproj │ │ │ ├── Plexus.Interop.Broker.Redist.nuspec │ │ │ ├── Plexus.Interop.Broker.Redist.targets │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ └── nlog.config │ │ ├── Plexus.Interop.Apps.Manager/ │ │ │ ├── Generate.cmd │ │ │ ├── IAppLaunchedEventConsumer.cs │ │ │ ├── Internal/ │ │ │ │ ├── AppConnection.cs │ │ │ │ ├── AppDto.cs │ │ │ │ ├── AppInfo.cs │ │ │ │ ├── AppLaunchedEventProvider.cs │ │ │ │ ├── AppLaunchedEventSubscriber.cs │ │ │ │ ├── AppLifecycleManager.cs │ │ │ │ ├── AppLifecycleManagerClientClientRepository.cs │ │ │ │ ├── AppRegistry.cs │ │ │ │ ├── AppsDto.cs │ │ │ │ ├── Generated/ │ │ │ │ │ └── interop/ │ │ │ │ │ ├── AppConnectionDescriptor.msg.g.cs │ │ │ │ │ ├── AppLaunchMode.msg.g.cs │ │ │ │ │ ├── AppLauncherService.msg.g.cs │ │ │ │ │ ├── AppLauncherService.svc.g.cs │ │ │ │ │ ├── AppLifecycleManager.app.g.cs │ │ │ │ │ ├── AppLifecycleService.msg.g.cs │ │ │ │ │ ├── AppLifecycleService.svc.g.cs │ │ │ │ │ ├── AppMetadataService.msg.g.cs │ │ │ │ │ ├── AppMetadataService.svc.g.cs │ │ │ │ │ ├── AppRegistrationService.msg.g.cs │ │ │ │ │ ├── AppRegistrationService.svc.g.cs │ │ │ │ │ ├── ContextLinkage.msg.g.cs │ │ │ │ │ ├── ContextLinkage.svc.g.cs │ │ │ │ │ ├── InvocationDescriptor.msg.g.cs │ │ │ │ │ ├── NativeAppLauncher.app.g.cs │ │ │ │ │ ├── Options.msg.g.cs │ │ │ │ │ └── UniqueId.msg.g.cs │ │ │ │ ├── IAppLaunchedEventProvider.cs │ │ │ │ ├── IAppLifecycleManagerClientClientRepository.cs │ │ │ │ ├── IAppRegistryProvider.cs │ │ │ │ ├── InteropContext.cs │ │ │ │ ├── InteropContextFactory.cs │ │ │ │ ├── JsonFileAppRegistryProvider.cs │ │ │ │ ├── NativeAppLauncherClient.cs │ │ │ │ ├── NativeAppLauncherParamsDto.cs │ │ │ │ ├── ObservableExtensions.cs │ │ │ │ ├── ProtobufHelper.cs │ │ │ │ ├── Services/ │ │ │ │ │ ├── AppLifecycleServiceImpl.cs │ │ │ │ │ ├── AppMetadataServiceImpl.cs │ │ │ │ │ ├── AppRegistrationServiceImpl.cs │ │ │ │ │ ├── ContextLinkage/ │ │ │ │ │ │ ├── AppConnectionsSet.cs │ │ │ │ │ │ ├── AppContextBindingEvent.cs │ │ │ │ │ │ ├── Context.cs │ │ │ │ │ │ └── ContextsSet.cs │ │ │ │ │ ├── ContextLinkageServiceImpl.cs │ │ │ │ │ ├── IAppLifecycleService.cs │ │ │ │ │ └── IAppMetadataService.cs │ │ │ │ └── SubProcessLauncher.cs │ │ │ └── Plexus.Interop.Apps.Manager.csproj │ │ ├── Plexus.Interop.Apps.Manager.Contracts/ │ │ │ ├── AppConnectionEvent.cs │ │ │ ├── ConnectionEventType.cs │ │ │ ├── IAppConnectedEventProvider.cs │ │ │ ├── IAppConnection.cs │ │ │ ├── IAppLifecycleManager.cs │ │ │ ├── IContextLinkageManager.cs │ │ │ ├── IInteropContext.cs │ │ │ ├── IInvocationEventProvider.cs │ │ │ ├── InvocationDescriptor.cs │ │ │ ├── InvocationFinishedEventDescriptor.cs │ │ │ ├── InvocationResult.cs │ │ │ ├── InvocationStartedEventDescriptor.cs │ │ │ ├── Plexus.Interop.Apps.Manager.Contracts.csproj │ │ │ ├── ResolveMode.cs │ │ │ └── ResolvedConnection.cs │ │ ├── Plexus.Interop.Broker/ │ │ │ ├── BrokerFactory.cs │ │ │ ├── BrokerIsAlreadyRunningException.cs │ │ │ ├── BrokerOptions.cs │ │ │ ├── IBroker.cs │ │ │ ├── Internal/ │ │ │ │ ├── Broker.cs │ │ │ │ └── ServerConnectionListener.cs │ │ │ └── Plexus.Interop.Broker.csproj │ │ ├── Plexus.Interop.Broker.Core/ │ │ │ ├── BrokerException.cs │ │ │ ├── BrokerProcessorFactory.cs │ │ │ ├── Generate.cmd │ │ │ ├── IBrokerProcessor.cs │ │ │ ├── Internal/ │ │ │ │ ├── AppConnectionProcessor.cs │ │ │ │ ├── AuthenticationHandler.cs │ │ │ │ ├── BrokerProcessor.cs │ │ │ │ ├── BrokerRegistryProvider.cs │ │ │ │ ├── ClientRequestHandler.cs │ │ │ │ ├── DiscoveryRequestHandler.cs │ │ │ │ ├── IAppConnectionProcessor.cs │ │ │ │ ├── IAuthenticationHandler.cs │ │ │ │ ├── IClientRequestHandler.cs │ │ │ │ ├── IDiscoveryRequestHandler.cs │ │ │ │ ├── IInvocationRequestHandler.cs │ │ │ │ ├── IRegistryService.cs │ │ │ │ ├── InvocationRequestHandler.cs │ │ │ │ ├── RegistryService.cs │ │ │ │ └── interop.json │ │ │ ├── Plexus.Interop.Broker.Core.csproj │ │ │ └── Properties/ │ │ │ └── AsseblyInfo.cs │ │ ├── Plexus.Interop.Broker.Core.Tests/ │ │ │ ├── Plexus.Interop.Broker.Core.Tests.csproj │ │ │ ├── RegistryServiceTests.cs │ │ │ └── RegistryServiceTests.interop.json │ │ ├── Plexus.Interop.Client/ │ │ │ ├── ClientBase.cs │ │ │ ├── ClientOptionsBuilderExtensions.cs │ │ │ └── Plexus.Interop.Client.csproj │ │ ├── Plexus.Interop.Client.Core/ │ │ │ ├── ClientDiscoveryInvokerExtensions.cs │ │ │ ├── ClientFactory.cs │ │ │ ├── ClientOptions.cs │ │ │ ├── ClientOptionsBuilder.cs │ │ │ ├── ContextLinkageOptions.cs │ │ │ ├── DiscoveredMethod.cs │ │ │ ├── DiscoveredService.cs │ │ │ ├── IClient.cs │ │ │ ├── IClientCallInvoker.cs │ │ │ ├── IClientDiscoveryInvoker.cs │ │ │ ├── IClientFactory.cs │ │ │ ├── IClientStreamingMethodCall.cs │ │ │ ├── IDuplexStreamingMethodCall.cs │ │ │ ├── IMethod.cs │ │ │ ├── IMethodCall.cs │ │ │ ├── IServerStreamingMethodCall.cs │ │ │ ├── IUnaryMethodCall.cs │ │ │ ├── IUnaryMethodCall~1.cs │ │ │ ├── Internal/ │ │ │ │ ├── Calls/ │ │ │ │ │ ├── ClientStreamingMethodCall.cs │ │ │ │ │ ├── ClientStreamingMethodCallHandler.cs │ │ │ │ │ ├── DuplexStreamingMethodCall.cs │ │ │ │ │ ├── DuplexStreamingMethodCallHandler.cs │ │ │ │ │ ├── MethodCallHandlerBase.cs │ │ │ │ │ ├── ServerStreamingMethodCall.cs │ │ │ │ │ ├── ServerStreamingMethodCallHandler.cs │ │ │ │ │ ├── UnaryMethodCall.cs │ │ │ │ │ └── UnaryMethodCallHandler.cs │ │ │ │ ├── Client.cs │ │ │ │ ├── ClientConnection.cs │ │ │ │ ├── ClientConnectionFactory.cs │ │ │ │ ├── ClientProtocol/ │ │ │ │ │ ├── Discovery/ │ │ │ │ │ │ ├── DiscoveryService.cs │ │ │ │ │ │ └── IDiscoveryService.cs │ │ │ │ │ └── Invocations/ │ │ │ │ │ ├── IIncomingInvocation.cs │ │ │ │ │ ├── IIncomingInvocationFactory.cs │ │ │ │ │ ├── IInvocation.cs │ │ │ │ │ ├── IOutcomingInvocation.cs │ │ │ │ │ ├── IOutcomingInvocationFactory.cs │ │ │ │ │ ├── IncomingInvocation.cs │ │ │ │ │ ├── IncomingInvocationDescriptor.cs │ │ │ │ │ ├── IncomingInvocationFactory.cs │ │ │ │ │ ├── IncomingStreamState.cs │ │ │ │ │ ├── Invocation.cs │ │ │ │ │ ├── InvocationMethodDescriptor.cs │ │ │ │ │ ├── InvocationReceiveProcessor.cs │ │ │ │ │ ├── InvocationSendProcessor.cs │ │ │ │ │ ├── InvocationState.cs │ │ │ │ │ ├── InvocationTargetDescriptor.cs │ │ │ │ │ ├── OutcomingInvocation.cs │ │ │ │ │ ├── OutcomingInvocationDescriptor.cs │ │ │ │ │ └── OutcomingInvocationFactory.cs │ │ │ │ ├── DiscoveredMethodInfo.cs │ │ │ │ ├── IClientConnection.cs │ │ │ │ ├── IMethodCallHandler.cs │ │ │ │ └── MethodCallHandlers.cs │ │ │ ├── Method.cs │ │ │ ├── MethodCallContext.cs │ │ │ ├── MethodCallDescriptor.cs │ │ │ ├── MethodCallExtensions.cs │ │ │ ├── MethodDelegates.cs │ │ │ ├── MethodDiscoveryQuery.cs │ │ │ ├── MethodReference.cs │ │ │ ├── MethodType.cs │ │ │ ├── Option.cs │ │ │ ├── Plexus.Interop.Client.Core.csproj │ │ │ ├── ProvidedMethodReference.cs │ │ │ ├── ProvidedServiceDefinition.cs │ │ │ ├── ProvidedServiceReference.cs │ │ │ ├── ServiceDiscoveryQuery.cs │ │ │ └── ServiceReference.cs │ │ ├── Plexus.Interop.Client.Marshalling.Contracts/ │ │ │ ├── IMarshaller.cs │ │ │ ├── IMarshallerProvider.cs │ │ │ ├── Marshaller.cs │ │ │ ├── NothingMarshaller.cs │ │ │ └── Plexus.Interop.Client.Marshalling.Contracts.csproj │ │ ├── Plexus.Interop.Client.Marshalling.Protobuf/ │ │ │ ├── Plexus.Interop.Client.Marshalling.Protobuf.csproj │ │ │ └── ProtobufMarshallerProvider.cs │ │ ├── Plexus.Interop.Client.Marshalling.Protobuf.Tests/ │ │ │ ├── Plexus.Interop.Client.Marshalling.Protobuf.Tests.csproj │ │ │ └── ProtobufMarshallerProviderTests.cs │ │ ├── Plexus.Interop.Metamodel/ │ │ │ ├── AnyMatchPattern.cs │ │ │ ├── Application.cs │ │ │ ├── CompositeMatchPattern.cs │ │ │ ├── ConsumedMethod.cs │ │ │ ├── ConsumedService.cs │ │ │ ├── MatchPattern.cs │ │ │ ├── Message.cs │ │ │ ├── Method.cs │ │ │ ├── Option.cs │ │ │ ├── Plexus.Interop.Metamodel.csproj │ │ │ ├── ProvidedMethod.cs │ │ │ ├── ProvidedService.cs │ │ │ ├── Registry.cs │ │ │ └── Service.cs │ │ ├── Plexus.Interop.Metamodel.Contracts/ │ │ │ ├── IApplication.cs │ │ │ ├── IConsumedMethod.cs │ │ │ ├── IConsumedService.cs │ │ │ ├── IMatchPattern.cs │ │ │ ├── IMessage.cs │ │ │ ├── IMethod.cs │ │ │ ├── IOption.cs │ │ │ ├── IProvidedMethod.cs │ │ │ ├── IProvidedService.cs │ │ │ ├── IRegistry.cs │ │ │ ├── IRegistryProvider.cs │ │ │ ├── IService.cs │ │ │ ├── LaunchMode.cs │ │ │ ├── MatchType.cs │ │ │ ├── MethodType.cs │ │ │ └── Plexus.Interop.Metamodel.Contracts.csproj │ │ ├── Plexus.Interop.Metamodel.Json/ │ │ │ ├── Internal/ │ │ │ │ ├── ApplicationDto.cs │ │ │ │ ├── ConsumedMethodDto.cs │ │ │ │ ├── ConsumedServiceDto.cs │ │ │ │ ├── MethodDto.cs │ │ │ │ ├── MethodTypeDto.cs │ │ │ │ ├── OptionDto.cs │ │ │ │ ├── OptionListExtensions.cs │ │ │ │ ├── ProvidedMethodDto.cs │ │ │ │ ├── ProvidedServiceDto.cs │ │ │ │ ├── RegistryDto.cs │ │ │ │ └── ServiceDto.cs │ │ │ ├── JsonFileRegistryProvider.cs │ │ │ ├── JsonRegistry.cs │ │ │ └── Plexus.Interop.Metamodel.Json.csproj │ │ ├── Plexus.Interop.Metamodel.Json.Tests/ │ │ │ ├── JsonRegistryProviderTests.cs │ │ │ ├── Plexus.Interop.Metamodel.Json.Tests.csproj │ │ │ └── interop.json │ │ ├── Plexus.Interop.Protobuf/ │ │ │ ├── Plexus.Interop.Protobuf.csproj │ │ │ ├── ProtobufConverter.cs │ │ │ └── ProtobufExtensions.cs │ │ ├── Plexus.Interop.Protocol/ │ │ │ ├── Internal/ │ │ │ │ ├── Connect/ │ │ │ │ │ ├── ConnectRequest.cs │ │ │ │ │ └── ConnectResponse.cs │ │ │ │ ├── ConsumedMethodReference.cs │ │ │ │ ├── ConsumedServiceReference.cs │ │ │ │ ├── Discovery/ │ │ │ │ │ ├── ContextLinkageOptions.cs │ │ │ │ │ ├── DiscoveredMethod.cs │ │ │ │ │ ├── DiscoveredService.cs │ │ │ │ │ ├── DiscoveredServiceMethod.cs │ │ │ │ │ ├── MethodDiscoveryRequest.cs │ │ │ │ │ ├── MethodDiscoveryResponse.cs │ │ │ │ │ ├── ServiceDiscoveryRequest.cs │ │ │ │ │ └── ServiceDiscoveryResponse.cs │ │ │ │ ├── Invocation/ │ │ │ │ │ ├── InvocationMessageHeader.cs │ │ │ │ │ ├── InvocationMessageReceived.cs │ │ │ │ │ ├── InvocationSendCompleted.cs │ │ │ │ │ ├── InvocationStart.cs │ │ │ │ │ ├── InvocationStartRequested.cs │ │ │ │ │ ├── InvocationStarted.cs │ │ │ │ │ └── InvocationStarting.cs │ │ │ │ ├── Option.cs │ │ │ │ ├── ProvidedMethodReference.cs │ │ │ │ └── ProvidedServiceReference.cs │ │ │ ├── Plexus.Interop.Protocol.csproj │ │ │ └── ProtocolMessagePool.cs │ │ ├── Plexus.Interop.Protocol.Common.Contracts/ │ │ │ ├── CompletionHeader.cs │ │ │ ├── CompletionStatusHeader.cs │ │ │ ├── ErrorHeader.cs │ │ │ └── Plexus.Interop.Protocol.Common.Contracts.csproj │ │ ├── Plexus.Interop.Protocol.Contracts/ │ │ │ ├── BrokerToClientRequestHandler.cs │ │ │ ├── ClientToBrokerRequestHandler.cs │ │ │ ├── Connect/ │ │ │ │ ├── IConnectProtocolMessageFactory.cs │ │ │ │ ├── IConnectProtocolSerializer.cs │ │ │ │ ├── IConnectRequest.cs │ │ │ │ └── IConnectResponse.cs │ │ │ ├── ContextLinkageDiscoveryMode.cs │ │ │ ├── Discovery/ │ │ │ │ ├── DiscoveryMode.cs │ │ │ │ ├── IDiscoveredMethod.cs │ │ │ │ ├── IDiscoveredService.cs │ │ │ │ ├── IDiscoveredServiceMethod.cs │ │ │ │ ├── IDiscoveryProtocolMessageFactory.cs │ │ │ │ ├── IDiscoveryProtocolSerializer.cs │ │ │ │ ├── IMethodDiscoveryRequest.cs │ │ │ │ ├── IMethodDiscoveryResponse.cs │ │ │ │ ├── IServiceDiscoveryRequest.cs │ │ │ │ ├── IServiceDiscoveryResponse.cs │ │ │ │ └── MethodType.cs │ │ │ ├── IBrokerToClientRequest.cs │ │ │ ├── IClientToBrokerRequest.cs │ │ │ ├── IConsumedMethodReference.cs │ │ │ ├── IConsumedServiceReference.cs │ │ │ ├── IContextLinkageOptions.cs │ │ │ ├── IOption.cs │ │ │ ├── IProtocolImplementation.cs │ │ │ ├── IProtocolMessage.cs │ │ │ ├── IProtocolMessageFactory.cs │ │ │ ├── IProtocolSerializer.cs │ │ │ ├── IProtocolSerializerFactory.cs │ │ │ ├── IProvidedMethodReference.cs │ │ │ ├── IProvidedServiceReference.cs │ │ │ ├── Invocation/ │ │ │ │ ├── IInvocationMessage.cs │ │ │ │ ├── IInvocationMessageHeader.cs │ │ │ │ ├── IInvocationMessageReceived.cs │ │ │ │ ├── IInvocationProtocolMessageFactory.cs │ │ │ │ ├── IInvocationProtocolSerializer.cs │ │ │ │ ├── IInvocationSendCompleted.cs │ │ │ │ ├── IInvocationStart.cs │ │ │ │ ├── IInvocationStartRequested.cs │ │ │ │ ├── IInvocationStarted.cs │ │ │ │ ├── IInvocationStarting.cs │ │ │ │ ├── IInvocationTarget.cs │ │ │ │ ├── InvocationMessageHandler.cs │ │ │ │ └── InvocationTargetHandler.cs │ │ │ ├── Plexus.Interop.Protocol.Contracts.csproj │ │ │ ├── ProtocolImplementation.cs │ │ │ └── ProtocolMessageFactoryExtensions.cs │ │ ├── Plexus.Interop.Protocol.Protobuf/ │ │ │ ├── Internal/ │ │ │ │ ├── BrokerToClientRequestEnvelope.cs │ │ │ │ ├── ClientToBrokerRequestEnvelope.cs │ │ │ │ ├── ConnectRequest.cs │ │ │ │ ├── ConnectResponse.cs │ │ │ │ ├── ConsumedMethodReference.cs │ │ │ │ ├── ConsumedServiceReference.cs │ │ │ │ ├── ContextLinkageDiscoveryOptions.cs │ │ │ │ ├── DiscoveredMethod.cs │ │ │ │ ├── DiscoveredService.cs │ │ │ │ ├── DiscoveredServiceMethod.cs │ │ │ │ ├── Empty.cs │ │ │ │ ├── InvocationMessageEnvelope.cs │ │ │ │ ├── InvocationMessageHeader.cs │ │ │ │ ├── InvocationMessageReceived.cs │ │ │ │ ├── InvocationSendCompleted.cs │ │ │ │ ├── InvocationStartRequest.cs │ │ │ │ ├── InvocationStartRequested.cs │ │ │ │ ├── InvocationStarted.cs │ │ │ │ ├── InvocationStarting.cs │ │ │ │ ├── MethodDiscoveryRequest.cs │ │ │ │ ├── MethodDiscoveryResponse.cs │ │ │ │ ├── Option.cs │ │ │ │ ├── ProvidedMethodReference.cs │ │ │ │ ├── ProvidedServiceReference.cs │ │ │ │ ├── ServiceDiscoveryRequest.cs │ │ │ │ └── ServiceDiscoveryResponse.cs │ │ │ ├── Plexus.Interop.Protocol.Protobuf.csproj │ │ │ ├── ProtobufProtocolSerializer.cs │ │ │ └── ProtobufProtocolSerializerFactory.cs │ │ ├── Plexus.Interop.Protocol.Protobuf.Tests/ │ │ │ ├── Plexus.Interop.Protocol.Protobuf.Tests.csproj │ │ │ ├── ProtobufSerializerTests.cs │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.Samples.CcyPairRateProvider/ │ │ │ ├── CcyPairRateProvider.cmd │ │ │ ├── Generate.cmd │ │ │ ├── Generated/ │ │ │ │ ├── fx/ │ │ │ │ │ ├── CcyPairRateService.msg.g.cs │ │ │ │ │ └── CcyPairRateService.svc.g.cs │ │ │ │ ├── interop/ │ │ │ │ │ └── Options.msg.g.cs │ │ │ │ └── vendor_a/ │ │ │ │ └── fx/ │ │ │ │ └── CcyPairRateProvider.app.g.cs │ │ │ ├── Plexus.Interop.Samples.CcyPairRateProvider.csproj │ │ │ ├── Program.cs │ │ │ └── Properties/ │ │ │ └── launchSettings.json │ │ ├── Plexus.Interop.Samples.CcyPairRateViewer/ │ │ │ ├── CcyPairRateViewer.cmd │ │ │ ├── Generate.cmd │ │ │ ├── Generated/ │ │ │ │ ├── fx/ │ │ │ │ │ ├── CcyPairRateService.msg.g.cs │ │ │ │ │ └── CcyPairRateService.svc.g.cs │ │ │ │ ├── interop/ │ │ │ │ │ └── Options.msg.g.cs │ │ │ │ └── vendor_b/ │ │ │ │ └── fx/ │ │ │ │ └── CcyPairRateViewer.app.g.cs │ │ │ ├── Plexus.Interop.Samples.CcyPairRateViewer.csproj │ │ │ ├── Program.cs │ │ │ └── Properties/ │ │ │ └── launchSettings.json │ │ ├── Plexus.Interop.Samples.GreetingClient/ │ │ │ ├── Generate.cmd │ │ │ ├── Generated/ │ │ │ │ └── interop/ │ │ │ │ ├── Options.msg.g.cs │ │ │ │ └── samples/ │ │ │ │ ├── GreetingClient.app.g.cs │ │ │ │ ├── GreetingService.msg.g.cs │ │ │ │ └── GreetingService.svc.g.cs │ │ │ ├── LaunchGreetingClient.cmd │ │ │ ├── Plexus.Interop.Samples.GreetingClient.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ └── nlog.config │ │ ├── Plexus.Interop.Samples.GreetingServer/ │ │ │ ├── Generate.cmd │ │ │ ├── Generated/ │ │ │ │ └── interop/ │ │ │ │ ├── Options.msg.g.cs │ │ │ │ └── samples/ │ │ │ │ ├── GreetingServer.app.g.cs │ │ │ │ ├── GreetingService.msg.g.cs │ │ │ │ └── GreetingService.svc.g.cs │ │ │ ├── LaunchGreetingServer.cmd │ │ │ ├── Plexus.Interop.Samples.GreetingServer.csproj │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ └── nlog.config │ │ ├── Plexus.Interop.Samples.Metadata/ │ │ │ └── Plexus.Interop.Samples.Metadata.csproj │ │ ├── Plexus.Interop.Testing/ │ │ │ ├── Generate.cmd │ │ │ ├── Generated/ │ │ │ │ └── interop/ │ │ │ │ ├── AppConnectionDescriptor.msg.g.cs │ │ │ │ ├── AppLaunchMode.msg.g.cs │ │ │ │ ├── AppLauncherService.msg.g.cs │ │ │ │ ├── AppLauncherService.svc.g.cs │ │ │ │ ├── AppLifecycleService.msg.g.cs │ │ │ │ ├── AppLifecycleService.svc.g.cs │ │ │ │ ├── AppMetadataService.msg.g.cs │ │ │ │ ├── AppMetadataService.svc.g.cs │ │ │ │ ├── AppRegistrationService.msg.g.cs │ │ │ │ ├── AppRegistrationService.svc.g.cs │ │ │ │ ├── ContextLinkage.msg.g.cs │ │ │ │ ├── ContextLinkage.svc.g.cs │ │ │ │ ├── InvocationDescriptor.msg.g.cs │ │ │ │ ├── Options.msg.g.cs │ │ │ │ ├── UniqueId.msg.g.cs │ │ │ │ └── testing/ │ │ │ │ ├── EchoClient.app.g.cs │ │ │ │ ├── EchoServer.app.g.cs │ │ │ │ ├── EchoService.msg.g.cs │ │ │ │ ├── EchoService.svc.g.cs │ │ │ │ ├── GreetingService.msg.g.cs │ │ │ │ ├── GreetingService.svc.g.cs │ │ │ │ └── TestAppLauncher.app.g.cs │ │ │ ├── ITestBroker.cs │ │ │ ├── NLog.config │ │ │ ├── ObservableExtensions.cs │ │ │ ├── Plexus.Interop.Testing.csproj │ │ │ ├── Properties/ │ │ │ │ └── AssemblyInfo.cs │ │ │ ├── TestAppLauncher.cs │ │ │ ├── TestBroker.cs │ │ │ ├── TestBrokerConfig/ │ │ │ │ ├── NLog.config │ │ │ │ └── metadata/ │ │ │ │ ├── apps.json │ │ │ │ └── interop.json │ │ │ ├── TestBrokerFixture.cs │ │ │ ├── TestClientFactory.cs │ │ │ └── UniqueId.Extensions.cs │ │ ├── Plexus.Interop.Tests/ │ │ │ ├── AppLifecycleServiceIntegrationTests.cs │ │ │ ├── BaseClientBrokerTestsSuite.cs │ │ │ ├── ClientBrokerIntegrationTests.cs │ │ │ ├── ContextLinkageIntegrationTests.cs │ │ │ ├── Plexus.Interop.Tests.csproj │ │ │ ├── SpecificAppInstanceCallIntegrationTests.cs │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.Tests.sln │ │ ├── Plexus.Interop.Transport/ │ │ │ ├── Internal/ │ │ │ │ ├── ChannelMessage.cs │ │ │ │ ├── FrameMessage.cs │ │ │ │ ├── ITransportReceiveProcessor.cs │ │ │ │ ├── ITransportSendProcessor.cs │ │ │ │ ├── TransportChannel.cs │ │ │ │ ├── TransportChannelSendProcessor.cs │ │ │ │ ├── TransportClient.cs │ │ │ │ ├── TransportConnection.cs │ │ │ │ ├── TransportConnectionFactory.cs │ │ │ │ ├── TransportConnectionStateValidator.cs │ │ │ │ ├── TransportReceiveProcessor.cs │ │ │ │ ├── TransportSendProcessor.cs │ │ │ │ ├── TransportServer.cs │ │ │ │ └── TransportUtils.cs │ │ │ ├── Plexus.Interop.Transport.csproj │ │ │ ├── TransportChannelUtils.cs │ │ │ ├── TransportClientFactory.cs │ │ │ └── TransportServerFactory.cs │ │ ├── Plexus.Interop.Transport.Contracts/ │ │ │ ├── ITransportChannel.cs │ │ │ ├── ITransportClient.cs │ │ │ ├── ITransportConnection.cs │ │ │ ├── ITransportServer.cs │ │ │ ├── Plexus.Interop.Transport.Contracts.csproj │ │ │ ├── TransportExtensions.cs │ │ │ └── TransportMessageFrame.cs │ │ ├── Plexus.Interop.Transport.Pipes.Tests/ │ │ │ ├── PipeTransportTests.cs │ │ │ ├── Plexus.Interop.Transport.Pipes.Tests.csproj │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.Transport.Protocol/ │ │ │ ├── Internal/ │ │ │ │ ├── GetBodyLengthHandler.cs │ │ │ │ ├── TransportChannelCloseHeader.cs │ │ │ │ ├── TransportChannelOpenHeader.cs │ │ │ │ ├── TransportConnectionCloseHeader.cs │ │ │ │ ├── TransportConnectionOpenHeader.cs │ │ │ │ └── TransportFrameHeader.cs │ │ │ ├── MessagingReceiveProcessor.cs │ │ │ ├── MessagingSendProcessor.cs │ │ │ ├── Plexus.Interop.Transport.Protocol.csproj │ │ │ └── TransportHeaderPool.cs │ │ ├── Plexus.Interop.Transport.Protocol.Contracts/ │ │ │ ├── IChannelHeaderFactory.cs │ │ │ ├── IChannelOpenHeader.cs │ │ │ ├── IConnectionHeaderFactory.cs │ │ │ ├── IMessagingReceiveProcessor.cs │ │ │ ├── IMessagingSendProcessor.cs │ │ │ ├── ITransportChannelCloseHeader.cs │ │ │ ├── ITransportChannelHeader.cs │ │ │ ├── ITransportChannelHeaderHandler.cs │ │ │ ├── ITransportChannelOpenHeader.cs │ │ │ ├── ITransportConnectionCloseHeader.cs │ │ │ ├── ITransportConnectionHeader.cs │ │ │ ├── ITransportConnectionHeaderHandler.cs │ │ │ ├── ITransportConnectionOpenHeader.cs │ │ │ ├── ITransportFrameHeader.cs │ │ │ ├── ITransportHeader.cs │ │ │ ├── ITransportHeaderFactory.cs │ │ │ ├── ITransportHeaderHandler.cs │ │ │ ├── MetadataViolationException.cs │ │ │ ├── Plexus.Interop.Transport.Protocol.Contracts.csproj │ │ │ ├── ProtocolException.cs │ │ │ ├── RemoteErrorException.cs │ │ │ ├── RemoteException.cs │ │ │ ├── Serialization/ │ │ │ │ ├── ITransportProtocolDeserializer.cs │ │ │ │ ├── ITransportProtocolSerializationProvider.cs │ │ │ │ └── ITransportProtocolSerializer.cs │ │ │ ├── TransportChannelHeaderHandler.cs │ │ │ ├── TransportConnectionHeaderHandler.cs │ │ │ ├── TransportHeaderHandler.cs │ │ │ └── TransportMessage.cs │ │ ├── Plexus.Interop.Transport.Protocol.Protobuf/ │ │ │ ├── Internal/ │ │ │ │ ├── ChannelCloseHeader.cs │ │ │ │ ├── ChannelOpenHeader.cs │ │ │ │ ├── ConnectionCloseHeader.cs │ │ │ │ ├── ConnectionOpenHeader.cs │ │ │ │ ├── Header.cs │ │ │ │ ├── MessageFrameHeader.cs │ │ │ │ ├── ProtobufTransportProtocolDeserializer.cs │ │ │ │ └── ProtobufTransportProtocolSerializer.cs │ │ │ ├── Plexus.Interop.Transport.Protocol.Protobuf.csproj │ │ │ └── ProtobufTransportSerialization.cs │ │ ├── Plexus.Interop.Transport.Protocol.Tests/ │ │ │ ├── MessagingTests.cs │ │ │ └── Plexus.Interop.Transport.Protocol.Tests.csproj │ │ ├── Plexus.Interop.Transport.Testing/ │ │ │ ├── Plexus.Interop.Transport.Testing.csproj │ │ │ └── TransportTestsSuite.cs │ │ ├── Plexus.Interop.Transport.Transmission.Contracts/ │ │ │ ├── ITransmissionClient.cs │ │ │ ├── ITransmissionConnection.cs │ │ │ ├── ITransmissionServer.cs │ │ │ └── Plexus.Interop.Transport.Transmission.Contracts.csproj │ │ ├── Plexus.Interop.Transport.Transmission.Pipes/ │ │ │ ├── Internal/ │ │ │ │ ├── PipeTransmissionClient.cs │ │ │ │ └── PipeTransmissionServer.cs │ │ │ ├── PipeTranmissionServerFactory.cs │ │ │ ├── PipeTransmissionClientFactory.cs │ │ │ └── Plexus.Interop.Transport.Transmission.Pipes.csproj │ │ ├── Plexus.Interop.Transport.Transmission.Pipes.Tests/ │ │ │ ├── PipeTransmissionTests.cs │ │ │ ├── Plexus.Interop.Transport.Transmission.Pipes.Tests.csproj │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.Transport.Transmission.Streams/ │ │ │ ├── Internal/ │ │ │ │ ├── StreamTransmissionReader.cs │ │ │ │ └── StreamTransmissionWriter.cs │ │ │ ├── Plexus.Interop.Transport.Transmission.Streams.csproj │ │ │ └── StreamTransmissionConnection.cs │ │ ├── Plexus.Interop.Transport.Transmission.Testing/ │ │ │ ├── Plexus.Interop.Transport.Transmission.Testing.csproj │ │ │ └── TransmissionTestsSuite.cs │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Client/ │ │ │ ├── Internal/ │ │ │ │ ├── WebSocketClientTransmissionConnection.cs │ │ │ │ ├── WebSocketClientTransmissionReader.cs │ │ │ │ └── WebSocketClientTransmissionWriter.cs │ │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Client.csproj │ │ │ └── WebSocketTransmissionClient.cs │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Server/ │ │ │ ├── Internal/ │ │ │ │ ├── WebSocketServerTransmissionConnection.cs │ │ │ │ ├── WebSocketServerTransmissionReader.cs │ │ │ │ ├── WebSocketServerTransmissionWriter.cs │ │ │ │ └── WebSocketTransmissionServer.cs │ │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Server.csproj │ │ │ ├── WebSocketTransmissionServerFactory.cs │ │ │ └── WebSocketTransmissionServerOptions.cs │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Server.Fleck/ │ │ │ ├── Internal/ │ │ │ │ ├── WebSocketServerTransmissionConnection.cs │ │ │ │ ├── WebSocketServerTransmissionReader.cs │ │ │ │ ├── WebSocketServerTransmissionWriter.cs │ │ │ │ └── WebSocketTransmissionServer.cs │ │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Server.Fleck.csproj │ │ │ ├── WebSocketTransmissionServerFactory.cs │ │ │ └── WebSocketTransmissionServerOptions.cs │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Tests/ │ │ │ ├── Plexus.Interop.Transport.Transmission.WebSockets.Tests.csproj │ │ │ ├── WebSocketSecureTransmissionTests.cs │ │ │ ├── WebSocketTransmissionTests.cs │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.Transport.Utils/ │ │ │ ├── IServerStateReader.cs │ │ │ ├── IServerStateWriter.cs │ │ │ ├── Plexus.Interop.Transport.Utils.csproj │ │ │ ├── ServerStateReader.cs │ │ │ ├── ServerStateUtils.cs │ │ │ └── ServerStateWriter.cs │ │ ├── Plexus.Interop.Transport.WebSockets.Tests/ │ │ │ ├── Plexus.Interop.Transport.WebSockets.Tests.csproj │ │ │ ├── WebSocketSecureTransportTests.cs │ │ │ ├── WebSocketTransportTests.cs │ │ │ └── xunit.runner.json │ │ ├── Plexus.Interop.sln │ │ ├── Plexus.Interop.sln.DotSettings │ │ ├── Plexus.Logging/ │ │ │ ├── ILogger.cs │ │ │ ├── ILoggerFactory.cs │ │ │ ├── LogConfig.cs │ │ │ ├── LogLevel.cs │ │ │ ├── LogManager.cs │ │ │ ├── LoggerExtensions.Any.cs │ │ │ ├── LoggerExtensions.Debug.cs │ │ │ ├── LoggerExtensions.Error.cs │ │ │ ├── LoggerExtensions.Fatal.cs │ │ │ ├── LoggerExtensions.Info.cs │ │ │ ├── LoggerExtensions.Trace.cs │ │ │ ├── LoggerExtensions.Warn.cs │ │ │ ├── NoopLogger.cs │ │ │ ├── NoopLoggerFactory.cs │ │ │ ├── Plexus.Logging.csproj │ │ │ └── TypeExtensions.cs │ │ ├── Plexus.Logging.CommonLogging/ │ │ │ ├── Logger.cs │ │ │ ├── LoggerFactory.cs │ │ │ ├── LoggingInitializer.cs │ │ │ └── Plexus.Logging.CommonLogging.csproj │ │ ├── Plexus.Logging.NLog/ │ │ │ ├── AsyncExceptionLayoutRenderer.cs │ │ │ ├── Logger.cs │ │ │ ├── LoggerFactory.cs │ │ │ ├── LoggingInitializer.cs │ │ │ ├── Plexus.Logging.NLog.csproj │ │ │ └── WorkDirLayoutRenderer.cs │ │ ├── Plexus.Utils/ │ │ │ ├── ArrayConstants.cs │ │ │ ├── AsyncHelper.cs │ │ │ ├── AwaitableCancellationToken.cs │ │ │ ├── BaseJsonFileRegistryProvider.cs │ │ │ ├── Channels/ │ │ │ │ ├── BufferedChannel.cs │ │ │ │ └── ChannelUtils.cs │ │ │ ├── EqualityHelper.cs │ │ │ ├── ExceptionHelper.cs │ │ │ ├── FileSystemUtils.cs │ │ │ ├── FormattingUtils.cs │ │ │ ├── JsonConvert.cs │ │ │ ├── Latch.cs │ │ │ ├── Plexus.Utils.csproj │ │ │ ├── Pools/ │ │ │ │ ├── ObjectPool.cs │ │ │ │ ├── PooledBuffer.cs │ │ │ │ ├── PooledBufferExtensions.cs │ │ │ │ └── PooledObject.cs │ │ │ ├── Processes/ │ │ │ │ └── ProcessBase.cs │ │ │ ├── Promise.cs │ │ │ ├── Promise`1.cs │ │ │ ├── Properties/ │ │ │ │ └── AssemblyInfo.cs │ │ │ ├── StreamExtensions.cs │ │ │ ├── TaskConstants.cs │ │ │ ├── TaskConstants`1.cs │ │ │ ├── TaskExtensions.cs │ │ │ ├── TaskHelper.cs │ │ │ ├── TaskLoggingExtensions.cs │ │ │ ├── TaskRunner.cs │ │ │ ├── TimeoutConstants.cs │ │ │ └── ValueTask.cs │ │ ├── Plexus.Utils.Testing/ │ │ │ ├── DisplayTestMethodNameAttribute.cs │ │ │ ├── Plexus.Utils.Testing.csproj │ │ │ ├── RandomExtensions.cs │ │ │ ├── ShoudlyExtensions.cs │ │ │ ├── TestingInitializer.cs │ │ │ └── TestsSuite.cs │ │ ├── Plexus.Utils.Testing.Shared/ │ │ │ ├── DefaultTestCollection.cs │ │ │ ├── NLog.config │ │ │ ├── Plexus.Utils.Testing.Shared.projitems │ │ │ └── Plexus.Utils.Testing.Shared.shproj │ │ └── Plexus.Utils.Tests/ │ │ ├── Channels/ │ │ │ └── BufferedChannelTests.cs │ │ ├── Plexus.Utils.Tests.csproj │ │ ├── PromiseTests.cs │ │ └── UniqueIdTests.cs │ └── tests.cmd ├── docs/ │ ├── build.gradle │ └── src/ │ └── main/ │ ├── asciidoc/ │ │ ├── app-registry-schema.json │ │ ├── clone-and-build.adoc │ │ ├── concepts-components.adoc │ │ ├── concepts-definitions.adoc │ │ ├── concepts-features.adoc │ │ ├── concepts-overview.adoc │ │ ├── getting-started-how-to-build.adoc │ │ ├── getting-started-how-to-run-samples.adoc │ │ ├── getting-started-repository-structure.adoc │ │ ├── guides-how-to-write-custom-app-launcher.adoc │ │ ├── guides-interop-integration-workflow.adoc │ │ ├── guides-interop-invocation-workflow.adoc │ │ ├── guides-quick-start-dotnet.adoc │ │ ├── guides-quick-start-invocation-workflow.adoc │ │ ├── guides-quick-start-launch-app.adoc │ │ ├── guides-quick-start-launch-broker-step.adoc │ │ ├── guides-quick-start-web.adoc │ │ ├── guides-quick-start.adoc │ │ ├── guides-system-requirements.adoc │ │ ├── guides-tools.adoc │ │ ├── images/ │ │ │ ├── high-level-architecture.graphml │ │ │ ├── interop-integration.graphml │ │ │ └── star-schema.graphml │ │ ├── index.adoc │ │ ├── spec-app-registry.adoc │ │ ├── spec-interop-registry.adoc │ │ └── spec-typescript-client-api.adoc │ └── typescript/ │ └── interface.ts ├── dsl/ │ ├── .gitignore │ ├── build.gradle │ ├── gen/ │ │ ├── build.gradle │ │ ├── cli/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── db/ │ │ │ │ │ └── plexus/ │ │ │ │ │ └── interop/ │ │ │ │ │ └── dsl/ │ │ │ │ │ └── gen/ │ │ │ │ │ └── cli/ │ │ │ │ │ ├── CLISetup.xtend │ │ │ │ │ ├── CLIStandaloneSetup.xtend │ │ │ │ │ ├── Main.java │ │ │ │ │ └── ParametersParser.java │ │ │ │ └── resources/ │ │ │ │ └── plugin.properties │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── cli/ │ │ │ └── ParametersParserTest.java │ │ ├── common/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ └── gen/ │ │ │ │ ├── ApplicationCodeGenerator.java │ │ │ │ ├── BaseGenTask.java │ │ │ │ ├── BasePlexusIDLGenerator.xtend │ │ │ │ ├── CodeOutputGenerator.java │ │ │ │ ├── Entry.java │ │ │ │ ├── EntryPoint.java │ │ │ │ ├── GenTask.java │ │ │ │ ├── GenUtils.xtend │ │ │ │ ├── PlexusGenConfig.java │ │ │ │ ├── PlexusGeneratorModule.xtend │ │ │ │ ├── ResourceSetValidator.xtend │ │ │ │ ├── errors/ │ │ │ │ │ └── CodeGenerationException.java │ │ │ │ └── util/ │ │ │ │ ├── CombinedFilePathMatcher.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── ProcessResult.java │ │ │ │ ├── ProcessUtils.java │ │ │ │ └── SimplePathMatcher.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ ├── BaseCodeGenTest.java │ │ │ └── util/ │ │ │ ├── CombinedFilePathMatcherTest.java │ │ │ └── FileUtilsTest.java │ │ ├── csharp/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── csharp/ │ │ │ ├── CsharpCodeGenerator.xtend │ │ │ └── CsharpGenTask.xtend │ │ ├── js/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ └── gen/ │ │ │ │ └── js/ │ │ │ │ ├── JsComponentApiGenerator.xtend │ │ │ │ └── JsGenTask.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ └── gen/ │ │ │ │ └── js/ │ │ │ │ └── tests/ │ │ │ │ └── JsComponentApiGeneratorTest.xtend │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── js/ │ │ │ └── tests/ │ │ │ └── expected.data │ │ ├── meta/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ ├── gen/ │ │ │ │ │ └── meta/ │ │ │ │ │ ├── ListMetadataFilesTask.xtend │ │ │ │ │ ├── MetaJsonGenTask.xtend │ │ │ │ │ ├── MetaJsonGenerator.xtend │ │ │ │ │ ├── MetaPatchValidatorTask.xtend │ │ │ │ │ └── MetaValidatorTask.xtend │ │ │ │ └── validation/ │ │ │ │ ├── Issues.xtend │ │ │ │ ├── MetadataPatchValidator.xtend │ │ │ │ └── rules/ │ │ │ │ ├── NoAppsDeletedRule.xtend │ │ │ │ ├── NoFieldsChangedRule.xtend │ │ │ │ ├── NoFieldsDeletedRule.xtend │ │ │ │ ├── NoMessagesDeletedRule.xtend │ │ │ │ ├── NoMethodTypesChangedRule.xtend │ │ │ │ ├── NoMethodsDeletedRule.xtend │ │ │ │ ├── NoServiceDeletedRule.xtend │ │ │ │ ├── RulesModule.xtend │ │ │ │ └── UpdateRule.java │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ ├── gen/ │ │ │ │ │ └── metadata/ │ │ │ │ │ └── tests/ │ │ │ │ │ ├── MetaJsonGeneratorTest.xtend │ │ │ │ │ └── MetaValidatorTaskTest.xtend │ │ │ │ └── validation/ │ │ │ │ └── rules/ │ │ │ │ ├── BaseRuleTest.xtend │ │ │ │ ├── NoAppsDeletedRuleTest.xtend │ │ │ │ ├── NoFieldsChangedRuleTest.xtend │ │ │ │ ├── NoFieldsDeletedRuleTest.xtend │ │ │ │ ├── NoMessagesDeletedRuleTest.xtend │ │ │ │ ├── NoMethodTypesChangedRuleTest.xtend │ │ │ │ ├── NoMethodsDeletedRuleTest.xtend │ │ │ │ └── NoServiceDeletedRuleTest.xtend │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── metadata/ │ │ │ └── tests/ │ │ │ └── expected.json │ │ ├── proto/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── proto/ │ │ │ ├── ProtoGenTask.xtend │ │ │ └── ProtoOption.xtend │ │ ├── test/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ └── gen/ │ │ │ │ └── test/ │ │ │ │ ├── InteropLangInjectionProvider.java │ │ │ │ └── ResourceUtils.xtend │ │ │ └── resources/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── test/ │ │ │ ├── components/ │ │ │ │ ├── component_a.interop │ │ │ │ ├── component_a_invalid.interop │ │ │ │ └── component_c.interop │ │ │ ├── model/ │ │ │ │ ├── messages.proto │ │ │ │ ├── missed_message.proto │ │ │ │ ├── missed_message_field.proto │ │ │ │ ├── options.proto │ │ │ │ └── updated_message_fields.proto │ │ │ └── services/ │ │ │ ├── deleted_service.proto │ │ │ ├── deleted_service_method.proto │ │ │ ├── services.proto │ │ │ └── updated_service_methods.proto │ │ └── ts/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── ts/ │ │ │ ├── TsGenTask.java │ │ │ └── TypescriptApplicationApiGenerator.xtend │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── gen/ │ │ │ └── ts/ │ │ │ └── tests/ │ │ │ └── TypescriptComponentApiGeneratorTest.xtend │ │ └── resources/ │ │ └── com/ │ │ └── db/ │ │ └── plexus/ │ │ └── interop/ │ │ └── dsl/ │ │ └── gen/ │ │ └── ts/ │ │ └── tests/ │ │ └── expected.data │ ├── gradle.properties │ ├── ide-common/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── db/ │ │ └── plexus/ │ │ └── interop/ │ │ └── ide/ │ │ ├── assist/ │ │ │ └── ImportContentProvider.java │ │ └── server/ │ │ └── DebugServerLauncher.java │ ├── interop-lang/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ ├── GenerateInteropLang.mwe2 │ │ │ │ ├── GlobalLangConfigHolder.java │ │ │ │ ├── InteropLang.xtext │ │ │ │ ├── InteropLangRuntimeModule.xtend │ │ │ │ ├── InteropLangStandaloneSetup.xtend │ │ │ │ ├── InteropLangUtils.xtend │ │ │ │ ├── formatting2/ │ │ │ │ │ └── InteropLangFormatter.xtend │ │ │ │ ├── generator/ │ │ │ │ │ └── InteropLangGenerator.xtend │ │ │ │ ├── scoping/ │ │ │ │ │ ├── InteropLangQualifiedNameProvider.xtend │ │ │ │ │ └── InteropLangScopeProvider.xtend │ │ │ │ └── validation/ │ │ │ │ └── InteropLangValidator.xtend │ │ │ └── resources/ │ │ │ └── interop/ │ │ │ ├── app_connection_descriptor.proto │ │ │ ├── app_launch_mode.proto │ │ │ ├── app_launcher_service.proto │ │ │ ├── app_lifecycle_manager.interop │ │ │ ├── app_lifecycle_service.proto │ │ │ ├── app_metadata_service.proto │ │ │ ├── app_registration_service.proto │ │ │ ├── command_line_tool.interop │ │ │ ├── context_linkage.proto │ │ │ ├── descriptor.proto │ │ │ ├── invocation_descriptor.proto │ │ │ ├── native_app_launcher.interop │ │ │ ├── options.proto │ │ │ ├── testing/ │ │ │ │ ├── echo_client.interop │ │ │ │ ├── echo_server.interop │ │ │ │ ├── echo_service.proto │ │ │ │ ├── echo_service_options.proto │ │ │ │ ├── greeting_service.proto │ │ │ │ └── test_app_launcher.interop │ │ │ └── unique_id.proto │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── tests/ │ │ │ ├── InteropLangInjectionProvider.java │ │ │ └── InteropLangParsingTest.xtend │ │ └── resources/ │ │ └── com/ │ │ └── db/ │ │ └── plexus/ │ │ └── interop/ │ │ └── dsl/ │ │ └── tests/ │ │ ├── example1.interop │ │ ├── example1.proto │ │ ├── example2.interop │ │ ├── example3.interop │ │ ├── provide_as_alias.interop │ │ ├── provide_duplicate.interop │ │ ├── provide_duplicate_option.interop │ │ ├── subfolder/ │ │ │ └── example2.proto │ │ └── wrong.interop │ ├── interop-lang-vscode/ │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── .vscodeignore │ │ ├── README.md │ │ ├── build.gradle │ │ ├── interop.configuration.json │ │ ├── package.json │ │ ├── src/ │ │ │ └── extension.ts │ │ ├── syntaxes/ │ │ │ ├── interop.tmLanguage │ │ │ └── proto.tmLanguage │ │ └── tsconfig.json │ ├── interop-lang.ide/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── db/ │ │ └── plexus/ │ │ └── interop/ │ │ └── dsl/ │ │ └── ide/ │ │ ├── InteropLangIdeModule.xtend │ │ ├── InteropLangIdeSetup.xtend │ │ ├── assist/ │ │ │ ├── InteropContentProposalProvider.java │ │ │ └── InteropCrossRefProposalProvider.java │ │ └── server/ │ │ ├── InteropDebugServerLauncher.java │ │ ├── InteropLangServerModule.java │ │ ├── InteropLanguageServer.java │ │ └── StdIOServerLauncher.java │ ├── model/ │ │ ├── META-INF/ │ │ │ └── MANIFEST.MF │ │ ├── build.gradle │ │ ├── build.properties │ │ ├── plugin.properties │ │ ├── plugin.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ ├── interop.xcore │ │ └── proto.xcore │ ├── proto-lang/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── db/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── dsl/ │ │ │ │ └── protobuf/ │ │ │ │ ├── GenerateProtoLang.mwe2 │ │ │ │ ├── ProtoLang.xtext │ │ │ │ ├── ProtoLangConfig.xtend │ │ │ │ ├── ProtoLangImportResolver.xtend │ │ │ │ ├── ProtoLangRuntimeModule.xtend │ │ │ │ ├── ProtoLangStandaloneSetup.xtend │ │ │ │ ├── ProtoLangUtils.xtend │ │ │ │ ├── StaticConfigHolder.java │ │ │ │ ├── formatting2/ │ │ │ │ │ └── ProtoLangFormatter.xtend │ │ │ │ ├── generator/ │ │ │ │ │ └── ProtoLangGenerator.xtend │ │ │ │ ├── scoping/ │ │ │ │ │ ├── ProtoLangGlobalScopeProvider.xtend │ │ │ │ │ ├── ProtoLangLocalScopeProvider.xtend │ │ │ │ │ ├── ProtoLangQualifiedNameProvider.xtend │ │ │ │ │ └── ProtoLangScopeProvider.xtend │ │ │ │ └── validation/ │ │ │ │ └── ProtoLangValidator.xtend │ │ │ └── resources/ │ │ │ └── google/ │ │ │ └── protobuf/ │ │ │ ├── any.proto │ │ │ ├── api.proto │ │ │ ├── descriptor.proto │ │ │ ├── duration.proto │ │ │ ├── empty.proto │ │ │ ├── field_mask.proto │ │ │ ├── source_context.proto │ │ │ ├── struct.proto │ │ │ ├── timestamp.proto │ │ │ ├── type.proto │ │ │ └── wrappers.proto │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── db/ │ │ │ └── plexus/ │ │ │ └── interop/ │ │ │ └── dsl/ │ │ │ └── protobuf/ │ │ │ └── tests/ │ │ │ ├── ProtoLangImportResolverTest.xtend │ │ │ └── ProtoLangParsingTest.xtend │ │ └── resources/ │ │ └── com/ │ │ └── db/ │ │ └── plexus/ │ │ └── interop/ │ │ └── dsl/ │ │ └── protobuf/ │ │ └── tests/ │ │ ├── enum_values_naming.proto │ │ ├── example1.proto │ │ ├── example2.proto │ │ ├── field_label.proto │ │ ├── option_declare.proto │ │ ├── option_usage.proto │ │ ├── scoping/ │ │ │ ├── scoping/ │ │ │ │ └── test3.proto │ │ │ ├── test1.proto │ │ │ └── test2.proto │ │ └── subfolder/ │ │ └── example3.proto │ └── proto-lang.ide/ │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── db/ │ └── plexus/ │ └── interop/ │ └── dsl/ │ └── protobuf/ │ ├── ide/ │ │ ├── ProtoLangIdeModule.xtend │ │ └── ProtoLangIdeSetup.xtend │ └── server/ │ ├── ProtoDebugServerLauncher.java │ ├── ProtoLangServerModule.java │ ├── ProtoLanguageServer.java │ └── StdIOServerLauncher.java ├── gradle/ │ ├── maven-deployment.gradle │ ├── source-layout.gradle │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── greeting-details.md ├── nodejs-broker-roadmap.md ├── protocol/ │ ├── plexus.interop.proto │ ├── plexus.interop.transport.proto │ └── plexus.proto ├── samples/ │ ├── broadcast/ │ │ └── registry/ │ │ └── interop/ │ │ └── samples/ │ │ ├── ip_telephony_app.interop │ │ ├── ip_telephony_broadcast_service.proto │ │ └── sales_app.interop │ ├── build.gradle │ ├── greeting/ │ │ ├── GenBrokerMetadata.cmd │ │ ├── metadata/ │ │ │ ├── apps.json │ │ │ └── interop.json │ │ └── registry/ │ │ └── interop/ │ │ ├── electron_app_launcher.interop │ │ └── samples/ │ │ ├── greeting_client.interop │ │ ├── greeting_server.interop │ │ ├── greeting_service.proto │ │ └── web_greeting_server.interop │ └── quick-start/ │ ├── GenBrokerMetadata.cmd │ ├── metadata/ │ │ ├── apps.json │ │ └── interop.json │ └── registry/ │ ├── fx/ │ │ └── ccy_pair_rate_service.proto │ ├── interop/ │ │ └── electron_app_launcher.interop │ ├── vendor_a/ │ │ └── fx/ │ │ ├── ccy_pair_rate_provider.interop │ │ └── web_ccy_pair_rate_provider.interop │ └── vendor_b/ │ └── fx/ │ ├── ccy_pair_rate_viewer.interop │ └── web_ccy_pair_rate_viewer.interop ├── settings.gradle └── web/ ├── .ci-npmrc-tpl ├── .ci-publish-npmrc-tpl ├── .gitignore ├── .yarnrc ├── README.md ├── build.gradle ├── configs/ │ └── tslint.json ├── lerna.json ├── package.json ├── packages/ │ ├── broker/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── preprocessor.js │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── AsyncHandler.ts │ │ │ ├── api/ │ │ │ │ ├── AppLifeCycleConfig.ts │ │ │ │ ├── CrossDomainEventBusProvider.ts │ │ │ │ ├── CrossDomainHostBuilder.ts │ │ │ │ ├── CrossDomainHostEntryPoint.ts │ │ │ │ ├── WebBrokerConnectionBuilder.ts │ │ │ │ └── index.ts │ │ │ ├── broker/ │ │ │ │ ├── AuthenticationHandler.ts │ │ │ │ ├── Broker.ts │ │ │ │ ├── ClientConnectionProcessor.ts │ │ │ │ ├── ClientRequestProcessor.ts │ │ │ │ ├── DiscoveryRequestHandler.ts │ │ │ │ ├── InvocationRequestHandler.ts │ │ │ │ └── TasksTracker.ts │ │ │ ├── bus/ │ │ │ │ ├── Event.ts │ │ │ │ ├── EventBus.ts │ │ │ │ ├── FallbackEventBus.ts │ │ │ │ ├── cross/ │ │ │ │ │ ├── CrossDomainBusConfig.ts │ │ │ │ │ ├── CrossDomainEventBus.ts │ │ │ │ │ ├── host/ │ │ │ │ │ │ ├── CrossDomainHost.ts │ │ │ │ │ │ ├── CrossDomainHostConfig.ts │ │ │ │ │ │ ├── HostMessageEvent.ts │ │ │ │ │ │ └── HostState.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── model/ │ │ │ │ │ ├── IFrameHostMessage.ts │ │ │ │ │ ├── MessageType.ts │ │ │ │ │ ├── PublishRequest.ts │ │ │ │ │ ├── ResponseType.ts │ │ │ │ │ └── SubscribeRequest.ts │ │ │ │ ├── index.ts │ │ │ │ └── same/ │ │ │ │ ├── BroadCastChannelEventBus.ts │ │ │ │ └── JStorageEventBus.ts │ │ │ ├── index.ts │ │ │ ├── launcher/ │ │ │ │ ├── AppLaunchRequest.ts │ │ │ │ ├── AppLaunchResponse.ts │ │ │ │ ├── AppLauncher.ts │ │ │ │ ├── AppLauncherRegistry.ts │ │ │ │ ├── LaunchInvocationContext.ts │ │ │ │ ├── UrlWebAppLauncher.ts │ │ │ │ └── index.ts │ │ │ ├── lifecycle/ │ │ │ │ ├── AppLifeCycleManager.ts │ │ │ │ ├── ApplicationConnection.ts │ │ │ │ ├── ApplicationConnectionDescriptor.ts │ │ │ │ └── ApplicationDescriptor.ts │ │ │ ├── peers/ │ │ │ │ ├── ActionType.ts │ │ │ │ ├── PeerAppLifeCycleManager.ts │ │ │ │ ├── PeerConnectionsService.ts │ │ │ │ ├── PeerProxyConnection.ts │ │ │ │ ├── PeerProxyTransportChannel.ts │ │ │ │ ├── PeerServerConnectionFactory.ts │ │ │ │ ├── ProxyAuthenticationHandler.ts │ │ │ │ ├── StreamingInvocationClient.ts │ │ │ │ ├── actions/ │ │ │ │ │ ├── ChannelRequest.ts │ │ │ │ │ ├── CloseChannelRequest.ts │ │ │ │ │ ├── CloseChannelResponse.ts │ │ │ │ │ ├── CreateChannelResponse.ts │ │ │ │ │ ├── RemoteActions.ts │ │ │ │ │ └── SendMessageRequest.ts │ │ │ │ ├── events/ │ │ │ │ │ ├── AppConnectionHeartBit.ts │ │ │ │ │ └── EventType.ts │ │ │ │ ├── host/ │ │ │ │ │ ├── HostConnectionFactory.ts │ │ │ │ │ └── HostTransportConnection.ts │ │ │ │ └── remote/ │ │ │ │ ├── EventBasedRequest.ts │ │ │ │ ├── EventBusRemoteBrokerService.ts │ │ │ │ ├── RemoteActionResult.ts │ │ │ │ ├── RemoteActionStatus.ts │ │ │ │ └── RemoteBrokerService.ts │ │ │ ├── storage/ │ │ │ │ └── Storage.ts │ │ │ ├── transport/ │ │ │ │ └── MultiSourcesServerConnectionFactory.ts │ │ │ └── util/ │ │ │ └── Types.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── ccy-pair-rate-provider/ │ │ ├── gen-client.cmd │ │ ├── package.json │ │ ├── src/ │ │ │ ├── RateService.ts │ │ │ ├── gen/ │ │ │ │ ├── WebCcyPairRateProviderGeneratedClient.ts │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ └── plexus-messages.js │ │ │ ├── index.ts │ │ │ └── views/ │ │ │ └── index.html │ │ └── tsconfig.json │ ├── ccy-pair-rate-viewer/ │ │ ├── gen-client.cmd │ │ ├── package.json │ │ ├── src/ │ │ │ ├── gen/ │ │ │ │ ├── WebCcyPairRateViewerGeneratedClient.ts │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ └── plexus-messages.js │ │ │ ├── index.ts │ │ │ └── views/ │ │ │ └── index.html │ │ └── tsconfig.json │ ├── cli/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ └── tasks.json │ │ ├── dev-examples.md │ │ ├── install.js │ │ ├── package.json │ │ ├── plexus.js │ │ ├── src/ │ │ │ ├── commands/ │ │ │ │ ├── BaseCommand.ts │ │ │ │ ├── BaseJavaGenCommand.ts │ │ │ │ ├── Command.ts │ │ │ │ ├── DefaultOptions.ts │ │ │ │ ├── GenCSharpCommand.ts │ │ │ │ ├── GenJsonCommand.ts │ │ │ │ ├── GenProtoCommand.ts │ │ │ │ ├── GenTsCommand.ts │ │ │ │ ├── ListMetaFilesCommand.ts │ │ │ │ ├── Option.ts │ │ │ │ ├── ValidateMetadataCommand.ts │ │ │ │ ├── ValidateMetadataPatchCommand.ts │ │ │ │ ├── commands.ts │ │ │ │ └── index.ts │ │ │ ├── common/ │ │ │ │ ├── download.ts │ │ │ │ ├── files.ts │ │ │ │ ├── java.ts │ │ │ │ ├── process.ts │ │ │ │ ├── progress.ts │ │ │ │ ├── protoJs.ts │ │ │ │ └── protoc.ts │ │ │ ├── index.ts │ │ │ ├── install.ts │ │ │ └── typings.d.ts │ │ ├── tests/ │ │ │ ├── approved/ │ │ │ │ ├── generated-cs-client.approved.txt │ │ │ │ ├── generated-cs-messages.approved.txt │ │ │ │ ├── generated-cs-options.approved.txt │ │ │ │ ├── generated-cs-service.approved.txt │ │ │ │ ├── generated-json.approved.txt │ │ │ │ ├── generated-ts-client.approved.txt │ │ │ │ ├── generated-ts-definitions.approved.txt │ │ │ │ └── generated-ts-messages.approved.txt │ │ │ ├── commands/ │ │ │ │ ├── BaseCommand.spec.ts │ │ │ │ ├── GenCSharpCommand.spec.ts │ │ │ │ ├── GenJsonCommand.spec.ts │ │ │ │ ├── GetTsCommand.spec.ts │ │ │ │ ├── ListMetaFilesCommand.spec.ts │ │ │ │ ├── ValidateMetadataCommand.spec.ts │ │ │ │ ├── ValidateMetatadaPatchCommand.spec.ts │ │ │ │ └── setup.ts │ │ │ ├── files.spec.ts │ │ │ └── protoJs.spec.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── client/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── client/ │ │ │ │ ├── ClientDtoUtils.ts │ │ │ │ ├── api/ │ │ │ │ │ ├── AnonymousSubscription.ts │ │ │ │ │ ├── BaseInvocationClientImpl.ts │ │ │ │ │ ├── DelegateInvocationObserver.ts │ │ │ │ │ ├── InvocationClient.ts │ │ │ │ │ ├── LoggingInvocationObserver.ts │ │ │ │ │ ├── ValueHandler.ts │ │ │ │ │ ├── container/ │ │ │ │ │ │ ├── ConnectionDetails.ts │ │ │ │ │ │ ├── ConnectionDetailsService.ts │ │ │ │ │ │ ├── ContainerAwareClientAPIBuilder.ts │ │ │ │ │ │ ├── DefaultConnectionDetailsService.ts │ │ │ │ │ │ ├── WsConnectionDetails.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── generic/ │ │ │ │ │ │ ├── ClientApiBuilder.ts │ │ │ │ │ │ ├── GenericClientApi.ts │ │ │ │ │ │ ├── GenericClientApiBase.ts │ │ │ │ │ │ ├── GenericClientApiBuilder.ts │ │ │ │ │ │ ├── GenericClientApiImpl.ts │ │ │ │ │ │ ├── GenericInvocationsHost.ts │ │ │ │ │ │ ├── InvocationExecutor.ts │ │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ │ ├── InvocationHandlerConverter.ts │ │ │ │ │ │ │ ├── InvocationHandlersRegistry.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── streaming/ │ │ │ │ │ │ │ │ ├── BidiStreamingInvocationHandler.ts │ │ │ │ │ │ │ │ ├── ServerStreamingInvocationHandler.ts │ │ │ │ │ │ │ │ ├── StreamingInvocationClient.ts │ │ │ │ │ │ │ │ ├── StreamingInvocationClientImpl.ts │ │ │ │ │ │ │ │ ├── StreamingInvocationClientInternal.ts │ │ │ │ │ │ │ │ ├── StreamingInvocationHost.ts │ │ │ │ │ │ │ │ ├── converters.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── unary/ │ │ │ │ │ │ │ ├── UnaryInvocationHandler.ts │ │ │ │ │ │ │ ├── converters.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── internal/ │ │ │ │ │ │ ├── InternalActionInvoker.ts │ │ │ │ │ │ ├── InternalGenericClientApi.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── generic/ │ │ │ │ │ ├── AcceptedInvocation.ts │ │ │ │ │ ├── BaseInvocation.ts │ │ │ │ │ ├── GenericClient.ts │ │ │ │ │ ├── GenericClientFactory.ts │ │ │ │ │ ├── GenericClientImpl.ts │ │ │ │ │ ├── GenericInvocation.ts │ │ │ │ │ ├── Invocation.ts │ │ │ │ │ ├── InvocationChannelObserver.ts │ │ │ │ │ ├── InvocationObserver.ts │ │ │ │ │ ├── InvocationObserverConverter.ts │ │ │ │ │ ├── InvocationState.ts │ │ │ │ │ ├── RequestedDiscoveredInvocation.ts │ │ │ │ │ ├── RequestedInvocation.ts │ │ │ │ │ ├── SingleMessageRequst.ts │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── BufferedInvocationObserver.ts │ │ │ ├── LogInvocationObserver.ts │ │ │ ├── client/ │ │ │ │ ├── DefaultConnectionDetailsService.spec.ts │ │ │ │ ├── GenericClient.spec.ts │ │ │ │ ├── GenericClientApi.spec.ts │ │ │ │ ├── GenericInvocationHost.spec.ts │ │ │ │ ├── Invocation.spec.ts │ │ │ │ ├── WsConnectionDetails.spec.ts │ │ │ │ └── client-mocks.ts │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── client-api/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── MethodInvocationContext.ts │ │ │ ├── dto/ │ │ │ │ ├── ActionReference.ts │ │ │ │ ├── BasicInvocationInfo.ts │ │ │ │ ├── ClientConnectRequest.ts │ │ │ │ ├── Completion.ts │ │ │ │ ├── ConsumedService.ts │ │ │ │ ├── DiscoveredMethod.ts │ │ │ │ ├── DiscoveredService.ts │ │ │ │ ├── DiscoveredServiceMethod.ts │ │ │ │ ├── DiscoveryMode.ts │ │ │ │ ├── GenericRequest.ts │ │ │ │ ├── HostInvocationInfo.ts │ │ │ │ ├── MethodDiscoveryRequest.ts │ │ │ │ ├── MethodDiscoveryResponse.ts │ │ │ │ ├── MethodType.ts │ │ │ │ ├── Option.ts │ │ │ │ ├── ProvidedMethodReference.ts │ │ │ │ ├── ProvidedServiceReference.ts │ │ │ │ ├── RemoteInvocationInfo.ts │ │ │ │ ├── ServiceDiscoveryRequest.ts │ │ │ │ ├── ServiceDiscoveryResponse.ts │ │ │ │ ├── ServiceInfo.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── common/ │ │ ├── package.json │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── PlexusFeatures.ts │ │ │ ├── RetryConfig.ts │ │ │ ├── cache/ │ │ │ │ ├── Cache.ts │ │ │ │ ├── CacheEntry.ts │ │ │ │ ├── CacheEntryDescriptor.ts │ │ │ │ ├── InMemoryCache.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── logger/ │ │ │ │ ├── DelegatingLogger.ts │ │ │ │ ├── Logger.ts │ │ │ │ ├── LoggerBase.ts │ │ │ │ ├── LoggerFactory.ts │ │ │ │ ├── PrefixedLogger.ts │ │ │ │ └── index.ts │ │ │ ├── rx/ │ │ │ │ ├── AnonymousSubscription.ts │ │ │ │ ├── BufferedObserver.ts │ │ │ │ ├── ConversionObserver.ts │ │ │ │ ├── Observer.ts │ │ │ │ ├── Subscription.ts │ │ │ │ └── index.ts │ │ │ ├── util/ │ │ │ │ ├── Arrays.ts │ │ │ │ ├── ExtendedArray.ts │ │ │ │ ├── GUID.ts │ │ │ │ ├── async/ │ │ │ │ │ ├── AsyncHelper.ts │ │ │ │ │ ├── CancellationToken.ts │ │ │ │ │ ├── ReadOnlyCancellationToken.ts │ │ │ │ │ ├── ReadWriteCancellationToken.ts │ │ │ │ │ ├── SequencedExecutor.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── promises.ts │ │ │ │ ├── collections/ │ │ │ │ │ ├── BlockingQueue.ts │ │ │ │ │ ├── ExtendedMap.ts │ │ │ │ │ ├── LimitedBufferQueue.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── map.ts │ │ │ │ ├── dom/ │ │ │ │ │ └── DomUtils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── js/ │ │ │ │ │ └── ObjectUtils.ts │ │ │ │ ├── once.ts │ │ │ │ ├── state/ │ │ │ │ │ ├── StateMaschine.ts │ │ │ │ │ ├── StateMaschineBase.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── time/ │ │ │ │ │ └── TimeUtils.ts │ │ │ │ ├── types.ts │ │ │ │ ├── unique.ts │ │ │ │ └── url/ │ │ │ │ └── UrlParamsProvider.ts │ │ │ └── ws/ │ │ │ └── detect.ts │ │ ├── tests/ │ │ │ ├── cache/ │ │ │ │ └── InMemoryCache.spec.ts │ │ │ ├── logger/ │ │ │ │ └── LoggerFactory.spec.ts │ │ │ └── util/ │ │ │ ├── Arrays.spec.ts │ │ │ ├── AsyncHelper.spec.ts │ │ │ ├── BlockingQueue.spec.ts │ │ │ ├── ExtendedArray.spec.ts │ │ │ ├── LimitedBufferQueue.spec.ts │ │ │ ├── SequencedExecutor.spec.ts │ │ │ ├── StateMaschineBase.spec.ts │ │ │ ├── map.spec.ts │ │ │ └── promises.spec.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── common-api-impl/ │ │ ├── .npmignore │ │ ├── README.md │ │ ├── package.json │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── PartialPeerDescriptor.ts │ │ │ ├── PlexusInteropPeer.ts │ │ │ ├── PlexusInteropPlatform.ts │ │ │ ├── actions/ │ │ │ │ ├── DiscoverMethodHandler.ts │ │ │ │ ├── DiscoverMethodsHandler.ts │ │ │ │ ├── InvokeHandler.ts │ │ │ │ └── SubscribeHandler.ts │ │ │ ├── api/ │ │ │ │ ├── InteropPlatformFactory.ts │ │ │ │ ├── client-api.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── listeners.ts │ │ │ ├── metadata.ts │ │ │ ├── registration.ts │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── e2e/ │ │ ├── gen-metadata.cmd │ │ ├── karma.conf.js │ │ ├── metadata/ │ │ │ ├── apps.json │ │ │ ├── interop/ │ │ │ │ └── plexus/ │ │ │ │ └── interop/ │ │ │ │ └── testing/ │ │ │ │ ├── echo_client.interop │ │ │ │ ├── echo_server.interop │ │ │ │ ├── echo_service.proto │ │ │ │ └── test_app_launcher.interop │ │ │ └── interop.json │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── browserify-all.js │ │ │ ├── coverage.js │ │ │ ├── file-utils.js │ │ │ ├── karma-preprocessor.js │ │ │ ├── native-broker-launcher.js │ │ │ ├── native-e2e-tests-launcher.js │ │ │ └── web-e2e-tests-launcher.js │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── echo/ │ │ │ │ ├── client/ │ │ │ │ │ ├── EchoClientGeneratedClient.ts │ │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ │ └── plexus-messages.js │ │ │ │ └── server/ │ │ │ │ ├── EchoServerGeneratedClient.ts │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ └── plexus-messages.js │ │ │ ├── polyfills.ts │ │ │ └── views/ │ │ │ └── proxyHost.html │ │ ├── tests/ │ │ │ ├── common/ │ │ │ │ ├── BenchmarkResult.ts │ │ │ │ ├── ClientsSetup.ts │ │ │ │ ├── ConnectionProvider.ts │ │ │ │ ├── ConnectionSetup.ts │ │ │ │ ├── RawMetadata.ts │ │ │ │ ├── TestCrossDomainHost.ts │ │ │ │ ├── TransportsSetup.ts │ │ │ │ └── utils.ts │ │ │ ├── echo/ │ │ │ │ ├── BaseEchoTest.ts │ │ │ │ ├── BidiStreamingTests.ts │ │ │ │ ├── ClientConnectivityTests.ts │ │ │ │ ├── ClientStreamingHandler.ts │ │ │ │ ├── ClientStreamingTests.ts │ │ │ │ ├── DiscoveryTests.ts │ │ │ │ ├── DynamicInvocationTests.ts │ │ │ │ ├── EchoClientBenchmark.ts │ │ │ │ ├── NopServiceHandler.ts │ │ │ │ ├── PointToPointInvocationTests.ts │ │ │ │ ├── ServerStreamingHandler.ts │ │ │ │ ├── ServerStreamingInvocationTests.ts │ │ │ │ └── UnaryServiceHandler.ts │ │ │ ├── native/ │ │ │ │ ├── WebSocketClientConnectivity.spec.ts │ │ │ │ ├── WebSocketCommonApi.spec.ts │ │ │ │ ├── WebSocketDiscovery.spec.ts │ │ │ │ ├── WebSocketDynamicInvocationTests.spec.ts │ │ │ │ ├── WebSocketMetadataLoader.spec.ts │ │ │ │ ├── WebSocketPlainDtoTests.spec.ts │ │ │ │ ├── WebSocketPointToPoint.spec.ts │ │ │ │ ├── WebSocketStreaming.spec.ts │ │ │ │ └── benchmarks/ │ │ │ │ └── WebSocketTransportBenchmark.spec.ts │ │ │ └── web/ │ │ │ ├── WebBrokerClientConnectivity.spec.ts │ │ │ ├── WebBrokerDiscovery.spec.ts │ │ │ ├── WebBrokerPointToPoint.spec.ts │ │ │ ├── WebBrokerStreaming.spec.ts │ │ │ └── benchmarks/ │ │ │ └── WebBrokerTransportBenchmark.spec.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── electron-launcher/ │ │ ├── ElectronAppLauncher.cmd │ │ ├── package.json │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── launcher/ │ │ │ ├── ElectronAppLauncher.ts │ │ │ ├── Main.ts │ │ │ ├── client/ │ │ │ │ └── ElectronAppLauncherGeneratedClient.ts │ │ │ ├── gen/ │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ └── plexus-messages.js │ │ │ └── logger/ │ │ │ └── FileLogger.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── io/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── preprocessor.js │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── BinaryMarshaller.ts │ │ │ │ ├── BinaryMarshallerProvider.ts │ │ │ │ ├── ExtendedMarshaller.ts │ │ │ │ ├── Marshaller.ts │ │ │ │ └── index.ts │ │ │ ├── dynamic/ │ │ │ │ ├── DynamicBinaryMarshallerProvider.ts │ │ │ │ ├── DynamicBinaryProtoMarshaller.ts │ │ │ │ ├── DynamicProtoMarshaller.ts │ │ │ │ ├── DynamicProtoMarshallerFactory.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── static/ │ │ │ ├── ProtoMarshallerProvider.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── dynamic/ │ │ │ │ └── DynamicMarshallerFactory.spec.ts │ │ │ └── static/ │ │ │ └── ProtoMarshallerProvider.spec.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── metadata/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── preprocessor.js │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── apps/ │ │ │ │ ├── AppRegistryProvider.ts │ │ │ │ ├── AppRegistryService.ts │ │ │ │ ├── json/ │ │ │ │ │ ├── JsonAppRegistryProvider.ts │ │ │ │ │ └── UrlAppRegistryProvider.ts │ │ │ │ └── model/ │ │ │ │ ├── AppRegistry.ts │ │ │ │ ├── Application.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── interop/ │ │ │ ├── InteropRegistryProvider.ts │ │ │ ├── InteropRegistryService.ts │ │ │ ├── apps/ │ │ │ │ └── Application.ts │ │ │ ├── json/ │ │ │ │ ├── ApplicationDto.ts │ │ │ │ ├── ConsumedMethodDto.ts │ │ │ │ ├── ConsumedServiceDto.ts │ │ │ │ ├── EnumDto.ts │ │ │ │ ├── Field.ts │ │ │ │ ├── Fields.ts │ │ │ │ ├── JsonInteropRegistryProvider.ts │ │ │ │ ├── MessageDto.ts │ │ │ │ ├── MessagesNamespace.ts │ │ │ │ ├── MethodDto.ts │ │ │ │ ├── MethodTypeDto.ts │ │ │ │ ├── OptionDto.ts │ │ │ │ ├── Options.ts │ │ │ │ ├── ProvidedMethodDto.ts │ │ │ │ ├── ProvidedServiceDto.ts │ │ │ │ ├── RegistryDto.ts │ │ │ │ ├── ServiceDto.ts │ │ │ │ ├── UrlInteropRegistryProvider.ts │ │ │ │ └── Values.ts │ │ │ └── model/ │ │ │ ├── Application.ts │ │ │ ├── ConsumedMethod.ts │ │ │ ├── ConsumedMethodReference.ts │ │ │ ├── ConsumedService.ts │ │ │ ├── ConsumedServiceReference.ts │ │ │ ├── Enum.ts │ │ │ ├── Field.ts │ │ │ ├── InteropRegistry.ts │ │ │ ├── MatchPattern.ts │ │ │ ├── MatchPatternFactory.ts │ │ │ ├── Message.ts │ │ │ ├── Method.ts │ │ │ ├── MethodType.ts │ │ │ ├── Option.ts │ │ │ ├── ProvidedMethod.ts │ │ │ ├── ProvidedMethodReference.ts │ │ │ ├── ProvidedService.ts │ │ │ ├── ProvidedServiceReference.ts │ │ │ ├── Service.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ └── json/ │ │ │ ├── InteropRegistryService.spec.ts │ │ │ ├── JsonAppRegistryProvider.spec.ts │ │ │ ├── JsonRegistryProvider.spec.ts │ │ │ ├── test-apps.json │ │ │ └── test-interop.json │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── protocol/ │ │ ├── gen-protocol.cmd │ │ ├── package.json │ │ ├── src/ │ │ │ ├── dto/ │ │ │ │ ├── CancelledCompletion.ts │ │ │ │ ├── ClientError.ts │ │ │ │ ├── ClientProtocolUtils.ts │ │ │ │ ├── Completion.ts │ │ │ │ ├── ErrorCompletion.ts │ │ │ │ ├── InvocationMetaInfo.ts │ │ │ │ ├── SuccessCompletion.ts │ │ │ │ ├── UniqueId.ts │ │ │ │ └── index.ts │ │ │ ├── gen/ │ │ │ │ └── .gitignore │ │ │ ├── index.ts │ │ │ └── util/ │ │ │ └── ClientProtocolHelper.ts │ │ ├── tests/ │ │ │ └── dto/ │ │ │ └── UniqueId.spec.ts │ │ └── tsconfig.json │ ├── remote/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── preprocessor.js │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── http/ │ │ │ │ ├── HttpDataLoader.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── ws/ │ │ │ ├── WebSocketDataProvider.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── studio/ │ │ ├── .angular-cli.json │ │ ├── .bootstraprc │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── karma.conf.js │ │ ├── package.json │ │ ├── protractor.conf.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app-list/ │ │ │ │ │ ├── app-list.component.css │ │ │ │ │ ├── app-list.component.html │ │ │ │ │ └── app-list.component.ts │ │ │ │ ├── app-services/ │ │ │ │ │ ├── app-services.component.css │ │ │ │ │ ├── app-services.component.html │ │ │ │ │ └── app-services.component.ts │ │ │ │ ├── app.component.css │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── app.routing.ts │ │ │ │ ├── consumed-service/ │ │ │ │ │ ├── consumed-service.component.css │ │ │ │ │ ├── consumed-service.component.html │ │ │ │ │ └── consumed-service.component.ts │ │ │ │ ├── header/ │ │ │ │ │ ├── header.component.css │ │ │ │ │ ├── header.component.html │ │ │ │ │ └── header.component.ts │ │ │ │ ├── metadata-loader/ │ │ │ │ │ ├── metadata-loader.component.css │ │ │ │ │ ├── metadata-loader.component.html │ │ │ │ │ └── metadata-loader.component.ts │ │ │ │ ├── provided-service/ │ │ │ │ │ ├── provided-service.component.css │ │ │ │ │ ├── provided-service.component.html │ │ │ │ │ └── provided-service.component.ts │ │ │ │ └── services/ │ │ │ │ ├── AppUtils.ts │ │ │ │ ├── core/ │ │ │ │ │ ├── DefaultMessageGenerator.spec.ts │ │ │ │ │ ├── DefaultMessageGenerator.ts │ │ │ │ │ ├── FieldNamesValidator.spec.ts │ │ │ │ │ ├── FieldNamesValidator.ts │ │ │ │ │ ├── GenericClientWrapper.ts │ │ │ │ │ ├── InteropClient.ts │ │ │ │ │ ├── InteropClientFactory.ts │ │ │ │ │ ├── InteropServiceFactory.ts │ │ │ │ │ ├── StringHandlers.ts │ │ │ │ │ ├── TransportConnectionFactory.ts │ │ │ │ │ ├── TransportConnectionProvider.ts │ │ │ │ │ └── invocation-utils.ts │ │ │ │ ├── effects/ │ │ │ │ │ └── ConnectionEffects.ts │ │ │ │ ├── extensions/ │ │ │ │ │ └── StudioExtensions.ts │ │ │ │ ├── reducers/ │ │ │ │ │ ├── AlertsHandler.ts │ │ │ │ │ ├── ConnectionDetailsReducer.ts │ │ │ │ │ ├── PlexusReducers.ts │ │ │ │ │ └── TypedAction.ts │ │ │ │ ├── transport/ │ │ │ │ │ ├── TransportConnectionFactory.ts │ │ │ │ │ └── TransportConnectionProvider.ts │ │ │ │ └── ui/ │ │ │ │ ├── AppActions.ts │ │ │ │ ├── AppEffects.ts │ │ │ │ ├── AppModel.ts │ │ │ │ ├── ConnectionRequestParams.ts │ │ │ │ ├── RootReducers.ts │ │ │ │ ├── SubscriptionsRegistry.ts │ │ │ │ ├── filters.ts │ │ │ │ └── validators.ts │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── setup-jest.ts │ │ │ ├── styles.css │ │ │ ├── test.ts │ │ │ ├── tsconfig.app.json │ │ │ ├── tsconfig.spec.json │ │ │ └── typings.d.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── transport-common/ │ │ ├── .npmignore │ │ ├── package.json │ │ ├── setup-jasmine.js │ │ ├── src/ │ │ │ ├── common/ │ │ │ │ ├── BaseChannel.ts │ │ │ │ ├── BufferedObserver.ts │ │ │ │ ├── Channel.ts │ │ │ │ ├── ChannelObserver.ts │ │ │ │ ├── Defaults.ts │ │ │ │ ├── DelegateChannelObserver.ts │ │ │ │ ├── PlexusObserver.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── transport/ │ │ │ ├── ClientConnectionFactory.ts │ │ │ ├── ConnectionDetails.ts │ │ │ ├── DuplexConnectionFactory.ts │ │ │ ├── InMemoryConnectionFactory.ts │ │ │ ├── InMemoryFramedTransport.ts │ │ │ ├── ServerConnectionFactory.ts │ │ │ ├── TransportChannel.ts │ │ │ ├── TransportConnection.ts │ │ │ ├── frame/ │ │ │ │ ├── BufferedReadFramedTransport.ts │ │ │ │ ├── BufferedTransportProxy.ts │ │ │ │ ├── ConnectableFramedTransport.ts │ │ │ │ ├── FrameHeader.ts │ │ │ │ ├── FramedTransport.ts │ │ │ │ ├── FramedTransportChannel.ts │ │ │ │ ├── FramedTransportConnection.ts │ │ │ │ ├── SafeMessageBuffer.ts │ │ │ │ ├── TransportFrameHandler.ts │ │ │ │ ├── TransportFrameListener.ts │ │ │ │ ├── index.ts │ │ │ │ └── model/ │ │ │ │ ├── ChannelCloseFrame.ts │ │ │ │ ├── ChannelOpenFrame.ts │ │ │ │ ├── ConnectionCloseFrame.ts │ │ │ │ ├── ConnectionOpenFrame.ts │ │ │ │ ├── DataFrame.ts │ │ │ │ ├── Frame.ts │ │ │ │ ├── InternalMessagesConverter.ts │ │ │ │ ├── MessageFrame.ts │ │ │ │ ├── ServiceFrame.ts │ │ │ │ ├── index.ts │ │ │ │ └── util.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── BufferedObserver.ts │ │ │ ├── LogObserver.ts │ │ │ ├── transport/ │ │ │ │ ├── TestBufferedInMemoryFramedTransport.ts │ │ │ │ ├── TestInMemoryConnectionFactory.ts │ │ │ │ ├── UniqueId.spec.ts │ │ │ │ ├── frame/ │ │ │ │ │ ├── ClientToServer.spec.ts │ │ │ │ │ ├── FramedTransportChannel.spec.ts │ │ │ │ │ ├── FramedTransportConnection.spec.ts │ │ │ │ │ ├── InternalMessagesConverter.spec.ts │ │ │ │ │ ├── SafeMessageBuffer.spec.ts │ │ │ │ │ └── util.ts │ │ │ │ ├── mocks/ │ │ │ │ │ └── BufferedChannel.ts │ │ │ │ └── transport-mocks.ts │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── web-example/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── common/ │ │ │ │ └── DomLogger.ts │ │ │ └── greeting/ │ │ │ ├── server/ │ │ │ │ ├── Main.ts │ │ │ │ ├── WebGreetingServerGeneratedClient.ts │ │ │ │ └── gen/ │ │ │ │ ├── plexus-messages.d.ts │ │ │ │ └── plexus-messages.js │ │ │ └── views/ │ │ │ └── greetingServer.html │ │ ├── tsconfig.json │ │ └── tslint.json │ └── websocket-transport/ │ ├── .npmignore │ ├── package.json │ ├── setup-jasmine.js │ ├── src/ │ │ ├── index.ts │ │ └── transport/ │ │ ├── WebSocketConnectionFactory.ts │ │ ├── WebSocketFramedTransport.ts │ │ └── index.ts │ ├── tests/ │ │ └── transports/ │ │ └── WebSocketFramedTransport.spec.ts │ ├── tsconfig.json │ └── tslint.json └── scripts/ ├── replace-auth-vars.js └── replace-lock-registry.js