camstack 1.2.172 → 1.2.173

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.
@@ -14522,7 +14522,7 @@ function date4(params) {
14522
14522
  // ../../node_modules/zod/v4/classic/external.js
14523
14523
  config(en_default());
14524
14524
 
14525
- // ../types/dist/sleep-Bs3xPtSh.mjs
14525
+ // ../types/dist/sleep-GU_us3DG.mjs
14526
14526
  var AUDIO_CHUNK_FORMATS = [
14527
14527
  "f32le",
14528
14528
  "pcmu",
@@ -36957,13 +36957,24 @@ var cameraGridLayoutCapability = {
36957
36957
  deviceNative: true,
36958
36958
  mode: "singleton",
36959
36959
  deviceTypes: [DeviceType.Camera],
36960
- deviceConfig: { ui: {
36961
- kind: "widget",
36962
- widgetId: "host/camera-grid-layout",
36963
- tab: "streaming",
36964
- label: "Grid layout",
36965
- order: 20
36966
- } },
36960
+ /**
36961
+ * The section is built by the ADDON and returned from
36962
+ * `getDeviceSettingsContribution`, not derived by the framework from a
36963
+ * `deviceConfig.ui` block.
36964
+ *
36965
+ * Both mechanisms render the same widget. This one hands the addon two
36966
+ * things the framework-derived route cannot give it:
36967
+ *
36968
+ * - it chooses its own section, `tab`, `location` and `order`, the way any
36969
+ * other setting does, instead of receiving them from a cap declaration;
36970
+ * - it can DECLINE per device. A camera that is not a grid gets no section
36971
+ * at all, rather than a widget that renders its own "not a grid" state.
36972
+ *
36973
+ * `recording` is the precedent (`recorder/recording-device-settings.ts`): it
36974
+ * returns `null` for anything that is not a camera, so the Recording tab
36975
+ * never appears there.
36976
+ */
36977
+ exposesDeviceSettings: true,
36967
36978
  methods: {
36968
36979
  /**
36969
36980
  * The grid behind this device.
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-SLJH5H7K.js";
4
+ } from "./chunk-ZPXDNQSM.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-YO2KRQNJ.js");
41
+ await import("./launcher-PQBZA727.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-YO2KRQNJ.js");
86
+ await import("./launcher-PQBZA727.js");
87
87
  }
88
88
 
89
89
  // src/commands/setup.ts
@@ -1140,7 +1140,7 @@ function isUnknown(_value) {
1140
1140
  return true;
1141
1141
  }
1142
1142
  async function resolveServerInteractive(presetNamespace) {
1143
- const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-IHA2UVS3.js");
1143
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-44YYBEDA.js");
1144
1144
  if (presetNamespace) {
1145
1145
  const spinner4 = clack.spinner();
1146
1146
  spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
@@ -5,7 +5,7 @@ import {
5
5
  filterHubNodes,
6
6
  resolveHubFromDiscovered,
7
7
  runDiscover
8
- } from "./chunk-SLJH5H7K.js";
8
+ } from "./chunk-ZPXDNQSM.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,
@@ -23742,9 +23742,9 @@ var require_zod = __commonJS({
23742
23742
  }
23743
23743
  });
23744
23744
 
23745
- // ../system/dist/dist-B9y-3rme.js
23746
- var require_dist_B9y_3rme = __commonJS({
23747
- "../system/dist/dist-B9y-3rme.js"(exports) {
23745
+ // ../system/dist/dist-CnQsUe15.js
23746
+ var require_dist_CnQsUe15 = __commonJS({
23747
+ "../system/dist/dist-CnQsUe15.js"(exports) {
23748
23748
  "use strict";
23749
23749
  var zod = require_zod();
23750
23750
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -47634,13 +47634,24 @@ var require_dist_B9y_3rme = __commonJS({
47634
47634
  deviceNative: true,
47635
47635
  mode: "singleton",
47636
47636
  deviceTypes: [DeviceType.Camera],
47637
- deviceConfig: { ui: {
47638
- kind: "widget",
47639
- widgetId: "host/camera-grid-layout",
47640
- tab: "streaming",
47641
- label: "Grid layout",
47642
- order: 20
47643
- } },
47637
+ /**
47638
+ * The section is built by the ADDON and returned from
47639
+ * `getDeviceSettingsContribution`, not derived by the framework from a
47640
+ * `deviceConfig.ui` block.
47641
+ *
47642
+ * Both mechanisms render the same widget. This one hands the addon two
47643
+ * things the framework-derived route cannot give it:
47644
+ *
47645
+ * - it chooses its own section, `tab`, `location` and `order`, the way any
47646
+ * other setting does, instead of receiving them from a cap declaration;
47647
+ * - it can DECLINE per device. A camera that is not a grid gets no section
47648
+ * at all, rather than a widget that renders its own "not a grid" state.
47649
+ *
47650
+ * `recording` is the precedent (`recorder/recording-device-settings.ts`): it
47651
+ * returns `null` for anything that is not a camera, so the Recording tab
47652
+ * never appears there.
47653
+ */
47654
+ exposesDeviceSettings: true,
47644
47655
  methods: {
47645
47656
  /**
47646
47657
  * The grid behind this device.
@@ -63272,7 +63283,7 @@ var require_alerts_addon = __commonJS({
63272
63283
  [Symbol.toStringTag]: { value: "Module" }
63273
63284
  });
63274
63285
  require_chunk_Cek0wNdY();
63275
- var require_dist10 = require_dist_B9y_3rme();
63286
+ var require_dist10 = require_dist_CnQsUe15();
63276
63287
  function selectExpired(alerts, cutoffMs) {
63277
63288
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
63278
63289
  }
@@ -64091,7 +64102,7 @@ var require_console_logging = __commonJS({
64091
64102
  [Symbol.toStringTag]: { value: "Module" }
64092
64103
  });
64093
64104
  require_chunk_Cek0wNdY();
64094
- var require_dist10 = require_dist_B9y_3rme();
64105
+ var require_dist10 = require_dist_CnQsUe15();
64095
64106
  var require_formatter = require_formatter_DqAKDlvN();
64096
64107
  var LEVEL_RANK = {
64097
64108
  debug: 0,
@@ -64185,7 +64196,7 @@ var require_core_blocks_addon = __commonJS({
64185
64196
  "use strict";
64186
64197
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
64187
64198
  var require_chunk = require_chunk_Cek0wNdY();
64188
- var require_dist10 = require_dist_B9y_3rme();
64199
+ var require_dist10 = require_dist_CnQsUe15();
64189
64200
  var node_crypto = __require("crypto");
64190
64201
  var node_fs_promises = __require("fs/promises");
64191
64202
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -65082,11 +65093,11 @@ var require_core_blocks = __commonJS({
65082
65093
  }
65083
65094
  });
65084
65095
 
65085
- // ../system/dist/retired-settings-keys-CnMg7wvS.js
65086
- var require_retired_settings_keys_CnMg7wvS = __commonJS({
65087
- "../system/dist/retired-settings-keys-CnMg7wvS.js"(exports) {
65096
+ // ../system/dist/retired-settings-keys-DDU-VFTU.js
65097
+ var require_retired_settings_keys_DDU_VFTU = __commonJS({
65098
+ "../system/dist/retired-settings-keys-DDU-VFTU.js"(exports) {
65088
65099
  "use strict";
65089
- var require_dist10 = require_dist_B9y_3rme();
65100
+ var require_dist10 = require_dist_CnQsUe15();
65090
65101
  function settingsStoreIsAuthoritativeHere(env) {
65091
65102
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
65092
65103
  return raw === "" || raw === "hub";
@@ -67363,8 +67374,8 @@ var require_device_manager_addon = __commonJS({
67363
67374
  [Symbol.toStringTag]: { value: "Module" }
67364
67375
  });
67365
67376
  require_chunk_Cek0wNdY();
67366
- var require_dist10 = require_dist_B9y_3rme();
67367
- var require_retired_settings_keys = require_retired_settings_keys_CnMg7wvS();
67377
+ var require_dist10 = require_dist_CnQsUe15();
67378
+ var require_retired_settings_keys = require_retired_settings_keys_DDU_VFTU();
67368
67379
  var node_crypto = __require("crypto");
67369
67380
  var _camstack_types_node = require_node();
67370
67381
  var JOB_HISTORY = 20;
@@ -73372,7 +73383,7 @@ var require_hub_forwarder = __commonJS({
73372
73383
  [Symbol.toStringTag]: { value: "Module" }
73373
73384
  });
73374
73385
  require_chunk_Cek0wNdY();
73375
- var require_dist10 = require_dist_B9y_3rme();
73386
+ var require_dist10 = require_dist_CnQsUe15();
73376
73387
  var require_formatter = require_formatter_DqAKDlvN();
73377
73388
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
73378
73389
  var HubForwarderDestination = class {
@@ -73509,7 +73520,7 @@ var require_liveness_monitor_addon = __commonJS({
73509
73520
  "use strict";
73510
73521
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
73511
73522
  require_chunk_Cek0wNdY();
73512
- var require_dist10 = require_dist_B9y_3rme();
73523
+ var require_dist10 = require_dist_CnQsUe15();
73513
73524
  var NO_DEVICES = "liveness:no-devices";
73514
73525
  var ALL_OFFLINE = "liveness:all-devices-offline";
73515
73526
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -73705,7 +73716,7 @@ var require_local_auth_addon = __commonJS({
73705
73716
  [Symbol.toStringTag]: { value: "Module" }
73706
73717
  });
73707
73718
  var require_chunk = require_chunk_Cek0wNdY();
73708
- var require_dist10 = require_dist_B9y_3rme();
73719
+ var require_dist10 = require_dist_CnQsUe15();
73709
73720
  var node_crypto = __require("crypto");
73710
73721
  node_crypto = require_chunk.__toESM(node_crypto);
73711
73722
  var crypto$1 = __require("crypto");
@@ -81518,7 +81529,7 @@ var require_loki_logging = __commonJS({
81518
81529
  [Symbol.toStringTag]: { value: "Module" }
81519
81530
  });
81520
81531
  require_chunk_Cek0wNdY();
81521
- var require_dist10 = require_dist_B9y_3rme();
81532
+ var require_dist10 = require_dist_CnQsUe15();
81522
81533
  function sanitizeLabelName(raw) {
81523
81534
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
81524
81535
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -82105,7 +82116,7 @@ var require_native_metrics_addon = __commonJS({
82105
82116
  [Symbol.toStringTag]: { value: "Module" }
82106
82117
  });
82107
82118
  var require_chunk = require_chunk_Cek0wNdY();
82108
- var require_dist10 = require_dist_B9y_3rme();
82119
+ var require_dist10 = require_dist_CnQsUe15();
82109
82120
  var node_fs_promises = __require("fs/promises");
82110
82121
  var node_fs = __require("fs");
82111
82122
  node_fs = require_chunk.__toESM(node_fs);
@@ -84858,7 +84869,7 @@ var require_filesystem_storage_addon = __commonJS({
84858
84869
  [Symbol.toStringTag]: { value: "Module" }
84859
84870
  });
84860
84871
  var require_chunk = require_chunk_Cek0wNdY();
84861
- var require_dist10 = require_dist_B9y_3rme();
84872
+ var require_dist10 = require_dist_CnQsUe15();
84862
84873
  var node_crypto = __require("crypto");
84863
84874
  var node_fs_promises = __require("fs/promises");
84864
84875
  var node_path = __require("path");
@@ -86085,8 +86096,8 @@ var require_sqlite_settings_addon = __commonJS({
86085
86096
  [Symbol.toStringTag]: { value: "Module" }
86086
86097
  });
86087
86098
  var require_chunk = require_chunk_Cek0wNdY();
86088
- var require_dist10 = require_dist_B9y_3rme();
86089
- var require_retired_settings_keys = require_retired_settings_keys_CnMg7wvS();
86099
+ var require_dist10 = require_dist_CnQsUe15();
86100
+ var require_retired_settings_keys = require_retired_settings_keys_DDU_VFTU();
86090
86101
  var require_wal_checkpoint_policy = require_wal_checkpoint_policy_CCJZngds();
86091
86102
  var node_crypto = __require("crypto");
86092
86103
  var node_path = __require("path");
@@ -88873,7 +88884,7 @@ var require_storage_orchestrator_addon = __commonJS({
88873
88884
  [Symbol.toStringTag]: { value: "Module" }
88874
88885
  });
88875
88886
  var require_chunk = require_chunk_Cek0wNdY();
88876
- var require_dist10 = require_dist_B9y_3rme();
88887
+ var require_dist10 = require_dist_CnQsUe15();
88877
88888
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
88878
88889
  var zod = require_zod();
88879
88890
  var node_crypto = __require("crypto");
@@ -92600,7 +92611,7 @@ var require_system_config_addon = __commonJS({
92600
92611
  [Symbol.toStringTag]: { value: "Module" }
92601
92612
  });
92602
92613
  require_chunk_Cek0wNdY();
92603
- var require_dist10 = require_dist_B9y_3rme();
92614
+ var require_dist10 = require_dist_CnQsUe15();
92604
92615
  var SECTION_TITLES = {
92605
92616
  server: "Server",
92606
92617
  auth: "Authentication"
@@ -110661,7 +110672,7 @@ var require_winston_logging = __commonJS({
110661
110672
  [Symbol.toStringTag]: { value: "Module" }
110662
110673
  });
110663
110674
  var require_chunk = require_chunk_Cek0wNdY();
110664
- var require_dist10 = require_dist_B9y_3rme();
110675
+ var require_dist10 = require_dist_CnQsUe15();
110665
110676
  var require_formatter = require_formatter_DqAKDlvN();
110666
110677
  var node_path = __require("path");
110667
110678
  node_path = require_chunk.__toESM(node_path);
@@ -112699,9 +112710,9 @@ var require_event_category_BVfsrBYA = __commonJS({
112699
112710
  }
112700
112711
  });
112701
112712
 
112702
- // ../types/dist/sleep-OPlow2a9.js
112703
- var require_sleep_OPlow2a9 = __commonJS({
112704
- "../types/dist/sleep-OPlow2a9.js"(exports) {
112713
+ // ../types/dist/sleep-VlZxDyXq.js
112714
+ var require_sleep_VlZxDyXq = __commonJS({
112715
+ "../types/dist/sleep-VlZxDyXq.js"(exports) {
112705
112716
  "use strict";
112706
112717
  var require_event_category = require_event_category_BVfsrBYA();
112707
112718
  var zod = require_zod();
@@ -115291,7 +115302,10 @@ var require_sleep_OPlow2a9 = __commonJS({
115291
115302
  },
115292
115303
  cameraGridLayout: {
115293
115304
  getLayout: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "getLayout", "query", input),
115294
- saveLayout: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "saveLayout", "mutation", input)
115305
+ saveLayout: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "saveLayout", "mutation", input),
115306
+ getDeviceSettingsContribution: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "getDeviceSettingsContribution", "query", input),
115307
+ getDeviceLiveContribution: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "getDeviceLiveContribution", "query", input),
115308
+ applyDeviceSettingsPatch: (input) => dispatch("camera-grid-layout", "cameraGridLayout", "applyDeviceSettingsPatch", "mutation", input)
115295
115309
  },
115296
115310
  cameraStreams: {
115297
115311
  getCameraStreams: (input) => dispatch("camera-streams", "cameraStreams", "getCameraStreams", "query", input),
@@ -116612,7 +116626,7 @@ var require_addon = __commonJS({
116612
116626
  "../types/dist/addon.js"(exports) {
116613
116627
  "use strict";
116614
116628
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
116615
- var require_sleep = require_sleep_OPlow2a9();
116629
+ var require_sleep = require_sleep_VlZxDyXq();
116616
116630
  var require_event_category = require_event_category_BVfsrBYA();
116617
116631
  var require_err_msg = require_err_msg_COpsHMw2();
116618
116632
  var CAP_INPUT_DEFAULTS = Object.freeze({
@@ -136938,7 +136952,7 @@ var require_dist3 = __commonJS({
136938
136952
  "use strict";
136939
136953
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
136940
136954
  var require_chunk = require_chunk_Cek0wNdY();
136941
- var require_dist10 = require_dist_B9y_3rme();
136955
+ var require_dist10 = require_dist_CnQsUe15();
136942
136956
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
136943
136957
  require_alerts();
136944
136958
  var require_formatter = require_formatter_DqAKDlvN();
@@ -218102,7 +218116,7 @@ var require_dist4 = __commonJS({
218102
218116
  "../types/dist/index.js"(exports) {
218103
218117
  "use strict";
218104
218118
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
218105
- var require_sleep = require_sleep_OPlow2a9();
218119
+ var require_sleep = require_sleep_VlZxDyXq();
218106
218120
  var require_event_category = require_event_category_BVfsrBYA();
218107
218121
  var require_canonical_hash = require_canonical_hash_CZ2JqJc3();
218108
218122
  var require_enums2 = require_enums();
@@ -243042,13 +243056,24 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
243042
243056
  deviceNative: true,
243043
243057
  mode: "singleton",
243044
243058
  deviceTypes: [require_sleep.DeviceType.Camera],
243045
- deviceConfig: { ui: {
243046
- kind: "widget",
243047
- widgetId: "host/camera-grid-layout",
243048
- tab: "streaming",
243049
- label: "Grid layout",
243050
- order: 20
243051
- } },
243059
+ /**
243060
+ * The section is built by the ADDON and returned from
243061
+ * `getDeviceSettingsContribution`, not derived by the framework from a
243062
+ * `deviceConfig.ui` block.
243063
+ *
243064
+ * Both mechanisms render the same widget. This one hands the addon two
243065
+ * things the framework-derived route cannot give it:
243066
+ *
243067
+ * - it chooses its own section, `tab`, `location` and `order`, the way any
243068
+ * other setting does, instead of receiving them from a cap declaration;
243069
+ * - it can DECLINE per device. A camera that is not a grid gets no section
243070
+ * at all, rather than a widget that renders its own "not a grid" state.
243071
+ *
243072
+ * `recording` is the precedent (`recorder/recording-device-settings.ts`): it
243073
+ * returns `null` for anything that is not a camera, so the Recording tab
243074
+ * never appears there.
243075
+ */
243076
+ exposesDeviceSettings: true,
243052
243077
  methods: {
243053
243078
  /**
243054
243079
  * The grid behind this device.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.172",
3
+ "version": "1.2.173",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",