# Copyright 2025 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.
name: devtools_app
description: Web-based performance tooling for Dart and Flutter.
publish_to: none

# Note: this version should only be updated by running the 'dt update-version'
# command that updates the version here and in 'devtools.dart'.
version: 2.52.0

repository: https://github.com/flutter/devtools/tree/master/packages/devtools_app

environment:
  sdk: ">=3.8.0-265.0.dev <4.0.0"
  flutter: ">=3.32.0-1.0.pre.73"

resolution: workspace

dependencies:
  async: ^2.0.0
  collection: ^1.15.0
  dap: ^1.1.0
  dart_service_protocol_shared: ^0.0.3
  dds_service_extensions: ^2.0.2
  devtools_app_shared:
  devtools_extensions:
  devtools_shared:
  dtd: ^4.0.0
  file: ^7.0.0
  file_selector: ^1.0.0
  fixnum: ^1.1.0
  flutter:
    sdk: flutter
  flutter_markdown: ^0.7.1
  flutter_web_plugins:
    sdk: flutter
  http: ^1.1.0
  image: ^4.1.3
  intl: ^0.19.0
  json_rpc_2: ^3.0.2
  logging: ^1.1.1
  meta: ^1.9.1
  mime: ^2.0.0
  path: ^1.8.0
  perfetto_ui_compiled:
    path: ../../third_party/packages/perfetto_ui_compiled
  pointer_interceptor: ^0.10.1+1
  provider: ^6.0.2
  source_map_stack_trace: ^2.1.2
  source_maps: ^0.10.12
  sse: ^4.1.2
  stack_trace: ^1.12.0
  string_scanner: ^1.4.0
  unified_analytics: ^7.0.0
  vm_service: ^15.0.2
  vm_service_protos: ^1.0.0
  vm_snapshot_analysis: ^0.7.6
  web: ^1.0.0
  web_socket_channel: ^3.0.0

dev_dependencies:
  args: ^2.4.2
  benchmark_harness: ^2.3.1
  build_runner: ^2.5.4
  devtools_test:
    path: ../devtools_test
  fake_async: ^1.3.1
  flutter_driver:
    sdk: flutter
  flutter_test:
    sdk: flutter
  integration_test:
    sdk: flutter
  mockito: ^5.4.1
  stager: ^1.0.1
  stream_channel: ^2.1.1
  test: ^1.21.0
  web_benchmarks: ^4.0.0
  webkit_inspection_protocol: ">=0.5.0 <2.0.0"

dependency_overrides:
  # Necessary while `stager` dep disallows `source_gen` 2.0.0. Remove when
  # `stager` allows `source_gen` 2.0.0.
  source_gen: ^2.0.0

flutter:
  uses-material-design: true
  assets:
    - assets/
    - assets/img/
    - assets/img/doc/
    - assets/img/layout_explorer/
    - assets/img/layout_explorer/cross_axis_alignment/
    - assets/img/layout_explorer/main_axis_alignment/
    - assets/img/legend/
    - icons/
    - icons/actions/
    - icons/app_bar/
    - icons/custom/
    - icons/material_symbols/
    - icons/general/
    - icons/gutter/
    - icons/inspector/
    # TODO(elliette): The inspector icons are also used in the Property Editor.
    # They should be moved to a common directory.
    - icons/inspector/widget_icons/
    - icons/memory/
    - icons/perf/
    # We have to explicitly list every asset under `packages/perfetto_ui_compiled/`
    # since directory support is not available for assets under `packages/`.
    # See (https://github.com/flutter/flutter/issues/112019).
    - packages/perfetto_ui_compiled/dist/index.html
    - packages/perfetto_ui_compiled/dist/service_worker.js
    - packages/perfetto_ui_compiled/dist/devtools/devtools_dark.css
    - packages/perfetto_ui_compiled/dist/devtools/devtools_light.css
    - packages/perfetto_ui_compiled/dist/devtools/devtools_shared.css
    - packages/perfetto_ui_compiled/dist/devtools/devtools_theme_handler.js
    # The version number for all the Perfetto asset paths below is updated by running
    # `dt update-perfetto`.
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/engine_bundle.js
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/frontend_bundle.js
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/manifest.json
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/perfetto.css
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/trace_processor.wasm
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/brand.png
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/favicon.png
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/logo-128.png
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/logo-3d.png
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/scheduling_latency.png
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/MaterialSymbolsOutlined.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/Roboto-100.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/Roboto-300.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/Roboto-400.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/Roboto-500.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/RobotoCondensed-Light.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/RobotoCondensed-Regular.woff2
    - packages/perfetto_ui_compiled/dist/v34.0-16f63abe3/assets/RobotoMono-Regular.woff2

  fonts:
    - family: Roboto
      fonts:
        - asset: fonts/Roboto/Roboto-Thin.ttf
          weight: 100
        - asset: fonts/Roboto/Roboto-Light.ttf
          weight: 300
        - asset: fonts/Roboto/Roboto-Regular.ttf
          weight: 400
        - asset: fonts/Roboto/Roboto-Medium.ttf
          weight: 500
        - asset: fonts/Roboto/Roboto-Bold.ttf
          weight: 700
        - asset: fonts/Roboto/Roboto-Black.ttf
          weight: 900
    - family: RobotoMono
      fonts:
        - asset: fonts/Roboto_Mono/RobotoMono-Thin.ttf
          weight: 100
        - asset: fonts/Roboto_Mono/RobotoMono-Light.ttf
          weight: 300
        - asset: fonts/Roboto_Mono/RobotoMono-Regular.ttf
          weight: 400
        - asset: fonts/Roboto_Mono/RobotoMono-Medium.ttf
          weight: 500
        - asset: fonts/Roboto_Mono/RobotoMono-Bold.ttf
          weight: 700
    - family: Octicons
      fonts:
        - asset: fonts/Octicons.ttf
