@camstack/addon-provider-homeassistant 1.2.58 → 1.2.59
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/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-D_63yMoB.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let node_zlib = require("node:zlib");
|
|
5
5
|
//#region src/ha-device-source.ts
|
package/dist/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as presenceCapability, A as controlCapability, At as EventCategory, B as humiditySensorCapability, C as buildAddonRouteProvider, Ct as number, D as colorCapability, Dt as union, E as climateControlCapability, Et as string, F as eventEmitterCapability, G as motionCapability, H as lawnMowerControlCapability, I as fanControlCapability, J as notifierCapability, K as normalizeUnit, L as floodCapability, M as deviceAdoptionCapability, O as connectivityCapability, Ot as unknown, P as enumSensorCapability, Q as prepareNotification, R as gasCapability, S as brokerCapability, St as literal, T as carbonMonoxideCapability, Tt as record, U as lockControlCapability, V as imageCapability, W as mediaPlayerCapability, Y as numericSensorCapability, Z as powerMeterCapability, _ as automationControlCapability, _t as createEvent, at as temperatureSensorCapability, b as binaryCapability, bt as array, ct as valveCapability, d as TargetSchema, dt as weatherCapability, et as pressureSensorCapability, f as accessoriesCapability, ft as errMsg, g as ambientLightSensorCapability, gt as DeviceType, h as alarmPanelCapability, ht as DeviceRole, it as tamperCapability, j as coverCapability, k as contactCapability, kt as url, lt as vibrationCapability, m as airQualitySensorCapability, mt as DeviceFeature, n as BaseDevice, nt as smokeCapability, ot as updateCapability, p as addonRoutesCapability, q as notificationOutputCapability, r as BaseDeviceProvider, rt as switchCapability, s as EnumSensorDateTimeFormatSchema, st as vacuumControlCapability, tt as scriptRunnerCapability, ut as waterHeaterCapability, v as batteryCapability, w as buttonCapability, wt as object, x as brightnessCapability, xt as discriminatedUnion, y as bestLocationMatch, yt as _enum, z as humidifierCapability } from "./dist-
|
|
1
|
+
import { $ as presenceCapability, A as controlCapability, At as EventCategory, B as humiditySensorCapability, C as buildAddonRouteProvider, Ct as number, D as colorCapability, Dt as union, E as climateControlCapability, Et as string, F as eventEmitterCapability, G as motionCapability, H as lawnMowerControlCapability, I as fanControlCapability, J as notifierCapability, K as normalizeUnit, L as floodCapability, M as deviceAdoptionCapability, O as connectivityCapability, Ot as unknown, P as enumSensorCapability, Q as prepareNotification, R as gasCapability, S as brokerCapability, St as literal, T as carbonMonoxideCapability, Tt as record, U as lockControlCapability, V as imageCapability, W as mediaPlayerCapability, Y as numericSensorCapability, Z as powerMeterCapability, _ as automationControlCapability, _t as createEvent, at as temperatureSensorCapability, b as binaryCapability, bt as array, ct as valveCapability, d as TargetSchema, dt as weatherCapability, et as pressureSensorCapability, f as accessoriesCapability, ft as errMsg, g as ambientLightSensorCapability, gt as DeviceType, h as alarmPanelCapability, ht as DeviceRole, it as tamperCapability, j as coverCapability, k as contactCapability, kt as url, lt as vibrationCapability, m as airQualitySensorCapability, mt as DeviceFeature, n as BaseDevice, nt as smokeCapability, ot as updateCapability, p as addonRoutesCapability, q as notificationOutputCapability, r as BaseDeviceProvider, rt as switchCapability, s as EnumSensorDateTimeFormatSchema, st as vacuumControlCapability, tt as scriptRunnerCapability, ut as waterHeaterCapability, v as batteryCapability, w as buttonCapability, wt as object, x as brightnessCapability, xt as discriminatedUnion, y as bestLocationMatch, yt as _enum, z as humidifierCapability } from "./dist-C6W8WY0m.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
|
|
4
4
|
//#region src/ha-device-source.ts
|
|
@@ -8206,6 +8206,21 @@ var RelocateJobSchema = object({
|
|
|
8206
8206
|
bytesMoved: number().int(),
|
|
8207
8207
|
/** Total files discovered up front; null while (or when) unknown. */
|
|
8208
8208
|
filesTotal: number().int().nullable(),
|
|
8209
|
+
/**
|
|
8210
|
+
* Rows this run CORRECTED while moving them — a durable mutation the move
|
|
8211
|
+
* made that nobody asked for, so it is reported where the operator reads the
|
|
8212
|
+
* job rather than only in a log line.
|
|
8213
|
+
*
|
|
8214
|
+
* A footage segment records its byte count in its own NAME, and the durable
|
|
8215
|
+
* hour row derives its aggregates from those names. A file that does not
|
|
8216
|
+
* match its name therefore makes the ledger's sums — and with them quota and
|
|
8217
|
+
* pressure eviction — wrong by the difference, and only a rename can fix it.
|
|
8218
|
+
* On 2026-08-30 one such row also stalled a 110 749-file drain permanently.
|
|
8219
|
+
*
|
|
8220
|
+
* Absent on lanes where the question has no meaning: a media blob's size is
|
|
8221
|
+
* in its row, not in its name, so `MediaRelocateEngine` never reconciles one.
|
|
8222
|
+
*/
|
|
8223
|
+
rowsReconciled: number().int().nonnegative().optional(),
|
|
8209
8224
|
startedAt: number(),
|
|
8210
8225
|
finishedAt: number().nullable(),
|
|
8211
8226
|
error: string().nullable()
|
|
@@ -8274,14 +8289,42 @@ var RelocateMediaInputSchema = object({
|
|
|
8274
8289
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8275
8290
|
mode: MediaRelocateModeSchema.optional()
|
|
8276
8291
|
});
|
|
8277
|
-
/**
|
|
8278
|
-
*
|
|
8279
|
-
*
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8292
|
+
/**
|
|
8293
|
+
* The unstamped population of ONE collection — split, because the gate and the
|
|
8294
|
+
* operator ask two different questions and only one of them has to be cheap.
|
|
8295
|
+
*
|
|
8296
|
+
* `present` is the GATE: "is there at least one row that would be orphaned by a
|
|
8297
|
+
* repoint". It is a single indexed seek to the first matching row, so it stays
|
|
8298
|
+
* answerable on a saturated disk and answers in O(log n) precisely in the state
|
|
8299
|
+
* that matters — after a seal, when the population is empty.
|
|
8300
|
+
*
|
|
8301
|
+
* `rows` is the NUMBER, for the refusal message and the operator's sense of
|
|
8302
|
+
* scale. It is a second, indexed `COUNT(*)`, and `null` means **not
|
|
8303
|
+
* measurable** — never zero. `{ present: true, rows: null }` is a legitimate
|
|
8304
|
+
* and useful answer: "there are some, and this read could not say how many"
|
|
8305
|
+
* still refuses the cutover, which is the whole job.
|
|
8306
|
+
*/
|
|
8307
|
+
var UnstampedRowsSchema = object({
|
|
8308
|
+
present: boolean(),
|
|
8309
|
+
rows: number().int().nonnegative().nullable()
|
|
8284
8310
|
});
|
|
8311
|
+
/**
|
|
8312
|
+
* How many rows still carry NO `locationId` — the population a repoint would
|
|
8313
|
+
* silently re-aim at a disk that does not hold their bytes.
|
|
8314
|
+
*
|
|
8315
|
+
* **`null` = the count could not be taken**, and it is NOT permission to cut
|
|
8316
|
+
* over. The gate opens on a measured absence and on nothing else; an unread
|
|
8317
|
+
* collection and an empty one are different facts, and this repo has already
|
|
8318
|
+
* paid for conflating them (`RelocateResidueSchema`, D295).
|
|
8319
|
+
*/
|
|
8320
|
+
var UnstampedEventMediaCountSchema = object({
|
|
8321
|
+
media: UnstampedRowsSchema,
|
|
8322
|
+
retrainFrames: UnstampedRowsSchema,
|
|
8323
|
+
/** True when EITHER collection holds one. The refusal reads this. */
|
|
8324
|
+
anyPresent: boolean(),
|
|
8325
|
+
/** Sum across both, or `null` when either lane could not be counted. */
|
|
8326
|
+
total: number().int().nonnegative().nullable()
|
|
8327
|
+
}).nullable();
|
|
8285
8328
|
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
8286
8329
|
/** The independently selectable logical storage classes — every class
|
|
8287
8330
|
* `storage.listLocationDeclarations` reports, so an operator never meets a
|
|
@@ -8392,6 +8435,10 @@ var StorageMigrationMoveProgressSchema = object({
|
|
|
8392
8435
|
/** The archive census — the **M** of "N of M" (D295). `null` = unknowable. */
|
|
8393
8436
|
filesTotal: number().int().nonnegative().nullable(),
|
|
8394
8437
|
bytesMoved: number().int().nonnegative(),
|
|
8438
|
+
/** Rows the mover corrected while moving them — see `RelocateJob`. Absent on
|
|
8439
|
+
* a lane that cannot reconcile. A migration that silently rewrote durable
|
|
8440
|
+
* rows would be the same failure as one that silently skipped them. */
|
|
8441
|
+
rowsReconciled: number().int().nonnegative().optional(),
|
|
8395
8442
|
/** The MOVER's start, not the migration's: a drain restarted after an addon
|
|
8396
8443
|
* crash gets a new mover, and a rate computed from the migration's start
|
|
8397
8444
|
* would silently average in the time nothing was running. */
|
|
@@ -8206,6 +8206,21 @@ var RelocateJobSchema = object({
|
|
|
8206
8206
|
bytesMoved: number().int(),
|
|
8207
8207
|
/** Total files discovered up front; null while (or when) unknown. */
|
|
8208
8208
|
filesTotal: number().int().nullable(),
|
|
8209
|
+
/**
|
|
8210
|
+
* Rows this run CORRECTED while moving them — a durable mutation the move
|
|
8211
|
+
* made that nobody asked for, so it is reported where the operator reads the
|
|
8212
|
+
* job rather than only in a log line.
|
|
8213
|
+
*
|
|
8214
|
+
* A footage segment records its byte count in its own NAME, and the durable
|
|
8215
|
+
* hour row derives its aggregates from those names. A file that does not
|
|
8216
|
+
* match its name therefore makes the ledger's sums — and with them quota and
|
|
8217
|
+
* pressure eviction — wrong by the difference, and only a rename can fix it.
|
|
8218
|
+
* On 2026-08-30 one such row also stalled a 110 749-file drain permanently.
|
|
8219
|
+
*
|
|
8220
|
+
* Absent on lanes where the question has no meaning: a media blob's size is
|
|
8221
|
+
* in its row, not in its name, so `MediaRelocateEngine` never reconciles one.
|
|
8222
|
+
*/
|
|
8223
|
+
rowsReconciled: number().int().nonnegative().optional(),
|
|
8209
8224
|
startedAt: number(),
|
|
8210
8225
|
finishedAt: number().nullable(),
|
|
8211
8226
|
error: string().nullable()
|
|
@@ -8274,14 +8289,42 @@ var RelocateMediaInputSchema = object({
|
|
|
8274
8289
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8275
8290
|
mode: MediaRelocateModeSchema.optional()
|
|
8276
8291
|
});
|
|
8277
|
-
/**
|
|
8278
|
-
*
|
|
8279
|
-
*
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8292
|
+
/**
|
|
8293
|
+
* The unstamped population of ONE collection — split, because the gate and the
|
|
8294
|
+
* operator ask two different questions and only one of them has to be cheap.
|
|
8295
|
+
*
|
|
8296
|
+
* `present` is the GATE: "is there at least one row that would be orphaned by a
|
|
8297
|
+
* repoint". It is a single indexed seek to the first matching row, so it stays
|
|
8298
|
+
* answerable on a saturated disk and answers in O(log n) precisely in the state
|
|
8299
|
+
* that matters — after a seal, when the population is empty.
|
|
8300
|
+
*
|
|
8301
|
+
* `rows` is the NUMBER, for the refusal message and the operator's sense of
|
|
8302
|
+
* scale. It is a second, indexed `COUNT(*)`, and `null` means **not
|
|
8303
|
+
* measurable** — never zero. `{ present: true, rows: null }` is a legitimate
|
|
8304
|
+
* and useful answer: "there are some, and this read could not say how many"
|
|
8305
|
+
* still refuses the cutover, which is the whole job.
|
|
8306
|
+
*/
|
|
8307
|
+
var UnstampedRowsSchema = object({
|
|
8308
|
+
present: boolean(),
|
|
8309
|
+
rows: number().int().nonnegative().nullable()
|
|
8284
8310
|
});
|
|
8311
|
+
/**
|
|
8312
|
+
* How many rows still carry NO `locationId` — the population a repoint would
|
|
8313
|
+
* silently re-aim at a disk that does not hold their bytes.
|
|
8314
|
+
*
|
|
8315
|
+
* **`null` = the count could not be taken**, and it is NOT permission to cut
|
|
8316
|
+
* over. The gate opens on a measured absence and on nothing else; an unread
|
|
8317
|
+
* collection and an empty one are different facts, and this repo has already
|
|
8318
|
+
* paid for conflating them (`RelocateResidueSchema`, D295).
|
|
8319
|
+
*/
|
|
8320
|
+
var UnstampedEventMediaCountSchema = object({
|
|
8321
|
+
media: UnstampedRowsSchema,
|
|
8322
|
+
retrainFrames: UnstampedRowsSchema,
|
|
8323
|
+
/** True when EITHER collection holds one. The refusal reads this. */
|
|
8324
|
+
anyPresent: boolean(),
|
|
8325
|
+
/** Sum across both, or `null` when either lane could not be counted. */
|
|
8326
|
+
total: number().int().nonnegative().nullable()
|
|
8327
|
+
}).nullable();
|
|
8285
8328
|
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
8286
8329
|
/** The independently selectable logical storage classes — every class
|
|
8287
8330
|
* `storage.listLocationDeclarations` reports, so an operator never meets a
|
|
@@ -8392,6 +8435,10 @@ var StorageMigrationMoveProgressSchema = object({
|
|
|
8392
8435
|
/** The archive census — the **M** of "N of M" (D295). `null` = unknowable. */
|
|
8393
8436
|
filesTotal: number().int().nonnegative().nullable(),
|
|
8394
8437
|
bytesMoved: number().int().nonnegative(),
|
|
8438
|
+
/** Rows the mover corrected while moving them — see `RelocateJob`. Absent on
|
|
8439
|
+
* a lane that cannot reconcile. A migration that silently rewrote durable
|
|
8440
|
+
* rows would be the same failure as one that silently skipped them. */
|
|
8441
|
+
rowsReconciled: number().int().nonnegative().optional(),
|
|
8395
8442
|
/** The MOVER's start, not the migration's: a drain restarted after an addon
|
|
8396
8443
|
* crash gets a new mover, and a rate computed from the migration's start
|
|
8397
8444
|
* would silently average in the time nothing was running. */
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
//#endregion
|
|
6
|
-
const require_dist = require("../dist-
|
|
6
|
+
const require_dist = require("../dist-D_63yMoB.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
//#region src/ha-export/topics.ts
|
|
9
9
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as EventCategory, C as buildAddonRouteProvider, Et as string, N as deviceExportCapability, X as oauthIntegrationCapability, a as COCO_TO_MACRO, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, pt as BaseAddon, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema, vt as nodePin } from "../dist-
|
|
1
|
+
import { At as EventCategory, C as buildAddonRouteProvider, Et as string, N as deviceExportCapability, X as oauthIntegrationCapability, a as COCO_TO_MACRO, c as FanDirectionSchema, i as CAMERA_SWITCH_ORDER, l as HvacModeSchema, o as CameraSwitchIdSchema, p as addonRoutesCapability, pt as BaseAddon, t as AlarmArmModeSchema, u as MediaPlayerRepeatSchema, vt as nodePin } from "../dist-C6W8WY0m.mjs";
|
|
2
2
|
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
3
3
|
//#region src/ha-export/topics.ts
|
|
4
4
|
/**
|