# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

name: golden_tests_harvester
publish_to: none
environment:
  sdk: '>=3.2.0-0 <4.0.0'

# Do not add any dependencies that require more than what is provided in
# //third_party/dart/pkg, //third_party/dart/third_party/pkg, or
# //third_party/pkg. In particular, package:test is not usable here.

# If you do add packages here, make sure you can run `pub get --offline`, and
# check the .packages and .package_config to make sure all the paths are
# relative to this directory into //third_party/dart, or //third_party/pkg
dependencies:
  args: any
  meta: any
  path: any
  skia_gold_client:
    path: ../../testing/skia_gold_client

dev_dependencies:
  litetest: any

dependency_overrides:
  args:
    path: ../../third_party/dart/third_party/pkg/args
  async_helper:
    path: ../../third_party/dart/pkg/async_helper
  collection:
    path: ../../third_party/dart/third_party/pkg/collection
  crypto:
    path: ../../third_party/dart/third_party/pkg/crypto
  expect:
    path: ../../third_party/dart/pkg/expect
  file:
    path: ../../third_party/dart/third_party/pkg/file/packages/file
  litetest:
    path: ../../testing/litetest
  meta:
    path: ../../third_party/dart/pkg/meta
  engine_repo_tools:
    path: ../../tools/pkg/engine_repo_tools
  path:
    path: ../../third_party/dart/third_party/pkg/path
  platform:
    path: ../../third_party/pkg/platform
  process:
    path: ../../third_party/pkg/process
  smith:
    path: ../../third_party/dart/pkg/smith
  typed_data:
    path: ../../third_party/dart/third_party/pkg/typed_data
