moonbit-community/proton/command does not have a README file

    AppCommandRequestContext

    Request-scoped context for one bridged app command dispatch.

    CommandContext

    Request-scoped context supplied to typed application command handlers.

    Lifecycle-owned task and event capabilities are added by the application runner; the registrar keeps handlers independent from transport details.

    CommandWindow

    Window-scoped application capabilities available to one command request. The native window identity and implementation remain owned by the Proton runtime; extensions can only invoke these semantic operations.

    ExtensionSpecError

    pub(all) suberror ExtensionSpecError {
    InvalidContract(detail~ : String)
    ForeignCommandRoute(extension_id~ : String, operation_name~ : String)
    } derive(Eq,
    Debug
    )

    Invalid extension identity or command binding.

    ExtensionSpecError::equal

    ExtensionSpecError::message

    fn ExtensionSpecError::message(self : ExtensionSpecError) -> String

    ExtensionSpecError::not_equal

    ExtensionSpecError::output

    fn ExtensionSpecError::output(self : ExtensionSpecError, logger : &Logger) -> Unit

    ExtensionSpecError::to_string

    fn ExtensionSpecError::to_string(self : ExtensionSpecError) -> String

    PermissionScopeValidationError

    pub(all) suberror PermissionScopeValidationError {
    Invalid(detail~ : String)
    } derive(Eq)

    A stable validation failure for an extension's renderer permission scope.

    PermissionScopeValidationError::message

    PermissionScopeValidationError::not_equal

    PermissionScopeValidationError::output

    PermissionScopeValidationError::to_string

    AppCommandApiDescriptor

    pub struct AppCommandApiDescriptor {
    api_name : String
    }

    One JavaScript-facing API descriptor exposed by a user app command extension.

    AppCommandApiDescriptor::AppCommandApiDescriptor

    fn AppCommandApiDescriptor::AppCommandApiDescriptor(api_name : String) -> AppCommandApiDescriptor

    AppCommandApiDescriptor::api_name

    fn AppCommandApiDescriptor::api_name(self : AppCommandApiDescriptor) -> String

    AppCommandExtensionDescriptor

    pub struct AppCommandExtensionDescriptor {
    id : String
    js_namespace : String
    apis : Array[AppCommandApiDescriptor]
    scripts : Array[String]
    }

    JavaScript bridge metadata exposed by a user app command extension.

    AppCommandExtensionDescriptor::AppCommandExtensionDescriptor

    fn AppCommandExtensionDescriptor::AppCommandExtensionDescriptor(id : String, js_namespace : String, apis : Array[AppCommandApiDescriptor], scripts? : Array[String]) -> AppCommandExtensionDescriptor

    AppCommandExtensionDescriptor::apis

    Returns the registered frontend command names.

    AppCommandExtensionDescriptor::id

    Returns the registered extension identity.

    AppCommandExtensionDescriptor::js_namespace

    Returns the registered JavaScript namespace.

    AppCommandExtensionDescriptor::op_names

    Returns the operation names derived from the registered commands.

    AppCommandExtensionDescriptor::scripts

    Returns the extension initialization scripts.

    AppCommandExtensionSpec

    pub struct AppCommandExtensionSpec {
    id : String
    js_namespace : String
    scripts : Array[String]
    dependencies : Array[String]
    register : (CommandRegistrar) -> Unit raise
    resolve_permission : (Json, String) -> Json raise PermissionScopeValidationError
    on_start : (
    TaskGroup
    [Unit]) -> Unit raise
    on_destroy : () -> Unit raise
    }

    Extension definition registered once during application startup.

    AppCommandExtensionSpec::dependencies

    fn AppCommandExtensionSpec::dependencies(self : AppCommandExtensionSpec) -> Array[String]

    AppCommandExtensionSpec::destroy

    fn AppCommandExtensionSpec::destroy(self : AppCommandExtensionSpec) -> Unit raise

    AppCommandExtensionSpec::id

    AppCommandExtensionSpec::js_namespace

    fn AppCommandExtensionSpec::js_namespace(self : AppCommandExtensionSpec) -> String

    AppCommandExtensionSpec::register

    Registers handlers and returns their frontend metadata. The callback's registrar expires when registration returns or raises.

    AppCommandExtensionSpec::resolve_permission

    fn AppCommandExtensionSpec::resolve_permission(self : AppCommandExtensionSpec, scope : Json, base_path : String) -> Json raise PermissionScopeValidationError

    AppCommandExtensionSpec::scripts

    AppCommandExtensionSpec::start

    Starts extension-owned work in the application's task lifetime. Called after registration and before application startup hooks.

    AppCommandExtensionSpec::typed

    fn AppCommandExtensionSpec::typed(contract :
    ExtensionContract
    , register : (CommandRegistrar) -> Unit raise, scripts? : Array[String], dependencies? : Array[String], resolve_permission? : (Json, String) -> Json raise PermissionScopeValidationError, on_start? : (
    TaskGroup
    [Unit]) -> Unit raise, on_destroy? : () -> Unit raise) -> AppCommandExtensionSpec raise ExtensionSpecError

    Creates an extension spec whose JavaScript APIs and native operation names are derived from the descriptors actually bound during registration.

    CommandRegistrar

    pub struct CommandRegistrar {
    host :
    AppCommandHost

    owner : (String, String)?
    routes : Array[
    ContractRoute
    ]
    registration_closed : Bool
    }

    Startup-only capability for binding typed command descriptors to handlers.

    CommandRegistrar::CommandRegistrar

    Creates a registrar over one application command host.

    CommandRegistrar::bind

    Binds one typed descriptor to an asynchronous command handler.

    Request decoding and response encoding are selected from the descriptor's type parameters. The descriptor is the only source of command identity.

    app_command_extension_op_name

    fn app_command_extension_op_name(js_namespace : String, api_name : String) -> String

    app_command_js_property_is_reserved

    fn app_command_js_property_is_reserved(name : String) -> Bool

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io