@camstack/types 1.2.437 → 1.2.438
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/addon.js +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/index.d.ts +3 -1
- package/dist/capabilities/ir-transmitter.cap.d.ts +84 -0
- package/dist/capabilities/pet-feeder.cap.d.ts +12 -0
- package/dist/client.js +5 -0
- package/dist/client.mjs +5 -0
- package/dist/{composition-WNkEpwkF.js → composition-DCmtFE-X.js} +1 -1
- package/dist/{composition-DwA0uVW5.mjs → composition-DpFv_J6D.mjs} +1 -1
- package/dist/device/cap-vocabulary/entries/actuators.d.ts +1 -1
- package/dist/device/device-type.d.ts +4 -1
- package/dist/{err-msg-DIorGYeC.mjs → err-msg-BCdlR2Li.mjs} +3 -0
- package/dist/{err-msg-U7lLUMNz.js → err-msg-COHgq7Mb.js} +3 -0
- package/dist/generated/addon-api.d.ts +22 -0
- package/dist/generated/addon-cap-facts.d.ts +1 -1
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/device-proxy.d.ts +2 -0
- package/dist/generated/device-scoped-caps.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +308 -5
- package/dist/index.mjs +296 -6
- package/dist/ir/index.d.ts +5 -0
- package/dist/ir/ir-error.d.ts +6 -0
- package/dist/ir/ir-payload.d.ts +23 -0
- package/dist/ir/ir-timings.d.ts +17 -0
- package/dist/ir/pronto.d.ts +10 -0
- package/dist/ir/smartir.d.ts +31 -0
- package/dist/node.js +2 -2
- package/dist/node.mjs +2 -2
- package/dist/{sleep-Crlmu_tO.mjs → sleep-BAvUCi_2.mjs} +13 -1
- package/dist/{sleep-DHitF_e4.js → sleep-g6ZjBHBL.js} +13 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-g6ZjBHBL.js");
|
|
3
3
|
const require_event_category = require("./event-category-E17zaHjN.js");
|
|
4
|
-
const require_composition = require("./composition-
|
|
4
|
+
const require_composition = require("./composition-DCmtFE-X.js");
|
|
5
5
|
const require_node_color = require("./node-color.js");
|
|
6
|
-
const require_err_msg = require("./err-msg-
|
|
6
|
+
const require_err_msg = require("./err-msg-COHgq7Mb.js");
|
|
7
7
|
const require_enums = require("./enums.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
//#region src/media/media-owner-key.ts
|
|
@@ -65208,6 +65208,83 @@ var buttonCapability = {
|
|
|
65208
65208
|
}) }
|
|
65209
65209
|
};
|
|
65210
65210
|
//#endregion
|
|
65211
|
+
//#region src/ir/ir-timings.ts
|
|
65212
|
+
/** Maximum number of mark/space entries one pulse train may carry. */
|
|
65213
|
+
var IR_TIMINGS_MAX = 1024;
|
|
65214
|
+
/**
|
|
65215
|
+
* A pulse train in signed microseconds: mark (+) first, then space (-), strictly
|
|
65216
|
+
* alternating, no zeros, 2..1024 entries.
|
|
65217
|
+
*/
|
|
65218
|
+
var IrTimingsSchema = zod.z.array(zod.z.number().int()).min(2).max(IR_TIMINGS_MAX).superRefine((timings, ctx) => {
|
|
65219
|
+
timings.forEach((value, index) => {
|
|
65220
|
+
const expectMark = index % 2 === 0;
|
|
65221
|
+
if (value === 0 || value > 0 !== expectMark) ctx.addIssue({
|
|
65222
|
+
code: "custom",
|
|
65223
|
+
message: `timing ${index} must be a non-zero ${expectMark ? "mark (positive)" : "space (negative)"}`,
|
|
65224
|
+
path: [index]
|
|
65225
|
+
});
|
|
65226
|
+
});
|
|
65227
|
+
});
|
|
65228
|
+
/** Per-command transmit options. Every key is optional; a transmitter applies what it can. */
|
|
65229
|
+
var TransmitSettingsSchema = zod.z.object({
|
|
65230
|
+
carrierHz: zod.z.number().int().positive().optional(),
|
|
65231
|
+
dutyCyclePercent: zod.z.number().int().min(1).max(100).optional(),
|
|
65232
|
+
repeat: zod.z.number().int().min(0).max(20).optional(),
|
|
65233
|
+
repeatDelayMs: zod.z.number().int().min(0).optional()
|
|
65234
|
+
});
|
|
65235
|
+
//#endregion
|
|
65236
|
+
//#region src/capabilities/ir-transmitter.cap.ts
|
|
65237
|
+
/** The setting keys a transmitter may declare as settable (`getInfo.settable`). */
|
|
65238
|
+
var TransmitSettingKeySchema = zod.z.enum([
|
|
65239
|
+
"carrierHz",
|
|
65240
|
+
"dutyCyclePercent",
|
|
65241
|
+
"repeat",
|
|
65242
|
+
"repeatDelayMs"
|
|
65243
|
+
]);
|
|
65244
|
+
var IrMediumSchema = zod.z.enum(["ir", "rf"]);
|
|
65245
|
+
var IrSendResultSchema = zod.z.object({
|
|
65246
|
+
ok: zod.z.literal(true),
|
|
65247
|
+
/** Settings the transmitter could not apply; the train was still sent. */
|
|
65248
|
+
ignoredSettings: zod.z.array(zod.z.string())
|
|
65249
|
+
});
|
|
65250
|
+
var IrTransmitterInfoSchema = zod.z.object({
|
|
65251
|
+
media: zod.z.array(IrMediumSchema),
|
|
65252
|
+
settable: zod.z.array(TransmitSettingKeySchema),
|
|
65253
|
+
maxTimings: zod.z.number().int().positive()
|
|
65254
|
+
});
|
|
65255
|
+
/**
|
|
65256
|
+
* ir-transmitter — emit a pulse train (infrared or RF) with settings. One cap
|
|
65257
|
+
* for both media: everything medium-specific is a per-call setting, validated
|
|
65258
|
+
* against what the transmitter declares in `getInfo`.
|
|
65259
|
+
*
|
|
65260
|
+
* `send` refuses with a typed user error: `ir-transmitter.offline` (the
|
|
65261
|
+
* transmitter cannot be reached) and `ir-transmitter.too-long` (more pulses
|
|
65262
|
+
* than the transmitter's `maxTimings`). A setting the transmitter cannot apply
|
|
65263
|
+
* is NOT a refusal: the train is sent and the key comes back in
|
|
65264
|
+
* `ignoredSettings`.
|
|
65265
|
+
*/
|
|
65266
|
+
var irTransmitterCapability = {
|
|
65267
|
+
name: "ir-transmitter",
|
|
65268
|
+
scope: "device",
|
|
65269
|
+
deviceNative: true,
|
|
65270
|
+
mode: "singleton",
|
|
65271
|
+
deviceTypes: [require_err_msg.DeviceType.Generic],
|
|
65272
|
+
methods: {
|
|
65273
|
+
send: require_sleep.method(zod.z.object({
|
|
65274
|
+
deviceId: zod.z.number().int().nonnegative(),
|
|
65275
|
+
timings: IrTimingsSchema,
|
|
65276
|
+
settings: TransmitSettingsSchema.optional()
|
|
65277
|
+
}), IrSendResultSchema, {
|
|
65278
|
+
kind: "mutation",
|
|
65279
|
+
auth: "protected"
|
|
65280
|
+
}),
|
|
65281
|
+
getInfo: require_sleep.method(zod.z.object({ deviceId: zod.z.number().int().nonnegative() }), IrTransmitterInfoSchema, {
|
|
65282
|
+
kind: "query",
|
|
65283
|
+
auth: "protected"
|
|
65284
|
+
})
|
|
65285
|
+
}
|
|
65286
|
+
};
|
|
65287
|
+
//#endregion
|
|
65211
65288
|
//#region src/capabilities/calendar-source.cap.ts
|
|
65212
65289
|
/**
|
|
65213
65290
|
* `calendar-source` — collection cap exposing per-provider calendars and
|
|
@@ -72357,9 +72434,14 @@ var PetFeederStatusSchema = zod.z.object({
|
|
|
72357
72434
|
* (`device_class: problem`, on = low). True when the tank reports empty,
|
|
72358
72435
|
* or, on a dual-hopper model, when EITHER hopper is empty. */
|
|
72359
72436
|
lowFood: zod.z.boolean(),
|
|
72360
|
-
/** Battery charge 0..100 (%).
|
|
72361
|
-
*
|
|
72437
|
+
/** Battery charge 0..100 (%). On a feeder running on `mains` this is the
|
|
72438
|
+
* BACKUP battery's charge, not the power source. Null when the device has
|
|
72439
|
+
* no battery reading. */
|
|
72362
72440
|
batteryPower: zod.z.number().min(0).max(100).nullable().meta(require_sleep.readingMeta("percentage")),
|
|
72441
|
+
/** What the feeder is powered from right now: `mains` (plugged in, the
|
|
72442
|
+
* battery is only a backup) or `battery`. Null when the device does not
|
|
72443
|
+
* report it. */
|
|
72444
|
+
powerSource: zod.z.enum(["mains", "battery"]).nullable(),
|
|
72363
72445
|
/**
|
|
72364
72446
|
* Desiccant life remaining, stored in seconds (duration base, D944).
|
|
72365
72447
|
* Providers convert from the days the feeder reports. Null when the
|
|
@@ -90859,6 +90941,20 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
90859
90941
|
access: "create",
|
|
90860
90942
|
role: "viewer"
|
|
90861
90943
|
},
|
|
90944
|
+
"irTransmitter.getInfo": {
|
|
90945
|
+
capName: "ir-transmitter",
|
|
90946
|
+
capScope: "device",
|
|
90947
|
+
addonId: null,
|
|
90948
|
+
access: "view",
|
|
90949
|
+
role: "viewer"
|
|
90950
|
+
},
|
|
90951
|
+
"irTransmitter.send": {
|
|
90952
|
+
capName: "ir-transmitter",
|
|
90953
|
+
capScope: "device",
|
|
90954
|
+
addonId: null,
|
|
90955
|
+
access: "create",
|
|
90956
|
+
role: "viewer"
|
|
90957
|
+
},
|
|
90862
90958
|
"keychain.delete": {
|
|
90863
90959
|
capName: "keychain",
|
|
90864
90960
|
capScope: "system",
|
|
@@ -97227,6 +97323,7 @@ var KNOWN_CAP_NAMES = [
|
|
|
97227
97323
|
"image-settings",
|
|
97228
97324
|
"integrations",
|
|
97229
97325
|
"intercom",
|
|
97326
|
+
"ir-transmitter",
|
|
97230
97327
|
"keychain",
|
|
97231
97328
|
"keychain-admin",
|
|
97232
97329
|
"lawn-mower-control",
|
|
@@ -97378,6 +97475,7 @@ var DEVICE_CAP_NAMES = [
|
|
|
97378
97475
|
"image",
|
|
97379
97476
|
"image-settings",
|
|
97380
97477
|
"intercom",
|
|
97478
|
+
"ir-transmitter",
|
|
97381
97479
|
"lawn-mower-control",
|
|
97382
97480
|
"lock-control",
|
|
97383
97481
|
"media-player",
|
|
@@ -98869,6 +98967,11 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
98869
98967
|
icon: "circle-dot"
|
|
98870
98968
|
}]
|
|
98871
98969
|
},
|
|
98970
|
+
"ir-transmitter": {
|
|
98971
|
+
scope: "device",
|
|
98972
|
+
noun: t("IR / RF transmitter", "Trasmettitore IR / RF"),
|
|
98973
|
+
notOperatorFacing: { send: "a raw pulse train is not something an operator composes in an automation; the remote that owns the command table sends it" }
|
|
98974
|
+
},
|
|
98872
98975
|
control: {
|
|
98873
98976
|
scope: "device",
|
|
98874
98977
|
noun: t("Control", "Controllo"),
|
|
@@ -103315,6 +103418,7 @@ var CAPABILITY_NAMES = {
|
|
|
103315
103418
|
imageSettings: "image-settings",
|
|
103316
103419
|
integrations: "integrations",
|
|
103317
103420
|
intercom: "intercom",
|
|
103421
|
+
irTransmitter: "ir-transmitter",
|
|
103318
103422
|
keychain: "keychain",
|
|
103319
103423
|
keychainAdmin: "keychain-admin",
|
|
103320
103424
|
lawnMowerControl: "lawn-mower-control",
|
|
@@ -103763,6 +103867,10 @@ var CAPABILITY_ROUTER_KEYS = [
|
|
|
103763
103867
|
key: "intercom",
|
|
103764
103868
|
name: "intercom"
|
|
103765
103869
|
},
|
|
103870
|
+
{
|
|
103871
|
+
key: "irTransmitter",
|
|
103872
|
+
name: "ir-transmitter"
|
|
103873
|
+
},
|
|
103766
103874
|
{
|
|
103767
103875
|
key: "keychain",
|
|
103768
103876
|
name: "keychain"
|
|
@@ -104264,6 +104372,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
104264
104372
|
imageSettingsCapability,
|
|
104265
104373
|
integrationsCapability,
|
|
104266
104374
|
intercomCapability,
|
|
104375
|
+
irTransmitterCapability,
|
|
104267
104376
|
keychainCapability,
|
|
104268
104377
|
keychainAdminCapability,
|
|
104269
104378
|
lawnMowerControlCapability,
|
|
@@ -105459,6 +105568,16 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
105459
105568
|
form: "single",
|
|
105460
105569
|
optional: false
|
|
105461
105570
|
}],
|
|
105571
|
+
"irTransmitter.getInfo": [{
|
|
105572
|
+
name: "deviceId",
|
|
105573
|
+
form: "single",
|
|
105574
|
+
optional: false
|
|
105575
|
+
}],
|
|
105576
|
+
"irTransmitter.send": [{
|
|
105577
|
+
name: "deviceId",
|
|
105578
|
+
form: "single",
|
|
105579
|
+
optional: false
|
|
105580
|
+
}],
|
|
105462
105581
|
"keychain.deleteDeviceScope": [{
|
|
105463
105582
|
name: "deviceId",
|
|
105464
105583
|
form: "single",
|
|
@@ -119719,6 +119838,177 @@ function armRemovalReconcile(opts) {
|
|
|
119719
119838
|
return () => clearInterval(timer);
|
|
119720
119839
|
}
|
|
119721
119840
|
//#endregion
|
|
119841
|
+
//#region src/ir/ir-error.ts
|
|
119842
|
+
var IrCodecError = class extends Error {
|
|
119843
|
+
code;
|
|
119844
|
+
constructor(code, message) {
|
|
119845
|
+
super(message);
|
|
119846
|
+
this.name = "IrCodecError";
|
|
119847
|
+
this.code = code;
|
|
119848
|
+
}
|
|
119849
|
+
};
|
|
119850
|
+
//#endregion
|
|
119851
|
+
//#region src/ir/pronto.ts
|
|
119852
|
+
/** One Pronto frequency-word unit, in microseconds, per unit of the word. */
|
|
119853
|
+
var PRONTO_CLOCK_US = .241246;
|
|
119854
|
+
var LEARNED_FORM = 0;
|
|
119855
|
+
/**
|
|
119856
|
+
* Decode a learned (0000 form) Pronto hex string. The intro burst is followed by
|
|
119857
|
+
* the repeat burst once; a different form is refused with `pronto-unsupported-form`.
|
|
119858
|
+
*/
|
|
119859
|
+
function decodePronto(code) {
|
|
119860
|
+
const words = code.trim().split(/\s+/).filter((w) => w.length > 0);
|
|
119861
|
+
if (words.length < 4) throw new IrCodecError("pronto-malformed", `Pronto code needs at least 4 words, got ${words.length}`);
|
|
119862
|
+
const values = words.map((w) => /^[0-9a-fA-F]{1,4}$/.test(w) ? parseInt(w, 16) : NaN);
|
|
119863
|
+
if (values.some((v) => Number.isNaN(v))) throw new IrCodecError("pronto-malformed", "Pronto code must be 4-digit hexadecimal words");
|
|
119864
|
+
const [form, freqWord, introCount, repeatCount] = values;
|
|
119865
|
+
if (form === void 0 || freqWord === void 0 || introCount === void 0 || repeatCount === void 0) throw new IrCodecError("pronto-malformed", "Pronto header incomplete");
|
|
119866
|
+
if (form !== LEARNED_FORM) throw new IrCodecError("pronto-unsupported-form", `Pronto form ${words[0] ?? ""} is not supported, only the learned 0000 form`);
|
|
119867
|
+
if (freqWord === 0) throw new IrCodecError("pronto-malformed", "Pronto frequency word is zero");
|
|
119868
|
+
const pairs = introCount + repeatCount;
|
|
119869
|
+
if (pairs === 0 || values.length !== 4 + pairs * 2) throw new IrCodecError("pronto-malformed", `Pronto declares ${pairs} burst pairs but carries ${(values.length - 4) / 2} word pairs`);
|
|
119870
|
+
const unitUs = freqWord * PRONTO_CLOCK_US;
|
|
119871
|
+
const timings = values.slice(4).map((count, index) => {
|
|
119872
|
+
const us = Math.max(1, Math.round(count * unitUs));
|
|
119873
|
+
return index % 2 === 0 ? us : -us;
|
|
119874
|
+
});
|
|
119875
|
+
const checked = IrTimingsSchema.safeParse(timings);
|
|
119876
|
+
if (!checked.success) throw new IrCodecError("invalid-timings", `Pronto decoded to invalid timings: ${checked.error.message}`);
|
|
119877
|
+
return {
|
|
119878
|
+
timings: checked.data,
|
|
119879
|
+
carrierHz: Math.round(1e6 / unitUs)
|
|
119880
|
+
};
|
|
119881
|
+
}
|
|
119882
|
+
//#endregion
|
|
119883
|
+
//#region src/ir/ir-payload.ts
|
|
119884
|
+
/** What a remote command stores: a raw pulse train, or a learned Pronto code. */
|
|
119885
|
+
var IrPayloadSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
|
|
119886
|
+
kind: zod.z.literal("raw"),
|
|
119887
|
+
timings: zod.z.array(zod.z.number().int()),
|
|
119888
|
+
settings: TransmitSettingsSchema.optional()
|
|
119889
|
+
}), zod.z.object({
|
|
119890
|
+
kind: zod.z.literal("pronto"),
|
|
119891
|
+
code: zod.z.string()
|
|
119892
|
+
})]);
|
|
119893
|
+
/** Resolve a payload to what `ir-transmitter.send` takes. Throws `IrCodecError`. */
|
|
119894
|
+
function toTimings(payload) {
|
|
119895
|
+
if (payload.kind === "pronto") {
|
|
119896
|
+
const decoded = decodePronto(payload.code);
|
|
119897
|
+
return {
|
|
119898
|
+
timings: decoded.timings,
|
|
119899
|
+
settings: { carrierHz: decoded.carrierHz }
|
|
119900
|
+
};
|
|
119901
|
+
}
|
|
119902
|
+
const checked = IrTimingsSchema.safeParse(payload.timings);
|
|
119903
|
+
if (!checked.success) throw new IrCodecError("invalid-timings", checked.error.message);
|
|
119904
|
+
return {
|
|
119905
|
+
timings: checked.data,
|
|
119906
|
+
settings: payload.settings ?? {}
|
|
119907
|
+
};
|
|
119908
|
+
}
|
|
119909
|
+
//#endregion
|
|
119910
|
+
//#region src/ir/smartir.ts
|
|
119911
|
+
/** SmartIR's own default pause between two commands, in seconds. */
|
|
119912
|
+
var DEFAULT_DELAY_S = .5;
|
|
119913
|
+
var SOURCES_KEY = "sources";
|
|
119914
|
+
var SmartIrDocumentSchema = zod.z.object({
|
|
119915
|
+
manufacturer: zod.z.string().optional(),
|
|
119916
|
+
supportedModels: zod.z.array(zod.z.string()).optional(),
|
|
119917
|
+
supportedController: zod.z.string().optional(),
|
|
119918
|
+
commandsEncoding: zod.z.string(),
|
|
119919
|
+
delay: zod.z.number().nonnegative().optional(),
|
|
119920
|
+
commands: zod.z.record(zod.z.string(), zod.z.unknown())
|
|
119921
|
+
});
|
|
119922
|
+
function describe(error) {
|
|
119923
|
+
return error instanceof Error ? error.message : "unknown error";
|
|
119924
|
+
}
|
|
119925
|
+
function rawPayload(value) {
|
|
119926
|
+
let parsed;
|
|
119927
|
+
try {
|
|
119928
|
+
parsed = JSON.parse(value);
|
|
119929
|
+
} catch (error) {
|
|
119930
|
+
throw new IrCodecError("invalid-raw", `Raw command is not a JSON array: ${describe(error)}`);
|
|
119931
|
+
}
|
|
119932
|
+
const checked = IrTimingsSchema.safeParse(parsed);
|
|
119933
|
+
if (!checked.success) throw new IrCodecError("invalid-timings", checked.error.message);
|
|
119934
|
+
return {
|
|
119935
|
+
kind: "raw",
|
|
119936
|
+
timings: checked.data
|
|
119937
|
+
};
|
|
119938
|
+
}
|
|
119939
|
+
function prontoPayload(value) {
|
|
119940
|
+
decodePronto(value);
|
|
119941
|
+
return {
|
|
119942
|
+
kind: "pronto",
|
|
119943
|
+
code: value
|
|
119944
|
+
};
|
|
119945
|
+
}
|
|
119946
|
+
/** Parse a SmartIR media_player JSON. Raw and Pronto are imported; other encodings are reported in `skipped`. */
|
|
119947
|
+
function parseSmartIr(document) {
|
|
119948
|
+
const parsed = SmartIrDocumentSchema.safeParse(document);
|
|
119949
|
+
if (!parsed.success) throw new IrCodecError("smartir-malformed", `Not a SmartIR document: ${parsed.error.message}`);
|
|
119950
|
+
const doc = parsed.data;
|
|
119951
|
+
const encoding = doc.commandsEncoding;
|
|
119952
|
+
const entries = [];
|
|
119953
|
+
for (const [name, value] of Object.entries(doc.commands)) if (name === SOURCES_KEY && typeof value === "object" && value !== null && !Array.isArray(value)) for (const [sourceName, sourceValue] of Object.entries(value)) entries.push({
|
|
119954
|
+
name: sourceName,
|
|
119955
|
+
group: "source",
|
|
119956
|
+
value: sourceValue
|
|
119957
|
+
});
|
|
119958
|
+
else entries.push({
|
|
119959
|
+
name,
|
|
119960
|
+
group: "command",
|
|
119961
|
+
value
|
|
119962
|
+
});
|
|
119963
|
+
const commands = [];
|
|
119964
|
+
const skipped = [];
|
|
119965
|
+
const supported = encoding === "Raw" || encoding === "Pronto";
|
|
119966
|
+
for (const { name, group, value } of entries) {
|
|
119967
|
+
if (!supported) {
|
|
119968
|
+
skipped.push({
|
|
119969
|
+
name,
|
|
119970
|
+
group,
|
|
119971
|
+
reason: `${encoding} encoding is not supported`
|
|
119972
|
+
});
|
|
119973
|
+
continue;
|
|
119974
|
+
}
|
|
119975
|
+
if (typeof value !== "string") {
|
|
119976
|
+
skipped.push({
|
|
119977
|
+
name,
|
|
119978
|
+
group,
|
|
119979
|
+
reason: "command is not a string"
|
|
119980
|
+
});
|
|
119981
|
+
continue;
|
|
119982
|
+
}
|
|
119983
|
+
try {
|
|
119984
|
+
commands.push({
|
|
119985
|
+
name,
|
|
119986
|
+
group,
|
|
119987
|
+
payload: encoding === "Raw" ? rawPayload(value) : prontoPayload(value)
|
|
119988
|
+
});
|
|
119989
|
+
} catch (error) {
|
|
119990
|
+
skipped.push({
|
|
119991
|
+
name,
|
|
119992
|
+
group,
|
|
119993
|
+
reason: describe(error)
|
|
119994
|
+
});
|
|
119995
|
+
}
|
|
119996
|
+
}
|
|
119997
|
+
return {
|
|
119998
|
+
table: {
|
|
119999
|
+
commands,
|
|
120000
|
+
interCommandDelayMs: Math.round((doc.delay ?? DEFAULT_DELAY_S) * 1e3),
|
|
120001
|
+
origin: {
|
|
120002
|
+
format: "smartir",
|
|
120003
|
+
manufacturer: doc.manufacturer,
|
|
120004
|
+
models: doc.supportedModels,
|
|
120005
|
+
controller: doc.supportedController
|
|
120006
|
+
}
|
|
120007
|
+
},
|
|
120008
|
+
skipped
|
|
120009
|
+
};
|
|
120010
|
+
}
|
|
120011
|
+
//#endregion
|
|
119722
120012
|
exports.ACCESSORY_LABEL = ACCESSORY_LABEL;
|
|
119723
120013
|
exports.ACCESS_ROLES = ACCESS_ROLES;
|
|
119724
120014
|
exports.ACTIVE_CRITERIA = require_composition.ACTIVE_CRITERIA;
|
|
@@ -120551,6 +120841,7 @@ exports.INITIAL_SPAN = INITIAL_SPAN;
|
|
|
120551
120841
|
exports.INTEGRAL_OUTPUTS = require_composition.INTEGRAL_OUTPUTS;
|
|
120552
120842
|
exports.INTERNAL_ACTION_PREFIX = INTERNAL_ACTION_PREFIX;
|
|
120553
120843
|
exports.INVERTIBLE_CAPS = INVERTIBLE_CAPS;
|
|
120844
|
+
exports.IR_TIMINGS_MAX = IR_TIMINGS_MAX;
|
|
120554
120845
|
exports.IconKeySchema = IconKeySchema;
|
|
120555
120846
|
exports.ImageContractSchema = ImageContractSchema;
|
|
120556
120847
|
exports.ImageContractStateSchema = ImageContractStateSchema;
|
|
@@ -120571,6 +120862,12 @@ exports.IntegrationWithStateSchema = IntegrationWithStateSchema;
|
|
|
120571
120862
|
exports.IntercomAbilitySchema = IntercomAbilitySchema;
|
|
120572
120863
|
exports.IntercomStatusSchema = IntercomStatusSchema;
|
|
120573
120864
|
exports.InvalidRecordError = require_sleep.InvalidRecordError;
|
|
120865
|
+
exports.IrCodecError = IrCodecError;
|
|
120866
|
+
exports.IrMediumSchema = IrMediumSchema;
|
|
120867
|
+
exports.IrPayloadSchema = IrPayloadSchema;
|
|
120868
|
+
exports.IrSendResultSchema = IrSendResultSchema;
|
|
120869
|
+
exports.IrTimingsSchema = IrTimingsSchema;
|
|
120870
|
+
exports.IrTransmitterInfoSchema = IrTransmitterInfoSchema;
|
|
120574
120871
|
exports.KEYCHAIN_MAX_REFS_PER_CALL = KEYCHAIN_MAX_REFS_PER_CALL;
|
|
120575
120872
|
exports.KEYCHAIN_RESET_CONFIRMATION = KEYCHAIN_RESET_CONFIRMATION;
|
|
120576
120873
|
exports.KEYCHAIN_RESET_TRIGGER_ACTOR = KEYCHAIN_RESET_TRIGGER_ACTOR;
|
|
@@ -121722,6 +122019,8 @@ exports.TrainingResultSchema = TrainingResultSchema;
|
|
|
121722
122019
|
exports.TrainingSplitPlanSchema = TrainingSplitPlanSchema;
|
|
121723
122020
|
exports.TrainingStageSchema = TrainingStageSchema;
|
|
121724
122021
|
exports.TransactRefusedError = require_sleep.TransactRefusedError;
|
|
122022
|
+
exports.TransmitSettingKeySchema = TransmitSettingKeySchema;
|
|
122023
|
+
exports.TransmitSettingsSchema = TransmitSettingsSchema;
|
|
121725
122024
|
exports.TransportPlaneCountsSchema = TransportPlaneCountsSchema;
|
|
121726
122025
|
exports.TransportPlaneSchema = TransportPlaneSchema;
|
|
121727
122026
|
exports.TurnServerSchema = TurnServerSchema;
|
|
@@ -122067,6 +122366,7 @@ exports.declareLogChannel = declareLogChannel;
|
|
|
122067
122366
|
exports.declaredSeriesKind = declaredSeriesKind;
|
|
122068
122367
|
exports.decodeCompositionToCards = decodeCompositionToCards;
|
|
122069
122368
|
exports.decodeKeyedArrayOverride = decodeKeyedArrayOverride;
|
|
122369
|
+
exports.decodePronto = decodePronto;
|
|
122070
122370
|
exports.decodePulseOverride = decodePulseOverride;
|
|
122071
122371
|
exports.decodeScalarOverride = decodeScalarOverride;
|
|
122072
122372
|
exports.decodeVectorBase64 = decodeVectorBase64;
|
|
@@ -122282,6 +122582,7 @@ exports.interpretStoredClusterModel = interpretStoredClusterModel;
|
|
|
122282
122582
|
exports.invalidClusterStepModelEntries = invalidClusterStepModelEntries;
|
|
122283
122583
|
exports.invertPresetFeature = invertPresetFeature;
|
|
122284
122584
|
exports.invocationFromEncodeProfile = require_composition.invocationFromEncodeProfile;
|
|
122585
|
+
exports.irTransmitterCapability = irTransmitterCapability;
|
|
122285
122586
|
exports.isAgentOnlyPlacement = isAgentOnlyPlacement;
|
|
122286
122587
|
exports.isAlarmControllableCap = isAlarmControllableCap;
|
|
122287
122588
|
exports.isAlertEpisodeOpen = isAlertEpisodeOpen;
|
|
@@ -122520,6 +122821,7 @@ exports.parseSecretRef = require_sleep.parseSecretRef;
|
|
|
122520
122821
|
exports.parseSecretStatePath = require_sleep.parseSecretStatePath;
|
|
122521
122822
|
exports.parseSessionPlacementPolicy = parseSessionPlacementPolicy;
|
|
122522
122823
|
exports.parseShareSource = parseShareSource;
|
|
122824
|
+
exports.parseSmartIr = parseSmartIr;
|
|
122523
122825
|
exports.parseStreamParamsFormPatch = parseStreamParamsFormPatch;
|
|
122524
122826
|
exports.parseTrainingEventLine = parseTrainingEventLine;
|
|
122525
122827
|
exports.patchAudio = patchAudio;
|
|
@@ -122856,6 +123158,7 @@ exports.toNodeId = require_sleep.toNodeId;
|
|
|
122856
123158
|
exports.toPercentShares = toPercentShares;
|
|
122857
123159
|
exports.toSecretFieldView = require_sleep.toSecretFieldView;
|
|
122858
123160
|
exports.toStreamSourceEntry = toStreamSourceEntry;
|
|
123161
|
+
exports.toTimings = toTimings;
|
|
122859
123162
|
exports.toastCapability = toastCapability;
|
|
122860
123163
|
exports.toggleAudioLabel = toggleAudioLabel;
|
|
122861
123164
|
exports.tokenize = require_composition.tokenize;
|