# This pubspec is currently mainly used to make it easier to develop on dart2js
# by making it a standalone package.
name: compiler
# This package is not intended for consumption on pub.dev. DO NOT publish.
publish_to: none
environment:
  sdk: '>=2.6.0 <3.0.0'

# NOTE: `pub get / pub upgrade` are generally not needed when working on this
# package. The `.packages` file in the repository root will be used by default.
dependencies:
  _fe_analyzer_shared: any
  # Published packages - repo version ensured via dependency_overrides
  collection: any
  crypto: any
  dart2js_info:
    path: ../dart2js_info
  front_end:
    path: ../front_end
  kernel:
    path: ../kernel

  # Unpublished packages that can be used via path dependency
  _js_interop_checks:
    path: ../_js_interop_checks
  js_ast:
    path: ../js_ast
  js_runtime:
    path: ../js_runtime

dev_dependencies:
  # Published packages - repo version ensured via dependency_overrides
  args: any
  dart_style: any
  http: any
  js:
    path: ../js
  package_config: any
  path: any
  source_maps: any
  cli_util: any
  # Unpublished packages that can be used via path dependency
  async_helper:
    path: ../async_helper
  dart2js_tools:
    path: ../dart2js_tools
  expect:
    path: ../expect
  modular_test:
    path: ../modular_test
  sourcemap_testing:
    path: ../sourcemap_testing
  testing:
    path: ../testing

dependency_overrides:
  # Packages with source in the SDK
  _fe_analyzer_shared:
    path: ../_fe_analyzer_shared
  analyzer:
    path: ../analyzer
  front_end:
    path: ../front_end
  js:
    path: ../js
  kernel:
    path: ../kernel
  meta:
    path: ../meta
  dart2js_info:
    path: ../dart2js_info

  # Packages brought in via DEPS
  args:
    path: ../../third_party/pkg/args
  async:
    path: ../../third_party/pkg/async
  charcode:
    path: ../../third_party/pkg/charcode
  collection:
    path: ../../third_party/pkg/collection
  convert:
    path: ../../third_party/pkg/convert
  crypto:
    path: ../../third_party/pkg/crypto
  fixnum:
    path: ../../third_party/pkg/fixnum
  http_parser:
    path: ../../third_party/pkg/http_parser
  matcher:
    path: ../../third_party/pkg/matcher
  mime:
    path: ../../third_party/pkg/mime
  package_config:
    path: ../../third_party/pkg_tested/package_config
  path:
    path: ../../third_party/pkg/path
  protobuf:
    path: ../../third_party/pkg/protobuf/protobuf
  shelf:
    path: ../../third_party/pkg/shelf
  shelf_static:
    path: ../../third_party/pkg/shelf_static
  source_span:
    path: ../../third_party/pkg/source_span
  stack_trace:
    path: ../../third_party/pkg/stack_trace
  stream_channel:
    path: ../../third_party/pkg/stream_channel
  string_scanner:
    path: ../../third_party/pkg/string_scanner
  test:
    path: ../../third_party/pkg/test/pkgs/test
  test_api:
    path: ../../third_party/pkg/test/pkgs/test_api
  typed_data:
    path: ../../third_party/pkg/typed_data
  yaml:
    path: ../../third_party/pkg/yaml
