# 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: licenses
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.pkg, //third_party/dart/pkg, or
# //third_party/dart/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

dependencies:
  archive: any
  args: any
  collection: any
  crypto: any
  meta: any
  path: any

dev_dependencies:
  litetest: any

dependency_overrides:
  archive:
    path: ../../third_party/pkg/archive
  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
  litetest:
    path: ../../testing/litetest
  meta:
    path: ../../../third_party/dart/pkg/meta
  path:
    path: ../../../third_party/dart/third_party/pkg/path
  smith:
    path: ../../../third_party/dart/pkg/smith
  typed_data:
    path: ../../../third_party/dart/third_party/pkg/typed_data
