blob: 1f2cf8e8e407c057fc3e3deec6078bd7081ebd04 [file] [view]
## 3.0.3
* Require Dart 3.4
* Move to `dart-lang/tools` monorepo.
## 3.0.2
* Switch to using `package:lints`.
* Address a few analysis hint violations.
* Populate the pubspec `repository` field.
## 3.0.1
* Fix a bug where a `null` result to a request caused an exception.
## 3.0.0
* Migrate to null safety.
* Accept responses even if the server converts the ID to a String.
## 2.2.2
* Fix `Peer.close()` throwing `Bad state: Future already completed`.
## 2.2.1
* Fix `Peer` requests not terminating when the underlying channel is closed.
## 2.2.0
* Added `strictProtocolChecks` named parameter to `Server` and `Peer`
constructors. Setting this parameter to false will result in the server not
rejecting requests missing the `jsonrpc` parameter.
## 2.1.1
* Fixed issue where throwing `RpcException.methodNotFound` in an asynchronous
fallback handler would not result in the next fallback being executed.
* Updated minimum SDK to Dart `2.2.0`.
## 2.1.0
* `Server` and related classes can now take an `onUnhandledError` callback to
notify callers of unhandled exceptions.
## 2.0.10
* Allow `stream_channel` version 2.x
## 2.0.8
* Updated SDK version to 2.0.0-dev.17.0
## 2.0.7
* When a `Client` is closed before a request completes, the error sent to that
request's `Future` now includes the request method to aid in debugging.
## 2.0.6
* Internal changes only.
## 2.0.5
* Internal changes only.
## 2.0.4
* `Client.sendRequest()` now throws a `StateError` if the client is closed while
the request is in-flight. This avoids dangling `Future`s that will never be
completed.
* Both `Client.sendRequest()` and `Client.sendNotification()` now throw
`StateError`s if they're called after the client is closed.
## 2.0.3
* Fix new strong-mode warnings.
## 2.0.2
* Fix all strong-mode warnings.
## 2.0.1
* Fix a race condition in which a `StateError` could be top-leveled if
`Peer.close()` was called before the underlying channel closed.
## 2.0.0
* **Breaking change:** all constructors now take a `StreamChannel` rather than a
`Stream`/`StreamSink` pair.
* `Client.sendRequest()` and `Client.sendNotification()` no longer throw
`StateError`s after the connection has been closed but before `Client.close()`
has been called.
* The various `close()` methods may now be called before their corresponding
`listen()` methods.
* The various `close()` methods now wait on the result of closing the underlying
`StreamSink`. Be aware that [in some circumstances][issue 19095]
`StreamController`s' `Sink.close()` futures may never complete.
[issue 19095]: https://github.com/dart-lang/sdk/issues/19095
## 1.2.0
* Add `Client.isClosed` and `Server.isClosed`, which make it possible to
synchronously determine whether the connection is open. In particular, this
makes it possible to reliably tell whether it's safe to call
`Client.sendRequest`.
* Fix a race condition in `Server` where a `StateError` could be thrown if the
connection was closed in the middle of handling a request.
* Improve stack traces for error responses.
## 1.1.1
* Update the README to match the current API.
## 1.1.0
* Add a `done` getter to `Client`, `Server`, and `Peer`.
## 1.0.0
* Add a `Client` class for communicating with external JSON-RPC 2.0 servers.
* Add a `Peer` class that's both a `Client` and a `Server`.
## 0.1.0
* Remove `Server.handleRequest()` and `Server.parseRequest()`. Instead, `new
Server()` takes a `Stream` and a `StreamSink` and uses those behind-the-scenes
for its communication.
* Add `Server.listen()`, which causes the server to begin listening to the
underlying request stream.
* Add `Server.close()`, which closes the underlying request stream and response
sink.
## 0.0.2+3
* Widen the version constraint for `stack_trace`.
## 0.0.2+2
* Fix error response to include data from `RpcException` when not a map.