├── .vscode └── settings.json ├── example └── WebSample │ ├── CHANGELOG.md │ ├── web │ ├── favicon.ico │ ├── styles.css │ ├── main.dart │ └── index.html │ ├── README.md │ ├── .gitignore │ ├── analysis_options.yaml │ └── pubspec.yaml ├── .gitignore ├── pubspec.yaml ├── analysis_options.yaml ├── CHANGELOG.md ├── lib ├── src │ ├── TextMessageFormat.dart │ ├── Loggers.dart │ ├── IConnection.dart │ ├── Errors.dart │ ├── HandshakeProtocol.dart │ ├── AbortController.dart │ ├── WebSocketTransport.dart │ ├── ServerSentEventsTransport.dart │ ├── ILogger.dart │ ├── JsonHubProtocol.dart │ ├── ITransport.dart │ ├── Stream.dart │ ├── HubConnectionBuilder.dart │ ├── IHttpConnectionOptions.dart │ ├── LongPollingTransport.dart │ ├── Utils.dart │ ├── HttpConnection.dart │ ├── HubConnection.dart │ ├── HttpClient.dart │ └── IHubProtocol.dart ├── signalr2.dart └── dist │ ├── third-party-notices.txt │ ├── signalr.min.js.map │ └── signalr.min.js ├── LICENSE └── README.md /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "dart.promptToUpgradeWorkspace": false 3 | } -------------------------------------------------------------------------------- /example/WebSample/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.0.1 2 | 3 | - Initial version, created by Stagehand 4 | -------------------------------------------------------------------------------- /example/WebSample/web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rinukkusu/signalr2-dart/HEAD/example/WebSample/web/favicon.ico -------------------------------------------------------------------------------- /example/WebSample/README.md: -------------------------------------------------------------------------------- 1 | # WebSample 2 | 3 | An absolute bare-bones web app. 4 | 5 | Created from templates made available by Stagehand under a BSD-style 6 | [license](https://github.com/dart-lang/stagehand/blob/master/LICENSE). 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Files and directories created by pub 2 | .packages 3 | .pub/ 4 | build/ 5 | # Remove the following pattern if you wish to check in your lock file 6 | pubspec.lock 7 | 8 | # Directory created by dartdoc 9 | doc/api/ 10 | -------------------------------------------------------------------------------- /example/WebSample/.gitignore: -------------------------------------------------------------------------------- 1 | # Files and directories created by pub 2 | .dart_tool/ 3 | .packages 4 | .pub/ 5 | build/ 6 | # Remove the following pattern if you wish to check in your lock file 7 | pubspec.lock 8 | 9 | # Directory created by dartdoc 10 | doc/api/ 11 | -------------------------------------------------------------------------------- /example/WebSample/web/styles.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Roboto); 2 | 3 | html, body { 4 | width: 100%; 5 | height: 100%; 6 | margin: 0; 7 | padding: 0; 8 | font-family: 'Roboto', sans-serif; 9 | } 10 | 11 | #output { 12 | padding: 20px; 13 | text-align: center; 14 | } 15 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: signalr2 2 | version: 1.0.4 3 | description: A dart wrapper around the official SignalR JavaScript library for ASP.NET Core 2.1 4 | 5 | homepage: https://github.com/rinukkusu/signalr2-dart 6 | author: 'rinukkusu ' 7 | 8 | dependencies: 9 | js: ^0.6.1+1 10 | func2: ^2.0.0 11 | 12 | dev_dependencies: 13 | 14 | environment: 15 | sdk: ">=2.0.0 <3.0.0" 16 | -------------------------------------------------------------------------------- /example/WebSample/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | analyzer: 2 | strong-mode: true 3 | # exclude: 4 | # - path/to/excluded/files/** 5 | 6 | # Lint rules and documentation, see http://dart-lang.github.io/linter/lints 7 | linter: 8 | rules: 9 | - cancel_subscriptions 10 | - hash_and_equals 11 | - iterable_contains_unrelated_type 12 | - list_remove_unrelated_type 13 | - test_types_in_equals 14 | - unrelated_type_equality_checks 15 | - valid_regexps 16 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | analyzer: 2 | strong-mode: true 3 | # exclude: 4 | # - path/to/excluded/files/** 5 | 6 | # Lint rules and documentation, see http://dart-lang.github.io/linter/lints 7 | linter: 8 | rules: 9 | - cancel_subscriptions 10 | - close_sinks 11 | - hash_and_equals 12 | - iterable_contains_unrelated_type 13 | - list_remove_unrelated_type 14 | - test_types_in_equals 15 | - unrelated_type_equality_checks 16 | - valid_regexps 17 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.0.2 4 | 5 | - Catching up with the current release (no changes to the code at all) 6 | 7 | ## 1.0.0 8 | 9 | - Catching up with the current release 10 | 11 | ## 1.0.0-preview2-final 12 | 13 | - Catching up with the current release 14 | 15 | ## 1.0.0-alpha1-final 16 | 17 | - Initial version for the [announcement of the release][announcement] 18 | 19 | [announcement]: https://blogs.msdn.microsoft.com/webdev/2017/09/14/announcing-signalr-for-asp-net-core-2-0/ 20 | -------------------------------------------------------------------------------- /lib/src/TextMessageFormat.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library TextMessageFormat; 3 | 4 | import "package:js/js.dart"; 5 | 6 | @JS() 7 | class TextMessageFormat { 8 | // @Ignore 9 | TextMessageFormat.fakeConstructor$(); 10 | external static num get RecordSeparatorCode; 11 | external static set RecordSeparatorCode(num v); 12 | external static String get RecordSeparator; 13 | external static set RecordSeparator(String v); 14 | external static String write(String output); 15 | external static List parse(String input); 16 | } 17 | -------------------------------------------------------------------------------- /example/WebSample/web/main.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:js'; 3 | import 'package:signalr2/signalr2.dart' as signalr; 4 | 5 | Future main() async { 6 | var connection = new signalr.HubConnectionBuilder() 7 | .withUrl('http://localhost:5000/chat') 8 | .configureLogging(signalr.LogLevel.Information) 9 | .build(); 10 | 11 | connection.on('send', allowInterop((data) { 12 | print(data); 13 | })); 14 | 15 | await connection.start(); 16 | 17 | new Timer.periodic(const Duration(seconds: 1), (r) { 18 | connection.send('send', 'Hi'); 19 | }); 20 | } 21 | -------------------------------------------------------------------------------- /example/WebSample/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: WebSample 2 | description: An absolute bare-bones web app. 3 | version: 0.0.1 4 | #homepage: https://www.example.com 5 | #author: Maximilian Riegler 6 | 7 | environment: 8 | sdk: '>=2.0.0 <3.0.0' 9 | 10 | dependencies: 11 | signalr2: 12 | path: ../../ 13 | 14 | dev_dependencies: 15 | build_runner: '>=0.8.10 <0.11.0' 16 | build_web_compilers: '>=0.3.6 <0.5.0' 17 | 18 | # Uncomment the following in sdk 1.24+ to make pub serve 19 | # use dartdevc (webdev.dartlang.org/tools/dartdevc). 20 | #web: 21 | # compiler: 22 | # debug: dartdevc 23 | -------------------------------------------------------------------------------- /lib/src/Loggers.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library Loggers; 3 | 4 | import "package:js/js.dart"; 5 | import "ILogger.dart" show ILogger; 6 | 7 | /// A logger that does nothing when log messages are sent to it. 8 | @JS() 9 | class NullLogger implements ILogger { 10 | // @Ignore 11 | NullLogger.fakeConstructor$(); 12 | 13 | /// The singleton instance of the [NullLogger]. 14 | external static ILogger get instance; 15 | external static set instance(ILogger v); 16 | external factory NullLogger(); 17 | 18 | /// @inheritDoc 19 | external void log(num /*enum LogLevel*/ logLevel, String message); 20 | } 21 | -------------------------------------------------------------------------------- /example/WebSample/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | WebSample 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /lib/src/IConnection.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library IConnection; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "package:func2/func.dart"; 7 | 8 | @anonymous 9 | @JS() 10 | abstract class IConnection { 11 | external dynamic get features; 12 | external set features(dynamic v); 13 | external Future start(num /*enum TransferFormat*/ transferFormat); 14 | external Future send(dynamic /*String|ByteBuffer*/ data); 15 | external Future stop([Error error]); 16 | external VoidFunc1 get onreceive; 17 | external set onreceive(VoidFunc1 v); 18 | external VoidFunc1Opt1 get onclose; 19 | external set onclose(VoidFunc1Opt1 v); 20 | } 21 | -------------------------------------------------------------------------------- /lib/src/Errors.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library Errors; 3 | 4 | import "package:js/js.dart"; 5 | 6 | /// Error thrown when an HTTP request fails. 7 | @JS() 8 | class HttpError { 9 | // @Ignore 10 | HttpError.fakeConstructor$(); 11 | external get JS$___proto__; 12 | external set JS$___proto__(v); 13 | 14 | /// The HTTP status code represented by this error. 15 | external num get statusCode; 16 | external set statusCode(num v); 17 | 18 | /// Constructs a new instance of [HttpError]. 19 | external factory HttpError(String errorMessage, num statusCode); 20 | } 21 | 22 | /// Error thrown when a timeout elapses. 23 | @JS() 24 | class TimeoutError { 25 | // @Ignore 26 | TimeoutError.fakeConstructor$(); 27 | external get JS$___proto__; 28 | external set JS$___proto__(v); 29 | 30 | /// Constructs a new instance of [TimeoutError]. 31 | external factory TimeoutError([String errorMessage]); 32 | } 33 | -------------------------------------------------------------------------------- /lib/src/HandshakeProtocol.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library HandshakeProtocol; 3 | 4 | import "package:js/js.dart"; 5 | 6 | @anonymous 7 | @JS() 8 | abstract class HandshakeRequestMessage { 9 | external String get protocol; 10 | external set protocol(String v); 11 | external num get version; 12 | external set version(num v); 13 | external factory HandshakeRequestMessage({String protocol, num version}); 14 | } 15 | 16 | @anonymous 17 | @JS() 18 | abstract class HandshakeResponseMessage { 19 | external String get error; 20 | external set error(String v); 21 | external factory HandshakeResponseMessage({String error}); 22 | } 23 | 24 | @JS() 25 | class HandshakeProtocol { 26 | // @Ignore 27 | HandshakeProtocol.fakeConstructor$(); 28 | external String writeHandshakeRequest( 29 | HandshakeRequestMessage handshakeRequest); 30 | external List /*Tuple of */ parseHandshakeResponse( 31 | dynamic data); 32 | } 33 | -------------------------------------------------------------------------------- /lib/src/AbortController.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library AbortController; 3 | 4 | import "package:js/js.dart"; 5 | import "package:func2/func.dart"; 6 | 7 | @JS() 8 | class AbortController implements AbortSignal { 9 | // @Ignore 10 | AbortController.fakeConstructor$(); 11 | external get isAborted; 12 | external set isAborted(v); 13 | external VoidFunc0 get onabort; 14 | external set onabort(VoidFunc0 v); 15 | external void abort(); 16 | external AbortSignal get signal; 17 | external set signal(AbortSignal v); 18 | external bool get aborted; 19 | external set aborted(bool v); 20 | } 21 | 22 | /// Represents a signal that can be monitored to determine if a request has been aborted. 23 | @anonymous 24 | @JS() 25 | abstract class AbortSignal { 26 | /// Indicates if the request has been aborted. 27 | external bool get aborted; 28 | external set aborted(bool v); 29 | 30 | /// Set this to a handler that will be invoked when the request is aborted. 31 | external VoidFunc0 get onabort; 32 | external set onabort(VoidFunc0 v); 33 | external factory AbortSignal({bool aborted, VoidFunc0 onabort}); 34 | } 35 | -------------------------------------------------------------------------------- /lib/signalr2.dart: -------------------------------------------------------------------------------- 1 | library signalr2; 2 | 3 | export 'src/AbortController.dart' show AbortSignal; 4 | export 'src/Errors.dart' show HttpError, TimeoutError; 5 | export 'src/HttpClient.dart' 6 | show DefaultHttpClient, HttpClient, HttpRequest, HttpResponse; 7 | export 'src/IHttpConnectionOptions.dart' show IHttpConnectionOptions; 8 | export 'src/HubConnection.dart' show HubConnection; 9 | export 'src/HubConnectionBuilder.dart' show HubConnectionBuilder; 10 | export 'src/IHubProtocol.dart' 11 | show 12 | MessageType, 13 | MessageHeaders, 14 | HubMessageBase, 15 | HubInvocationMessage, 16 | InvocationMessage, 17 | StreamInvocationMessage, 18 | StreamItemMessage, 19 | CompletionMessage, 20 | PingMessage, 21 | CloseMessage, 22 | CancelInvocationMessage, 23 | IHubProtocol; 24 | export 'src/ILogger.dart' show ILogger, LogLevel; 25 | export 'src/ITransport.dart' show HttpTransportType, TransferFormat, ITransport; 26 | export 'src/Stream.dart' show IStreamSubscriber, IStreamResult, ISubscription; 27 | export 'src/Loggers.dart' show NullLogger; 28 | export 'src/JsonHubProtocol.dart' show JsonHubProtocol; 29 | -------------------------------------------------------------------------------- /lib/src/WebSocketTransport.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library WebSocketTransport; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "ITransport.dart" show ITransport; 7 | import "ILogger.dart" show ILogger; 8 | import "package:func2/func.dart"; 9 | 10 | @JS() 11 | class WebSocketTransport implements ITransport { 12 | // @Ignore 13 | WebSocketTransport.fakeConstructor$(); 14 | external get logger; 15 | external set logger(v); 16 | external get accessTokenFactory; 17 | external set accessTokenFactory(v); 18 | external get logMessageContent; 19 | external set logMessageContent(v); 20 | external get webSocket; 21 | external set webSocket(v); 22 | external factory WebSocketTransport( 23 | dynamic /*String|Promise*/ accessTokenFactory(), 24 | ILogger logger, 25 | bool logMessageContent); 26 | external Future connect( 27 | String url, num /*enum TransferFormat*/ transferFormat); 28 | external Future send(dynamic data); 29 | external Future stop(); 30 | external VoidFunc1 get onreceive; 31 | external set onreceive(VoidFunc1 v); 32 | external VoidFunc1Opt1 get onclose; 33 | external set onclose(VoidFunc1Opt1 v); 34 | } 35 | -------------------------------------------------------------------------------- /lib/src/ServerSentEventsTransport.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library ServerSentEventsTransport; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "ITransport.dart" show ITransport; 7 | import "HttpClient.dart" show HttpClient; 8 | import "ILogger.dart" show ILogger; 9 | import "package:func2/func.dart"; 10 | 11 | @JS() 12 | class ServerSentEventsTransport implements ITransport { 13 | // @Ignore 14 | ServerSentEventsTransport.fakeConstructor$(); 15 | external get httpClient; 16 | external set httpClient(v); 17 | external get accessTokenFactory; 18 | external set accessTokenFactory(v); 19 | external get logger; 20 | external set logger(v); 21 | external get logMessageContent; 22 | external set logMessageContent(v); 23 | external get eventSource; 24 | external set eventSource(v); 25 | external get url; 26 | external set url(v); 27 | external factory ServerSentEventsTransport( 28 | HttpClient httpClient, 29 | dynamic /*String|Promise*/ accessTokenFactory(), 30 | ILogger logger, 31 | bool logMessageContent); 32 | external Future connect( 33 | String url, num /*enum TransferFormat*/ transferFormat); 34 | external Future send(dynamic data); 35 | external Future stop(); 36 | external close([e]); 37 | external VoidFunc1 get onreceive; 38 | external set onreceive(VoidFunc1 v); 39 | external VoidFunc1Opt1 get onclose; 40 | external set onclose(VoidFunc1Opt1 v); 41 | } 42 | -------------------------------------------------------------------------------- /lib/src/ILogger.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library ILogger; 3 | 4 | import "package:js/js.dart"; 5 | 6 | /// Indicates the severity of a log message. 7 | /// Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc. 8 | @JS() 9 | class LogLevel { 10 | external static num get 11 | 12 | /// Log level for very low severity diagnostic messages. 13 | Trace; 14 | external static num get 15 | 16 | /// Log level for low severity diagnostic messages. 17 | Debug; 18 | external static num get 19 | 20 | /// Log level for informational diagnostic messages. 21 | Information; 22 | external static num get 23 | 24 | /// Log level for diagnostic messages that indicate a non-fatal problem. 25 | Warning; 26 | external static num get 27 | 28 | /// Log level for diagnostic messages that indicate a failure in the current operation. 29 | Error; 30 | external static num get 31 | 32 | /// Log level for diagnostic messages that indicate a failure that will terminate the entire application. 33 | Critical; 34 | external static num get 35 | 36 | /// The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. 37 | None; 38 | } 39 | 40 | /// An abstraction that provides a sink for diagnostic messages. 41 | @anonymous 42 | @JS() 43 | abstract class ILogger { 44 | /// Called by the framework to emit a diagnostic message. 45 | external void log(num /*enum LogLevel*/ logLevel, String message); 46 | } 47 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017, 'rinukkusu'. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of the nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Please use [soernt/signalr_client](https://github.com/soernt/signalr_client) for the best experience. This wrapper library is not in development anymore. 2 | 3 | 4 | 5 | # signalr2 6 | 7 | Incredibly simple real-time web for ASP.NET Core 2.1 8 | This is an interop library for the [@aspnet/signalr][signalr_npm] package. 9 | Find more Information at https://github.com/aspnet/SignalR 10 | 11 | *Currently in sync with the release `1.0.4` from 2018-10-17.* 12 | 13 | ## Usage 14 | 15 | Add a ` 19 | ``` 20 | 21 | A simple usage example: 22 | 23 | ```dart 24 | import 'dart:async'; 25 | import 'dart:js'; 26 | import 'package:signalr2/signalr2.dart' as signalr; 27 | 28 | Future main() async { 29 | var connection = new signalr.HubConnectionBuilder() 30 | .withUrl('/chat') 31 | .configureLogging(signalr.LogLevel.Information) 32 | .build(); 33 | 34 | connection.on('send', allowInterop((data) { 35 | print(data); 36 | })); 37 | 38 | await connection.start(); 39 | 40 | new Timer.periodic(const Duration(seconds: 1), (r) { 41 | connection.send('send', 'Hi'); 42 | }); 43 | } 44 | 45 | ``` 46 | 47 | ## Features and bugs 48 | 49 | Please file feature requests and bugs at the [issue tracker][tracker]. 50 | 51 | [tracker]: https://github.com/rinukkusu/signalr2-dart 52 | [signalr_npm]: https://www.npmjs.com/package/@aspnet/signalr 53 | -------------------------------------------------------------------------------- /lib/src/JsonHubProtocol.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library JsonHubProtocol; 3 | 4 | import "package:js/js.dart"; 5 | import "IHubProtocol.dart" show IHubProtocol; 6 | import "ILogger.dart" show ILogger; 7 | 8 | /// Implements the JSON Hub Protocol. 9 | @JS() 10 | class JsonHubProtocol implements IHubProtocol { 11 | // @Ignore 12 | JsonHubProtocol.fakeConstructor$(); 13 | 14 | /// @inheritDoc 15 | external String get name; 16 | external set name(String v); 17 | 18 | /// @inheritDoc 19 | external num get version; 20 | external set version(num v); 21 | 22 | /// @inheritDoc 23 | external num /*enum TransferFormat*/ get transferFormat; 24 | external set transferFormat(num /*enum TransferFormat*/ v); 25 | 26 | /// Creates an array of [HubMessage] objects from the specified serialized representation. 27 | external List< 28 | dynamic /*InvocationMessage|StreamInvocationMessage|StreamItemMessage|CompletionMessage|CancelInvocationMessage|PingMessage|CloseMessage*/ > 29 | parseMessages(dynamic input, ILogger logger); 30 | 31 | /// Writes the specified [HubMessage] to a string and returns it. 32 | external String writeMessage( 33 | dynamic /*InvocationMessage|StreamInvocationMessage|StreamItemMessage|CompletionMessage|CancelInvocationMessage|PingMessage|CloseMessage*/ message); 34 | external get isInvocationMessage; 35 | external set isInvocationMessage(v); 36 | external get isStreamItemMessage; 37 | external set isStreamItemMessage(v); 38 | external get isCompletionMessage; 39 | external set isCompletionMessage(v); 40 | external get assertNotEmptyString; 41 | external set assertNotEmptyString(v); 42 | } 43 | -------------------------------------------------------------------------------- /lib/src/ITransport.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library ITransport; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "package:func2/func.dart"; 7 | 8 | /// Specifies a specific HTTP transport type. 9 | @JS() 10 | class HttpTransportType { 11 | external static num get 12 | 13 | /// Specifies no transport preference. 14 | None; 15 | external static num get 16 | 17 | /// Specifies the WebSockets transport. 18 | WebSockets; 19 | external static num get 20 | 21 | /// Specifies the Server-Sent Events transport. 22 | ServerSentEvents; 23 | external static num get 24 | 25 | /// Specifies the Long Polling transport. 26 | LongPolling; 27 | } 28 | 29 | /// Specifies the transfer format for a connection. 30 | @JS() 31 | class TransferFormat { 32 | external static num get 33 | 34 | /// Specifies that only text data will be transmitted over the connection. 35 | Text; 36 | external static num get 37 | 38 | /// Specifies that binary data will be transmitted over the connection. 39 | Binary; 40 | } 41 | 42 | /// An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. 43 | @anonymous 44 | @JS() 45 | abstract class ITransport { 46 | external Future connect( 47 | String url, num /*enum TransferFormat*/ transferFormat); 48 | external Future send(dynamic data); 49 | external Future stop(); 50 | external VoidFunc1 get onreceive; 51 | external set onreceive(VoidFunc1 v); 52 | external VoidFunc1Opt1 get onclose; 53 | external set onclose(VoidFunc1Opt1 v); 54 | } 55 | -------------------------------------------------------------------------------- /lib/src/Stream.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library Stream; 3 | 4 | import "package:js/js.dart"; 5 | 6 | /// Defines the expected type for a receiver of results streamed by the server. 7 | /// @typeparam T The type of the items being sent by the server. 8 | @anonymous 9 | @JS() 10 | abstract class IStreamSubscriber { 11 | /// A boolean that will be set by the [IStreamResult] when the stream is closed. 12 | external bool get closed; 13 | external set closed(bool v); 14 | 15 | /// Called by the framework when a new item is available. 16 | external void next(T value); 17 | 18 | /// Called by the framework when an error has occurred. 19 | /// After this method is called, no additional methods on the [IStreamSubscriber] will be called. 20 | external void error(dynamic err); 21 | 22 | /// Called by the framework when the end of the stream is reached. 23 | /// After this method is called, no additional methods on the [IStreamSubscriber] will be called. 24 | external void complete(); 25 | } 26 | 27 | /// Defines the result of a streaming hub method. 28 | /// @typeparam T The type of the items being sent by the server. 29 | @anonymous 30 | @JS() 31 | abstract class IStreamResult { 32 | /// Attaches a [IStreamSubscriber], which will be invoked when new items are available from the stream. 33 | external ISubscription subscribe(IStreamSubscriber subscriber); 34 | } 35 | 36 | /// An interface that allows an [IStreamSubscriber] to be disconnected from a stream. 37 | /// @typeparam T The type of the items being sent by the server. 38 | @anonymous 39 | @JS() 40 | abstract class ISubscription { 41 | /// Disconnects the [IStreamSubscriber] associated with this subscription from the stream. 42 | external void dispose(); 43 | } 44 | -------------------------------------------------------------------------------- /lib/src/HubConnectionBuilder.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library HubConnectionBuilder; 3 | 4 | import "package:js/js.dart"; 5 | import "IHubProtocol.dart" show IHubProtocol; 6 | import "HubConnection.dart" show HubConnection; 7 | 8 | /// A builder for configuring [HubConnection] instances. 9 | @JS() 10 | class HubConnectionBuilder { 11 | external HubConnectionBuilder(); 12 | 13 | /// Configures console logging for the [HubConnection]. 14 | /*external HubConnectionBuilder configureLogging(enum LogLevel logLevel);*/ 15 | /// Configures custom logging for the [HubConnection]. 16 | /*external HubConnectionBuilder configureLogging(ILogger logger);*/ 17 | external HubConnectionBuilder configureLogging(dynamic logLevel_logger); 18 | 19 | /// Configures the [HubConnection] to use HTTP-based transports to connect to the specified URL. 20 | /// The transport will be selected automatically based on what the server and client support. 21 | /*external HubConnectionBuilder withUrl(String url);*/ 22 | /// Configures the [HubConnection] to use the specified HTTP-based transport to connect to the specified URL. 23 | /*external HubConnectionBuilder withUrl(String url, enum HttpTransportType transportType);*/ 24 | /// Configures the [HubConnection] to use HTTP-based transports to connect to the specified URL. 25 | /*external HubConnectionBuilder withUrl( 26 | String url, IHttpConnectionOptions options);*/ 27 | external HubConnectionBuilder withUrl(String url, 28 | [dynamic transportType_options]); 29 | 30 | /// Configures the [HubConnection] to use the specified Hub Protocol. 31 | external HubConnectionBuilder withHubProtocol(IHubProtocol protocol); 32 | 33 | /// Creates a [HubConnection] from the configuration options specified in this builder. 34 | external HubConnection build(); 35 | } 36 | -------------------------------------------------------------------------------- /lib/src/IHttpConnectionOptions.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library IHttpConnectionOptions; 3 | 4 | import "package:js/js.dart"; 5 | import "HttpClient.dart" show HttpClient; 6 | import "ILogger.dart" show ILogger; 7 | 8 | /// Options provided to the 'withUrl' method on [HubConnectionBuilder] to configure options for the HTTP-based transports. 9 | @anonymous 10 | @JS() 11 | abstract class IHttpConnectionOptions { 12 | /// An [HttpClient] that will be used to make HTTP requests. 13 | external HttpClient get httpClient; 14 | external set httpClient(HttpClient v); 15 | 16 | /// An [HttpTransportType] value specifying the transport to use for the connection. 17 | external dynamic /*enum HttpTransportType|ITransport*/ get transport; 18 | external set transport(dynamic /*enum HttpTransportType|ITransport*/ v); 19 | 20 | /// Configures the logger used for logging. 21 | /// Provide an [ILogger] instance, and log messages will be logged via that instance. Alternatively, provide a value from 22 | /// the [LogLevel] enumeration and a default logger which logs to the Console will be configured to log messages of the specified 23 | /// level (or higher). 24 | external dynamic /*ILogger|enum LogLevel*/ get logger; 25 | external set logger(dynamic /*ILogger|enum LogLevel*/ v); 26 | 27 | /// A function that provides an access token required for HTTP Bearer authentication. 28 | external dynamic /*String|Promise*/ accessTokenFactory(); 29 | 30 | /// A boolean indicating if message content should be logged. 31 | /// Message content can contain sensitive user data, so this is disabled by default. 32 | external bool get logMessageContent; 33 | external set logMessageContent(bool v); 34 | 35 | /// A boolean indicating if negotiation should be skipped. 36 | /// Negotiation can only be skipped when the [transport] property is set to 'HttpTransportType.WebSockets'. 37 | external bool get skipNegotiation; 38 | external set skipNegotiation(bool v); 39 | } 40 | -------------------------------------------------------------------------------- /lib/src/LongPollingTransport.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library LongPollingTransport; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "ITransport.dart" show ITransport; 7 | import "HttpClient.dart" show HttpClient; 8 | import "ILogger.dart" show ILogger; 9 | import "package:func2/func.dart"; 10 | 11 | @JS() 12 | class LongPollingTransport implements ITransport { 13 | // @Ignore 14 | LongPollingTransport.fakeConstructor$(); 15 | external get httpClient; 16 | external set httpClient(v); 17 | external get accessTokenFactory; 18 | external set accessTokenFactory(v); 19 | external get logger; 20 | external set logger(v); 21 | external get logMessageContent; 22 | external set logMessageContent(v); 23 | external get url; 24 | external set url(v); 25 | external get pollXhr; 26 | external set pollXhr(v); 27 | external get pollAbort; 28 | external set pollAbort(v); 29 | external get shutdownTimer; 30 | external set shutdownTimer(v); 31 | external get shutdownTimeout; 32 | external set shutdownTimeout(v); 33 | external get running; 34 | external set running(v); 35 | external get stopped; 36 | external set stopped(v); 37 | external bool get pollAborted; 38 | external set pollAborted(bool v); 39 | external factory LongPollingTransport( 40 | HttpClient httpClient, 41 | dynamic /*String|Promise*/ accessTokenFactory(), 42 | ILogger logger, 43 | bool logMessageContent, 44 | [num shutdownTimeout]); 45 | external Future connect( 46 | String url, num /*enum TransferFormat*/ transferFormat); 47 | external updateHeaderToken(request, token); 48 | external poll(url, pollOptions, closeError); 49 | external Future send(dynamic data); 50 | external Future stop(); 51 | external VoidFunc1 get onreceive; 52 | external set onreceive(VoidFunc1 v); 53 | external VoidFunc1Opt1 get onclose; 54 | external set onclose(VoidFunc1Opt1 v); 55 | } 56 | -------------------------------------------------------------------------------- /lib/src/Utils.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library Utils; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "dart:typed_data" show ByteBuffer; 7 | import "ILogger.dart" show ILogger; 8 | import "HttpClient.dart" show HttpClient; 9 | import "Stream.dart" show IStreamResult, IStreamSubscriber, ISubscription; 10 | import "package:func2/func.dart"; 11 | 12 | @JS() 13 | class Arg { 14 | // @Ignore 15 | Arg.fakeConstructor$(); 16 | external static void isRequired(dynamic val, String name); 17 | external static void isIn(dynamic val, dynamic values, String name); 18 | } 19 | 20 | @JS() 21 | external String getDataDetail(dynamic data, bool includeContent); 22 | @JS() 23 | external String formatArrayBuffer(ByteBuffer data); 24 | @JS() 25 | external Future sendMessage( 26 | ILogger logger, 27 | String transportName, 28 | HttpClient httpClient, 29 | String url, 30 | dynamic /*String|Promise*/ accessTokenFactory(), 31 | dynamic /*String|ByteBuffer*/ content, 32 | bool logMessageContent); 33 | @JS() 34 | external ILogger createLogger([dynamic /*ILogger|enum LogLevel*/ logger]); 35 | 36 | @JS() 37 | class Subject implements IStreamResult { 38 | // @Ignore 39 | Subject.fakeConstructor$(); 40 | external List> get observers; 41 | external set observers(List> v); 42 | external Func0> get cancelCallback; 43 | external set cancelCallback(Func0> v); 44 | external factory Subject(Future cancelCallback()); 45 | external void next(T item); 46 | external void error(dynamic err); 47 | external void complete(); 48 | external ISubscription subscribe(IStreamSubscriber observer); 49 | } 50 | 51 | @JS() 52 | class SubjectSubscription implements ISubscription { 53 | // @Ignore 54 | SubjectSubscription.fakeConstructor$(); 55 | external get subject; 56 | external set subject(v); 57 | external get observer; 58 | external set observer(v); 59 | external factory SubjectSubscription( 60 | Subject subject, IStreamSubscriber observer); 61 | external void dispose(); 62 | } 63 | 64 | @JS() 65 | class ConsoleLogger implements ILogger { 66 | // @Ignore 67 | ConsoleLogger.fakeConstructor$(); 68 | external get minimumLogLevel; 69 | external set minimumLogLevel(v); 70 | external factory ConsoleLogger(num /*enum LogLevel*/ minimumLogLevel); 71 | external void log(num /*enum LogLevel*/ logLevel, String message); 72 | } 73 | -------------------------------------------------------------------------------- /lib/src/HttpConnection.dart: -------------------------------------------------------------------------------- 1 | @JS() 2 | library HttpConnection; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "IConnection.dart" show IConnection; 7 | import "package:func2/func.dart"; 8 | import "IHttpConnectionOptions.dart" show IHttpConnectionOptions; 9 | 10 | @anonymous 11 | @JS() 12 | abstract class INegotiateResponse { 13 | external String get connectionId; 14 | external set connectionId(String v); 15 | external List get availableTransports; 16 | external set availableTransports(List v); 17 | external String get url; 18 | external set url(String v); 19 | external String get accessToken; 20 | external set accessToken(String v); 21 | external factory INegotiateResponse( 22 | {String connectionId, 23 | List availableTransports, 24 | String url, 25 | String accessToken}); 26 | } 27 | 28 | @anonymous 29 | @JS() 30 | abstract class IAvailableTransport { 31 | external get transport; 32 | external set transport(v); 33 | external factory IAvailableTransport({transport}); 34 | } 35 | 36 | @JS() 37 | class HttpConnection implements IConnection { 38 | // @Ignore 39 | HttpConnection.fakeConstructor$(); 40 | external get connectionState; 41 | external set connectionState(v); 42 | external get baseUrl; 43 | external set baseUrl(v); 44 | external get httpClient; 45 | external set httpClient(v); 46 | external get logger; 47 | external set logger(v); 48 | external get options; 49 | external set options(v); 50 | external get transport; 51 | external set transport(v); 52 | external get startPromise; 53 | external set startPromise(v); 54 | external get stopError; 55 | external set stopError(v); 56 | external get accessTokenFactory; 57 | external set accessTokenFactory(v); 58 | external dynamic get features; 59 | external set features(dynamic v); 60 | external VoidFunc1 get onreceive; 61 | external set onreceive(VoidFunc1 v); 62 | external VoidFunc1Opt1 get onclose; 63 | external set onclose(VoidFunc1Opt1 v); 64 | external factory HttpConnection(String url, [IHttpConnectionOptions options]); 65 | /*external Promise start();*/ 66 | /*external Promise start(enum TransferFormat transferFormat);*/ 67 | external Future start([num /*enum TransferFormat*/ transferFormat]); 68 | external Future send(dynamic /*String|ByteBuffer*/ data); 69 | external Future stop([Error error]); 70 | external get startInternal; 71 | external set startInternal(v); 72 | external get getNegotiationResponse; 73 | external set getNegotiationResponse(v); 74 | external get createConnectUrl; 75 | external set createConnectUrl(v); 76 | external get createTransport; 77 | external set createTransport(v); 78 | external get constructTransport; 79 | external set constructTransport(v); 80 | external get resolveTransport; 81 | external set resolveTransport(v); 82 | external get isITransport; 83 | external set isITransport(v); 84 | external get changeState; 85 | external set changeState(v); 86 | external get stopConnection; 87 | external set stopConnection(v); 88 | external get resolveUrl; 89 | external set resolveUrl(v); 90 | external get resolveNegotiateUrl; 91 | external set resolveNegotiateUrl(v); 92 | } 93 | -------------------------------------------------------------------------------- /lib/src/HubConnection.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library HubConnection; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "Stream.dart" show IStreamResult; 7 | 8 | /// Represents a connection to a SignalR Hub. 9 | @JS() 10 | class HubConnection { 11 | // @Ignore 12 | HubConnection.fakeConstructor$(); 13 | external get connection; 14 | external set connection(v); 15 | external get logger; 16 | external set logger(v); 17 | external get protocol; 18 | external set protocol(v); 19 | external get handshakeProtocol; 20 | external set handshakeProtocol(v); 21 | external get callbacks; 22 | external set callbacks(v); 23 | external get methods; 24 | external set methods(v); 25 | external get id; 26 | external set id(v); 27 | external get closedCallbacks; 28 | external set closedCallbacks(v); 29 | external get timeoutHandle; 30 | external set timeoutHandle(v); 31 | external get receivedHandshakeResponse; 32 | external set receivedHandshakeResponse(v); 33 | 34 | /// The server timeout in milliseconds. 35 | /// If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error. 36 | /// The default timeout value is 30,000 milliseconds (30 seconds). 37 | external num get serverTimeoutInMilliseconds; 38 | external set serverTimeoutInMilliseconds(num v); 39 | external factory HubConnection(); 40 | 41 | /// Starts the connection. 42 | external Future start(); 43 | 44 | /// Stops the connection. 45 | external Future stop(); 46 | 47 | /// Invokes a streaming hub method on the server using the specified name and arguments. 48 | /// @typeparam T The type of the items returned by the server. 49 | external IStreamResult stream(String methodName, 50 | [dynamic args1, 51 | dynamic args2, 52 | dynamic args3, 53 | dynamic args4, 54 | dynamic args5]); 55 | 56 | /// Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver. 57 | /// The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still 58 | /// be processing the invocation. 59 | external Future send(String methodName, 60 | [dynamic args1, 61 | dynamic args2, 62 | dynamic args3, 63 | dynamic args4, 64 | dynamic args5]); 65 | 66 | /// Invokes a hub method on the server using the specified name and arguments. 67 | /// The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise 68 | /// resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of 69 | /// resolving the Promise. 70 | /// @typeparam T The expected return type. 71 | external Future invoke(String methodName, 72 | [dynamic args1, 73 | dynamic args2, 74 | dynamic args3, 75 | dynamic args4, 76 | dynamic args5]); 77 | 78 | /// Registers a handler that will be invoked when the hub method with the specified method name is invoked. 79 | external void on( 80 | String methodName, Function /*(...args: any[]) => void*/ newMethod); 81 | 82 | /// Removes all handlers for the specified hub method. 83 | /*external void off(String methodName);*/ 84 | /// Removes the specified handler for the specified hub method. 85 | /// You must pass the exact same Function instance as was previously passed to [@aspnet/signalr.HubConnection.on]. Passing a different instance (even if the function 86 | /// body is the same) will not remove the handler. 87 | /*external void off(String methodName, (...args: any[]) => void method);*/ 88 | external void off(String methodName, 89 | [Function /*(...args: any[]) => void*/ method]); 90 | 91 | /// Registers a handler that will be invoked when the connection is closed. 92 | external void onclose(void callback([Error error])); 93 | external get processIncomingData; 94 | external set processIncomingData(v); 95 | external get processHandshakeResponse; 96 | external set processHandshakeResponse(v); 97 | external get configureTimeout; 98 | external set configureTimeout(v); 99 | external get serverTimeout; 100 | external set serverTimeout(v); 101 | external get invokeClientMethod; 102 | external set invokeClientMethod(v); 103 | external get connectionClosed; 104 | external set connectionClosed(v); 105 | external get cleanupTimeout; 106 | external set cleanupTimeout(v); 107 | external get createInvocation; 108 | external set createInvocation(v); 109 | external get createStreamInvocation; 110 | external set createStreamInvocation(v); 111 | external get createCancelInvocation; 112 | external set createCancelInvocation(v); 113 | } 114 | -------------------------------------------------------------------------------- /lib/src/HttpClient.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library HttpClient; 3 | 4 | import 'dart:async'; 5 | import "package:js/js.dart"; 6 | import "AbortController.dart" show AbortSignal; 7 | import "ILogger.dart" show ILogger; 8 | 9 | /// Represents an HTTP request. 10 | @anonymous 11 | @JS() 12 | abstract class HttpRequest { 13 | /// The HTTP method to use for the request. 14 | external String get method; 15 | external set method(String v); 16 | 17 | /// The URL for the request. 18 | external String get url; 19 | external set url(String v); 20 | 21 | /// The body content for the request. May be a string or an ArrayBuffer (for binary data). 22 | external dynamic /*String|ByteBuffer*/ get content; 23 | external set content(dynamic /*String|ByteBuffer*/ v); 24 | 25 | /// An object describing headers to apply to the request. 26 | external dynamic /*JSMap of */ get headers; 27 | external set headers(dynamic /*JSMap of */ v); 28 | 29 | /// The XMLHttpRequestResponseType to apply to the request. 30 | external String get responseType; 31 | external set responseType(String v); 32 | 33 | /// An AbortSignal that can be monitored for cancellation. 34 | external AbortSignal get abortSignal; 35 | external set abortSignal(AbortSignal v); 36 | 37 | /// The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. 38 | external num get timeout; 39 | external set timeout(num v); 40 | external factory HttpRequest( 41 | {String method, 42 | String url, 43 | dynamic /*String|ByteBuffer*/ content, 44 | dynamic /*JSMap of */ headers, 45 | String responseType, 46 | AbortSignal abortSignal, 47 | num timeout}); 48 | } 49 | 50 | /// Represents an HTTP response. 51 | @JS() 52 | class HttpResponse { 53 | // @Ignore 54 | HttpResponse.fakeConstructor$(); 55 | external num get statusCode; 56 | external set statusCode(num v); 57 | external String get statusText; 58 | external set statusText(String v); 59 | external dynamic /*String|ByteBuffer*/ get content; 60 | external set content(dynamic /*String|ByteBuffer*/ v); 61 | 62 | /// Constructs a new instance of [HttpResponse] with the specified status code. 63 | /*external factory HttpResponse(num statusCode);*/ 64 | /// Constructs a new instance of [HttpResponse] with the specified status code and message. 65 | /*external factory HttpResponse(num statusCode, String statusText);*/ 66 | /// Constructs a new instance of [HttpResponse] with the specified status code, message and string content. 67 | /*external factory HttpResponse(num statusCode, String statusText, String content);*/ 68 | /// Constructs a new instance of [HttpResponse] with the specified status code, message and binary content. 69 | /*external factory HttpResponse(num statusCode, String statusText, ByteBuffer content);*/ 70 | external factory HttpResponse(num statusCode, 71 | [String statusText, dynamic /*String|ByteBuffer*/ content]); 72 | } 73 | 74 | /// Abstraction over an HTTP client. 75 | /// This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms. 76 | @JS() 77 | abstract class HttpClient { 78 | // @Ignore 79 | HttpClient.fakeConstructor$(); 80 | 81 | /// Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 82 | /*external Promise JS$get(String url);*/ 83 | /// Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 84 | /*external Promise JS$get(String url, HttpRequest options);*/ 85 | external Future JS$get(String url, [HttpRequest options]); 86 | 87 | /// Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 88 | /*external Promise post(String url);*/ 89 | /// Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 90 | /*external Promise post(String url, HttpRequest options);*/ 91 | external Future post(String url, [HttpRequest options]); 92 | 93 | /// Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 94 | /*external Promise delete(String url);*/ 95 | /// Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an [HttpResponse] representing the result. 96 | /*external Promise delete(String url, HttpRequest options);*/ 97 | external Future delete(String url, [HttpRequest options]); 98 | 99 | /// Issues an HTTP request to the specified URL, returning a [Promise] that resolves with an [HttpResponse] representing the result. 100 | external Future send(HttpRequest request); 101 | } 102 | 103 | /// Default implementation of [HttpClient]. 104 | @JS() 105 | class DefaultHttpClient extends HttpClient { 106 | // @Ignore 107 | DefaultHttpClient.fakeConstructor$() : super.fakeConstructor$(); 108 | external get logger; 109 | external set logger(v); 110 | 111 | /// Creates a new instance of the [DefaultHttpClient], using the provided [ILogger] to log messages. 112 | external factory DefaultHttpClient(ILogger logger); 113 | 114 | /// @inheritDoc 115 | external Future send(HttpRequest request); 116 | } 117 | -------------------------------------------------------------------------------- /lib/src/IHubProtocol.dart: -------------------------------------------------------------------------------- 1 | @JS("signalR") 2 | library IHubProtocol; 3 | 4 | import "package:js/js.dart"; 5 | import "ILogger.dart" show ILogger; 6 | 7 | /// Defines the type of a Hub Message. 8 | @JS() 9 | class MessageType { 10 | external static num get 11 | 12 | /// Indicates the message is an Invocation message and implements the [InvocationMessage] interface. 13 | Invocation; 14 | external static num get 15 | 16 | /// Indicates the message is a StreamItem message and implements the [StreamItemMessage] interface. 17 | StreamItem; 18 | external static num get 19 | 20 | /// Indicates the message is a Completion message and implements the [CompletionMessage] interface. 21 | Completion; 22 | external static num get 23 | 24 | /// Indicates the message is a Stream Invocation message and implements the [StreamInvocationMessage] interface. 25 | StreamInvocation; 26 | external static num get 27 | 28 | /// Indicates the message is a Cancel Invocation message and implements the [CancelInvocationMessage] interface. 29 | CancelInvocation; 30 | external static num get 31 | 32 | /// Indicates the message is a Ping message and implements the [PingMessage] interface. 33 | Ping; 34 | external static num get 35 | 36 | /// Indicates the message is a Close message and implements the [CloseMessage] interface. 37 | Close; 38 | } 39 | 40 | /// Defines a dictionary of string keys and string values representing headers attached to a Hub message. 41 | @anonymous 42 | @JS() 43 | abstract class MessageHeaders { 44 | /// Gets or sets the header with the specified key. 45 | /* Index signature is not yet supported by JavaScript interop. */ 46 | } 47 | 48 | /// Union type of all known Hub messages. 49 | /*export declare type HubMessage = InvocationMessage | StreamInvocationMessage | StreamItemMessage | CompletionMessage | CancelInvocationMessage | PingMessage | CloseMessage;*/ 50 | /// Defines properties common to all Hub messages. 51 | @anonymous 52 | @JS() 53 | abstract class HubMessageBase { 54 | /// A [MessageType] value indicating the type of this message. 55 | external num /*enum MessageType*/ get type; 56 | external set type(num /*enum MessageType*/ v); 57 | external factory HubMessageBase({num /*enum MessageType*/ type}); 58 | } 59 | 60 | /// Defines properties common to all Hub messages relating to a specific invocation. 61 | @anonymous 62 | @JS() 63 | abstract class HubInvocationMessage implements HubMessageBase { 64 | /// A [MessageHeaders] dictionary containing headers attached to the message. 65 | external MessageHeaders get headers; 66 | external set headers(MessageHeaders v); 67 | 68 | /// The ID of the invocation relating to this message. 69 | /// This is expected to be present for [StreamInvocationMessage] and [CompletionMessage]. It may 70 | /// be 'undefined' for an [InvocationMessage] if the sender does not expect a response. 71 | external String get invocationId; 72 | external set invocationId(String v); 73 | external factory HubInvocationMessage( 74 | {MessageHeaders headers, 75 | String invocationId, 76 | num /*enum MessageType*/ type}); 77 | } 78 | 79 | /// A hub message representing a non-streaming invocation. 80 | @anonymous 81 | @JS() 82 | abstract class InvocationMessage implements HubInvocationMessage { 83 | external get type; 84 | external set type(v); 85 | 86 | /// The target method name. 87 | external String get target; 88 | external set target(String v); 89 | 90 | /// The target method arguments. 91 | external List get arguments; 92 | external set arguments(List v); 93 | external factory InvocationMessage( 94 | {type, 95 | String target, 96 | List arguments, 97 | MessageHeaders headers, 98 | String invocationId}); 99 | } 100 | 101 | /// A hub message representing a streaming invocation. 102 | @anonymous 103 | @JS() 104 | abstract class StreamInvocationMessage implements HubInvocationMessage { 105 | /// @inheritDoc 106 | external get type; 107 | external set type(v); 108 | 109 | /// The invocation ID. 110 | external String get invocationId; 111 | external set invocationId(String v); 112 | 113 | /// The target method name. 114 | external String get target; 115 | external set target(String v); 116 | 117 | /// The target method arguments. 118 | external List get arguments; 119 | external set arguments(List v); 120 | external factory StreamInvocationMessage( 121 | {type, 122 | String invocationId, 123 | String target, 124 | List arguments, 125 | MessageHeaders headers}); 126 | } 127 | 128 | /// A hub message representing a single item produced as part of a result stream. 129 | @anonymous 130 | @JS() 131 | abstract class StreamItemMessage implements HubInvocationMessage { 132 | /// @inheritDoc 133 | external get type; 134 | external set type(v); 135 | 136 | /// The invocation ID. 137 | external String get invocationId; 138 | external set invocationId(String v); 139 | 140 | /// The item produced by the server. 141 | external dynamic get item; 142 | external set item(dynamic v); 143 | external factory StreamItemMessage( 144 | {type, String invocationId, dynamic item, MessageHeaders headers}); 145 | } 146 | 147 | /// A hub message representing the result of an invocation. 148 | @anonymous 149 | @JS() 150 | abstract class CompletionMessage implements HubInvocationMessage { 151 | /// @inheritDoc 152 | external get type; 153 | external set type(v); 154 | 155 | /// The invocation ID. 156 | external String get invocationId; 157 | external set invocationId(String v); 158 | 159 | /// The error produced by the invocation, if any. 160 | /// Either [error] or [result] must be defined, but not both. 161 | external String get error; 162 | external set error(String v); 163 | 164 | /// The result produced by the invocation, if any. 165 | /// Either [error] or [result] must be defined, but not both. 166 | external dynamic get result; 167 | external set result(dynamic v); 168 | external factory CompletionMessage( 169 | {type, 170 | String invocationId, 171 | String error, 172 | dynamic result, 173 | MessageHeaders headers}); 174 | } 175 | 176 | /// A hub message indicating that the sender is still active. 177 | @anonymous 178 | @JS() 179 | abstract class PingMessage implements HubMessageBase { 180 | /// @inheritDoc 181 | external get type; 182 | external set type(v); 183 | external factory PingMessage({type}); 184 | } 185 | 186 | /// A hub message indicating that the sender is closing the connection. 187 | /// If [error] is defined, the sender is closing the connection due to an error. 188 | @anonymous 189 | @JS() 190 | abstract class CloseMessage implements HubMessageBase { 191 | /// @inheritDoc 192 | external get type; 193 | external set type(v); 194 | 195 | /// The error that triggered the close, if any. 196 | /// If this property is undefined, the connection was closed normally and without error. 197 | external String get error; 198 | external set error(String v); 199 | external factory CloseMessage({type, String error}); 200 | } 201 | 202 | /// A hub message sent to request that a streaming invocation be canceled. 203 | @anonymous 204 | @JS() 205 | abstract class CancelInvocationMessage implements HubInvocationMessage { 206 | /// @inheritDoc 207 | external get type; 208 | external set type(v); 209 | 210 | /// The invocation ID. 211 | external String get invocationId; 212 | external set invocationId(String v); 213 | external factory CancelInvocationMessage( 214 | {type, String invocationId, MessageHeaders headers}); 215 | } 216 | 217 | /// A protocol abstraction for communicating with SignalR Hubs. 218 | @anonymous 219 | @JS() 220 | abstract class IHubProtocol { 221 | /// The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. 222 | external String get name; 223 | external set name(String v); 224 | 225 | /// The version of the protocol. 226 | external num get version; 227 | external set version(num v); 228 | 229 | /// The [TransferFormat] of the protocol. 230 | external num /*enum TransferFormat*/ get transferFormat; 231 | external set transferFormat(num /*enum TransferFormat*/ v); 232 | 233 | /// Creates an array of [HubMessage] objects from the specified serialized representation. 234 | /// If [transferFormat] is 'Text', the [input] parameter must be a string, otherwise it must be an ArrayBuffer. 235 | external List< 236 | dynamic /*InvocationMessage|StreamInvocationMessage|StreamItemMessage|CompletionMessage|CancelInvocationMessage|PingMessage|CloseMessage*/ > 237 | parseMessages(dynamic /*String|ByteBuffer*/ input, ILogger logger); 238 | 239 | /// Writes the specified [HubMessage] to a string or ArrayBuffer and returns it. 240 | /// If [transferFormat] is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer. 241 | external dynamic /*String|ByteBuffer*/ writeMessage( 242 | dynamic /*InvocationMessage|StreamInvocationMessage|StreamItemMessage|CompletionMessage|CancelInvocationMessage|PingMessage|CloseMessage*/ message); 243 | } 244 | -------------------------------------------------------------------------------- /lib/dist/third-party-notices.txt: -------------------------------------------------------------------------------- 1 | .NET Core uses third-party libraries or other resources that may be 2 | distributed under licenses different than the .NET Core software. 3 | 4 | In the event that we accidentally failed to list a required notice, please 5 | bring it to our attention. Post an issue or email us: 6 | 7 | dotnet@microsoft.com 8 | 9 | The attached notices are provided for information only. 10 | 11 | 12 | License notice for msgpack5 13 | ------------------------------------------------------------------------------ 14 | 15 | "The MIT License (MIT) 16 | 17 | Copyright (c) 2014 Matteo Collina 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in all 27 | copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 35 | SOFTWARE." 36 | 37 | 38 | License notice for bl 39 | ------------------------------------------------------------------------------ 40 | 41 | "The MIT License (MIT) 42 | ===================== 43 | 44 | Copyright (c) 2013-2016 bl contributors 45 | ---------------------------------- 46 | 47 | *bl contributors listed at * 48 | 49 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 50 | 51 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 52 | 53 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." 54 | 55 | 56 | License notice for inherits 57 | ------------------------------------------------------------------------------ 58 | 59 | "The ISC License 60 | 61 | Copyright (c) Isaac Z. Schlueter 62 | 63 | Permission to use, copy, modify, and/or distribute this software for any 64 | purpose with or without fee is hereby granted, provided that the above 65 | copyright notice and this permission notice appear in all copies. 66 | 67 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 68 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 69 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 70 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 71 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 72 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 73 | PERFORMANCE OF THIS SOFTWARE." 74 | 75 | 76 | License notice for readable-stream 77 | ------------------------------------------------------------------------------ 78 | 79 | "Node.js is licensed for use as follows: 80 | 81 | """ 82 | Copyright Node.js contributors. All rights reserved. 83 | 84 | Permission is hereby granted, free of charge, to any person obtaining a copy 85 | of this software and associated documentation files (the "Software"), to 86 | deal in the Software without restriction, including without limitation the 87 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 88 | sell copies of the Software, and to permit persons to whom the Software is 89 | furnished to do so, subject to the following conditions: 90 | 91 | The above copyright notice and this permission notice shall be included in 92 | all copies or substantial portions of the Software. 93 | 94 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 95 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 96 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 97 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 98 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 99 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 100 | IN THE SOFTWARE. 101 | """ 102 | 103 | This license applies to parts of Node.js originating from the 104 | https://github.com/joyent/node repository: 105 | 106 | """ 107 | Copyright Joyent, Inc. and other Node contributors. All rights reserved. 108 | Permission is hereby granted, free of charge, to any person obtaining a copy 109 | of this software and associated documentation files (the "Software"), to 110 | deal in the Software without restriction, including without limitation the 111 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 112 | sell copies of the Software, and to permit persons to whom the Software is 113 | furnished to do so, subject to the following conditions: 114 | 115 | The above copyright notice and this permission notice shall be included in 116 | all copies or substantial portions of the Software. 117 | 118 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 119 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 120 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 121 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 122 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 123 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 124 | IN THE SOFTWARE. 125 | """" 126 | 127 | 128 | License notice for core-util-is 129 | ------------------------------------------------------------------------------ 130 | 131 | "Copyright Node.js contributors. All rights reserved. 132 | 133 | Permission is hereby granted, free of charge, to any person obtaining a copy 134 | of this software and associated documentation files (the "Software"), to 135 | deal in the Software without restriction, including without limitation the 136 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 137 | sell copies of the Software, and to permit persons to whom the Software is 138 | furnished to do so, subject to the following conditions: 139 | 140 | The above copyright notice and this permission notice shall be included in 141 | all copies or substantial portions of the Software. 142 | 143 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 144 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 145 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 146 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 147 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 148 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 149 | IN THE SOFTWARE." 150 | 151 | 152 | License notice for isarray 153 | ------------------------------------------------------------------------------ 154 | 155 | "(MIT) 156 | 157 | Copyright (c) 2013 Julian Gruber 158 | 159 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 160 | 161 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 162 | 163 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." 164 | 165 | 166 | License notice for process-nextick-args 167 | ------------------------------------------------------------------------------ 168 | 169 | "# Copyright (c) 2015 Calvin Metcalf 170 | 171 | Permission is hereby granted, free of charge, to any person obtaining a copy 172 | of this software and associated documentation files (the "Software"), to deal 173 | in the Software without restriction, including without limitation the rights 174 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 175 | copies of the Software, and to permit persons to whom the Software is 176 | furnished to do so, subject to the following conditions: 177 | 178 | The above copyright notice and this permission notice shall be included in all 179 | copies or substantial portions of the Software. 180 | 181 | **THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 182 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 183 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 184 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 185 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 186 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 187 | SOFTWARE.**" 188 | 189 | 190 | License notice for string_decoder 191 | ------------------------------------------------------------------------------ 192 | 193 | "Node.js is licensed for use as follows: 194 | 195 | """ 196 | Copyright Node.js contributors. All rights reserved. 197 | 198 | Permission is hereby granted, free of charge, to any person obtaining a copy 199 | of this software and associated documentation files (the "Software"), to 200 | deal in the Software without restriction, including without limitation the 201 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 202 | sell copies of the Software, and to permit persons to whom the Software is 203 | furnished to do so, subject to the following conditions: 204 | 205 | The above copyright notice and this permission notice shall be included in 206 | all copies or substantial portions of the Software. 207 | 208 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 209 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 210 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 211 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 212 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 213 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 214 | IN THE SOFTWARE. 215 | """ 216 | 217 | This license applies to parts of Node.js originating from the 218 | https://github.com/joyent/node repository: 219 | 220 | """ 221 | Copyright Joyent, Inc. and other Node contributors. All rights reserved. 222 | Permission is hereby granted, free of charge, to any person obtaining a copy 223 | of this software and associated documentation files (the "Software"), to 224 | deal in the Software without restriction, including without limitation the 225 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 226 | sell copies of the Software, and to permit persons to whom the Software is 227 | furnished to do so, subject to the following conditions: 228 | 229 | The above copyright notice and this permission notice shall be included in 230 | all copies or substantial portions of the Software. 231 | 232 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 233 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 234 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 235 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 236 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 237 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 238 | IN THE SOFTWARE. 239 | """" 240 | 241 | 242 | License notice for util-deprecate 243 | ------------------------------------------------------------------------------ 244 | 245 | "(The MIT License) 246 | 247 | Copyright (c) 2014 Nathan Rajlich 248 | 249 | Permission is hereby granted, free of charge, to any person 250 | obtaining a copy of this software and associated documentation 251 | files (the "Software"), to deal in the Software without 252 | restriction, including without limitation the rights to use, 253 | copy, modify, merge, publish, distribute, sublicense, and/or sell 254 | copies of the Software, and to permit persons to whom the 255 | Software is furnished to do so, subject to the following 256 | conditions: 257 | 258 | The above copyright notice and this permission notice shall be 259 | included in all copies or substantial portions of the Software. 260 | 261 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 262 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 263 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 264 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 265 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 266 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 267 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 268 | OTHER DEALINGS IN THE SOFTWARE." 269 | 270 | 271 | License notice for safe-buffer 272 | ------------------------------------------------------------------------------ 273 | 274 | "The MIT License (MIT) 275 | 276 | Copyright (c) Feross Aboukhadijeh 277 | 278 | Permission is hereby granted, free of charge, to any person obtaining a copy 279 | of this software and associated documentation files (the "Software"), to deal 280 | in the Software without restriction, including without limitation the rights 281 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 282 | copies of the Software, and to permit persons to whom the Software is 283 | furnished to do so, subject to the following conditions: 284 | 285 | The above copyright notice and this permission notice shall be included in 286 | all copies or substantial portions of the Software. 287 | 288 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 289 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 290 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 291 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 292 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 293 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 294 | THE SOFTWARE." -------------------------------------------------------------------------------- /lib/dist/signalr.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://signalR/webpack/universalModuleDefinition","webpack://signalR/webpack/bootstrap","webpack://signalR/src/browser-index.ts","webpack://signalR/node_modules/es6-promise/dist/es6-promise.auto.js","webpack://signalR/common/node_modules/webpack/buildin/global.js","webpack://signalR/src/index.ts","webpack://signalR/src/Errors.ts","webpack://signalR/src/HttpClient.ts","webpack://signalR/src/ILogger.ts","webpack://signalR/src/HubConnection.ts","webpack://signalR/src/HandshakeProtocol.ts","webpack://signalR/src/TextMessageFormat.ts","webpack://signalR/src/IHubProtocol.ts","webpack://signalR/src/Utils.ts","webpack://signalR/src/Loggers.ts","webpack://signalR/src/HubConnectionBuilder.ts","webpack://signalR/src/HttpConnection.ts","webpack://signalR/src/ITransport.ts","webpack://signalR/src/LongPollingTransport.ts","webpack://signalR/src/AbortController.ts","webpack://signalR/src/ServerSentEventsTransport.ts","webpack://signalR/src/WebSocketTransport.ts","webpack://signalR/src/JsonHubProtocol.ts"],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_index__WEBPACK_IMPORTED_MODULE_1__","Uint8Array","indexOf","Array","writable","slice","forEach","require","global","undefined","this","objectOrFunction","x","type","isFunction","_isArray","isArray","toString","len","vertxNext","customSchedulerFn","asap","callback","arg","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","self","process","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","node","document","createTextNode","observe","characterData","data","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","setTimeout","attemptVertx","vertx","webpackMissingModule","e","Error","code","runOnLoop","runOnContext","then","onFulfillment","onRejection","parent","child","constructor","noop","PROMISE_ID","makePromise","_state","arguments","invokeCallback","_result","subscribe","resolve$1","Constructor","promise","resolve","Math","random","substring","PENDING","FULFILLED","REJECTED","GET_THEN_ERROR","ErrorObject","selfFulfillment","TypeError","cannotReturnOwn","getThen","error","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","length","subscribers","settled","detail","TRY_CATCH_ERROR","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","resolvePromise","rejectPromise","id","nextId","validationError","Enumerator","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","_settledAt","Promise$2","_willSettleAt","state","enumerator","all","entries","race","_","reject$1","needsResolver","needsNew","Promise","catch","_catch","finally","_finally","_setScheduler","_setAsap","_asap","polyfill","local","Function","P","promiseToString","cast","g","eval","_JsonHubProtocol__WEBPACK_IMPORTED_MODULE_8__","VERSION","TimeoutError","HttpError","_super","__extends","errorMessage","statusCode","_this","trueProto","_newTarget","__proto__","_ILogger__WEBPACK_IMPORTED_MODULE_1__","HttpResponse","statusText","content","HttpClient","url","options","send","__assign","method","post","delete","DefaultHttpClient","logger","request","xhr","XMLHttpRequest","open","withCredentials","setRequestHeader","headers","keys","header","responseType","abortSignal","onabort","abort","timeout","onload","status","response","responseText","_Errors__WEBPACK_IMPORTED_MODULE_0__","onerror","log","Warning","ontimeout","LogLevel","_Utils__WEBPACK_IMPORTED_MODULE_3__","DEFAULT_TIMEOUT_IN_MS","HubConnection","connection","protocol","isRequired","serverTimeoutInMilliseconds","handshakeProtocol","_HandshakeProtocol__WEBPACK_IMPORTED_MODULE_0__","onreceive","processIncomingData","onclose","connectionClosed","callbacks","methods","closedCallbacks","start","handshakeRequest","version","_ILogger__WEBPACK_IMPORTED_MODULE_2__","Debug","receivedHandshakeResponse","transferFormat","_a","sent","writeHandshakeRequest","Information","cleanupTimeout","configureTimeout","stop","stream","methodName","args","_i","invocationDescriptor","createStreamInvocation","subject","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","writeMessage","invocationEvent","_IHubProtocol__WEBPACK_IMPORTED_MODULE_1__","Completion","complete","next","message","createInvocation","invoke","completionMessage","result","on","newMethod","toLowerCase","push","off","handlers","removeIdx","splice","processHandshakeResponse","messages","parseMessages","messages_1","Invocation","invokeClientMethod","StreamItem","Ping","Close","responseMessage","remainingData","parseHandshakeResponse","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","target","apply","clearTimeout","nonblocking","StreamInvocation","CancelInvocation","_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__","HandshakeProtocol","write","JSON","stringify","messageData","ArrayBuffer","binaryData","separatorIndex","RecordSeparatorCode","responseLength","String","fromCharCode","byteLength","buffer","textData","RecordSeparator","parse","TextMessageFormat","output","split","pop","MessageType","_Loggers__WEBPACK_IMPORTED_MODULE_1__","Arg","val","isIn","values","getDataDetail","includeContent","formatArrayBuffer","view","str","num","pad","substr","sendMessage","transportName","httpClient","accessTokenFactory","logMessageContent","token","_b","_ILogger__WEBPACK_IMPORTED_MODULE_0__","Trace","createLogger","ConsoleLogger","instance","Subject","cancelCallback","observers","item","err","SubjectSubscription","dispose","index","minimumLogLevel","logLevel","Critical","console","warn","info","NullLogger","_logLevel","_message","_Utils__WEBPACK_IMPORTED_MODULE_4__","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","httpConnectionOptions","transport","withHubProtocol","build","_HttpConnection__WEBPACK_IMPORTED_MODULE_0__","_HubConnection__WEBPACK_IMPORTED_MODULE_1__","_Loggers__WEBPACK_IMPORTED_MODULE_3__","_JsonHubProtocol__WEBPACK_IMPORTED_MODULE_2__","_WebSocketTransport__WEBPACK_IMPORTED_MODULE_6__","MAX_REDIRECTS","HttpConnection","_Utils__WEBPACK_IMPORTED_MODULE_5__","baseUrl","resolveUrl","_HttpClient__WEBPACK_IMPORTED_MODULE_0__","connectionState","_ITransport__WEBPACK_IMPORTED_MODULE_2__","Binary","startPromise","startInternal","stopError","skipNegotiation","WebSockets","constructTransport","connect","negotiateResponse","redirects","this_1","getNegotiationResponse","accessToken","accessToken_1","createTransport","_LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__","stopConnection","changeState","e_2","negotiateUrl","resolveNegotiateUrl","e_3","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","isITransport","transports","availableTransports","transports_1","endpoint","resolveTransport","ex_1","ServerSentEvents","_ServerSentEventsTransport__WEBPACK_IMPORTED_MODULE_4__","LongPolling","transferFormats","map","transportMatches","WebSocket","EventSource","from","to","lastIndexOf","aTag","createElement","href","actualTransport","TransferFormat","HttpTransportType","SHUTDOWN_TIMEOUT","LongPollingTransport","shutdownTimeout","pollAbort","_AbortController__WEBPACK_IMPORTED_MODULE_0__","aborted","_ITransport__WEBPACK_IMPORTED_MODULE_3__","pollOptions","signal","updateHeaderToken","pollUrl","Date","now","closeError","_Errors__WEBPACK_IMPORTED_MODULE_1__","running","poll","e_1","stopped","shutdownTimer","deleteOptions","AbortController","isAborted","_Utils__WEBPACK_IMPORTED_MODULE_2__","ServerSentEventsTransport","_ITransport__WEBPACK_IMPORTED_MODULE_1__","encodeURIComponent","opened","Text","eventSource","close","onopen","WebSocketTransport","replace","webSocket","binaryType","_event","event","wasClean","readyState","OPEN","_TextMessageFormat__WEBPACK_IMPORTED_MODULE_4__","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","_IHubProtocol__WEBPACK_IMPORTED_MODULE_0__","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString"],"mappings":"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"} -------------------------------------------------------------------------------- /lib/dist/signalr.min.js: -------------------------------------------------------------------------------- 1 | (function webpackUniversalModuleDefinition(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else if(typeof exports==="object")exports["signalR"]=factory();else root["signalR"]=factory()})(window,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(exports,"__esModule",{value:true})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if(mode&4&&typeof value==="object"&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,"default",{enumerable:true,value:value});if(mode&2&&typeof value!="string")for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=0)}([function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);var es6_promise_dist_es6_promise_auto_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(1);var es6_promise_dist_es6_promise_auto_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(es6_promise_dist_es6_promise_auto_js__WEBPACK_IMPORTED_MODULE_0__);var _index__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(3);__webpack_require__.d(__webpack_exports__,"VERSION",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["VERSION"]});__webpack_require__.d(__webpack_exports__,"HttpError",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HttpError"]});__webpack_require__.d(__webpack_exports__,"TimeoutError",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["TimeoutError"]});__webpack_require__.d(__webpack_exports__,"DefaultHttpClient",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["DefaultHttpClient"]});__webpack_require__.d(__webpack_exports__,"HttpClient",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HttpClient"]});__webpack_require__.d(__webpack_exports__,"HttpResponse",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HttpResponse"]});__webpack_require__.d(__webpack_exports__,"HubConnection",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HubConnection"]});__webpack_require__.d(__webpack_exports__,"HubConnectionBuilder",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HubConnectionBuilder"]});__webpack_require__.d(__webpack_exports__,"MessageType",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["MessageType"]});__webpack_require__.d(__webpack_exports__,"LogLevel",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["LogLevel"]});__webpack_require__.d(__webpack_exports__,"HttpTransportType",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["HttpTransportType"]});__webpack_require__.d(__webpack_exports__,"TransferFormat",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["TransferFormat"]});__webpack_require__.d(__webpack_exports__,"NullLogger",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["NullLogger"]});__webpack_require__.d(__webpack_exports__,"JsonHubProtocol",function(){return _index__WEBPACK_IMPORTED_MODULE_1__["JsonHubProtocol"]});if(!Uint8Array.prototype.indexOf){Object.defineProperty(Uint8Array.prototype,"indexOf",{value:Array.prototype.indexOf,writable:true})}if(!Uint8Array.prototype.slice){Object.defineProperty(Uint8Array.prototype,"slice",{value:Array.prototype.slice,writable:true})}if(!Uint8Array.prototype.forEach){Object.defineProperty(Uint8Array.prototype,"forEach",{value:Array.prototype.forEach,writable:true})}},function(module,exports,__webpack_require__){(function(global){var require; 2 | /*! 3 | * @overview es6-promise - a tiny implementation of Promises/A+. 4 | * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) 5 | * @license Licensed under MIT license 6 | * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE 7 | * @version v4.2.2+97478eb6 8 | */ 9 | /*! 10 | * @overview es6-promise - a tiny implementation of Promises/A+. 11 | * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) 12 | * @license Licensed under MIT license 13 | * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE 14 | * @version v4.2.2+97478eb6 15 | */ 16 | (function(global,factory){true?module.exports=factory():undefined})(this,function(){"use strict";function objectOrFunction(x){var type=typeof x;return x!==null&&(type==="object"||type==="function")}function isFunction(x){return typeof x==="function"}var _isArray=void 0;if(Array.isArray){_isArray=Array.isArray}else{_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}var isArray=_isArray;var len=0;var vertxNext=void 0;var customSchedulerFn=void 0;var asap=function asap(callback,arg){queue[len]=callback;queue[len+1]=arg;len+=2;if(len===2){if(customSchedulerFn){customSchedulerFn(flush)}else{scheduleFlush()}}};function setScheduler(scheduleFn){customSchedulerFn=scheduleFn}function setAsap(asapFn){asap=asapFn}var browserWindow=typeof window!=="undefined"?window:undefined;var browserGlobal=browserWindow||{};var BrowserMutationObserver=browserGlobal.MutationObserver||browserGlobal.WebKitMutationObserver;var isNode=typeof self==="undefined"&&typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var isWorker=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function useNextTick(){return function(){return process.nextTick(flush)}}function useVertxTimer(){if(typeof vertxNext!=="undefined"){return function(){vertxNext(flush)}}return useSetTimeout()}function useMutationObserver(){var iterations=0;var observer=new BrowserMutationObserver(flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function useMessageChannel(){var channel=new MessageChannel;channel.port1.onmessage=flush;return function(){return channel.port2.postMessage(0)}}function useSetTimeout(){var globalSetTimeout=setTimeout;return function(){return globalSetTimeout(flush,1)}}var queue=new Array(1e3);function flush(){for(var i=0;i=200&&xhr.status<300){resolve(new HttpResponse(xhr.status,xhr.statusText,xhr.response||xhr.responseText))}else{reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__["HttpError"](xhr.statusText,xhr.status))}};xhr.onerror=function(){_this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Warning,"Error from HTTP request. "+xhr.status+": "+xhr.statusText);reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__["HttpError"](xhr.statusText,xhr.status))};xhr.ontimeout=function(){_this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Warning,"Timeout from HTTP request.");reject(new _Errors__WEBPACK_IMPORTED_MODULE_0__["TimeoutError"])};xhr.send(request.content||"")})};return DefaultHttpClient}(HttpClient)},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"LogLevel",function(){return LogLevel});var LogLevel;(function(LogLevel){LogLevel[LogLevel["Trace"]=0]="Trace";LogLevel[LogLevel["Debug"]=1]="Debug";LogLevel[LogLevel["Information"]=2]="Information";LogLevel[LogLevel["Warning"]=3]="Warning";LogLevel[LogLevel["Error"]=4]="Error";LogLevel[LogLevel["Critical"]=5]="Critical";LogLevel[LogLevel["None"]=6]="None"})(LogLevel||(LogLevel={}))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"HubConnection",function(){return HubConnection});var _HandshakeProtocol__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(8);var _IHubProtocol__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(10);var _ILogger__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(6);var _Utils__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(11);var __awaiter=undefined&&undefined.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=undefined&&undefined.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]responseLength?binaryData.slice(responseLength).buffer:null}else{var textData=data;var separatorIndex=textData.indexOf(_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__["TextMessageFormat"].RecordSeparator);if(separatorIndex===-1){throw new Error("Message is incomplete.")}var responseLength=separatorIndex+1;messageData=textData.substring(0,responseLength);remainingData=textData.length>responseLength?textData.substring(responseLength):null}var messages=_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__["TextMessageFormat"].parse(messageData);responseMessage=JSON.parse(messages[0]);return[remainingData,responseMessage]};return HandshakeProtocol}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"TextMessageFormat",function(){return TextMessageFormat});var TextMessageFormat=function(){function TextMessageFormat(){}TextMessageFormat.write=function(output){return""+output+TextMessageFormat.RecordSeparator};TextMessageFormat.parse=function(input){if(input[input.length-1]!==TextMessageFormat.RecordSeparator){throw new Error("Message is incomplete.")}var messages=input.split(TextMessageFormat.RecordSeparator);messages.pop();return messages};TextMessageFormat.RecordSeparatorCode=30;TextMessageFormat.RecordSeparator=String.fromCharCode(TextMessageFormat.RecordSeparatorCode);return TextMessageFormat}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"MessageType",function(){return MessageType});var MessageType;(function(MessageType){MessageType[MessageType["Invocation"]=1]="Invocation";MessageType[MessageType["StreamItem"]=2]="StreamItem";MessageType[MessageType["Completion"]=3]="Completion";MessageType[MessageType["StreamInvocation"]=4]="StreamInvocation";MessageType[MessageType["CancelInvocation"]=5]="CancelInvocation";MessageType[MessageType["Ping"]=6]="Ping";MessageType[MessageType["Close"]=7]="Close"})(MessageType||(MessageType={}))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"Arg",function(){return Arg});__webpack_require__.d(__webpack_exports__,"getDataDetail",function(){return getDataDetail});__webpack_require__.d(__webpack_exports__,"formatArrayBuffer",function(){return formatArrayBuffer});__webpack_require__.d(__webpack_exports__,"sendMessage",function(){return sendMessage});__webpack_require__.d(__webpack_exports__,"createLogger",function(){return createLogger});__webpack_require__.d(__webpack_exports__,"Subject",function(){return Subject});__webpack_require__.d(__webpack_exports__,"SubjectSubscription",function(){return SubjectSubscription});__webpack_require__.d(__webpack_exports__,"ConsoleLogger",function(){return ConsoleLogger});var _ILogger__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6);var _Loggers__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(12);var __awaiter=undefined&&undefined.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=undefined&&undefined.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]-1){this.subject.observers.splice(index,1)}if(this.subject.observers.length===0){this.subject.cancelCallback().catch(function(_){})}};return SubjectSubscription}();var ConsoleLogger=function(){function ConsoleLogger(minimumLogLevel){this.minimumLogLevel=minimumLogLevel}ConsoleLogger.prototype.log=function(logLevel,message){if(logLevel>=this.minimumLogLevel){switch(logLevel){case _ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Critical:case _ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Error:console.error(_ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"][logLevel]+": "+message);break;case _ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Warning:console.warn(_ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"][logLevel]+": "+message);break;case _ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"].Information:console.info(_ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"][logLevel]+": "+message);break;default:console.log(_ILogger__WEBPACK_IMPORTED_MODULE_0__["LogLevel"][logLevel]+": "+message);break}}};return ConsoleLogger}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"NullLogger",function(){return NullLogger});var NullLogger=function(){function NullLogger(){}NullLogger.prototype.log=function(_logLevel,_message){};NullLogger.instance=new NullLogger;return NullLogger}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"HubConnectionBuilder",function(){return HubConnectionBuilder});var _HttpConnection__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(14);var _HubConnection__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(7);var _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(20);var _Loggers__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(12);var _Utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(11);var HubConnectionBuilder=function(){function HubConnectionBuilder(){}HubConnectionBuilder.prototype.configureLogging=function(logging){_Utils__WEBPACK_IMPORTED_MODULE_4__["Arg"].isRequired(logging,"logging");if(isLogger(logging)){this.logger=logging}else{this.logger=new _Utils__WEBPACK_IMPORTED_MODULE_4__["ConsoleLogger"](logging)}return this};HubConnectionBuilder.prototype.withUrl=function(url,transportTypeOrOptions){_Utils__WEBPACK_IMPORTED_MODULE_4__["Arg"].isRequired(url,"url");this.url=url;if(typeof transportTypeOrOptions==="object"){this.httpConnectionOptions=transportTypeOrOptions}else{this.httpConnectionOptions={transport:transportTypeOrOptions}}return this};HubConnectionBuilder.prototype.withHubProtocol=function(protocol){_Utils__WEBPACK_IMPORTED_MODULE_4__["Arg"].isRequired(protocol,"protocol");this.protocol=protocol;return this};HubConnectionBuilder.prototype.build=function(){var httpConnectionOptions=this.httpConnectionOptions||{};if(httpConnectionOptions.logger===undefined){httpConnectionOptions.logger=this.logger}if(!this.url){throw new Error("The 'HubConnectionBuilder.withUrl' method must be called before building the connection.")}var connection=new _HttpConnection__WEBPACK_IMPORTED_MODULE_0__["HttpConnection"](this.url,httpConnectionOptions);return _HubConnection__WEBPACK_IMPORTED_MODULE_1__["HubConnection"].create(connection,this.logger||_Loggers__WEBPACK_IMPORTED_MODULE_3__["NullLogger"].instance,this.protocol||new _JsonHubProtocol__WEBPACK_IMPORTED_MODULE_2__["JsonHubProtocol"])};return HubConnectionBuilder}();function isLogger(logger){return logger.log!==undefined}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"HttpConnection",function(){return HttpConnection});var _HttpClient__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(5);var _ILogger__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(6);var _ITransport__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(15);var _LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(16);var _ServerSentEventsTransport__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(18);var _Utils__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(11);var _WebSocketTransport__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(19);var __awaiter=undefined&&undefined.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=undefined&&undefined.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]=0){if(transport===_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"].WebSockets&&typeof WebSocket==="undefined"||transport===_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"].ServerSentEvents&&typeof EventSource==="undefined"){this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Debug,"Skipping transport '"+_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"][transport]+"' because it is not supported in your environment.'")}else{this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Debug,"Selecting transport '"+_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"][transport]+"'");return transport}}else{this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Debug,"Skipping transport '"+_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"][transport]+"' because it does not support the requested transfer format '"+_ITransport__WEBPACK_IMPORTED_MODULE_2__["TransferFormat"][requestedTransferFormat]+"'.")}}else{this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Debug,"Skipping transport '"+_ITransport__WEBPACK_IMPORTED_MODULE_2__["HttpTransportType"][transport]+"' because it was disabled by the client.")}}return null};HttpConnection.prototype.isITransport=function(transport){return transport&&typeof transport==="object"&&"connect"in transport};HttpConnection.prototype.changeState=function(from,to){if(this.connectionState===from){this.connectionState=to;return true}return false};HttpConnection.prototype.stopConnection=function(error){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){this.transport=null;error=this.stopError||error;if(error){this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Error,"Connection disconnected with error '"+error+"'.")}else{this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Information,"Connection disconnected.")}this.connectionState=2;if(this.onclose){this.onclose(error)}return[2]})})};HttpConnection.prototype.resolveUrl=function(url){if(url.lastIndexOf("https://",0)===0||url.lastIndexOf("http://",0)===0){return url}if(typeof window==="undefined"||!window||!window.document){throw new Error("Cannot resolve '"+url+"'.")}var aTag=window.document.createElement("a");aTag.href=url;this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_1__["LogLevel"].Information,"Normalizing '"+url+"' to '"+aTag.href+"'.");return aTag.href};HttpConnection.prototype.resolveNegotiateUrl=function(url){var index=url.indexOf("?");var negotiateUrl=url.substring(0,index===-1?url.length:index);if(negotiateUrl[negotiateUrl.length-1]!=="/"){negotiateUrl+="/"}negotiateUrl+="negotiate";negotiateUrl+=index===-1?"":url.substring(index);return negotiateUrl};return HttpConnection}();function transportMatches(requestedTransport,actualTransport){return!requestedTransport||(actualTransport&requestedTransport)!==0}},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"HttpTransportType",function(){return HttpTransportType});__webpack_require__.d(__webpack_exports__,"TransferFormat",function(){return TransferFormat});var HttpTransportType;(function(HttpTransportType){HttpTransportType[HttpTransportType["None"]=0]="None";HttpTransportType[HttpTransportType["WebSockets"]=1]="WebSockets";HttpTransportType[HttpTransportType["ServerSentEvents"]=2]="ServerSentEvents";HttpTransportType[HttpTransportType["LongPolling"]=4]="LongPolling"})(HttpTransportType||(HttpTransportType={}));var TransferFormat;(function(TransferFormat){TransferFormat[TransferFormat["Text"]=1]="Text";TransferFormat[TransferFormat["Binary"]=2]="Binary"})(TransferFormat||(TransferFormat={}))},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"LongPollingTransport",function(){return LongPollingTransport});var _AbortController__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(17);var _Errors__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4);var _ILogger__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(6);var _ITransport__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(15);var _Utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(11);var __awaiter=undefined&&undefined.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=undefined&&undefined.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]"));this.onclose(closeError)}this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Trace,"(LongPolling transport) Transport finished.");return[7];case 9:return[2]}})})};LongPollingTransport.prototype.send=function(data){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(!this.running){return[2,Promise.reject(new Error("Cannot send until the transport is connected"))]}return[2,Object(_Utils__WEBPACK_IMPORTED_MODULE_4__["sendMessage"])(this.logger,"LongPolling",this.httpClient,this.url,this.accessTokenFactory,data,this.logMessageContent)]})})};LongPollingTransport.prototype.stop=function(){return __awaiter(this,void 0,void 0,function(){var deleteOptions,token;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:_a.trys.push([0,,3,4]);this.running=false;this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Trace,"(LongPolling transport) sending DELETE request to "+this.url+".");deleteOptions={headers:{}};return[4,this.accessTokenFactory()];case 1:token=_a.sent();this.updateHeaderToken(deleteOptions,token);return[4,this.httpClient.delete(this.url,deleteOptions)];case 2:_a.sent();this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Trace,"(LongPolling transport) DELETE request accepted.");return[3,4];case 3:if(!this.stopped){this.shutdownTimer=setTimeout(function(){_this.logger.log(_ILogger__WEBPACK_IMPORTED_MODULE_2__["LogLevel"].Warning,"(LongPolling transport) server did not terminate after DELETE request, canceling poll.");_this.pollAbort.abort()},this.shutdownTimeout)}return[7];case 4:return[2]}})})};return LongPollingTransport}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"AbortController",function(){return AbortController});var AbortController=function(){function AbortController(){this.isAborted=false}AbortController.prototype.abort=function(){if(!this.isAborted){this.isAborted=true;if(this.onabort){this.onabort()}}};Object.defineProperty(AbortController.prototype,"signal",{get:function(){return this},enumerable:true,configurable:true});Object.defineProperty(AbortController.prototype,"aborted",{get:function(){return this.isAborted},enumerable:true,configurable:true});return AbortController}()},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,"ServerSentEventsTransport",function(){return ServerSentEventsTransport});var _ILogger__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6);var _ITransport__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(15);var _Utils__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(11);var __awaiter=undefined&&undefined.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=undefined&&undefined.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]