# Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Note: if you edit this file, you must also edit libraries.json in this
# directory:
#
#     python ./tools/yaml2json.py sdk/lib/libraries.yaml sdk/lib/libraries.json
#
# We currently have several different files that needs to be updated when
# changing libraries, sources, and patch files.  See
# https://github.com/dart-lang/sdk/issues/28836.

vm:
  libraries:
    _builtin:
      uri: "../../runtime/bin/builtin.dart"

    _internal:
      uri: "internal/internal.dart"
      patches:
        - "../../runtime/lib/internal_patch.dart"
        - "../../runtime/lib/class_id_fasta.dart"
        - "../../runtime/lib/print_patch.dart"
        - "../../runtime/lib/symbol_patch.dart"
        - "internal/patch.dart"

    async:
      uri: "async/async.dart"
      patches:
        - "../../runtime/lib/async_patch.dart"
        - "../../runtime/lib/deferred_load_patch.dart"
        - "../../runtime/lib/schedule_microtask_patch.dart"
        - "../../runtime/lib/timer_patch.dart"

    collection:
      uri: "collection/collection.dart"
      patches:
        - "../../runtime/lib/collection_patch.dart"
        - "../../runtime/lib/compact_hash.dart"

    convert:
      uri: "convert/convert.dart"
      patches: "../../runtime/lib/convert_patch.dart"

    core:
      uri: "core/core.dart"
      patches:
        - "../../runtime/lib/core_patch.dart"
        - "../../runtime/lib/array.dart"
        - "../../runtime/lib/array_patch.dart"
        - "../../runtime/lib/bigint.dart"
        - "../../runtime/lib/bigint_patch.dart"
        - "../../runtime/lib/bool_patch.dart"
        - "../../runtime/lib/date_patch.dart"
        - "../../runtime/lib/double.dart"
        - "../../runtime/lib/double_patch.dart"
        - "../../runtime/lib/errors_patch.dart"
        - "../../runtime/lib/expando_patch.dart"
        - "../../runtime/lib/function.dart"
        - "../../runtime/lib/function_patch.dart"
        - "../../runtime/lib/growable_array.dart"
        - "../../runtime/lib/identical_patch.dart"
        - "../../runtime/lib/immutable_map.dart"
        - "../../runtime/lib/integers.dart"
        - "../../runtime/lib/integers_patch.dart"
        - "../../runtime/lib/invocation_mirror_patch.dart"
        - "../../runtime/lib/lib_prefix.dart"
        - "../../runtime/lib/map_patch.dart"
        - "../../runtime/lib/null_patch.dart"
        - "../../runtime/lib/object_patch.dart"
        - "../../runtime/lib/regexp_patch.dart"
        - "../../runtime/lib/stacktrace.dart"
        - "../../runtime/lib/stopwatch_patch.dart"
        - "../../runtime/lib/string_buffer_patch.dart"
        - "../../runtime/lib/string_patch.dart"
        - "../../runtime/lib/type_patch.dart"
        - "../../runtime/lib/uri_patch.dart"
        - "../../runtime/lib/weak_property.dart"

    developer:
      uri: "developer/developer.dart"
      patches:
        - "../../runtime/lib/developer.dart"
        - "../../runtime/lib/profiler.dart"
        - "../../runtime/lib/timeline.dart"

    _http:
      uri: "_http/http.dart"

    io:
      uri: "io/io.dart"
      patches:
        - "../../runtime/bin/common_patch.dart"
        - "../../runtime/bin/directory_patch.dart"
        - "../../runtime/bin/eventhandler_patch.dart"
        - "../../runtime/bin/file_patch.dart"
        - "../../runtime/bin/file_system_entity_patch.dart"
        - "../../runtime/bin/filter_patch.dart"
        - "../../runtime/bin/io_service_patch.dart"
        - "../../runtime/bin/namespace_patch.dart"
        - "../../runtime/bin/platform_patch.dart"
        - "../../runtime/bin/process_patch.dart"
        - "../../runtime/bin/socket_patch.dart"
        - "../../runtime/bin/stdio_patch.dart"
        - "../../runtime/bin/secure_socket_patch.dart"
        - "../../runtime/bin/sync_socket_patch.dart"

    isolate:
      uri: "isolate/isolate.dart"
      patches:
        - "../../runtime/lib/isolate_patch.dart"
        - "../../runtime/lib/timer_impl.dart"

    math:
      uri: "math/math.dart"
      patches: "../../runtime/lib/math_patch.dart"

    mirrors:
      uri: "mirrors/mirrors.dart"
      patches:
        - "../../runtime/lib/mirrors_patch.dart"
        - "../../runtime/lib/mirrors_impl.dart"
        - "../../runtime/lib/mirror_reference.dart"

    nativewrappers:
      uri: "html/dartium/nativewrappers.dart"

    profiler:
      uri: "profiler/profiler.dart"

    cli:
      uri: "cli/cli.dart"
      patches:
        - "../../runtime/bin/cli_patch.dart"

    typed_data:
      uri: "typed_data/typed_data.dart"
      patches: "../../runtime/lib/typed_data_patch.dart"

    _vmservice:
      uri: "vmservice/vmservice.dart"

    vmservice_io:
      uri: "../../runtime/bin/vmservice/vmservice_io.dart"

