rootPath, buildVariant, configuration, and target parameters in DeeplinkManager.UniversalLinkSettings.fromErrorJson, UniversalLinkSettings.error, and UniversalLinkSettings.error getter to surface iOS universal link settings errors.LocalFileSystem, an extension which provided some handy helpers, has been refactored into an extension on the file package's FileSystem abstraction. In detail:fileSystem is a new top-level constant which represents the local (real) file system.LocalFileSystem.devToolsDir() is now a static getter, FileSystemExtension.devToolsDir.LocalFileSystem.maybeMoveLegacyDevToolsStore() is now an instance method, FileSystemExtension.maybeMoveLegacyDevToolsStore().LocalFileSystem.devToolsStoreLocation() is now a static getter, FileSystemExtension.devToolsStoreLocation.LocalFileSystem.ensureDevToolsDirectory() is now private.LocalFileSystem.devToolsFileFromPath() is now an instance method, FileSystemExtension.devToolsFileFromPath().LocalFileSystem.devToolsFileAsJson() is now an instance method, FileSystemExtension.devToolsFileAsJson().LocalFileSystem.flutterStoreExists() is now an instance getter, FileSystemExtension.flutterStoreExists.IOPersistentProperties.new accepts a new optional FileSystem fs argument.LocalFileSystem and IOPersistentProperties to use package:file instead of dart:io to allow mocking the file system.devtoolsOptionsUri query parameter in the extension enabled state handler so it must be a file: URI named devtools_options.yaml, preventing arbitrary file writes by the DevTools server process.FlutterStore.flutterClientId.DevToolsStoreKeys.analyticsEnabled and DevToolsStoreKeys.isFirstRun since these were only used for legacy analytics.apiGetFlutterGAEnabled, apiGetDevToolsEnabled, apiSetDevToolsEnabled, apiGetDevToolsFirstRun, apiResetDevTools).devToolsEnabledPropertyName.isFirstRun, reset, and analyticsEnabled from DevToolsUsage.IntegrationTestRunner.X.XX.X-X.X.pre-XXX.IntegrationTestRunner.sanitizeVersionStr helper to SemanticVersion.bundleIdentifier or teamIndentifier in UniversalLinkSettings.dtd dependency to ^4.0.0.Handler extension methods to VmServiceHandler. This member was marked @visibleForTesting and should not be used outside of this package, so we consider this change non-breaking.vm_service dependency upper bound to <16.0.0.3.6.0.package:vm_service to >=13.0.0 <16.0.0.apiGetLastReleaseNotesVersion with ReleaseNotesApi.getLastReleaseNotesVersion.apiSetLastReleaseNotesVersion with ReleaseNotesApi.setLastReleaseNotesVersion.lastReleaseNotesVersionPropertyName.apiGetBaseAppSizeFile with AppSizeApi.getBaseAppSizeFile.apiGetTestAppSizeFile with AppSizeApi.getTestAppSizeFile.baseAppSizeFilePropertyName with AppSizeApi.baseAppSizeFilePropertyName.testAppSizeFilePropertyName with AppSizeApi.testAppSizeFilePropertyName.apiSetActiveSurvey with SurveyApi.setActiveSurvey.activeSurveyName.apiGetSurveyActionTaken with SurveyApi.getSurveyActionTaken.apiSetSurveyActionTaken with SurveyApi.setSurveyActionTaken.surveyActionTakenPropertyName.apiGetSurveyShownCount with SurveyApi.getSurveyShownCount.apiIncrementSurveyShownCount with SurveyApi.incrementSurveyShownCount.PreferencesApi to get and set preference values.DTDConnectionInfo in favor of DtdInfo which supports tracking two URIs for DTD to better support web/remote environments.web_socket_channel: '>=2.4.0 <4.0.0'.deserialize and deserializeNullableHeapSample and ExtensionEventsSerializable3.4.3.packageRootFromFileUriString utility method.DTDConnectionInfo from the devtools_shared.dart library instead of the devtools_server.dart library.DevToolsExtensionConfig.path to DevToolsExtensionConfig.extensionAssetsPath and update class documentation.ExtensionsApi.extensionRootPathPropertyName to ExtensionsApi.packageRootUriPropertyName, and modify the String value for the parameter from ‘rootPath’ to ‘packageRootUri’.DevToolsExtensionConfig.parse factory constructor.DevToolsOptions.optionsFileName constant in favor of new constant devtoolsOptionsFileName.ExtensionsApi.apiExtensionEnabledState API to expect a query parameter “devtoolsOptionsUri” instead of “rootPath”.rootUri parameter in the DevToolsOptions.lookupExtensionEnabledState and DevToolsOptions.setExtensionEnabledState methods with new parameter devtoolsOptionsUri. Modify logic to expect a full file URI to the options file instead of expecting the package root in which it is contained.requiresConnection, devtoolsOptionsUri, and detectedFromStaticContext to DevToolsExtensionConfig.ExtensionsApi.devtoolsOptionsUriPropertyName field.apiServeAvailableExtensions endpoint even when an exception is thrown.Completer: safeComplete and safeCompleteError.devtools_extensions.dart and devtools_extensions_io.dart libraries.analytics from ServerApi.handle in favor of DTD implementation.apiMarkConsentMessageAsShown and apiGetConsentMessagebuildDir from ExtensionsManager. in favor of DTD implementation.package:dtd to 2.2.0package:unified_analytics dependency.packageRootFromFileUriString utility to detect the package root.runWithRetry utility method.package:dtd to 2.1.0.3.4.0-282.1.beta.package:dtd to 2.0.0.package:unified_analytics to 5.8.8.ServerApi.getCompleted to ServerApi.success and make the value parameter optional.String? dtdUri parameter from ServerApi.handle and replace it with a parameter DTDConnectionInfo? dtd.DTDConnectionInfo.apiNotifyForVmServiceConnection that DevTools will call when a VM service connection is connected or disconnected from the client.packageRootFromFileUriString.ServerApi.setCompleted method that was a duplicate of ServerApi.getCompleted.analytics to ServerApi.handle, which accepts an instance of Analytics from package:unified_analytics.logs to the ServerApi.serverError method.ExtensionsApi.apiServeAvailableExtensions API response.apiGetConsentMessage added to fetch the consent message from package:unified_analytics.apiMarkConsentMessageAsShown added to mark the consent message for package:unified_analytics as shown to enable telemetry.apiGetDtdUri to the server api.devtools_options.yaml file that is created in a user's project.CompareMixin is now generic, implementing Comparable<T> instead of Comparable<dynamic>, and it's operators each therefore accept a T argument.SemanticVersion now mixes in CompareMixin<SemanticVersion>, and it's compareTo method therefore now accepts a SemanticVersion.package:vm_service dependency to >=13.0.0 <15.0.0.3.3.0-91.0.dev and minimum Flutter SDK version to 3.17.0-0.0.pre.isPublic to DevToolsExtensionConfig.DevToolsExtensionConfig.name field to ensure it is a valid Dart package name.package:vm_service dependency to ^13.0.0.ServiceCreator typedef and replace usages with VmServiceFactory typedef from package:vm_service.devtools_deeplink_io.dart and devtools_deeplink.dart.package:vm_service to ^12.0.0.DeeplinkApi.androidAppLinkSettings, DeeplinkApi.iosBuildOptions, and DeeplinkApi.iosUniversalLinkSettings endpoints to ServerApi.package:devtools_shared. These test utilities are exported as part of the existing devtools_test_utils.dart library.DevToolsExtensionConfig to be based on the values of its fields.package:extension_discovery version to ^2.0.0DeeplinkApi.androidBuildVariants endpoint to ServerApi.ServerApi.handle parameters extensionsManager and api were converted to named parametersdeeplinkManager to ServerApi.handle.package:extension_discovery version to ^1.0.1dart:io (exported as devtools_extensions_io.dart) and those that do not (exported as devtools_extensions.dart).Prior to version 3.0.0, package:devtools_shared was versioned in lockstep with package:devtools_app. Both of these packages are developed as part of the broader DevTools project. To see changes and commits for package:devtools_shared, prior to version 3.0.0 please view the git log here.