# 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:
  # Published packages - repo version ensured via dependency_overrides
  collection: any
  crypto: any
  dart2js_info: any
  front_end:
    path: ../front_end
  kernel:
    path: ../kernel

  # Unpublished packages that can be used via path dependency
  _fe_analyzer_shared:
    path: ../_fe_analyzer_shared
  _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
  test: 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
  front_end:
    path: ../front_end
  kernel:
    path: ../kernel
  meta:
    path: ../meta

  # 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
  dart2js_info:
    path: ../../third_party/pkg/dart2js_info
  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
  quiver:
    path: ../../third_party/pkg/quiver
  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
  typed_data:
    path: ../../third_party/pkg/typed_data
  yaml:
    path: ../../third_party/pkg/yaml
