| // Copyright 2024 The Flutter Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. | |
| /// Describes an instance of the Dart Tooling Daemon. | |
| @Deprecated('Use DtdInfo instead') | |
| typedef DTDConnectionInfo = ({String? uri, String? secret}); | |
| /// Information about a Dart Tooling Daemon instance. | |
| class DtdInfo { | |
| DtdInfo(this.localUri, {Uri? exposedUri, this.secret}) | |
| : exposedUri = exposedUri ?? localUri; | |
| /// The URI for connecting to DTD from the backend. | |
| /// | |
| /// This is usually a `http://localhost/` address that is accessible to tools | |
| /// running in the same location as the DTD process. It may NOT be accessible | |
| /// to frontends that run in another location - for example the DevTools | |
| /// frontend running in a browser (or embedded in an IDE) in a remote/web IDE | |
| /// session. | |
| final Uri localUri; | |
| /// The exposed URI for connecting to DTD from the frontend. | |
| /// | |
| /// In a remote session, this can be an address provided by the hosting | |
| /// infrastructure/proxy that tunnels through to the backend running the DTD | |
| /// process which might look like `https://foo-123.cloud-ide.foo/`. | |
| /// | |
| /// For a non-remote session, this will be the same value as [localUri]. | |
| final Uri exposedUri; | |
| /// The secret token that allows calling privileged DTD APIs. | |
| /// | |
| /// This may not always be available if DTD was spawned by another process | |
| /// and it should never be shared with external code. | |
| final String? secret; | |
| } |