dart2js:
  libraries:
    async:
      uri: "async/async.dart"
      patches: "_internal/js_runtime/lib/async_patch.dart"

    _chrome:
      uri: "_chrome/dart2js/chrome_dart2js.dart"

    collection:
      uri: "collection/collection.dart"
      patches: "_internal/js_runtime/lib/collection_patch.dart"

    convert:
      uri: "convert/convert.dart"
      patches: "_internal/js_runtime/lib/convert_patch.dart"

    core:
      uri: "core/core.dart"
      patches: "_internal/js_runtime/lib/core_patch.dart"

    developer:
      uri: "developer/developer.dart"
      patches: "_internal/js_runtime/lib/developer_patch.dart"

    html:
      uri: "html/dart2js/html_dart2js.dart"

    html_common:
      uri: "html/html_common/html_common_dart2js.dart"

    indexed_db:
      uri: "indexed_db/dart2js/indexed_db_dart2js.dart"

    _http:
      uri: "_http/http.dart"

    io:
      uri: "io/io.dart"
      patches: "_internal/js_runtime/lib/io_patch.dart"

    isolate:
      uri: "isolate/isolate.dart"
      patches: "_internal/js_runtime/lib/isolate_patch.dart"

    js:
      uri: "js/dart2js/js_dart2js.dart"

    js_util:
      uri: "js_util/dart2js/js_util_dart2js.dart"

    math:
      uri: "math/math.dart"
      patches: "_internal/js_runtime/lib/math_patch.dart"

    mirrors:
      uri: "mirrors/mirrors.dart"
      patches: "_internal/js_runtime/lib/mirrors_patch.dart"

    typed_data:
      uri: "typed_data/typed_data.dart"
      patches: "_internal/js_runtime/lib/typed_data_patch.dart"

    _native_typed_data:
      uri: "_internal/js_runtime/lib/native_typed_data.dart"

    svg:
      uri: "svg/dart2js/svg_dart2js.dart"

    web_audio:
      uri: "web_audio/dart2js/web_audio_dart2js.dart"

    web_gl:
      uri: "web_gl/dart2js/web_gl_dart2js.dart"

    web_sql:
      uri: "web_sql/dart2js/web_sql_dart2js.dart"

    _internal:
      uri: "internal/internal.dart"
      patches: "_internal/js_runtime/lib/internal_patch.dart"

    _js_helper:
      uri: "_internal/js_runtime/lib/js_helper.dart"

    _interceptors:
      uri: "_internal/js_runtime/lib/interceptors.dart"

    _foreign_helper:
      uri: "_internal/js_runtime/lib/foreign_helper.dart"

    _isolate_helper:
      uri: "_internal/js_runtime/lib/isolate_helper.dart"

    _js_mirrors:
      uri: "_internal/js_runtime/lib/js_mirrors.dart"

    _js_names:
      uri: "_internal/js_runtime/lib/js_names.dart"

    _js_primitives:
      uri: "_internal/js_runtime/lib/js_primitives.dart"

    _js_embedded_names:
      uri: "_internal/js_runtime/lib/shared/embedded_names.dart"

    _async_await_error_codes:
      uri: "_internal/js_runtime/lib/shared/async_await_error_codes.dart"

    _metadata:
      uri: "html/html_common/metadata.dart"
