// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
    children: [
        {
            name: "weavestack",
            url: "{{COMPONENT_URL}}",
            environment: "#core-env",
        },
    ],
    offer: [
        {
            directory: "config-data",
            from: "parent",
            to: "#weavestack",
            subdir: "{{PACKAGE_NAME}}",
        },
        {
            protocol: [
                "fuchsia.bluetooth.gatt2.Server",
                "fuchsia.bluetooth.le.Peripheral",
            ],
            from: "#bluetooth-core",
            to: "#weavestack",
        },
        {
            storage: "data",
            from: "self",
            to: "#weavestack",
        },
        {
            protocol: [
                "fuchsia.weave.FactoryDataManager",
                "fuchsia.weave.Signer",
            ],
            from: "#trusted-apps/trusted-app-capabilities",
            to: "#weavestack",
        },
        {
            protocol: [ "fuchsia.factory.WeaveFactoryStoreProvider" ],
            from: "#factory_store_providers",
            to: "#weavestack",
        },
        {
            protocol: [
                "fuchsia.hwinfo.Device",
                "fuchsia.hwinfo.Product",
            ],
            from: "#hwinfo",
            to: "#weavestack",
        },
        {
            protocol: [
                "fuchsia.net.interfaces.admin.Installer",
                "fuchsia.net.interfaces.State",
                "fuchsia.net.name.Lookup",

                // TODO(https://fxbug.dev/42062982) Don't use the Root API once
                // Weavestack no longer needs it.
                "fuchsia.net.root.Interfaces_OnlyForWeavestack",
                "fuchsia.net.routes.State",
                "fuchsia.net.stack.Stack",
                "fuchsia.posix.socket.Provider",
            ],
            from: "#network",
            to: "#weavestack",
        },
        {
            protocol: [ "fuchsia.logger.LogSink" ],
            from: "parent",
            to: "#weavestack",
        },
        {
            protocol: [ "fuchsia.buildinfo.Provider" ],
            from: "#build-info",
            to: "#weavestack",
        },
        {
            protocol: [ "fuchsia.net.tun.Control" ],
            from: "#network-tun",
            to: "#weavestack",
        },
    ],
}
