camstack 1.2.87 → 1.2.88
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/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BLJRLA7I.js";
|
|
5
5
|
import "./chunk-LMMQX4CK.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
@@ -38,7 +38,7 @@ async function runServe(args) {
|
|
|
38
38
|
...typeof values.data === "string" ? { data: values.data } : {}
|
|
39
39
|
};
|
|
40
40
|
Object.assign(process.env, buildServeEnv(opts));
|
|
41
|
-
await import("./launcher-
|
|
41
|
+
await import("./launcher-VABTDHRC.js");
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// src/commands/agent.ts
|
|
@@ -83,7 +83,7 @@ async function runAgent(args) {
|
|
|
83
83
|
...typeof values.port === "string" ? { port: values.port } : {}
|
|
84
84
|
};
|
|
85
85
|
Object.assign(process.env, buildAgentEnv(opts));
|
|
86
|
-
await import("./launcher-
|
|
86
|
+
await import("./launcher-VABTDHRC.js");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// src/commands/setup.ts
|
|
@@ -1130,7 +1130,7 @@ function isUnknown(_value) {
|
|
|
1130
1130
|
return true;
|
|
1131
1131
|
}
|
|
1132
1132
|
async function resolveServerInteractive(presetNamespace) {
|
|
1133
|
-
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-
|
|
1133
|
+
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-FHE2CTRJ.js");
|
|
1134
1134
|
if (presetNamespace) {
|
|
1135
1135
|
const spinner4 = clack.spinner();
|
|
1136
1136
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|
|
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
|
|
|
23633
23633
|
}
|
|
23634
23634
|
});
|
|
23635
23635
|
|
|
23636
|
-
// ../system/dist/dist-
|
|
23637
|
-
var
|
|
23638
|
-
"../system/dist/dist-
|
|
23636
|
+
// ../system/dist/dist-DGrXE5nL.js
|
|
23637
|
+
var require_dist_DGrXE5nL = __commonJS({
|
|
23638
|
+
"../system/dist/dist-DGrXE5nL.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -50286,16 +50286,36 @@ var require_dist_D8VIyu_0 = __commonJS({
|
|
|
50286
50286
|
"image",
|
|
50287
50287
|
"sensor"
|
|
50288
50288
|
];
|
|
50289
|
+
var CONTAINER_CHILD_ROLE_PRIORITY = [
|
|
50290
|
+
"contact-sensor",
|
|
50291
|
+
"motion-sensor",
|
|
50292
|
+
"occupancy-sensor",
|
|
50293
|
+
"smoke-sensor",
|
|
50294
|
+
"co-sensor",
|
|
50295
|
+
"gas-sensor",
|
|
50296
|
+
"leak-sensor",
|
|
50297
|
+
"vibration-sensor",
|
|
50298
|
+
"tamper-sensor",
|
|
50299
|
+
"sound-sensor",
|
|
50300
|
+
"binary-sensor",
|
|
50301
|
+
"binary-helper"
|
|
50302
|
+
];
|
|
50303
|
+
function roleRank(role) {
|
|
50304
|
+
if (role === void 0) return CONTAINER_CHILD_ROLE_PRIORITY.length;
|
|
50305
|
+
const i = CONTAINER_CHILD_ROLE_PRIORITY.indexOf(role);
|
|
50306
|
+
return i === -1 ? CONTAINER_CHILD_ROLE_PRIORITY.length : i;
|
|
50307
|
+
}
|
|
50289
50308
|
function rank(type) {
|
|
50290
50309
|
const i = CONTAINER_CHILD_PRIORITY.indexOf(type);
|
|
50291
50310
|
return i === -1 ? CONTAINER_CHILD_PRIORITY.length : i;
|
|
50292
50311
|
}
|
|
50293
|
-
function resolveContainerPrimaryChild(children, overrideEntityId) {
|
|
50312
|
+
function resolveContainerPrimaryChild(children, overrideEntityId, containerName) {
|
|
50294
50313
|
if (overrideEntityId !== void 0 && overrideEntityId !== null) {
|
|
50295
50314
|
const picked = children.find((c) => c.stableId === overrideEntityId) ?? children.find((c) => c.entityId !== void 0 && c.entityId === overrideEntityId);
|
|
50296
50315
|
if (picked !== void 0) return picked;
|
|
50297
50316
|
}
|
|
50298
|
-
|
|
50317
|
+
const namesake = (c) => containerName !== void 0 && containerName.length > 0 && c.name !== void 0 && c.name.toLowerCase() === containerName.toLowerCase() ? 0 : 1;
|
|
50318
|
+
return [...children].toSorted((a, b) => roleRank(a.role) - roleRank(b.role) || namesake(a) - namesake(b) || rank(a.type) - rank(b.type))[0] ?? null;
|
|
50299
50319
|
}
|
|
50300
50320
|
var AccessoryKind = {
|
|
50301
50321
|
Siren: DeviceRole.Siren,
|
|
@@ -60061,7 +60081,7 @@ var require_alerts_addon = __commonJS({
|
|
|
60061
60081
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60062
60082
|
});
|
|
60063
60083
|
require_chunk_Cek0wNdY();
|
|
60064
|
-
var require_dist10 =
|
|
60084
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
60065
60085
|
function selectExpired(alerts, cutoffMs) {
|
|
60066
60086
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
60067
60087
|
}
|
|
@@ -60880,7 +60900,7 @@ var require_console_logging = __commonJS({
|
|
|
60880
60900
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60881
60901
|
});
|
|
60882
60902
|
require_chunk_Cek0wNdY();
|
|
60883
|
-
var require_dist10 =
|
|
60903
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
60884
60904
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
60885
60905
|
var LEVEL_RANK = {
|
|
60886
60906
|
debug: 0,
|
|
@@ -60974,7 +60994,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
60974
60994
|
"use strict";
|
|
60975
60995
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
60976
60996
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
60977
|
-
var require_dist10 =
|
|
60997
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
60978
60998
|
var node_crypto = __require("crypto");
|
|
60979
60999
|
var node_fs_promises = __require("fs/promises");
|
|
60980
61000
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -61871,11 +61891,11 @@ var require_core_blocks = __commonJS({
|
|
|
61871
61891
|
}
|
|
61872
61892
|
});
|
|
61873
61893
|
|
|
61874
|
-
// ../system/dist/retired-settings-keys-
|
|
61875
|
-
var
|
|
61876
|
-
"../system/dist/retired-settings-keys-
|
|
61894
|
+
// ../system/dist/retired-settings-keys-BxUjEt2b.js
|
|
61895
|
+
var require_retired_settings_keys_BxUjEt2b = __commonJS({
|
|
61896
|
+
"../system/dist/retired-settings-keys-BxUjEt2b.js"(exports) {
|
|
61877
61897
|
"use strict";
|
|
61878
|
-
var require_dist10 =
|
|
61898
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
61879
61899
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
61880
61900
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
61881
61901
|
return raw === "" || raw === "hub";
|
|
@@ -64089,8 +64109,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
64089
64109
|
[Symbol.toStringTag]: { value: "Module" }
|
|
64090
64110
|
});
|
|
64091
64111
|
require_chunk_Cek0wNdY();
|
|
64092
|
-
var require_dist10 =
|
|
64093
|
-
var require_retired_settings_keys =
|
|
64112
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
64113
|
+
var require_retired_settings_keys = require_retired_settings_keys_BxUjEt2b();
|
|
64094
64114
|
var node_crypto = __require("crypto");
|
|
64095
64115
|
var _camstack_types_node = require_node();
|
|
64096
64116
|
var JOB_HISTORY = 20;
|
|
@@ -65736,8 +65756,10 @@ var require_device_manager_addon = __commonJS({
|
|
|
65736
65756
|
const primary = require_dist10.resolveContainerPrimaryChild((byParent.get(id) ?? []).map((c) => ({
|
|
65737
65757
|
id: c.id,
|
|
65738
65758
|
stableId: c.stableId,
|
|
65739
|
-
type: c.type
|
|
65740
|
-
|
|
65759
|
+
type: c.type,
|
|
65760
|
+
...c.role !== void 0 && c.role !== null ? { role: c.role } : {},
|
|
65761
|
+
...c.name !== void 0 ? { name: c.name } : {}
|
|
65762
|
+
})), byId.get(id)?.primaryChildEntityId, byId.get(id)?.name);
|
|
65741
65763
|
if (primary !== null) expandContainer(primary.id, byId, byParent, nextVisited, out);
|
|
65742
65764
|
}
|
|
65743
65765
|
function resolveLinkedDeviceIds(params) {
|
|
@@ -67243,6 +67265,16 @@ var require_device_manager_addon = __commonJS({
|
|
|
67243
67265
|
const { deviceId, primaryChildEntityId } = input;
|
|
67244
67266
|
await pctx.metaStore.withMetaWriteLock(async () => {
|
|
67245
67267
|
if (!await pctx.metaStore.resolvePersistedById(deviceId)) throw new Error(`[device-manager] setPrimaryChildEntityId: unknown device id=${deviceId}`);
|
|
67268
|
+
if (primaryChildEntityId !== null) {
|
|
67269
|
+
const children = await pctx.metaStore.rows.listByParent(deviceId);
|
|
67270
|
+
if (!children.some((child) => child.meta.stableId === primaryChildEntityId)) pctx.host.ctx.logger.warn("setPrimaryChildEntityId: pick matches no child \u2014 the container will keep its priority default", {
|
|
67271
|
+
tags: { deviceId },
|
|
67272
|
+
meta: {
|
|
67273
|
+
primaryChildEntityId,
|
|
67274
|
+
childStableIds: children.map((child) => child.meta.stableId).slice(0, 12)
|
|
67275
|
+
}
|
|
67276
|
+
});
|
|
67277
|
+
}
|
|
67246
67278
|
await pctx.metaStore.rows.patch(deviceId, { primaryChildEntityId });
|
|
67247
67279
|
});
|
|
67248
67280
|
pctx.host.ctx.eventBus.emit({
|
|
@@ -69362,7 +69394,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
69362
69394
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69363
69395
|
});
|
|
69364
69396
|
require_chunk_Cek0wNdY();
|
|
69365
|
-
var require_dist10 =
|
|
69397
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
69366
69398
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
69367
69399
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
69368
69400
|
var HubForwarderDestination = class {
|
|
@@ -69499,7 +69531,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
69499
69531
|
"use strict";
|
|
69500
69532
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
69501
69533
|
require_chunk_Cek0wNdY();
|
|
69502
|
-
var require_dist10 =
|
|
69534
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
69503
69535
|
var NO_DEVICES = "liveness:no-devices";
|
|
69504
69536
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
69505
69537
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -69689,7 +69721,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
69689
69721
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69690
69722
|
});
|
|
69691
69723
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
69692
|
-
var require_dist10 =
|
|
69724
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
69693
69725
|
var node_crypto = __require("crypto");
|
|
69694
69726
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
69695
69727
|
var crypto$1 = __require("crypto");
|
|
@@ -77502,7 +77534,7 @@ var require_loki_logging = __commonJS({
|
|
|
77502
77534
|
[Symbol.toStringTag]: { value: "Module" }
|
|
77503
77535
|
});
|
|
77504
77536
|
require_chunk_Cek0wNdY();
|
|
77505
|
-
var require_dist10 =
|
|
77537
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
77506
77538
|
function sanitizeLabelName(raw) {
|
|
77507
77539
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
77508
77540
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -78067,7 +78099,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
78067
78099
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78068
78100
|
});
|
|
78069
78101
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
78070
|
-
var require_dist10 =
|
|
78102
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
78071
78103
|
var node_fs_promises = __require("fs/promises");
|
|
78072
78104
|
var node_child_process = __require("child_process");
|
|
78073
78105
|
var node_util = __require("util");
|
|
@@ -80651,7 +80683,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
80651
80683
|
[Symbol.toStringTag]: { value: "Module" }
|
|
80652
80684
|
});
|
|
80653
80685
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
80654
|
-
var require_dist10 =
|
|
80686
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
80655
80687
|
var node_crypto = __require("crypto");
|
|
80656
80688
|
var node_fs_promises = __require("fs/promises");
|
|
80657
80689
|
var node_path = __require("path");
|
|
@@ -81767,8 +81799,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
81767
81799
|
[Symbol.toStringTag]: { value: "Module" }
|
|
81768
81800
|
});
|
|
81769
81801
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
81770
|
-
var require_dist10 =
|
|
81771
|
-
var require_retired_settings_keys =
|
|
81802
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
81803
|
+
var require_retired_settings_keys = require_retired_settings_keys_BxUjEt2b();
|
|
81772
81804
|
var node_crypto = __require("crypto");
|
|
81773
81805
|
var node_fs = __require("fs");
|
|
81774
81806
|
var node_module = __require("module");
|
|
@@ -84258,7 +84290,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
84258
84290
|
[Symbol.toStringTag]: { value: "Module" }
|
|
84259
84291
|
});
|
|
84260
84292
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
84261
|
-
var require_dist10 =
|
|
84293
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
84262
84294
|
var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
|
|
84263
84295
|
var zod = require_zod();
|
|
84264
84296
|
var node_crypto = __require("crypto");
|
|
@@ -87209,7 +87241,7 @@ var require_system_config_addon = __commonJS({
|
|
|
87209
87241
|
[Symbol.toStringTag]: { value: "Module" }
|
|
87210
87242
|
});
|
|
87211
87243
|
require_chunk_Cek0wNdY();
|
|
87212
|
-
var require_dist10 =
|
|
87244
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
87213
87245
|
var SECTION_TITLES = {
|
|
87214
87246
|
server: "Server",
|
|
87215
87247
|
auth: "Authentication"
|
|
@@ -105270,7 +105302,7 @@ var require_winston_logging = __commonJS({
|
|
|
105270
105302
|
[Symbol.toStringTag]: { value: "Module" }
|
|
105271
105303
|
});
|
|
105272
105304
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
105273
|
-
var require_dist10 =
|
|
105305
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
105274
105306
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
105275
105307
|
var node_path = __require("path");
|
|
105276
105308
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -117772,12 +117804,12 @@ var require_dist2 = __commonJS({
|
|
|
117772
117804
|
}
|
|
117773
117805
|
});
|
|
117774
117806
|
|
|
117775
|
-
// ../system/dist/manifest-system-deps-
|
|
117776
|
-
var
|
|
117777
|
-
"../system/dist/manifest-system-deps-
|
|
117807
|
+
// ../system/dist/manifest-system-deps-ezj0SKDM.js
|
|
117808
|
+
var require_manifest_system_deps_ezj0SKDM = __commonJS({
|
|
117809
|
+
"../system/dist/manifest-system-deps-ezj0SKDM.js"(exports) {
|
|
117778
117810
|
"use strict";
|
|
117779
117811
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
117780
|
-
|
|
117812
|
+
require_dist_DGrXE5nL();
|
|
117781
117813
|
require_hub_cap_forward_DmHNjbB0();
|
|
117782
117814
|
var node_crypto = __require("crypto");
|
|
117783
117815
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
@@ -129844,7 +129876,7 @@ var require_dist3 = __commonJS({
|
|
|
129844
129876
|
"use strict";
|
|
129845
129877
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
129846
129878
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
129847
|
-
var require_dist10 =
|
|
129879
|
+
var require_dist10 = require_dist_DGrXE5nL();
|
|
129848
129880
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
129849
129881
|
require_alerts();
|
|
129850
129882
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -129871,7 +129903,7 @@ var require_dist3 = __commonJS({
|
|
|
129871
129903
|
var require_builtins_winston_logging_index = require_winston_logging();
|
|
129872
129904
|
var require_file_data_plane = require_file_data_plane_DO8KbxCe();
|
|
129873
129905
|
var require_tls$1 = require_tls_BxQlomxd();
|
|
129874
|
-
var require_manifest_system_deps =
|
|
129906
|
+
var require_manifest_system_deps = require_manifest_system_deps_ezj0SKDM();
|
|
129875
129907
|
var require_resource_monitor = require_resource_monitor_CdnzxBLP();
|
|
129876
129908
|
var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
|
|
129877
129909
|
var zod = require_zod();
|
|
@@ -238555,16 +238587,36 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
238555
238587
|
"image",
|
|
238556
238588
|
"sensor"
|
|
238557
238589
|
];
|
|
238590
|
+
var CONTAINER_CHILD_ROLE_PRIORITY = [
|
|
238591
|
+
"contact-sensor",
|
|
238592
|
+
"motion-sensor",
|
|
238593
|
+
"occupancy-sensor",
|
|
238594
|
+
"smoke-sensor",
|
|
238595
|
+
"co-sensor",
|
|
238596
|
+
"gas-sensor",
|
|
238597
|
+
"leak-sensor",
|
|
238598
|
+
"vibration-sensor",
|
|
238599
|
+
"tamper-sensor",
|
|
238600
|
+
"sound-sensor",
|
|
238601
|
+
"binary-sensor",
|
|
238602
|
+
"binary-helper"
|
|
238603
|
+
];
|
|
238604
|
+
function roleRank(role) {
|
|
238605
|
+
if (role === void 0) return CONTAINER_CHILD_ROLE_PRIORITY.length;
|
|
238606
|
+
const i = CONTAINER_CHILD_ROLE_PRIORITY.indexOf(role);
|
|
238607
|
+
return i === -1 ? CONTAINER_CHILD_ROLE_PRIORITY.length : i;
|
|
238608
|
+
}
|
|
238558
238609
|
function rank(type) {
|
|
238559
238610
|
const i = CONTAINER_CHILD_PRIORITY.indexOf(type);
|
|
238560
238611
|
return i === -1 ? CONTAINER_CHILD_PRIORITY.length : i;
|
|
238561
238612
|
}
|
|
238562
|
-
function resolveContainerPrimaryChild(children, overrideEntityId) {
|
|
238613
|
+
function resolveContainerPrimaryChild(children, overrideEntityId, containerName) {
|
|
238563
238614
|
if (overrideEntityId !== void 0 && overrideEntityId !== null) {
|
|
238564
238615
|
const picked = children.find((c) => c.stableId === overrideEntityId) ?? children.find((c) => c.entityId !== void 0 && c.entityId === overrideEntityId);
|
|
238565
238616
|
if (picked !== void 0) return picked;
|
|
238566
238617
|
}
|
|
238567
|
-
|
|
238618
|
+
const namesake = (c) => containerName !== void 0 && containerName.length > 0 && c.name !== void 0 && c.name.toLowerCase() === containerName.toLowerCase() ? 0 : 1;
|
|
238619
|
+
return [...children].toSorted((a, b) => roleRank(a.role) - roleRank(b.role) || namesake(a) - namesake(b) || rank(a.type) - rank(b.type))[0] ?? null;
|
|
238568
238620
|
}
|
|
238569
238621
|
var AccessoryKind = {
|
|
238570
238622
|
Siren: require_sleep.DeviceRole.Siren,
|
package/package.json
CHANGED
|
File without changes
|