Alexa.SecurityPanelController is described from its page: version 3 (the stub of 1.5.2 said 1), armState and the four alarms, Arm and Disarm. ctx.respond() answers Arm with Arm.Response under the namespace of the interface, its payload checked (exitDelayInSeconds 0 to 255, bypassedEndpoints), and Disarm with a Response. A Disarm carries the PIN the user said when the panel is declared with supportedAuthorizationTypes; the handler checks it and answers UNAUTHORIZED, which goes under Alexa.SecurityPanelController like the five other error types. A panel declared without options lists armState, where 1.5.2 listed no property; alarms are declared. 17 examples of the two pages are saved as fixtures. 215 tests pass, 207 before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
118 lines
9.1 KiB
JavaScript
118 lines
9.1 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.SchemaError = exports.s = exports.defineInterface = exports.DeclarationError = exports.SemanticsBuilder = exports.semantics = exports.text = exports.asset = exports.THERMOSTAT_MODES = exports.ToggleController = exports.ThermostatControllerSchedule = exports.ThermostatController = exports.TemperatureSensor = exports.SecurityPanelController = exports.RangeController = exports.PowerLevelController = exports.PowerController = exports.PercentageController = exports.MotionSensor = exports.ModeController = exports.LockController = exports.HumiditySensor = exports.EndpointHealth = exports.ContactSensor = exports.ColorTemperatureController = exports.ColorController = exports.BrightnessController = exports.Alexa = exports.registry = void 0;
|
|
// The interfaces the library knows, by namespace.
|
|
const Alexa_js_1 = require("./interfaces/Alexa.js");
|
|
Object.defineProperty(exports, "Alexa", { enumerable: true, get: function () { return Alexa_js_1.Alexa; } });
|
|
const BrightnessController_js_1 = require("./interfaces/BrightnessController.js");
|
|
Object.defineProperty(exports, "BrightnessController", { enumerable: true, get: function () { return BrightnessController_js_1.BrightnessController; } });
|
|
const ColorController_js_1 = require("./interfaces/ColorController.js");
|
|
Object.defineProperty(exports, "ColorController", { enumerable: true, get: function () { return ColorController_js_1.ColorController; } });
|
|
const ColorTemperatureController_js_1 = require("./interfaces/ColorTemperatureController.js");
|
|
Object.defineProperty(exports, "ColorTemperatureController", { enumerable: true, get: function () { return ColorTemperatureController_js_1.ColorTemperatureController; } });
|
|
const ContactSensor_js_1 = require("./interfaces/ContactSensor.js");
|
|
Object.defineProperty(exports, "ContactSensor", { enumerable: true, get: function () { return ContactSensor_js_1.ContactSensor; } });
|
|
const EndpointHealth_js_1 = require("./interfaces/EndpointHealth.js");
|
|
Object.defineProperty(exports, "EndpointHealth", { enumerable: true, get: function () { return EndpointHealth_js_1.EndpointHealth; } });
|
|
const HumiditySensor_js_1 = require("./interfaces/HumiditySensor.js");
|
|
Object.defineProperty(exports, "HumiditySensor", { enumerable: true, get: function () { return HumiditySensor_js_1.HumiditySensor; } });
|
|
const LockController_js_1 = require("./interfaces/LockController.js");
|
|
Object.defineProperty(exports, "LockController", { enumerable: true, get: function () { return LockController_js_1.LockController; } });
|
|
const ModeController_js_1 = require("./interfaces/ModeController.js");
|
|
Object.defineProperty(exports, "ModeController", { enumerable: true, get: function () { return ModeController_js_1.ModeController; } });
|
|
const MotionSensor_js_1 = require("./interfaces/MotionSensor.js");
|
|
Object.defineProperty(exports, "MotionSensor", { enumerable: true, get: function () { return MotionSensor_js_1.MotionSensor; } });
|
|
const PercentageController_js_1 = require("./interfaces/PercentageController.js");
|
|
Object.defineProperty(exports, "PercentageController", { enumerable: true, get: function () { return PercentageController_js_1.PercentageController; } });
|
|
const PowerController_js_1 = require("./interfaces/PowerController.js");
|
|
Object.defineProperty(exports, "PowerController", { enumerable: true, get: function () { return PowerController_js_1.PowerController; } });
|
|
const PowerLevelController_js_1 = require("./interfaces/PowerLevelController.js");
|
|
Object.defineProperty(exports, "PowerLevelController", { enumerable: true, get: function () { return PowerLevelController_js_1.PowerLevelController; } });
|
|
const RangeController_js_1 = require("./interfaces/RangeController.js");
|
|
Object.defineProperty(exports, "RangeController", { enumerable: true, get: function () { return RangeController_js_1.RangeController; } });
|
|
const SecurityPanelController_js_1 = require("./interfaces/SecurityPanelController.js");
|
|
Object.defineProperty(exports, "SecurityPanelController", { enumerable: true, get: function () { return SecurityPanelController_js_1.SecurityPanelController; } });
|
|
const TemperatureSensor_js_1 = require("./interfaces/TemperatureSensor.js");
|
|
Object.defineProperty(exports, "TemperatureSensor", { enumerable: true, get: function () { return TemperatureSensor_js_1.TemperatureSensor; } });
|
|
const ThermostatController_js_1 = require("./interfaces/ThermostatController.js");
|
|
Object.defineProperty(exports, "ThermostatController", { enumerable: true, get: function () { return ThermostatController_js_1.ThermostatController; } });
|
|
const ThermostatControllerSchedule_js_1 = require("./interfaces/ThermostatControllerSchedule.js");
|
|
Object.defineProperty(exports, "ThermostatControllerSchedule", { enumerable: true, get: function () { return ThermostatControllerSchedule_js_1.ThermostatControllerSchedule; } });
|
|
const ToggleController_js_1 = require("./interfaces/ToggleController.js");
|
|
Object.defineProperty(exports, "ToggleController", { enumerable: true, get: function () { return ToggleController_js_1.ToggleController; } });
|
|
const stubs_js_1 = require("./interfaces/stubs.js");
|
|
const types_js_1 = require("./types.js");
|
|
const described = [
|
|
Alexa_js_1.Alexa,
|
|
BrightnessController_js_1.BrightnessController,
|
|
ColorController_js_1.ColorController,
|
|
ColorTemperatureController_js_1.ColorTemperatureController,
|
|
ContactSensor_js_1.ContactSensor,
|
|
EndpointHealth_js_1.EndpointHealth,
|
|
HumiditySensor_js_1.HumiditySensor,
|
|
LockController_js_1.LockController,
|
|
ModeController_js_1.ModeController,
|
|
MotionSensor_js_1.MotionSensor,
|
|
PercentageController_js_1.PercentageController,
|
|
PowerController_js_1.PowerController,
|
|
PowerLevelController_js_1.PowerLevelController,
|
|
RangeController_js_1.RangeController,
|
|
SecurityPanelController_js_1.SecurityPanelController,
|
|
TemperatureSensor_js_1.TemperatureSensor,
|
|
ThermostatController_js_1.ThermostatController,
|
|
ThermostatControllerSchedule_js_1.ThermostatControllerSchedule,
|
|
ToggleController_js_1.ToggleController,
|
|
];
|
|
const descriptors = new Map();
|
|
for (const descriptor of [...described, ...stubs_js_1.STUBS]) {
|
|
// A stub left in the table next to the descriptor that replaces it would win or lose by the order of this list
|
|
if (descriptors.has(descriptor.namespace))
|
|
throw new Error(`${descriptor.namespace} is described twice`);
|
|
descriptors.set(descriptor.namespace, descriptor);
|
|
}
|
|
exports.registry = {
|
|
/** Whether an interface of this name is known. */
|
|
has(namespace) {
|
|
return descriptors.has(namespace);
|
|
},
|
|
/** The descriptor of "Alexa.RangeController" or of AlexaInterfaceType.RANGE_CONTROLLER, which is that string. */
|
|
get(namespace) {
|
|
const descriptor = descriptors.get(namespace);
|
|
if (!descriptor)
|
|
throw new types_js_1.DeclarationError({}, `${JSON.stringify(namespace)} is not an interface alex2node knows`);
|
|
return descriptor;
|
|
},
|
|
/** Every descriptor, ordered by namespace. */
|
|
list() {
|
|
return [...descriptors.values()].sort((a, b) => (a.namespace < b.namespace ? -1 : 1));
|
|
},
|
|
};
|
|
var ThermostatController_js_2 = require("./interfaces/ThermostatController.js");
|
|
Object.defineProperty(exports, "THERMOSTAT_MODES", { enumerable: true, get: function () { return ThermostatController_js_2.THERMOSTAT_MODES; } });
|
|
var resources_js_1 = require("./resources.js");
|
|
Object.defineProperty(exports, "asset", { enumerable: true, get: function () { return resources_js_1.asset; } });
|
|
Object.defineProperty(exports, "text", { enumerable: true, get: function () { return resources_js_1.text; } });
|
|
var semantics_js_1 = require("./semantics.js");
|
|
Object.defineProperty(exports, "semantics", { enumerable: true, get: function () { return semantics_js_1.semantics; } });
|
|
Object.defineProperty(exports, "SemanticsBuilder", { enumerable: true, get: function () { return semantics_js_1.SemanticsBuilder; } });
|
|
var types_js_2 = require("./types.js");
|
|
Object.defineProperty(exports, "DeclarationError", { enumerable: true, get: function () { return types_js_2.DeclarationError; } });
|
|
Object.defineProperty(exports, "defineInterface", { enumerable: true, get: function () { return types_js_2.defineInterface; } });
|
|
var schema_js_1 = require("./schema.js");
|
|
Object.defineProperty(exports, "s", { enumerable: true, get: function () { return schema_js_1.s; } });
|
|
Object.defineProperty(exports, "SchemaError", { enumerable: true, get: function () { return schema_js_1.SchemaError; } });
|
|
__exportStar(require("./catalog.js"), exports);
|