@camstack/addon-pipeline 1.2.321 → 1.2.324
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/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-SkL7rw1J.js → default-detection-model-4nJVRIT6.js} +1 -1
- package/dist/{default-detection-model-DBqAX4cL.mjs → default-detection-model-lWMQATmQ.mjs} +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-CTLBxswm.mjs → dist-CbRb0Zyj.mjs} +145 -13
- package/dist/{dist-DMwFmudw.js → dist-DlgXwnqU.js} +145 -13
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-BO3NIRH9.mjs → node-CZ5DXcvq.mjs} +1 -1
- package/dist/{node-CJqa8iTR.js → node-s3wZnnJg.js} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-BLd-PX9x.js → process-memory-C-mZ1LNi.js} +1 -1
- package/dist/{process-memory-qCTMcKBo.mjs → process-memory-CJsA4yRc.mjs} +1 -1
- package/dist/recorder/index.js +178 -2
- package/dist/recorder/index.mjs +178 -2
- package/dist/{segment-demux-js-DXHU1xgc.js → segment-demux-js-BbM0_Fmz.js} +1 -1
- package/dist/{segment-demux-js-6HsaPjoo.mjs → segment-demux-js-CuwXgwpj.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C1yya1ze.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Duo5d4kr.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-NkeMtp-v.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-mEJkrfvj.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-BHlXLPez.mjs → hostInit-C-RUqF9D.mjs} +3 -3
- package/dist/stream-broker/index.js +24 -13
- package/dist/stream-broker/index.mjs +24 -13
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-gPsQTvgB.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DGvtO8aA.mjs +0 -26
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-DlgXwnqU.js");
|
|
7
|
+
const require_process_memory = require("../process-memory-C-mZ1LNi.js");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as PoolMemoryWatchdog, E as HF_BASE_URL, En as nodePin, Kt as resolvePoolMemoryPolicy, Sn as hydrateSchema, St as mapAudioLabelToMacro, U as audioAnalysisCapability, Un as EventCategory, W as audioAnalyzerCapability, _n as audioChunkBytesPerSample, fn as errMsg, m as DEFAULT_AUDIO_ANALYZER_CONFIG, mn as BaseAddon, r as AUDIO_BACKEND_CHOICES, xn as expandAudioChunkToF32le } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { A as PoolMemoryWatchdog, E as HF_BASE_URL, En as nodePin, Kt as resolvePoolMemoryPolicy, Sn as hydrateSchema, St as mapAudioLabelToMacro, U as audioAnalysisCapability, Un as EventCategory, W as audioAnalyzerCapability, _n as audioChunkBytesPerSample, fn as errMsg, m as DEFAULT_AUDIO_ANALYZER_CONFIG, mn as BaseAddon, r as AUDIO_BACKEND_CHOICES, xn as expandAudioChunkToF32le } from "../dist-CbRb0Zyj.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-CJsA4yRc.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-DlgXwnqU.js");
|
|
2
2
|
const require_worker_protocol = require("./worker-protocol-C-G8qmye.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as audioKindId, Yt as stepModelRunsOnFormat, _t as hfModelUrl, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, p as COCO_TO_MACRO, vt as inferModelProvider, y as DEVICE_BACKEND_TO_FORMAT } from "./dist-
|
|
1
|
+
import { G as audioKindId, Yt as stepModelRunsOnFormat, _t as hfModelUrl, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, p as COCO_TO_MACRO, vt as inferModelProvider, y as DEVICE_BACKEND_TO_FORMAT } from "./dist-CbRb0Zyj.mjs";
|
|
2
2
|
import { t as isWorkerReply } from "./worker-protocol-D_NzPcnh.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-DlgXwnqU.js");
|
|
7
|
+
const require_node = require("../node-s3wZnnJg.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-4nJVRIT6.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-C-mZ1LNi.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as PoolMemoryWatchdog, An as sleep, At as overlayClusterStepSettings, Dn as parseJsonUnknown, En as nodePin, Ft as pipelineExecutorCapability, Hn as union, Ht as resolveClusterStepModelId, Jt as runtimeDevices$1, Kt as resolvePoolMemoryPolicy, Mn as array, Mt as pickClusterStepSettings, Rn as object, Sn as hydrateSchema, Un as EventCategory, V as YAMNET_TO_MACRO, Vn as string, Yt as stepModelRunsOnFormat, bt as loadContributionCapability, ct as evaluateZoneRules, d as CLUSTER_MODEL_SCOPED_STEPS, en as supportedRuntimes$1, et as defaultDeviceFor$1, fn as errMsg, h as DEFAULT_CLUSTER_STEP_SETTINGS, it as detectionPipelineCapability, mn as BaseAddon, n as APPLE_SA_TO_MACRO, st as enumerateInferenceDevices, vn as createEvent, y as DEVICE_BACKEND_TO_FORMAT } from "../dist-
|
|
3
|
-
import { s as readProcessCost } from "../node-
|
|
4
|
-
import { S as resolveModelDefaultConfidence, _ as getStep, a as buildSubtreeCanRun, c as macroGateVerdict, g as getDefaultModelForFormat, h as ALL_STEPS, i as mergeCustomModels, m as ALL_PIPELINE_STEPS, n as resolveDefaultDetectionModel, r as CustomModelCatalog, u as localFrameRegistry, v as getStepDefinition, x as landmarkPrecisionVerdict, y as resolveModelForFormat } from "../default-detection-model-
|
|
2
|
+
import { A as PoolMemoryWatchdog, An as sleep, At as overlayClusterStepSettings, Dn as parseJsonUnknown, En as nodePin, Ft as pipelineExecutorCapability, Hn as union, Ht as resolveClusterStepModelId, Jt as runtimeDevices$1, Kt as resolvePoolMemoryPolicy, Mn as array, Mt as pickClusterStepSettings, Rn as object, Sn as hydrateSchema, Un as EventCategory, V as YAMNET_TO_MACRO, Vn as string, Yt as stepModelRunsOnFormat, bt as loadContributionCapability, ct as evaluateZoneRules, d as CLUSTER_MODEL_SCOPED_STEPS, en as supportedRuntimes$1, et as defaultDeviceFor$1, fn as errMsg, h as DEFAULT_CLUSTER_STEP_SETTINGS, it as detectionPipelineCapability, mn as BaseAddon, n as APPLE_SA_TO_MACRO, st as enumerateInferenceDevices, vn as createEvent, y as DEVICE_BACKEND_TO_FORMAT } from "../dist-CbRb0Zyj.mjs";
|
|
3
|
+
import { s as readProcessCost } from "../node-CZ5DXcvq.mjs";
|
|
4
|
+
import { S as resolveModelDefaultConfidence, _ as getStep, a as buildSubtreeCanRun, c as macroGateVerdict, g as getDefaultModelForFormat, h as ALL_STEPS, i as mergeCustomModels, m as ALL_PIPELINE_STEPS, n as resolveDefaultDetectionModel, r as CustomModelCatalog, u as localFrameRegistry, v as getStepDefinition, x as landmarkPrecisionVerdict, y as resolveModelForFormat } from "../default-detection-model-lWMQATmQ.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-CJsA4yRc.mjs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -5379,7 +5379,7 @@ var ZodIssueCode = {
|
|
|
5379
5379
|
var ZodFirstPartyTypeKind;
|
|
5380
5380
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5381
5381
|
//#endregion
|
|
5382
|
-
//#region ../types/dist/sleep-
|
|
5382
|
+
//#region ../types/dist/sleep-DXKLNFvA.mjs
|
|
5383
5383
|
/**
|
|
5384
5384
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5385
5385
|
* window to float samples (D455).
|
|
@@ -5719,6 +5719,43 @@ function hydrateField(field, values) {
|
|
|
5719
5719
|
}
|
|
5720
5720
|
const rawValue = storedValue !== void 0 ? storedValue : defaultValue !== void 0 ? defaultValue : null;
|
|
5721
5721
|
const value = field.type === "textarea" && field.isJson && rawValue !== null && typeof rawValue === "object" ? JSON.stringify(rawValue, null, 2) : rawValue;
|
|
5722
|
+
if (field.type === "tags" && typeof field.suggestionsFrom === "string") {
|
|
5723
|
+
const from = values[field.suggestionsFrom];
|
|
5724
|
+
const extra = Array.isArray(from) ? from.filter((s) => typeof s === "string" && s.length > 0) : [];
|
|
5725
|
+
const merged = [...new Set([...field.suggestions ?? [], ...extra])];
|
|
5726
|
+
return {
|
|
5727
|
+
...field,
|
|
5728
|
+
suggestions: merged,
|
|
5729
|
+
value
|
|
5730
|
+
};
|
|
5731
|
+
}
|
|
5732
|
+
if ((field.type === "select" || field.type === "multiselect") && typeof field.optionsFrom === "string") {
|
|
5733
|
+
const from = values[field.optionsFrom];
|
|
5734
|
+
const byValue = /* @__PURE__ */ new Map();
|
|
5735
|
+
for (const opt of field.options) byValue.set(opt.value, opt);
|
|
5736
|
+
if (Array.isArray(from)) for (const entry of from) {
|
|
5737
|
+
if (typeof entry === "string" && entry.length > 0) {
|
|
5738
|
+
if (!byValue.has(entry)) byValue.set(entry, {
|
|
5739
|
+
value: entry,
|
|
5740
|
+
label: entry
|
|
5741
|
+
});
|
|
5742
|
+
continue;
|
|
5743
|
+
}
|
|
5744
|
+
if (entry === null || typeof entry !== "object") continue;
|
|
5745
|
+
const v = Reflect.get(entry, "value");
|
|
5746
|
+
const lbl = Reflect.get(entry, "label");
|
|
5747
|
+
if (typeof v !== "string" || v.length === 0) continue;
|
|
5748
|
+
if (!byValue.has(v)) byValue.set(v, {
|
|
5749
|
+
value: v,
|
|
5750
|
+
label: typeof lbl === "string" && lbl.length > 0 ? lbl : v
|
|
5751
|
+
});
|
|
5752
|
+
}
|
|
5753
|
+
return {
|
|
5754
|
+
...field,
|
|
5755
|
+
options: [...byValue.values()],
|
|
5756
|
+
value
|
|
5757
|
+
};
|
|
5758
|
+
}
|
|
5722
5759
|
return {
|
|
5723
5760
|
...field,
|
|
5724
5761
|
value
|
|
@@ -13041,7 +13078,16 @@ var AutomationActionSchema = discriminatedUnion("kind", [
|
|
|
13041
13078
|
}),
|
|
13042
13079
|
object({
|
|
13043
13080
|
kind: literal("cap"),
|
|
13044
|
-
|
|
13081
|
+
/**
|
|
13082
|
+
* One device, several same-family devices (locks / climate family / …),
|
|
13083
|
+
* or `{ $var }` for the device that triggered the run. An array is
|
|
13084
|
+
* fan-out at codegen — each id gets the same cap.method call.
|
|
13085
|
+
*/
|
|
13086
|
+
deviceId: union([
|
|
13087
|
+
number().int(),
|
|
13088
|
+
array(number().int()).min(1),
|
|
13089
|
+
object({ $var: string().min(1) })
|
|
13090
|
+
]),
|
|
13045
13091
|
cap: string().min(1),
|
|
13046
13092
|
method: string().min(1),
|
|
13047
13093
|
/** Values may carry `{{vars.x}}` slots, which SUBSTITUTE and do not
|
|
@@ -16697,7 +16743,7 @@ var detectionPipelineCapability = {
|
|
|
16697
16743
|
* This matters here more than anywhere else in the repo, because every provider
|
|
16698
16744
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
16699
16745
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
16700
|
-
* and `http://admin:hunter2@192.168.
|
|
16746
|
+
* and `http://admin:hunter2@192.168.x.x/` is a URL a browser accepts. The
|
|
16701
16747
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
16702
16748
|
* filling it is the operator's business, not ours.
|
|
16703
16749
|
*
|
|
@@ -20256,10 +20302,35 @@ var SendResultSchema = object({
|
|
|
20256
20302
|
});
|
|
20257
20303
|
/** Same shape as SendResult — kept as a distinct name for the test panel. */
|
|
20258
20304
|
var TestResultSchema = SendResultSchema;
|
|
20259
|
-
|
|
20305
|
+
/**
|
|
20306
|
+
* Pre-save credential probe against a partial (unsaved) target config.
|
|
20307
|
+
* `resolvedUrl` never includes secrets (token stripped from path).
|
|
20308
|
+
*/
|
|
20309
|
+
var ProbeTargetConfigResultSchema = object({
|
|
20310
|
+
ok: boolean(),
|
|
20311
|
+
resolvedUrl: string(),
|
|
20312
|
+
httpStatus: number().int().optional(),
|
|
20313
|
+
stateInstance: string().optional(),
|
|
20314
|
+
error: string().optional()
|
|
20315
|
+
});
|
|
20316
|
+
method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSchema), { auth: "admin" }), method(object({ targetId: string() }), TargetSchema, { auth: "admin" }), method(object({
|
|
20260
20317
|
kind: string(),
|
|
20261
|
-
config: record(string(), unknown()).optional()
|
|
20318
|
+
config: record(string(), unknown()).optional(),
|
|
20319
|
+
/**
|
|
20320
|
+
* When editing / duplicating, the blank password field never round-trips
|
|
20321
|
+
* the stored token. Pass the source target id so the provider can restore
|
|
20322
|
+
* secrets server-side before dialling (same merge as upsert).
|
|
20323
|
+
*/
|
|
20324
|
+
targetId: string().optional()
|
|
20262
20325
|
}), array(DiscoveredTargetSchema), { auth: "admin" }), method(object({
|
|
20326
|
+
kind: string(),
|
|
20327
|
+
config: record(string(), unknown()),
|
|
20328
|
+
/** See `discoverTargets.targetId` — restore stored secrets for a blank password. */
|
|
20329
|
+
targetId: string().optional()
|
|
20330
|
+
}), ProbeTargetConfigResultSchema, {
|
|
20331
|
+
kind: "mutation",
|
|
20332
|
+
auth: "admin"
|
|
20333
|
+
}), method(object({
|
|
20263
20334
|
targetId: string(),
|
|
20264
20335
|
notification: NotificationSchema
|
|
20265
20336
|
}), SendResultSchema, {
|
|
@@ -20271,7 +20342,16 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
20271
20342
|
}), TestResultSchema, {
|
|
20272
20343
|
kind: "mutation",
|
|
20273
20344
|
auth: "admin"
|
|
20274
|
-
}), method(object({
|
|
20345
|
+
}), method(object({
|
|
20346
|
+
target: TargetSchema,
|
|
20347
|
+
/**
|
|
20348
|
+
* Duplicate flow: create a NEW target id while copying secrets from an
|
|
20349
|
+
* existing row. The UI never holds the stored token; blank / redacted
|
|
20350
|
+
* password fields are restored from this source (D634 still applies if
|
|
20351
|
+
* destinations diverge without a re-typed secret).
|
|
20352
|
+
*/
|
|
20353
|
+
cloneSecretsFrom: string().optional()
|
|
20354
|
+
}), TargetSchema, {
|
|
20275
20355
|
kind: "mutation",
|
|
20276
20356
|
auth: "admin"
|
|
20277
20357
|
}), method(object({ targetId: string() }), _void(), {
|
|
@@ -21234,6 +21314,15 @@ var AlarmArmModeSchema = _enum([
|
|
|
21234
21314
|
object({
|
|
21235
21315
|
/** Current lifecycle state. */
|
|
21236
21316
|
state: AlarmStateSchema,
|
|
21317
|
+
/**
|
|
21318
|
+
* The arm mode the machine belongs to under transitional words
|
|
21319
|
+
* (`arming` / `pending` / `triggered` / `disarming`). `null` when
|
|
21320
|
+
* disarmed or when a provider cannot name one. Exporters MUST prefer
|
|
21321
|
+
* this over an in-process memo — a HomeKit accessory that missed the
|
|
21322
|
+
* settled `armed_*` slice used to map `pending` to DISARMED and hide
|
|
21323
|
+
* an entry delay.
|
|
21324
|
+
*/
|
|
21325
|
+
targetMode: AlarmArmModeSchema.nullable().optional(),
|
|
21237
21326
|
/** Subset of arm modes the panel accepts. UI renders one button per
|
|
21238
21327
|
* mode in this list. */
|
|
21239
21328
|
availableModes: array(AlarmArmModeSchema),
|
|
@@ -22969,17 +23058,41 @@ var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
|
|
|
22969
23058
|
var NcAlarmDelaySecSchema = number().int().min(0).max(600);
|
|
22970
23059
|
var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
|
|
22971
23060
|
var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
|
|
23061
|
+
/**
|
|
23062
|
+
* What the panel does when a bounded triggered window ends.
|
|
23063
|
+
* - `rearmAfter` — return to the armed mode
|
|
23064
|
+
* - `disableAfter` — auto-disarm
|
|
23065
|
+
* - `doNothing` — stay triggered until a human disarms
|
|
23066
|
+
*/
|
|
23067
|
+
var NcAlarmPostTriggeredActionSchema = _enum([
|
|
23068
|
+
"rearmAfter",
|
|
23069
|
+
"disableAfter",
|
|
23070
|
+
"doNothing"
|
|
23071
|
+
]);
|
|
22972
23072
|
var NcAlarmModeDelaysListSchema = array(object({
|
|
22973
23073
|
mode: AlarmArmModeSchema,
|
|
22974
23074
|
exitDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
22975
23075
|
entryDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
22976
|
-
|
|
23076
|
+
/**
|
|
23077
|
+
* Duration of `triggered` before {@link postTriggeredAction}. Kept as the
|
|
23078
|
+
* historical field name so older clients still read/write a number.
|
|
23079
|
+
*/
|
|
23080
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.optional(),
|
|
23081
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
23082
|
+
/**
|
|
23083
|
+
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
23084
|
+
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
23085
|
+
*/
|
|
23086
|
+
schedule: NcScheduleSchema.optional()
|
|
22977
23087
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
22978
23088
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
22979
23089
|
mode: AlarmArmModeSchema,
|
|
22980
23090
|
exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
22981
23091
|
entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
22982
|
-
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
|
|
23092
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
23093
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
23094
|
+
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
23095
|
+
schedule: NcScheduleSchema.nullable().optional()
|
|
22983
23096
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
22984
23097
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
22985
23098
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -23051,12 +23164,18 @@ var NcAlarmSettingsSchema = object({
|
|
|
23051
23164
|
/** Grace period between a trigger and the alarm firing. 0 = immediate. */
|
|
23052
23165
|
entryDelaySec: NcAlarmDelaySecSchema,
|
|
23053
23166
|
/**
|
|
23054
|
-
* How long `triggered` lasts before
|
|
23055
|
-
*
|
|
23056
|
-
*
|
|
23167
|
+
* How long `triggered` lasts before {@link postTriggeredAction} runs.
|
|
23168
|
+
* Ignored when the action is `doNothing`. Historical name kept so older
|
|
23169
|
+
* clients still round-trip a number.
|
|
23057
23170
|
*/
|
|
23058
23171
|
triggeredDurationSec: NcAlarmTriggeredSecSchema,
|
|
23059
23172
|
/**
|
|
23173
|
+
* What happens when the triggered window ends. Absent on a blob older than
|
|
23174
|
+
* this field → derived from {@link triggeredDurationSec} (`>0` ⇒ rearmAfter,
|
|
23175
|
+
* else doNothing).
|
|
23176
|
+
*/
|
|
23177
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
23178
|
+
/**
|
|
23060
23179
|
* Deprecated by D630 — every transition is announced. Parsed, never read;
|
|
23061
23180
|
* remove after one release. Optional so an older admin's patch (which still
|
|
23062
23181
|
* sends it) parses rather than failing the whole save.
|
|
@@ -34198,7 +34317,7 @@ var LocalInterfaceSchema = object({
|
|
|
34198
34317
|
name: string(),
|
|
34199
34318
|
family: _enum(["IPv4", "IPv6"]),
|
|
34200
34319
|
address: string(),
|
|
34201
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
34320
|
+
/** CIDR shorthand (e.g. `192.168.x.x/24`). Empty when OS doesn't expose. */
|
|
34202
34321
|
cidr: string(),
|
|
34203
34322
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
34204
34323
|
netmask: string(),
|
|
@@ -34644,7 +34763,7 @@ var MeshPeerSchema = object({
|
|
|
34644
34763
|
tags: array(string()).readonly(),
|
|
34645
34764
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
34646
34765
|
exitNodeOption: boolean(),
|
|
34647
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
34766
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.x.x/24"]`). */
|
|
34648
34767
|
advertisedRoutes: array(string()).readonly(),
|
|
34649
34768
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
34650
34769
|
userLogin: string().nullable(),
|
|
@@ -44081,6 +44200,12 @@ Object.freeze({
|
|
|
44081
44200
|
addonId: null,
|
|
44082
44201
|
access: "view"
|
|
44083
44202
|
},
|
|
44203
|
+
"notificationOutput.getTarget": {
|
|
44204
|
+
capName: "notification-output",
|
|
44205
|
+
capScope: "system",
|
|
44206
|
+
addonId: null,
|
|
44207
|
+
access: "view"
|
|
44208
|
+
},
|
|
44084
44209
|
"notificationOutput.listTargetKinds": {
|
|
44085
44210
|
capName: "notification-output",
|
|
44086
44211
|
capScope: "system",
|
|
@@ -44093,6 +44218,12 @@ Object.freeze({
|
|
|
44093
44218
|
addonId: null,
|
|
44094
44219
|
access: "view"
|
|
44095
44220
|
},
|
|
44221
|
+
"notificationOutput.probeTargetConfig": {
|
|
44222
|
+
capName: "notification-output",
|
|
44223
|
+
capScope: "system",
|
|
44224
|
+
addonId: null,
|
|
44225
|
+
access: "create"
|
|
44226
|
+
},
|
|
44096
44227
|
"notificationOutput.send": {
|
|
44097
44228
|
capName: "notification-output",
|
|
44098
44229
|
capScope: "system",
|
|
@@ -47802,6 +47933,7 @@ Object.freeze({
|
|
|
47802
47933
|
access: "create"
|
|
47803
47934
|
}
|
|
47804
47935
|
});
|
|
47936
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
47805
47937
|
DeviceFeature.BatteryOperated;
|
|
47806
47938
|
/**
|
|
47807
47939
|
* The vocabulary, in the order a picker offers it.
|
|
@@ -5379,7 +5379,7 @@ var ZodIssueCode = {
|
|
|
5379
5379
|
var ZodFirstPartyTypeKind;
|
|
5380
5380
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5381
5381
|
//#endregion
|
|
5382
|
-
//#region ../types/dist/sleep-
|
|
5382
|
+
//#region ../types/dist/sleep-DXKLNFvA.mjs
|
|
5383
5383
|
/**
|
|
5384
5384
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5385
5385
|
* window to float samples (D455).
|
|
@@ -5719,6 +5719,43 @@ function hydrateField(field, values) {
|
|
|
5719
5719
|
}
|
|
5720
5720
|
const rawValue = storedValue !== void 0 ? storedValue : defaultValue !== void 0 ? defaultValue : null;
|
|
5721
5721
|
const value = field.type === "textarea" && field.isJson && rawValue !== null && typeof rawValue === "object" ? JSON.stringify(rawValue, null, 2) : rawValue;
|
|
5722
|
+
if (field.type === "tags" && typeof field.suggestionsFrom === "string") {
|
|
5723
|
+
const from = values[field.suggestionsFrom];
|
|
5724
|
+
const extra = Array.isArray(from) ? from.filter((s) => typeof s === "string" && s.length > 0) : [];
|
|
5725
|
+
const merged = [...new Set([...field.suggestions ?? [], ...extra])];
|
|
5726
|
+
return {
|
|
5727
|
+
...field,
|
|
5728
|
+
suggestions: merged,
|
|
5729
|
+
value
|
|
5730
|
+
};
|
|
5731
|
+
}
|
|
5732
|
+
if ((field.type === "select" || field.type === "multiselect") && typeof field.optionsFrom === "string") {
|
|
5733
|
+
const from = values[field.optionsFrom];
|
|
5734
|
+
const byValue = /* @__PURE__ */ new Map();
|
|
5735
|
+
for (const opt of field.options) byValue.set(opt.value, opt);
|
|
5736
|
+
if (Array.isArray(from)) for (const entry of from) {
|
|
5737
|
+
if (typeof entry === "string" && entry.length > 0) {
|
|
5738
|
+
if (!byValue.has(entry)) byValue.set(entry, {
|
|
5739
|
+
value: entry,
|
|
5740
|
+
label: entry
|
|
5741
|
+
});
|
|
5742
|
+
continue;
|
|
5743
|
+
}
|
|
5744
|
+
if (entry === null || typeof entry !== "object") continue;
|
|
5745
|
+
const v = Reflect.get(entry, "value");
|
|
5746
|
+
const lbl = Reflect.get(entry, "label");
|
|
5747
|
+
if (typeof v !== "string" || v.length === 0) continue;
|
|
5748
|
+
if (!byValue.has(v)) byValue.set(v, {
|
|
5749
|
+
value: v,
|
|
5750
|
+
label: typeof lbl === "string" && lbl.length > 0 ? lbl : v
|
|
5751
|
+
});
|
|
5752
|
+
}
|
|
5753
|
+
return {
|
|
5754
|
+
...field,
|
|
5755
|
+
options: [...byValue.values()],
|
|
5756
|
+
value
|
|
5757
|
+
};
|
|
5758
|
+
}
|
|
5722
5759
|
return {
|
|
5723
5760
|
...field,
|
|
5724
5761
|
value
|
|
@@ -13041,7 +13078,16 @@ var AutomationActionSchema = discriminatedUnion("kind", [
|
|
|
13041
13078
|
}),
|
|
13042
13079
|
object({
|
|
13043
13080
|
kind: literal("cap"),
|
|
13044
|
-
|
|
13081
|
+
/**
|
|
13082
|
+
* One device, several same-family devices (locks / climate family / …),
|
|
13083
|
+
* or `{ $var }` for the device that triggered the run. An array is
|
|
13084
|
+
* fan-out at codegen — each id gets the same cap.method call.
|
|
13085
|
+
*/
|
|
13086
|
+
deviceId: union([
|
|
13087
|
+
number().int(),
|
|
13088
|
+
array(number().int()).min(1),
|
|
13089
|
+
object({ $var: string().min(1) })
|
|
13090
|
+
]),
|
|
13045
13091
|
cap: string().min(1),
|
|
13046
13092
|
method: string().min(1),
|
|
13047
13093
|
/** Values may carry `{{vars.x}}` slots, which SUBSTITUTE and do not
|
|
@@ -16697,7 +16743,7 @@ var detectionPipelineCapability = {
|
|
|
16697
16743
|
* This matters here more than anywhere else in the repo, because every provider
|
|
16698
16744
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
16699
16745
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
16700
|
-
* and `http://admin:hunter2@192.168.
|
|
16746
|
+
* and `http://admin:hunter2@192.168.x.x/` is a URL a browser accepts. The
|
|
16701
16747
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
16702
16748
|
* filling it is the operator's business, not ours.
|
|
16703
16749
|
*
|
|
@@ -20256,10 +20302,35 @@ var SendResultSchema = object({
|
|
|
20256
20302
|
});
|
|
20257
20303
|
/** Same shape as SendResult — kept as a distinct name for the test panel. */
|
|
20258
20304
|
var TestResultSchema = SendResultSchema;
|
|
20259
|
-
|
|
20305
|
+
/**
|
|
20306
|
+
* Pre-save credential probe against a partial (unsaved) target config.
|
|
20307
|
+
* `resolvedUrl` never includes secrets (token stripped from path).
|
|
20308
|
+
*/
|
|
20309
|
+
var ProbeTargetConfigResultSchema = object({
|
|
20310
|
+
ok: boolean(),
|
|
20311
|
+
resolvedUrl: string(),
|
|
20312
|
+
httpStatus: number().int().optional(),
|
|
20313
|
+
stateInstance: string().optional(),
|
|
20314
|
+
error: string().optional()
|
|
20315
|
+
});
|
|
20316
|
+
method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSchema), { auth: "admin" }), method(object({ targetId: string() }), TargetSchema, { auth: "admin" }), method(object({
|
|
20260
20317
|
kind: string(),
|
|
20261
|
-
config: record(string(), unknown()).optional()
|
|
20318
|
+
config: record(string(), unknown()).optional(),
|
|
20319
|
+
/**
|
|
20320
|
+
* When editing / duplicating, the blank password field never round-trips
|
|
20321
|
+
* the stored token. Pass the source target id so the provider can restore
|
|
20322
|
+
* secrets server-side before dialling (same merge as upsert).
|
|
20323
|
+
*/
|
|
20324
|
+
targetId: string().optional()
|
|
20262
20325
|
}), array(DiscoveredTargetSchema), { auth: "admin" }), method(object({
|
|
20326
|
+
kind: string(),
|
|
20327
|
+
config: record(string(), unknown()),
|
|
20328
|
+
/** See `discoverTargets.targetId` — restore stored secrets for a blank password. */
|
|
20329
|
+
targetId: string().optional()
|
|
20330
|
+
}), ProbeTargetConfigResultSchema, {
|
|
20331
|
+
kind: "mutation",
|
|
20332
|
+
auth: "admin"
|
|
20333
|
+
}), method(object({
|
|
20263
20334
|
targetId: string(),
|
|
20264
20335
|
notification: NotificationSchema
|
|
20265
20336
|
}), SendResultSchema, {
|
|
@@ -20271,7 +20342,16 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
20271
20342
|
}), TestResultSchema, {
|
|
20272
20343
|
kind: "mutation",
|
|
20273
20344
|
auth: "admin"
|
|
20274
|
-
}), method(object({
|
|
20345
|
+
}), method(object({
|
|
20346
|
+
target: TargetSchema,
|
|
20347
|
+
/**
|
|
20348
|
+
* Duplicate flow: create a NEW target id while copying secrets from an
|
|
20349
|
+
* existing row. The UI never holds the stored token; blank / redacted
|
|
20350
|
+
* password fields are restored from this source (D634 still applies if
|
|
20351
|
+
* destinations diverge without a re-typed secret).
|
|
20352
|
+
*/
|
|
20353
|
+
cloneSecretsFrom: string().optional()
|
|
20354
|
+
}), TargetSchema, {
|
|
20275
20355
|
kind: "mutation",
|
|
20276
20356
|
auth: "admin"
|
|
20277
20357
|
}), method(object({ targetId: string() }), _void(), {
|
|
@@ -21234,6 +21314,15 @@ var AlarmArmModeSchema = _enum([
|
|
|
21234
21314
|
object({
|
|
21235
21315
|
/** Current lifecycle state. */
|
|
21236
21316
|
state: AlarmStateSchema,
|
|
21317
|
+
/**
|
|
21318
|
+
* The arm mode the machine belongs to under transitional words
|
|
21319
|
+
* (`arming` / `pending` / `triggered` / `disarming`). `null` when
|
|
21320
|
+
* disarmed or when a provider cannot name one. Exporters MUST prefer
|
|
21321
|
+
* this over an in-process memo — a HomeKit accessory that missed the
|
|
21322
|
+
* settled `armed_*` slice used to map `pending` to DISARMED and hide
|
|
21323
|
+
* an entry delay.
|
|
21324
|
+
*/
|
|
21325
|
+
targetMode: AlarmArmModeSchema.nullable().optional(),
|
|
21237
21326
|
/** Subset of arm modes the panel accepts. UI renders one button per
|
|
21238
21327
|
* mode in this list. */
|
|
21239
21328
|
availableModes: array(AlarmArmModeSchema),
|
|
@@ -22969,17 +23058,41 @@ var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
|
|
|
22969
23058
|
var NcAlarmDelaySecSchema = number().int().min(0).max(600);
|
|
22970
23059
|
var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
|
|
22971
23060
|
var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
|
|
23061
|
+
/**
|
|
23062
|
+
* What the panel does when a bounded triggered window ends.
|
|
23063
|
+
* - `rearmAfter` — return to the armed mode
|
|
23064
|
+
* - `disableAfter` — auto-disarm
|
|
23065
|
+
* - `doNothing` — stay triggered until a human disarms
|
|
23066
|
+
*/
|
|
23067
|
+
var NcAlarmPostTriggeredActionSchema = _enum([
|
|
23068
|
+
"rearmAfter",
|
|
23069
|
+
"disableAfter",
|
|
23070
|
+
"doNothing"
|
|
23071
|
+
]);
|
|
22972
23072
|
var NcAlarmModeDelaysListSchema = array(object({
|
|
22973
23073
|
mode: AlarmArmModeSchema,
|
|
22974
23074
|
exitDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
22975
23075
|
entryDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
22976
|
-
|
|
23076
|
+
/**
|
|
23077
|
+
* Duration of `triggered` before {@link postTriggeredAction}. Kept as the
|
|
23078
|
+
* historical field name so older clients still read/write a number.
|
|
23079
|
+
*/
|
|
23080
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.optional(),
|
|
23081
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
23082
|
+
/**
|
|
23083
|
+
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
23084
|
+
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
23085
|
+
*/
|
|
23086
|
+
schedule: NcScheduleSchema.optional()
|
|
22977
23087
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
22978
23088
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
22979
23089
|
mode: AlarmArmModeSchema,
|
|
22980
23090
|
exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
22981
23091
|
entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
22982
|
-
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
|
|
23092
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
23093
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
23094
|
+
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
23095
|
+
schedule: NcScheduleSchema.nullable().optional()
|
|
22983
23096
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
22984
23097
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
22985
23098
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -23051,12 +23164,18 @@ var NcAlarmSettingsSchema = object({
|
|
|
23051
23164
|
/** Grace period between a trigger and the alarm firing. 0 = immediate. */
|
|
23052
23165
|
entryDelaySec: NcAlarmDelaySecSchema,
|
|
23053
23166
|
/**
|
|
23054
|
-
* How long `triggered` lasts before
|
|
23055
|
-
*
|
|
23056
|
-
*
|
|
23167
|
+
* How long `triggered` lasts before {@link postTriggeredAction} runs.
|
|
23168
|
+
* Ignored when the action is `doNothing`. Historical name kept so older
|
|
23169
|
+
* clients still round-trip a number.
|
|
23057
23170
|
*/
|
|
23058
23171
|
triggeredDurationSec: NcAlarmTriggeredSecSchema,
|
|
23059
23172
|
/**
|
|
23173
|
+
* What happens when the triggered window ends. Absent on a blob older than
|
|
23174
|
+
* this field → derived from {@link triggeredDurationSec} (`>0` ⇒ rearmAfter,
|
|
23175
|
+
* else doNothing).
|
|
23176
|
+
*/
|
|
23177
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
23178
|
+
/**
|
|
23060
23179
|
* Deprecated by D630 — every transition is announced. Parsed, never read;
|
|
23061
23180
|
* remove after one release. Optional so an older admin's patch (which still
|
|
23062
23181
|
* sends it) parses rather than failing the whole save.
|
|
@@ -34198,7 +34317,7 @@ var LocalInterfaceSchema = object({
|
|
|
34198
34317
|
name: string(),
|
|
34199
34318
|
family: _enum(["IPv4", "IPv6"]),
|
|
34200
34319
|
address: string(),
|
|
34201
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
34320
|
+
/** CIDR shorthand (e.g. `192.168.x.x/24`). Empty when OS doesn't expose. */
|
|
34202
34321
|
cidr: string(),
|
|
34203
34322
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
34204
34323
|
netmask: string(),
|
|
@@ -34644,7 +34763,7 @@ var MeshPeerSchema = object({
|
|
|
34644
34763
|
tags: array(string()).readonly(),
|
|
34645
34764
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
34646
34765
|
exitNodeOption: boolean(),
|
|
34647
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
34766
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.x.x/24"]`). */
|
|
34648
34767
|
advertisedRoutes: array(string()).readonly(),
|
|
34649
34768
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
34650
34769
|
userLogin: string().nullable(),
|
|
@@ -44081,6 +44200,12 @@ Object.freeze({
|
|
|
44081
44200
|
addonId: null,
|
|
44082
44201
|
access: "view"
|
|
44083
44202
|
},
|
|
44203
|
+
"notificationOutput.getTarget": {
|
|
44204
|
+
capName: "notification-output",
|
|
44205
|
+
capScope: "system",
|
|
44206
|
+
addonId: null,
|
|
44207
|
+
access: "view"
|
|
44208
|
+
},
|
|
44084
44209
|
"notificationOutput.listTargetKinds": {
|
|
44085
44210
|
capName: "notification-output",
|
|
44086
44211
|
capScope: "system",
|
|
@@ -44093,6 +44218,12 @@ Object.freeze({
|
|
|
44093
44218
|
addonId: null,
|
|
44094
44219
|
access: "view"
|
|
44095
44220
|
},
|
|
44221
|
+
"notificationOutput.probeTargetConfig": {
|
|
44222
|
+
capName: "notification-output",
|
|
44223
|
+
capScope: "system",
|
|
44224
|
+
addonId: null,
|
|
44225
|
+
access: "create"
|
|
44226
|
+
},
|
|
44096
44227
|
"notificationOutput.send": {
|
|
44097
44228
|
capName: "notification-output",
|
|
44098
44229
|
capScope: "system",
|
|
@@ -47802,6 +47933,7 @@ Object.freeze({
|
|
|
47802
47933
|
access: "create"
|
|
47803
47934
|
}
|
|
47804
47935
|
});
|
|
47936
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
47805
47937
|
DeviceFeature.BatteryOperated;
|
|
47806
47938
|
/**
|
|
47807
47939
|
* The vocabulary, in the order a picker offers it.
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-DlgXwnqU.js");
|
|
6
6
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Sn as hydrateSchema, ct as evaluateZoneRules, dn as DeviceType, kt as motionDetectionCapability, mn as BaseAddon } from "../dist-
|
|
1
|
+
import { Sn as hydrateSchema, ct as evaluateZoneRules, dn as DeviceType, kt as motionDetectionCapability, mn as BaseAddon } from "../dist-CbRb0Zyj.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { an as Fmp4BoxSplitter, fn as errMsg, ln as isSoftwareDecode, on as buildFfmpegArgs } from "./dist-
|
|
1
|
+
import { an as Fmp4BoxSplitter, fn as errMsg, ln as isSoftwareDecode, on as buildFfmpegArgs } from "./dist-CbRb0Zyj.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-DlgXwnqU.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let node_fs = require("node:fs");
|
|
5
5
|
node_fs = require_chunk.__toESM(node_fs, 1);
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-DlgXwnqU.js");
|
|
7
|
+
const require_node = require("../node-s3wZnnJg.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-4nJVRIT6.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
10
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|