src/dispatcher.ts routes a directive to capability.on(name | "*"), device.onDirective() or device.onReportState(), with the payload checked by the descriptor of the interface. The DirectiveContext answers with respond/report/defer/error; respond() and report() start from device.state(). A handler or 1.x listener that throws or rejects is answered with INTERNAL_ERROR (an AlexaError with itself) and reported through "error", never as an unhandled rejection. Undeclared interface, unknown directive, AdjustMode on an unordered mode and a missing handler get INVALID_DIRECTIVE, a bad payload INVALID_VALUE; a device with an "Event" or "ReportState" listener keeps the answer to itself. Every answer passes the dispatcher: the first one per correlationToken is published, a second is refused. No answer within answerWithinMs (6500, 0 = off, unref'd timer) sends INTERNAL_ERROR and emits "unanswered". A messageId that arrived in the last 60 s is dropped. New: "unknownEndpoint", options answerUnknownEndpoints, publisher, timers, and bridge.receive() to run a bridge without a broker. 168 tests pass (18 new). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
25 lines
2.4 KiB
TypeScript
25 lines
2.4 KiB
TypeScript
export { default as Alex2MQTT, DEFAULT_HOST } from "./Alex2Node.js";
|
|
export type { Alex2MQTTOptions } from "./Alex2Node.js";
|
|
export { default as Device } from "./device/Device.js";
|
|
export type { EndpointDefinition, EndpointJson } from "./device/Device.js";
|
|
export { Capability } from "./device/Capability.js";
|
|
export type { CapabilityJson, CommonOptions, Declaration } from "./device/Capability.js";
|
|
export { registry, DeclarationError, SchemaError } from "./registry/index.js";
|
|
export { Alexa, BrightnessController, ModeController, RangeController, TemperatureSensor, ToggleController, } from "./registry/index.js";
|
|
export { PowerController, EndpointHealth } from "./compat/enums.js";
|
|
export { asset, text, semantics, SemanticsBuilder } from "./registry/index.js";
|
|
export { ASSETS as Assets, UNITS_OF_MEASURE as Units, ACTIONS as Actions, STATES as States, DISPLAY_CATEGORIES as DisplayCategories, } from "./registry/index.js";
|
|
export type { ActionId, AssetId, DisplayCategoryName, StateId, UnitOfMeasure, ActionsToDirective, AnyDescriptor, CapabilityExtras, Declared, DirectiveDescriptor, EndpointView, EventDescriptor, InterfaceDescriptor, Label, PropertyDescriptor, Semantics, StatesToRange, StatesToValue, ActionName, StateName, Mode, Infer, Schema, Temperature, TimeInterval, } from "./registry/index.js";
|
|
export * as messages from "./messages/index.js";
|
|
export { AlexaError, AlexaErrors, MessageError, StateBuilder, property } from "./messages/index.js";
|
|
export type { ChangeCause, ChangeReportMessage, DeferredResponseMessage, ErrorResponseMessage, Header, ProactiveEventMessage, Property, PropertyOptions, ResponseMessage, SceneEventMessage, } from "./messages/index.js";
|
|
export * as topics from "./topics.js";
|
|
export { MemoryPublisher } from "./transport.js";
|
|
export type { Publisher, PublishResult } from "./transport.js";
|
|
export type { DirectiveContext, DirectiveHandler, Fill, RawDirective, Timers } from "./dispatcher.js";
|
|
export { AlexaInterface } from "./compat/AlexaInterface.js";
|
|
export type { SupportedMode } from "./compat/AlexaInterface.js";
|
|
export { ActionMapping } from "./compat/ActionMapping.js";
|
|
export { AlexaActions, AlexaErrorType, AlexaInterfaceType, DisplayCategory, PowerState, TemperatureSensorScale, ThermostatMode, } from "./compat/enums.js";
|
|
export { AlexaStatusMessage } from "./compat/AlexaStatusMessage.js";
|
|
export { AlexaErrorResponse } from "./compat/AlexaErrorResponse.js";
|