14.2.4
- Improved deserialization performance by utilizing a combination of
Utf8Decoder
and JsonDecoder
to avoid extra type conversions.
14.2.3
- An instance of RPCError is now thrown when attempting to invoke an RPC after the
VmService
instance has been disposed.
14.2.2
- Fixes issue where outstanding service requests were not automatically completed with an error when the VM service connection was closed.
14.2.1
- Fixes heap snapshot decoding error (dart-lang/sdk#55475).
14.2.0
- Update to version
4.15
of the spec. - Added
closureReceiver
property to Instance
and InstanceRef
. - Added
Finalizer
, NativeFinalizer
, and FinalizerEntry
instance kinds.
14.1.0
- Added
HeapSnapshotGraph.toChunks()
. - Added optional
calculateReferrers
, decodeObjectData
, decodeExternalProperties
, and decodeIdentityHashCodes
parameters to HeapSnapshotGraph.fromChunks()
.
14.0.0
- Add the following error codes to
RPCErrorKind
:kVmMustBePaused
kCannotAddBreakpoint
kIsolateMustBeRunnable
kIsolateCannotBeResumed
kIsolateIsReloading
kIsolateCannotReload
kIsolateNoReloadChangesApplied
kInvalidTimelineRequest
- Update to version
4.0
of the Dart IO service protocol extensions by making the following changes:- Change the type of the
updatedSince
parameter of getHttpProfile
from int?
to DateTime?
. - Change the type of the
timestamp
property of HttpProfile
from int
to DateTime
. - Add
events
property to HttpProfileRequestRef
and HttpProfileRequest
. - Change the type of the
startTime
property of HttpProfileRequestRef
and HttpProfileRequest
from int
to DateTime
. - Change the type of the
endTime
property of HttpProfileRequestRef
and HttpProfileRequest
from int?
to DateTime?
. - Remove the
events
and method
properties from HttpProfileRequestData
. - Make the
contentLength
, cookies
, followRedirects
, headers
, maxRedirects
, method
, and persistentConnection
properties of HttpProfileRequestData
nullable. - Change the type of the
startTime
property of HttpProfileResponseData
from int
to DateTime?
. - Change the type of the
endTime
property of HttpProfileResponseData
from int?
to DateTime?
. - Make the
cookies
, headers
, compressionState
, reasonPhrase
, isRedirect
, persistentConnection
, contentLength
, statusCode
, and startTime
properties of HttpProfileResponseData
nullable. - Add
isDirect
and port
properties to HttpProfileProxyData
. - Add
arguments
property to HttpProfileRequestEvent
. - Change the type of the
timestamp
property of HttpProfileRequestEvent
from int
to DateTime
.
13.0.0
- Add Dart IO extension methods:
isSocketProfilingAvailable
isHttpTimelineLoggingAvailable
isHttpProfilingAvailable
.
- Remove deprecated Dart IO extension methods:
startSocketProfiling
pauseSocketProfiling
getHttpEnableTimelineLogging
setHttpEnableTimelineLogging
- Remove deprecated
vmServiceConnect
from package:vm_service/vm_service_io.dart
. - Remove deprecated constants from
RPCError
. - Add
wrapFuture
method that can be overridden to add additional logic to each VM service RPC call (like logging, tracking values, etc.). - Add
vmServiceConnectUriWithFactory
helper that can create a generic [VmService] instance and connect it to a web socket URI. - Add
VmServiceFactory
typedef. - Add a static method
VmService.defaultFactory
that provides a VmServiceFactory
method for the VmService
class. - Update SDK constraint to ^3.0.0
12.0.1
- Fix Java VM service version bug.
12.0.0
- Update to version
4.13
of the spec. - Add optional
librariesAlreadyCompiled
parameter to getSourceReport
RPC.
11.10.0
- Add
wsUri
property to VmService
. If set, this property can be used to associate a VmService
instance to its targeted VM service based on its URI.
11.9.0
- Update to version
4.12
of the spec. - Add
TypeParametersRef
; change supertype of TypeParameters
to Obj
.
11.8.0
- Update to version
4.11
of the spec. - Add
isGetter
and isSetter
properties to FuncRef
and Func
.
11.7.3
- Update to version
4.10
of the spec. - Add deprecation notice to
Breakpoint.isSyntheticAsyncContinuation
.
11.7.2
- Make Event classes abstract to permit
dap
event stream extensions.
11.7.1
- Expose RPC error codes that were defined in
package:dds
.
11.6.0
- Update to version
4.7
of the spec. - Add deprecation notice to
Stack.awaiterFrames
. - Add deprecation notice to
FrameKind.kAsyncActivation
.
11.5.0
- Update to version
4.6
of the spec. - Add
getPerfettoCpuSamples
RPC. - Add deprecation notice to
InstanceKind.TypeRef
.
11.4.0
- Update to version
4.5
of the spec. - Add
getPerfettoVMTimeline
RPC.
11.3.0
- Update to version
4.4
of the spec. - Add
label
property to InstanceRef
. - Add
kUserTag
to InstanceKind
.
11.2.1
- Prevent
VmServerConnection
from converting SentinelException
s into RPCError
s.
11.2.0
- Update to version
4.3
of the spec. - Add
isSealed
, isMixinClass
, isBaseClass
, isInterfaceClass
, and isFinal
properties to Class
.
11.1.0
- Reduce number of type checks in
toJson()
methods. - Update to version
4.2
of the spec. - Add
getInstancesAsList
RPC.
11.0.1
- Fix bug where code would try to call
.toJson()
on int
s.
11.0.0
- Change
HttpProfileRequestRef.id
type from int
to String
. - Change
SocketStatistic.id
type from int
to String
. - Change
ext.dart.io.getHttpProfileRequest
id
parameter type from int
to String
. - Change
ext.dart.io.httpEnableTimelineLogging
parameter from ‘enable’ to ‘enabled’.
10.1.2
- Fix bug where code would try to call
.toJson()
on String
s.
10.1.0
- Update to version
4.1
of the spec. - Add optional
includeSubclasses
and includeImplementers
parameters to getInstances
.
10.0.0
- Update to version
4.0
of the spec. - Update for incorrectly documented types for
WeakReference
's target
, WeakProperty
's key
and value
, and MirrorReference
's mirrorReferent
. - Add
Set
, Record
, and RecordType
to InstanceKind
. - Add deprecation notice to the
decl
property of BoundField
. - Add
name
property to BoundField
. - Add deprecation notice to the
parentListIndex
property of InboundReference
. - Change the type of the
parentField
property of InboundReference
from FieldRef
to FieldRef|String|int
. - Add deprecation notice to the
parentListIndex
property of RetainingObject
. - Change the type of the
parentField
property of RetainingObject
from String
to String|int
. - Remove deprecated
timeSpan
property from CpuSamples
. - Remove deprecated
timeSpan
property from CpuSamplesEvent
.
9.4.0
- Update to version
3.61
of the spec. - Add
isolateGroupId
property to @Isolate
and Isolate
.
9.3.0
- Update to version
3.60
of the spec. - Add
gcType
property to Event
.
9.2.0
- Update to version
3.59
of the spec. - Add
abstract
flag to FuncRef
.
9.1.0
- Remove
required
keyword from most of the named parameters in the constructors of the Dart API objects.
9.0.0
- Update to version
3.58
of the spec. - Added optional
local
parameter to lookupResolvedPackageUris
RPC.
8.3.0
- Update to version
3.57
of the spec. - Added optional
libraryFilters
parameter to getSourceReport
RPC.
8.2.2+1
- Documentation update for
FieldRef
and FuncRef
.
8.2.2
- Updated the following optional fields to be nullable in
SocketStatistic
:endTime
lastReadTime
lastWriteTime
8.2.1
- Changed type of
UriList.uris
from dynamic
to List<String?>?
. - Remove
example/vm_service_asserts.dart'
8.2.0
- Update to version
3.56
of the spec. - Added optional
line
and column
properties to SourceLocation
. - Added a new
SourceReportKind
, BranchCoverage
, which reports branch level coverage information.
8.1.0
- Update to version
3.55
of the spec. - Added
streamCpuSamplesWithUserTag
RPC.
8.0.0
- Update to version
3.54
of the spec. - breaking Updated type of
Event.cpuSamples
from CpuSamples
to CpuSamplesEvent
, which is less expensive to generate and serialize. - Added
CpuSamplesEvent
object.
7.5.0
- Update to version
3.53
of the spec. - Added
setIsolatePauseMode
RPC. - Deprecated
setExceptionPauseMode
in favor of setIsolatePauseMode
.
7.4.0
- Update to version
3.52
of the spec. - Added
lookupResolvedPackageUris
and lookupPackageUris
RPCs and UriList
type.
7.3.0
- Update to version
3.51
of the spec. - Added optional
reportLines
parameter to getSourceReport
RPC.
7.1.1
- Update to version
3.48
of the spec. - Added
shows
and hides
properties to LibraryDependency
. - Added
Profiler
stream, UserTagChanged
event kind, and updatedTag
and previousTag
properties to Event
. - Fixed bug where a response without a type would cause a null type failure (dart-lang/sdk#46559).
7.1.0
- Update to version
3.46
of the spec. - Move
sourcePosition
properties into ClassRef
, FieldRef
, and FuncRef
.
7.0.0
- breaking bug fix: Fixed issue where response parsing could fail for
Context
. - Add support for
setBreakpointState
RPC and updated Breakpoint
class to include enabled
property.
6.2.0
- Added support for
getHttpProfile
and clearHttpProfile
dart:io
service extensions.
6.1.1
- Callsite
StackTrace
s are now attached to RPCError
s and SentinelException
s. - Added
identityHashCode
property to InstanceRef
and Instance
.
6.1.0+1
6.1.0
- breaking bug fix: Fixed issue where the root object was omitted from
HeapSnapshot.classes
and the sentinel HeapSnapshotObject
was omitted from HeapSnapshot.objects
- Added
identityHashCode
property to HeapSnapshotObject
, which can be used to compare objects across heap snapshots. - Added
successors
iterable to HeapSnapshotObject
, which provides a convenient way to access children of a given object. - Added
klass
getter to HeapSnapshotObject
. - Fixed issue where
null
could be returned instead of InstanceRef
of type Null
. - Added
getAllocationTraces
and setTraceClassAllocation
RPCs. - Updated
CpuSample
to include identityHashCode
and classId
properties. - Updated
Class
to include traceAllocations
property.
6.0.1
- Stable null-safe release.
6.0.1-nullsafety.1
- Fix issue where some
Instance
properties were not being populated correctly.
6.0.1-nullsafety.0
6.0.0-nullsafety.4
- Fixed issue where response parsing could fail for
SourceReportRange.coverage
if no coverage information was provided.
6.0.0-nullsafety.3
- Fixed issue where
Response.type
and classes which override Response.type
were returning the name of the package:vm_service
reference object (e.g., InstanceRef) instead of the type specified in the specification (e.g., @Instance).
6.0.0-nullsafety.2
- breaking Updated signature of
Field.staticValue
to dynamic
in order to properly allow for uninitialized sentinel values.
6.0.0-nullsafety.1
- breaking Null safety migration, take two. Assume all object fields are nullable.
6.0.0-nullsafety-dev
- breaking Migrate to use null safety.
5.5.1
- Fix issue where
VmService.onDone
could complete before the provided DisposeHandler
had finished executing.
5.5.0
- Update to version
3.42.0
of the spec. - Added optional
limit
parameter to getStack
RPC.
5.4.0
- Update to version
3.41.0
of the spec. - Added
PortList
class. - Added
getPorts
RPC. - Added optional properties
portId
, allocationLocation
, and debugName
to InstanceRef
and Instance
.
5.3.1
- Rename
State
class to _State
to avoid class name conflicts with Flutter.
5.3.0
- Added support for
dart:io
extensions version 1.5. - Added combination getter/setter
socketProfilingEnabled
. - Deprecated
startSocketProfiling
and pauseSocketProfiling
. - Update to version
3.40.0
of the spec. - Added
IsolateFlag
class. - Added
isolateFlags
property to Isolate
.
5.2.0
- Added support for
dart:io
extensions version 1.3. - Added combination getter/setter
httpEnableTimelineLogging
. - Deprecated
getHttpEnableTimelineLogging
and setHttpEnableTimelineLogging
.
5.1.0
- Added support for
dart:io
extensions version 1.2. - Added
getOpenFiles
, getOpenFileById
, getSpawnedProcesses
, and getSpawnedProcessById
RPCs. - Added
OpenFileList
, OpenFileRef
, OpenFile
, SpawnedProcessList
, SpawnedProcessRef
, and SpawnedProcess
objects.
5.0.0
- breaking: Update to version
3.39.0
of the spec.- Removes
ClientName
and WebSocketTarget
objects - Removes
getClientName
, getWebSocketTarget
, requirePermissionToResume
, and setClientName
RPCs.
- Added
isSystemIsolate
property to IsolateRef
and Isolate
. - Added
isSystemIsolateGroup
property to IsolateGroupRef
and IsolateGroup
. - Added
serviceIsolates
and serviceIsolateGroups
properties to VM
. - Fixed issue where
VmServerConnection
would always response with a string ID even if the request ID was not a string.
4.2.0
- Update to version
3.37.0
of the spec. - Added
getProcessMemoryUsage
RPC and ProcessMemoryUsage
and ProcessMemoryItem
objects. - Added
getWebSocketTarget
RPC and WebSocketTarget
object.
4.1.0
- Update to version
3.35.0
of the spec. - Expose more
@required
parameters on the named constructors of VM service objects.
4.0.4
- Update to version
3.34.0
of the spec. - Fixed issue where
TimelineEvents
was not a valid service event kind. - Fixed issue where invoking a service extension with no arguments would result in a TypeError during request routing.
- Added
TimelineStreamSubscriptionsUpdate
event, which is broadcast when setVMTimelineFlags
is used to change the set of currently recording timeline streams.
4.0.3
- Update to version
3.33.0
of the spec. - Add static error code constants to
RPCError
. - Update the toString() method or
RPCError
and add a toMap() method.
4.0.2
- Fixed issue where RPC format did not conform to the JSON-RPC 2.0 specification.
- Added
getClassList
RPC.
4.0.1
- Improved documentation.
- Fixed analysis issues.
4.0.0
- breaking: RPCs which can return a
Sentinel
will now throw a SentinelException
if a Sentinel
is received as a response. - breaking: RPCs which can return multiple values now return
Future<Response>
rather than Future<dynamic>
. RPCError
now implements Exception
.
3.0.0
- breaking: RPCs which have an isolateId parameter now return
Future<dynamic>
as a Sentinel
can be returned if the target isolate no longer exists.
2.3.3
- Classes now implement their corresponding reference types to handle cases where the service returns a more specific type than promised.
2.3.2
- Added
getClientName
, setClientName
, and requireResumePermission
methods. - Added
ClientName
class.
2.3.1
- Fixed issue where
dart:io
extensions were not being exported.
2.3.0
- Added
getHttpEnableTimelineLogging
and setHttpEnableTimelineLogging
methods. - Added
HttpTimelineLoggingState
class.
2.2.1
- Fixed issue where
TimelineEvent.toJson
always returned an empty map.
2.2.0
- Added support for interacting with dart:io service extensions.
- Bumped minimum SDK requirement to 2.6.0.
2.1.4
- Fixed issue where
TimelineEvent
always had no content.
2.1.3
- Fixed issue where exception would be thrown when attempting to parse a List entry in a response which is not present. This occurs when connected to a service which does not yet support the latest service protocol supported by this package.
2.1.2
- Requests which have not yet completed when
VmService.dispose
is invoked will now complete with an RPCError
exception rather than a String
exception.
2.1.1
- Added
getLineNumberFromTokenPos
and getColumnNumberFromTokenPos
methods to Script
.
2.1.0
- Added
HeapSnapshotGraph
class which parses the binary events posted to the HeapSnapshot
stream after a requestHeapSnapshot
invocation. - Fixed issue where listening to
EventStream.kHeapSnapshot
and calling requestHeapSnapshot
would throw an exception.
2.0.0
- breaking: VM service objects which have fields now have constructors with named parameters for each field. Required fields are annotated with
@required
.
1.2.0
- Support service protocol version 3.27:
- Added
getCpuSamples
and clearCpuSamples
methods - Added
CpuSamples
, CpuSample
, and ProfileFunction
classes.
1.1.2
- Fixed issue where
closureFunction
and closureContext
were only expected in Instance
objects rather than InstanceRef
.
1.1.1
- Fixed issue serializing list arguments for certain VM service methods.
1.1.0
- Support service protocol version 3.25:
- Added
getInboundReferences
, getRetainingPath
methods - Added
InboundReferences
, InboundReference
, RetainingPath
, and RetainingObject
objects
1.0.1
- Support service protocol version 3.24:
- Added
operatingSystem
property to VM
object
1.0.0+1
- Updated description and homepage.
1.0.0
- Migrated
vm_service_lib
into the Dart SDK. - Renamed from
package:vm_service_lib
to package:vm_service
. - Switched versioning system to follow semantic versioning standards instead of pinning versions to match the service protocol version.
3.22.2
- Fix
registerService
RPC and Service
stream not being handled correctly. - Fixed failing tests.
3.22.1
- breaking: Changed type of
library
property in Class
objects from ObjectRef
to LibraryRef
.
3.22.0
- The
registerService
RPC and Service
stream are now public. Event
has been updated to include the optional service
, method
, and alias
properties.
3.21.1
- breaking: Fixed issue where an
InstanceRef
of type null
could be returned instead of null for non-InstanceRef
properties and return values. As a result, some property and return types have been changed from Obj to their correct types.
3.21.0
- support service protocol version 3.21
3.20.0+2
- allow optional params in
getVMTimeline
3.20.0+1
- handle null isolate ids in
callServiceExtension
- add backwards compatibility for
InstanceSet
and AllocationProfile
3.20.0
- rev to 3.20.0; expose public methods added in 3.17 - 3.20 VM Service Protocol versions
3.17.0+1
- generate a list of available event streams
3.17.0
- rev to 3.17.0; expose the Logging event and the getMemoryUsage call
3.15.1+2
- fix handling of errors in registered service callbacks to return valid JSON-RPC errors and avoid the client getting “Service Disappeared” responses
3.15.1+1
- rename
getVmWsUriFromObservatoryUri
to convertToWebSocketUrl
- fix an assignment issue in
evaluate
3.15.1
- Add
getVmWsUriFromObservatoryUri
, a helper function to convert observatory URIs into the required WebSocket URI for connecting to the VM service.
3.15.0
- support service protocol version 3.15
- fix an issue decoding null
Script.tokenPosTable
values
3.14.3-dev.4
- Add support for the
_Service
stream in the VmServerConnection
directly.
3.14.3-dev.3
- Add support for automatically delegating service extension requests to the client which registered them.
- This is only for services that are registered via the vm service protocol, services registered through
dart:developer
should be handled by the VmServiceInterface
implementation (which should invoke the registered callback directly).
- Added a
ServiceExtensionRegistry
class, which tracks which clients have registered which service extensions. - breaking: Renamed
VmServer
to VmServerConnection
.- One
VmServerConnection
should be created per client connection to the server. These should typically all share the same underlying VmServiceInterface
instance, as well as the same ServiceExtensionRegistry
instance.
3.14.3-dev.2
- Add
callServiceExtension
method to the VmServiceInterface
class.- The
VmServer
will delegate all requests whose methods start with ext.
to that implementation.
3.14.3-dev.1
- Add
VmServiceInterface
and VmServer
classes, which can handle routing jsonrpc2 requests to a VmServiceInterface
instance, and serializing the responses back.
3.14.3-dev.0
- Add
toJson
methods to all classes.
3.14.2
- fix code generation for the
getSourceReport
call
3.14.1
- address an encoding issue with stdout / stderr text
3.14.0
- regenerate for
v3.14
- bump to a major version numbering scheme
0.3.10+2
- work around an issue de-serializing Instance.closureContext
0.3.10+1
- fix an issue de-serializing some object types
0.3.10
- regenerate for
v3.12
- expose
isolate.getScripts()
- expose
isolate.getInstances()
0.3.9+2
- handle nulls for
Script.source
- fix a decoding issue for
Script.tokenPosTable
0.3.9+1
- rev to version
3.9
of the spec - expose
invoke
0.3.9
- Rename the
Null
type to NullVal
0.3.8
- upgrades for Dart 2 dependencies
0.3.7
- ensure the library works with Dart 2
- regenerate the library based on the 3.8-dev spec
- now require a minimum of a 2.0.0-dev Dart SDK
- update to not use deprecated dart:convert constants
0.3.6
- workaround for an issue with the type of @Library refs for VM objects
0.3.5+1
- bug fix for deserializing
Instance
objects
0.3.5
- improve access to the profiling APIs
0.3.4
- more strong mode runtime fixes
- expose some undocumented (and unsupported) service protocol methods
0.3.3
- fix strong mode issues at runtime (with JSLists and Lists)
- expose the ability to evaluate in the scope of another object
- expose the async causal frame info
- expose the
awaiterFrames
field - expose the
frameIndex
param for the step call
0.3.2+1
- fix a strong mode issue in the generated Dart library
0.3.2
- expose the
PausePostRequest
event
0.3.1
- fix a parsing issue with ExtensionData
0.2.4
- expose the service protocol timeline API
- add the new
None
event type
0.2.3
- include the name of the calling method in RPC errors
0.2.2
- fixed several strong mode analysis issues
0.2.1
- upgrade to service protocol version
3.3
0.2.0
- upgrade to service protocol version
3.2
0.1.2
- fixed a bug with the
ServiceExtensionAdded
event
0.1.1
- expose the new ‘Extension’ event information
0.1.0
- rev to 0.1.0; declare first stable API version
0.0.13
- improve the toString() message for RPCError
0.0.12
- bug fix for parsing MapAssociations
0.0.11
- bug fix to the service extension API
0.0.10
- expose a service extension API
0.0.9
- update to the latest spec to capture the
Event.inspectee
field
0.0.8
- allow listening to arbitrary event types
- use Strings for the enum types (to allow for unknown enum values)
0.0.7
- make the diagnostic logging synchronous
- remove a workaround for a VM bug (fixed in 1.13.0-dev.7.3)
- several strong mode fixes
0.0.6
- added
exceptionPauseMode
to the Isolate class - added
hashCode
and operator==
methods to classes supporting object identity - work around a VM bug with the
type
field of BoundVariable
and BoundField
0.0.5
- added more dartdocs
- moved back to using Dart enums
- changed from optional positional params to optional named params
0.0.4
0.0.3
- update to use a custom enum class
- upgrade to the latest service protocol spec
0.0.2
- added the
setExceptionPauseMode
method - fixed an issue with enum parsing
0.0.1
- first publish
- upgraded the library to the 3.0 version of the service protocol
- upgraded the library to the 2.0 version of the service protocol
- copied basic Dart API generator from Atom Dart Plugin https://github.com/dart-atom/dartlang/tree/master/tool
- refactored Dart code to generate Java client as well as Dart client