@dxos/app-framework - v0.10.0
    Preparing search index...

    Interface PluginProvider

    Abstraction over the plugin registry catalog backend. Implementations may call Edge, a local cache, or a stub.

    The interface itself is transport-agnostic; concrete implementations live alongside it in this package (see EdgeRegistryPluginProvider) so we avoid app-framework ↔ edge-client cycles, but they only need to satisfy this shape — callers can substitute their own.

    interface PluginProvider {
        getPlugin(
            id: string,
            version?: string,
        ): Effect<
            {
                profile: {
                    author?: string;
                    createdAt?: string;
                    dependsOn?: readonly string[];
                    description?: string;
                    homePage?: string;
                    icon?: { hue?: string; key: string };
                    key: string;
                    name: string;
                    screenshots?: readonly { dark?: string; light?: string }[];
                    source?: string;
                    spec?: string;
                    tags?: readonly string[];
                };
                release?: {
                    createdAt?: string;
                    dependencies?: { readonly [key: string]: string };
                    manifestHash?: string;
                    moduleUrl: string;
                    pluginKey?: string;
                    version: string;
                };
            },
            Error,
        >;
        listPlugins(): Effect<
            readonly {
                profile: {
                    author?: string;
                    createdAt?: string;
                    dependsOn?: readonly string[];
                    description?: string;
                    homePage?: string;
                    icon?: { hue?: string; key: string };
                    key: string;
                    name: string;
                    screenshots?: readonly { dark?: string; light?: string }[];
                    source?: string;
                    spec?: string;
                    tags?: readonly string[];
                };
                release?: {
                    createdAt?: string;
                    dependencies?: { readonly [key: string]: string };
                    manifestHash?: string;
                    moduleUrl: string;
                    pluginKey?: string;
                    version: string;
                };
            }[],
            Error,
        >;
        listVersions(
            id: string,
        ): Effect<
            readonly {
                createdAt?: string;
                dependencies?: { readonly [key: string]: string };
                manifestHash?: string;
                moduleUrl: string;
                pluginKey?: string;
                version: string;
            }[],
            Error,
        >;
    }

    Implemented by

    Index

    Methods

    • Returns a single plugin entry for the given id. If version is omitted, returns the latest. Fails if the plugin or version is not found.

      Parameters

      • id: string
      • Optionalversion: string

      Returns Effect<
          {
              profile: {
                  author?: string;
                  createdAt?: string;
                  dependsOn?: readonly string[];
                  description?: string;
                  homePage?: string;
                  icon?: { hue?: string; key: string };
                  key: string;
                  name: string;
                  screenshots?: readonly { dark?: string; light?: string }[];
                  source?: string;
                  spec?: string;
                  tags?: readonly string[];
              };
              release?: {
                  createdAt?: string;
                  dependencies?: { readonly [key: string]: string };
                  manifestHash?: string;
                  moduleUrl: string;
                  pluginKey?: string;
                  version: string;
              };
          },
          Error,
      >

    • Returns all registry plugins (latest version of each).

      Returns Effect<
          readonly {
              profile: {
                  author?: string;
                  createdAt?: string;
                  dependsOn?: readonly string[];
                  description?: string;
                  homePage?: string;
                  icon?: { hue?: string; key: string };
                  key: string;
                  name: string;
                  screenshots?: readonly { dark?: string; light?: string }[];
                  source?: string;
                  spec?: string;
                  tags?: readonly string[];
              };
              release?: {
                  createdAt?: string;
                  dependencies?: { readonly [key: string]: string };
                  manifestHash?: string;
                  moduleUrl: string;
                  pluginKey?: string;
                  version: string;
              };
          }[],
          Error,
      >

    • Returns all known versions of a plugin, identified by its composer plugin id (NSID). Ordered newest-first. Must return at least one entry.

      Parameters

      • id: string

      Returns Effect<
          readonly {
              createdAt?: string;
              dependencies?: { readonly [key: string]: string };
              manifestHash?: string;
              moduleUrl: string;
              pluginKey?: string;
              version: string;
          }[],
          Error,
      >