@camstack/addon-post-analysis 1.2.310 → 1.2.312
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/{clip-model-registry-xYrJkXdS.js → clip-model-registry-CRkjjUyj.js} +257 -18
- package/dist/{clip-model-registry-BROqj9pS.mjs → clip-model-registry-ivwvxxex.mjs} +210 -19
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-KF5Fk8sD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BocOElW2.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Ds6vT2FJ.mjs +26 -0
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B8qeS8Da.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B_KS96RA.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-B3xcTHUM.mjs → hostInit-CRloCh1h.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +413 -31
- package/dist/pipeline-analytics/index.mjs +413 -31
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DytyGNZ-.mjs +0 -26
|
@@ -941,7 +941,7 @@ var NUMBER_FORMAT_RANGES = {
|
|
|
941
941
|
float32: [-34028234663852886e22, 34028234663852886e22],
|
|
942
942
|
float64: [-Number.MAX_VALUE, Number.MAX_VALUE]
|
|
943
943
|
};
|
|
944
|
-
function pick(schema, mask) {
|
|
944
|
+
function pick$1(schema, mask) {
|
|
945
945
|
const currDef = schema._zod.def;
|
|
946
946
|
const checks = currDef.checks;
|
|
947
947
|
if (checks && checks.length > 0) throw new Error(".pick() cannot be used on object schemas containing refinements");
|
|
@@ -5011,7 +5011,7 @@ var ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => {
|
|
|
5011
5011
|
return merge(this, other);
|
|
5012
5012
|
},
|
|
5013
5013
|
pick(mask) {
|
|
5014
|
-
return pick(this, mask);
|
|
5014
|
+
return pick$1(this, mask);
|
|
5015
5015
|
},
|
|
5016
5016
|
omit(mask) {
|
|
5017
5017
|
return omit(this, mask);
|
|
@@ -15662,7 +15662,17 @@ var SiteZoneSchema = object({
|
|
|
15662
15662
|
var ProviderStatusSchema = object({
|
|
15663
15663
|
connected: boolean(),
|
|
15664
15664
|
deviceCount: number(),
|
|
15665
|
-
error: string().optional()
|
|
15665
|
+
error: string().optional(),
|
|
15666
|
+
/**
|
|
15667
|
+
* `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
|
|
15668
|
+
* — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
|
|
15669
|
+
* which every provider bundles, so only a provider BUILT from D696-amended
|
|
15670
|
+
* code says it. ABSENT means an older provider that may still write it (raw
|
|
15671
|
+
* VMD writes, a boot seed), and the orchestrator's provider gate keeps that
|
|
15672
|
+
* provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
|
|
15673
|
+
* — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
|
|
15674
|
+
*/
|
|
15675
|
+
motionSliceWriter: literal("orchestrator").optional()
|
|
15666
15676
|
});
|
|
15667
15677
|
object({
|
|
15668
15678
|
externalId: string(),
|
|
@@ -21758,6 +21768,31 @@ var NcSnoozeSuppressedSchema = object({
|
|
|
21758
21768
|
firstAt: number(),
|
|
21759
21769
|
lastAt: number()
|
|
21760
21770
|
});
|
|
21771
|
+
/** The bounds every alarm delay field carries — settings, per-mode overrides, both editors. */
|
|
21772
|
+
var NC_ALARM_DELAY_MAX_SEC = 600;
|
|
21773
|
+
var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
|
|
21774
|
+
var NcAlarmDelaySecSchema = number().int().min(0).max(600);
|
|
21775
|
+
var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
|
|
21776
|
+
var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
|
|
21777
|
+
var NcAlarmModeDelaysListSchema = array(object({
|
|
21778
|
+
mode: AlarmArmModeSchema,
|
|
21779
|
+
exitDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
21780
|
+
entryDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
21781
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.optional()
|
|
21782
|
+
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
21783
|
+
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
21784
|
+
mode: AlarmArmModeSchema,
|
|
21785
|
+
exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
21786
|
+
entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
21787
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
|
|
21788
|
+
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
21789
|
+
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
21790
|
+
var NcAlarmNonBlockingEditSchema = object({
|
|
21791
|
+
mode: AlarmArmModeSchema,
|
|
21792
|
+
deviceId: number().int().positive(),
|
|
21793
|
+
/** true = on the list (may be open, does not block); false = off the list (blocks). */
|
|
21794
|
+
nonBlocking: boolean()
|
|
21795
|
+
});
|
|
21761
21796
|
/**
|
|
21762
21797
|
* The per-mode lists, at most one per mode. Two lists for one mode have no
|
|
21763
21798
|
* meaning a reader could agree on (union? the last one?), so they are refused
|
|
@@ -21766,10 +21801,10 @@ var NcSnoozeSuppressedSchema = object({
|
|
|
21766
21801
|
var NcAlarmNonBlockingListSchema = array(object({
|
|
21767
21802
|
mode: AlarmArmModeSchema,
|
|
21768
21803
|
deviceIds: array(number().int()).max(200)
|
|
21769
|
-
})).max(8).refine(
|
|
21804
|
+
})).max(8).refine(uniqueModes, { message: "nonBlocking: at most one list per arm mode" });
|
|
21770
21805
|
/**
|
|
21771
|
-
* The three durations
|
|
21772
|
-
* transitions, and which openings each mode tolerates.
|
|
21806
|
+
* The three durations — global, and per mode since D697 — the panel's state
|
|
21807
|
+
* machine runs on, who hears about its transitions, and which openings each mode tolerates.
|
|
21773
21808
|
*
|
|
21774
21809
|
* They live on the NOTIFICATION-RULES cap, not on `alarm-panel`, on purpose:
|
|
21775
21810
|
* `alarm-panel` is `deviceNative` and its other provider mirrors somebody
|
|
@@ -21779,15 +21814,15 @@ var NcAlarmNonBlockingListSchema = array(object({
|
|
|
21779
21814
|
*/
|
|
21780
21815
|
var NcAlarmSettingsSchema = object({
|
|
21781
21816
|
/** Grace period between arming and the mode taking effect. 0 = immediate. */
|
|
21782
|
-
exitDelaySec:
|
|
21817
|
+
exitDelaySec: NcAlarmDelaySecSchema,
|
|
21783
21818
|
/** Grace period between a trigger and the alarm firing. 0 = immediate. */
|
|
21784
|
-
entryDelaySec:
|
|
21819
|
+
entryDelaySec: NcAlarmDelaySecSchema,
|
|
21785
21820
|
/**
|
|
21786
21821
|
* How long `triggered` lasts before the panel re-arms itself.
|
|
21787
21822
|
* **0 = until an operator disarms it** — the behaviour before this field
|
|
21788
21823
|
* existed, and therefore what an untouched install keeps doing.
|
|
21789
21824
|
*/
|
|
21790
|
-
triggeredDurationSec:
|
|
21825
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema,
|
|
21791
21826
|
/**
|
|
21792
21827
|
* Deprecated by D630 — every transition is announced. Parsed, never read;
|
|
21793
21828
|
* remove after one release. Optional so an older admin's patch (which still
|
|
@@ -21810,17 +21845,30 @@ var NcAlarmSettingsSchema = object({
|
|
|
21810
21845
|
* per mode is meaningful. Defaulted to `[]` so a blob stored before D630
|
|
21811
21846
|
* parses as "every opening blocks" — the behaviour it was written under.
|
|
21812
21847
|
*/
|
|
21813
|
-
nonBlocking: NcAlarmNonBlockingListSchema.default([])
|
|
21848
|
+
nonBlocking: NcAlarmNonBlockingListSchema.default([]),
|
|
21849
|
+
/**
|
|
21850
|
+
* Per arm mode, the delays that mode OVERRIDES (D697). A mode with no entry, or an entry
|
|
21851
|
+
* without a field, uses the global value above — so `[]`, the default, is exactly the
|
|
21852
|
+
* behaviour of a blob stored before this field existed. Read through `resolveModeDelays`.
|
|
21853
|
+
*/
|
|
21854
|
+
modeDelays: NcAlarmModeDelaysListSchema.default([])
|
|
21814
21855
|
});
|
|
21815
21856
|
/**
|
|
21816
21857
|
* Every field optional — a tab edits one control at a time.
|
|
21817
21858
|
*
|
|
21818
|
-
* `nonBlocking`
|
|
21819
|
-
* remove an inner `.default()`, so a patch that never
|
|
21820
|
-
* parse to `
|
|
21821
|
-
* (the same trap {@link NcRulePatchSchema} documents).
|
|
21859
|
+
* `nonBlocking` and `modeDelays` are re-declared WITHOUT their defaults:
|
|
21860
|
+
* `.partial()` does not remove an inner `.default()`, so a patch that never
|
|
21861
|
+
* named the field would parse to `[]` and wipe every mode's list on an
|
|
21862
|
+
* unrelated edit (the same trap {@link NcRulePatchSchema} documents). Here
|
|
21863
|
+
* `modeDelays` means EDITS, not the stored overrides.
|
|
21822
21864
|
*/
|
|
21823
|
-
var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({
|
|
21865
|
+
var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({
|
|
21866
|
+
nonBlocking: NcAlarmNonBlockingListSchema,
|
|
21867
|
+
/** Per-mode, per-field edits — NOT the whole list (see NcAlarmModeDelaysEditSchema). */
|
|
21868
|
+
modeDelays: NcAlarmModeDelaysEditListSchema,
|
|
21869
|
+
/** ONE membership change; the panel applies it to the list it holds at its turn. */
|
|
21870
|
+
nonBlockingEdit: NcAlarmNonBlockingEditSchema
|
|
21871
|
+
}).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" });
|
|
21824
21872
|
/**
|
|
21825
21873
|
* What one arm mode actually arms, DERIVED from the enabled rules gated on it.
|
|
21826
21874
|
* Never authored, never stored — see `alarm-mode-coverage.ts` for why a stored
|
|
@@ -21920,6 +21968,28 @@ var NcAlarmConfigSchema = object({
|
|
|
21920
21968
|
*/
|
|
21921
21969
|
live: NcAlarmLiveSchema.optional()
|
|
21922
21970
|
});
|
|
21971
|
+
var NcAlarmSensorReadingSchema = _enum([
|
|
21972
|
+
"open",
|
|
21973
|
+
"closed",
|
|
21974
|
+
"unknown",
|
|
21975
|
+
"not-opening"
|
|
21976
|
+
]);
|
|
21977
|
+
/** One device's state as the alarm reads it — the classifier the arm check uses. */
|
|
21978
|
+
var NcAlarmSensorStateSchema = object({
|
|
21979
|
+
deviceId: number().int().positive(),
|
|
21980
|
+
reading: NcAlarmSensorReadingSchema,
|
|
21981
|
+
/** The word as read (`open`, `closed`, `unlocked`, `stopped`, …); null when unknown / not an opening. */
|
|
21982
|
+
state: string().nullable(),
|
|
21983
|
+
/** Why `unknown`: the read failed, or the slice holds no word its cap defines (a placeholder included). */
|
|
21984
|
+
unknownWhy: _enum(["read-failed", "unknown-word"]).nullable(),
|
|
21985
|
+
/** The device manager's liveness as the centre mirrors it; null = not known. */
|
|
21986
|
+
online: boolean().nullable()
|
|
21987
|
+
});
|
|
21988
|
+
var NcAlarmSensorsInputSchema = object({ deviceIds: array(number().int().positive()).max(500) });
|
|
21989
|
+
var NcAlarmSensorsSchema = object({
|
|
21990
|
+
sensors: array(NcAlarmSensorStateSchema),
|
|
21991
|
+
readAt: number().int().nonnegative()
|
|
21992
|
+
});
|
|
21923
21993
|
/**
|
|
21924
21994
|
* The most seconds of footage any notification rule may ask a camera to retain.
|
|
21925
21995
|
*
|
|
@@ -22179,8 +22249,9 @@ var notificationRulesCapability = {
|
|
|
22179
22249
|
*/
|
|
22180
22250
|
getAlarmConfig: method(object({}), NcAlarmConfigSchema, { auth: "admin" }),
|
|
22181
22251
|
/**
|
|
22182
|
-
* Patch the settings (durations
|
|
22183
|
-
*
|
|
22252
|
+
* Patch the settings (durations — global and per mode —, recipients,
|
|
22253
|
+
* per-mode non-blocking lists or one membership edit; `announceArm` is
|
|
22254
|
+
* accepted and ignored — D630). Returns the WHOLE config,
|
|
22184
22255
|
* coverage and `live` included, so a
|
|
22185
22256
|
* client never has to guess what the server settled on — the panel clamps
|
|
22186
22257
|
* and normalises, and a form that re-rendered from its own input would
|
|
@@ -22189,7 +22260,15 @@ var notificationRulesCapability = {
|
|
|
22189
22260
|
setAlarmConfig: method(object({ patch: NcAlarmSettingsPatchSchema }), NcAlarmConfigSchema, {
|
|
22190
22261
|
kind: "mutation",
|
|
22191
22262
|
auth: "admin"
|
|
22192
|
-
})
|
|
22263
|
+
}),
|
|
22264
|
+
/**
|
|
22265
|
+
* The CURRENT state of each asked device as the alarm reads it (D697) — open, closed,
|
|
22266
|
+
* unknown (why) or not an opening, plus liveness. Classified by the same table the arm
|
|
22267
|
+
* check uses (`alarm-openings.ts`), so the editor and the arm can never disagree. The
|
|
22268
|
+
* caller names the ids (the household openings it already holds); at most
|
|
22269
|
+
* `NC_ALARM_SENSORS_MAX`.
|
|
22270
|
+
*/
|
|
22271
|
+
getAlarmSensors: method(NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, { auth: "admin" })
|
|
22193
22272
|
}
|
|
22194
22273
|
};
|
|
22195
22274
|
/**
|
|
@@ -47464,6 +47543,12 @@ Object.freeze({
|
|
|
47464
47543
|
addonId: null,
|
|
47465
47544
|
access: "view"
|
|
47466
47545
|
},
|
|
47546
|
+
"notificationRules.getAlarmSensors": {
|
|
47547
|
+
capName: "notification-rules",
|
|
47548
|
+
capScope: "system",
|
|
47549
|
+
addonId: null,
|
|
47550
|
+
access: "view"
|
|
47551
|
+
},
|
|
47467
47552
|
"notificationRules.getClipRetentionAsks": {
|
|
47468
47553
|
capName: "notification-rules",
|
|
47469
47554
|
capScope: "system",
|
|
@@ -51947,6 +52032,11 @@ Object.freeze({
|
|
|
51947
52032
|
form: "single",
|
|
51948
52033
|
optional: false
|
|
51949
52034
|
}],
|
|
52035
|
+
"notificationRules.getAlarmSensors": [{
|
|
52036
|
+
name: "deviceIds",
|
|
52037
|
+
form: "array",
|
|
52038
|
+
optional: false
|
|
52039
|
+
}],
|
|
51950
52040
|
"notificationRules.setDeviceMuted": [{
|
|
51951
52041
|
name: "deviceId",
|
|
51952
52042
|
form: "single",
|
|
@@ -53729,6 +53819,107 @@ function ruleBelongsToAlarm(rule) {
|
|
|
53729
53819
|
if ((rule.conditions.deviceState?.states ?? []).some((s) => s.trim().toLowerCase().startsWith(ARMED_WORD_PREFIX))) return true;
|
|
53730
53820
|
return (rule.onTrigger ?? []).some((sequence) => sequence.enabled && sequence.actions.some((step) => step.kind === "cap" && step.cap === ALARM_PANEL_CAP && step.method === ALARM_PANEL_TRIGGER_METHOD));
|
|
53731
53821
|
}
|
|
53822
|
+
var NC_ALARM_DELAY_FIELDS = [
|
|
53823
|
+
"exitDelaySec",
|
|
53824
|
+
"entryDelaySec",
|
|
53825
|
+
"triggeredDurationSec"
|
|
53826
|
+
];
|
|
53827
|
+
/** The mode's value when it overrides the field, else the global one. */
|
|
53828
|
+
function pick(override, global) {
|
|
53829
|
+
return override === void 0 ? {
|
|
53830
|
+
value: global,
|
|
53831
|
+
source: "default"
|
|
53832
|
+
} : {
|
|
53833
|
+
value: override,
|
|
53834
|
+
source: "mode"
|
|
53835
|
+
};
|
|
53836
|
+
}
|
|
53837
|
+
/** What `mode` actually runs on: its own overrides, the global value for every other field. */
|
|
53838
|
+
function resolveModeDelays(settings, mode) {
|
|
53839
|
+
const entry = (settings.modeDelays ?? []).find((e) => e.mode === mode);
|
|
53840
|
+
const exit = pick(entry?.exitDelaySec, settings.exitDelaySec);
|
|
53841
|
+
const entryDelay = pick(entry?.entryDelaySec, settings.entryDelaySec);
|
|
53842
|
+
const triggered = pick(entry?.triggeredDurationSec, settings.triggeredDurationSec);
|
|
53843
|
+
return {
|
|
53844
|
+
exitDelaySec: exit.value,
|
|
53845
|
+
entryDelaySec: entryDelay.value,
|
|
53846
|
+
triggeredDurationSec: triggered.value,
|
|
53847
|
+
source: {
|
|
53848
|
+
exitDelaySec: exit.source,
|
|
53849
|
+
entryDelaySec: entryDelay.source,
|
|
53850
|
+
triggeredDurationSec: triggered.source
|
|
53851
|
+
}
|
|
53852
|
+
};
|
|
53853
|
+
}
|
|
53854
|
+
/** One field of an entry after an edit: number sets, null clears, undefined keeps. */
|
|
53855
|
+
function edited(current, edit) {
|
|
53856
|
+
if (edit === void 0) return current;
|
|
53857
|
+
return edit === null ? void 0 : edit;
|
|
53858
|
+
}
|
|
53859
|
+
/**
|
|
53860
|
+
* Apply per-field edits to the stored overrides. Returns new arrays, never mutates the input;
|
|
53861
|
+
* an entry with no field left is dropped (the mode inherits everything again).
|
|
53862
|
+
*/
|
|
53863
|
+
function applyModeDelaysEdits(current, edits) {
|
|
53864
|
+
const out = current.map((e) => ({ ...e }));
|
|
53865
|
+
for (const edit of edits) {
|
|
53866
|
+
const at = out.findIndex((e) => e.mode === edit.mode);
|
|
53867
|
+
const base = at >= 0 ? out[at] ?? { mode: edit.mode } : { mode: edit.mode };
|
|
53868
|
+
const next = { mode: edit.mode };
|
|
53869
|
+
const exit = edited(base.exitDelaySec, edit.exitDelaySec);
|
|
53870
|
+
const entry = edited(base.entryDelaySec, edit.entryDelaySec);
|
|
53871
|
+
const triggered = edited(base.triggeredDurationSec, edit.triggeredDurationSec);
|
|
53872
|
+
if (exit !== void 0) next.exitDelaySec = exit;
|
|
53873
|
+
if (entry !== void 0) next.entryDelaySec = entry;
|
|
53874
|
+
if (triggered !== void 0) next.triggeredDurationSec = triggered;
|
|
53875
|
+
if (at >= 0) out[at] = next;
|
|
53876
|
+
else out.push(next);
|
|
53877
|
+
}
|
|
53878
|
+
return out.filter((e) => e.exitDelaySec !== void 0 || e.entryDelaySec !== void 0 || e.triggeredDurationSec !== void 0);
|
|
53879
|
+
}
|
|
53880
|
+
/**
|
|
53881
|
+
* Put ONE device on, or take it off, ONE mode's list. A no-op answers `changed: false`; an add
|
|
53882
|
+
* to a full list is REFUSED by reason (never silently dropped); an emptied list drops its entry.
|
|
53883
|
+
*/
|
|
53884
|
+
function applyNonBlockingEdit(lists, edit) {
|
|
53885
|
+
const copy = lists.map((l) => ({
|
|
53886
|
+
mode: l.mode,
|
|
53887
|
+
deviceIds: [...l.deviceIds]
|
|
53888
|
+
}));
|
|
53889
|
+
const at = copy.findIndex((l) => l.mode === edit.mode);
|
|
53890
|
+
const held = at >= 0 ? copy[at]?.deviceIds ?? [] : [];
|
|
53891
|
+
const present = held.includes(edit.deviceId);
|
|
53892
|
+
if (edit.nonBlocking === present) return {
|
|
53893
|
+
kind: "applied",
|
|
53894
|
+
lists: copy,
|
|
53895
|
+
changed: false
|
|
53896
|
+
};
|
|
53897
|
+
if (edit.nonBlocking) {
|
|
53898
|
+
if (held.length >= 200) return {
|
|
53899
|
+
kind: "refused",
|
|
53900
|
+
reason: "list-full",
|
|
53901
|
+
mode: edit.mode,
|
|
53902
|
+
max: 200
|
|
53903
|
+
};
|
|
53904
|
+
const next = {
|
|
53905
|
+
mode: edit.mode,
|
|
53906
|
+
deviceIds: [...held, edit.deviceId]
|
|
53907
|
+
};
|
|
53908
|
+
if (at >= 0) copy[at] = next;
|
|
53909
|
+
else copy.push(next);
|
|
53910
|
+
} else {
|
|
53911
|
+
const next = {
|
|
53912
|
+
mode: edit.mode,
|
|
53913
|
+
deviceIds: held.filter((id) => id !== edit.deviceId)
|
|
53914
|
+
};
|
|
53915
|
+
if (at >= 0) copy[at] = next;
|
|
53916
|
+
}
|
|
53917
|
+
return {
|
|
53918
|
+
kind: "applied",
|
|
53919
|
+
lists: copy.filter((l) => l.deviceIds.length > 0),
|
|
53920
|
+
changed: true
|
|
53921
|
+
};
|
|
53922
|
+
}
|
|
53732
53923
|
/**
|
|
53733
53924
|
* WHICH WAY A BOOLEAN SENSOR MOVED — read off the one slice a sensor event
|
|
53734
53925
|
* persists (D640 "a sensor rule fires on the raise, the clear, or both").
|
|
@@ -56464,12 +56655,30 @@ Object.defineProperty(exports, "MotionTriggeredBySchema", {
|
|
|
56464
56655
|
return MotionTriggeredBySchema;
|
|
56465
56656
|
}
|
|
56466
56657
|
});
|
|
56658
|
+
Object.defineProperty(exports, "NC_ALARM_DELAY_FIELDS", {
|
|
56659
|
+
enumerable: true,
|
|
56660
|
+
get: function() {
|
|
56661
|
+
return NC_ALARM_DELAY_FIELDS;
|
|
56662
|
+
}
|
|
56663
|
+
});
|
|
56664
|
+
Object.defineProperty(exports, "NC_ALARM_DELAY_MAX_SEC", {
|
|
56665
|
+
enumerable: true,
|
|
56666
|
+
get: function() {
|
|
56667
|
+
return NC_ALARM_DELAY_MAX_SEC;
|
|
56668
|
+
}
|
|
56669
|
+
});
|
|
56467
56670
|
Object.defineProperty(exports, "NC_ALARM_SYSTEM_EVENT_KINDS", {
|
|
56468
56671
|
enumerable: true,
|
|
56469
56672
|
get: function() {
|
|
56470
56673
|
return NC_ALARM_SYSTEM_EVENT_KINDS;
|
|
56471
56674
|
}
|
|
56472
56675
|
});
|
|
56676
|
+
Object.defineProperty(exports, "NC_ALARM_TRIGGERED_MAX_SEC", {
|
|
56677
|
+
enumerable: true,
|
|
56678
|
+
get: function() {
|
|
56679
|
+
return NC_ALARM_TRIGGERED_MAX_SEC;
|
|
56680
|
+
}
|
|
56681
|
+
});
|
|
56473
56682
|
Object.defineProperty(exports, "NC_AUDIO_CONFIRM_HITS_DEFAULT", {
|
|
56474
56683
|
enumerable: true,
|
|
56475
56684
|
get: function() {
|
|
@@ -56566,6 +56775,18 @@ Object.defineProperty(exports, "NcAlarmConfigSchema", {
|
|
|
56566
56775
|
return NcAlarmConfigSchema;
|
|
56567
56776
|
}
|
|
56568
56777
|
});
|
|
56778
|
+
Object.defineProperty(exports, "NcAlarmSensorsInputSchema", {
|
|
56779
|
+
enumerable: true,
|
|
56780
|
+
get: function() {
|
|
56781
|
+
return NcAlarmSensorsInputSchema;
|
|
56782
|
+
}
|
|
56783
|
+
});
|
|
56784
|
+
Object.defineProperty(exports, "NcAlarmSensorsSchema", {
|
|
56785
|
+
enumerable: true,
|
|
56786
|
+
get: function() {
|
|
56787
|
+
return NcAlarmSensorsSchema;
|
|
56788
|
+
}
|
|
56789
|
+
});
|
|
56569
56790
|
Object.defineProperty(exports, "NcAlarmSettingsPatchSchema", {
|
|
56570
56791
|
enumerable: true,
|
|
56571
56792
|
get: function() {
|
|
@@ -56884,6 +57105,18 @@ Object.defineProperty(exports, "alarmPanelCapability", {
|
|
|
56884
57105
|
return alarmPanelCapability;
|
|
56885
57106
|
}
|
|
56886
57107
|
});
|
|
57108
|
+
Object.defineProperty(exports, "applyModeDelaysEdits", {
|
|
57109
|
+
enumerable: true,
|
|
57110
|
+
get: function() {
|
|
57111
|
+
return applyModeDelaysEdits;
|
|
57112
|
+
}
|
|
57113
|
+
});
|
|
57114
|
+
Object.defineProperty(exports, "applyNonBlockingEdit", {
|
|
57115
|
+
enumerable: true,
|
|
57116
|
+
get: function() {
|
|
57117
|
+
return applyNonBlockingEdit;
|
|
57118
|
+
}
|
|
57119
|
+
});
|
|
56887
57120
|
Object.defineProperty(exports, "array", {
|
|
56888
57121
|
enumerable: true,
|
|
56889
57122
|
get: function() {
|
|
@@ -57268,6 +57501,12 @@ Object.defineProperty(exports, "resolveLocationMode", {
|
|
|
57268
57501
|
return resolveLocationMode;
|
|
57269
57502
|
}
|
|
57270
57503
|
});
|
|
57504
|
+
Object.defineProperty(exports, "resolveModeDelays", {
|
|
57505
|
+
enumerable: true,
|
|
57506
|
+
get: function() {
|
|
57507
|
+
return resolveModeDelays;
|
|
57508
|
+
}
|
|
57509
|
+
});
|
|
57271
57510
|
Object.defineProperty(exports, "resolvePoolMemoryPolicy", {
|
|
57272
57511
|
enumerable: true,
|
|
57273
57512
|
get: function() {
|