camstack 1.2.165 → 1.2.167

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.
@@ -19197,7 +19197,7 @@ var streamBrokerCapability = {
19197
19197
  * - the signal is ENABLED for this camera (the operator's per-camera
19198
19198
  * choice — a camera may declare a signal the operator does not want
19199
19199
  * waking anything), and
19200
- * - a consumer is actually attached and waiting on the prestream. Waking
19200
+ * - a consumer is actually attached and waiting on the sentry. Waking
19201
19201
  * a camera nobody is watching is the one thing a battery camera must
19202
19202
  * never do, and a signal arriving with no consumer is exactly that.
19203
19203
  *
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runDiscover
4
- } from "./chunk-QT7LGBTP.js";
4
+ } from "./chunk-MXBN3QZ5.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-FGWCDMKJ.js");
41
+ await import("./launcher-AYZZUJZ6.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-FGWCDMKJ.js");
86
+ await import("./launcher-AYZZUJZ6.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-NGNF47ZY.js");
1143
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-7R72RWAY.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-QT7LGBTP.js";
8
+ } from "./chunk-MXBN3QZ5.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,
@@ -6434,6 +6434,9 @@ var require_first_boot_addon_plan = __commonJS({
6434
6434
  const target = d.action === "install-npm" ? "@latest" : "";
6435
6435
  lines.push(` ${d.pkg}${target} \u2014 ${d.action}: ${d.reason}`);
6436
6436
  }
6437
+ if (plan.decisions.length > 0 && plan.decisions.every((d) => d.closureVersion === null)) {
6438
+ lines.push(` the closure carries NO version for any of the ${plan.decisions.length} package(s) \u2014 either this is a dev layout, or the closure path does not resolve (it is <root>/node_modules, NOT <server>/node_modules; see closure-node-modules.ts)`);
6439
+ }
6437
6440
  if (plan.twoVersions.length > 0) {
6438
6441
  lines.push(` two versions on this node (installed vs this closure's own copy): ${plan.twoVersions.join(", ")} \u2014 INFO: the installed copy is the one that runs`);
6439
6442
  }
@@ -6501,6 +6504,56 @@ var require_addon_realign_plan = __commonJS({
6501
6504
  }
6502
6505
  });
6503
6506
 
6507
+ // ../../server/backend/dist/closure-node-modules.js
6508
+ var require_closure_node_modules = __commonJS({
6509
+ "../../server/backend/dist/closure-node-modules.js"(exports) {
6510
+ "use strict";
6511
+ var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
6512
+ if (k2 === void 0) k2 = k;
6513
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6514
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6515
+ desc = { enumerable: true, get: function() {
6516
+ return m[k];
6517
+ } };
6518
+ }
6519
+ Object.defineProperty(o, k2, desc);
6520
+ }) : (function(o, m, k, k2) {
6521
+ if (k2 === void 0) k2 = k;
6522
+ o[k2] = m[k];
6523
+ }));
6524
+ var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
6525
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
6526
+ }) : function(o, v) {
6527
+ o["default"] = v;
6528
+ });
6529
+ var __importStar = exports && exports.__importStar || /* @__PURE__ */ (function() {
6530
+ var ownKeys = function(o) {
6531
+ ownKeys = Object.getOwnPropertyNames || function(o2) {
6532
+ var ar = [];
6533
+ for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k;
6534
+ return ar;
6535
+ };
6536
+ return ownKeys(o);
6537
+ };
6538
+ return function(mod) {
6539
+ if (mod && mod.__esModule) return mod;
6540
+ var result = {};
6541
+ if (mod != null) {
6542
+ for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
6543
+ }
6544
+ __setModuleDefault(result, mod);
6545
+ return result;
6546
+ };
6547
+ })();
6548
+ Object.defineProperty(exports, "__esModule", { value: true });
6549
+ exports.resolveClosureNodeModules = resolveClosureNodeModules;
6550
+ var path = __importStar(__require("path"));
6551
+ function resolveClosureNodeModules(serverDistDir) {
6552
+ return path.resolve(serverDistDir, "..", "..", "..");
6553
+ }
6554
+ }
6555
+ });
6556
+
6504
6557
  // ../../server/backend/dist/framework-nodepath.js
6505
6558
  var require_framework_nodepath = __commonJS({
6506
6559
  "../../server/backend/dist/framework-nodepath.js"(exports) {
@@ -23689,9 +23742,9 @@ var require_zod = __commonJS({
23689
23742
  }
23690
23743
  });
23691
23744
 
23692
- // ../system/dist/dist-CpXBoZOv.js
23693
- var require_dist_CpXBoZOv = __commonJS({
23694
- "../system/dist/dist-CpXBoZOv.js"(exports) {
23745
+ // ../system/dist/dist-DluLUTzR.js
23746
+ var require_dist_DluLUTzR = __commonJS({
23747
+ "../system/dist/dist-DluLUTzR.js"(exports) {
23695
23748
  "use strict";
23696
23749
  var zod = require_zod();
23697
23750
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -29912,7 +29965,7 @@ var require_dist_CpXBoZOv = __commonJS({
29912
29965
  * - the signal is ENABLED for this camera (the operator's per-camera
29913
29966
  * choice — a camera may declare a signal the operator does not want
29914
29967
  * waking anything), and
29915
- * - a consumer is actually attached and waiting on the prestream. Waking
29968
+ * - a consumer is actually attached and waiting on the sentry. Waking
29916
29969
  * a camera nobody is watching is the one thing a battery camera must
29917
29970
  * never do, and a signal arriving with no consumer is exactly that.
29918
29971
  *
@@ -62913,7 +62966,7 @@ var require_alerts_addon = __commonJS({
62913
62966
  [Symbol.toStringTag]: { value: "Module" }
62914
62967
  });
62915
62968
  require_chunk_Cek0wNdY();
62916
- var require_dist10 = require_dist_CpXBoZOv();
62969
+ var require_dist10 = require_dist_DluLUTzR();
62917
62970
  function selectExpired(alerts, cutoffMs) {
62918
62971
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
62919
62972
  }
@@ -63732,7 +63785,7 @@ var require_console_logging = __commonJS({
63732
63785
  [Symbol.toStringTag]: { value: "Module" }
63733
63786
  });
63734
63787
  require_chunk_Cek0wNdY();
63735
- var require_dist10 = require_dist_CpXBoZOv();
63788
+ var require_dist10 = require_dist_DluLUTzR();
63736
63789
  var require_formatter = require_formatter_DqAKDlvN();
63737
63790
  var LEVEL_RANK = {
63738
63791
  debug: 0,
@@ -63826,7 +63879,7 @@ var require_core_blocks_addon = __commonJS({
63826
63879
  "use strict";
63827
63880
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
63828
63881
  var require_chunk = require_chunk_Cek0wNdY();
63829
- var require_dist10 = require_dist_CpXBoZOv();
63882
+ var require_dist10 = require_dist_DluLUTzR();
63830
63883
  var node_crypto = __require("crypto");
63831
63884
  var node_fs_promises = __require("fs/promises");
63832
63885
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -64723,11 +64776,11 @@ var require_core_blocks = __commonJS({
64723
64776
  }
64724
64777
  });
64725
64778
 
64726
- // ../system/dist/retired-settings-keys-1sEBolVU.js
64727
- var require_retired_settings_keys_1sEBolVU = __commonJS({
64728
- "../system/dist/retired-settings-keys-1sEBolVU.js"(exports) {
64779
+ // ../system/dist/retired-settings-keys-VcrnwKN0.js
64780
+ var require_retired_settings_keys_VcrnwKN0 = __commonJS({
64781
+ "../system/dist/retired-settings-keys-VcrnwKN0.js"(exports) {
64729
64782
  "use strict";
64730
- var require_dist10 = require_dist_CpXBoZOv();
64783
+ var require_dist10 = require_dist_DluLUTzR();
64731
64784
  function settingsStoreIsAuthoritativeHere(env) {
64732
64785
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
64733
64786
  return raw === "" || raw === "hub";
@@ -66964,8 +67017,8 @@ var require_device_manager_addon = __commonJS({
66964
67017
  [Symbol.toStringTag]: { value: "Module" }
66965
67018
  });
66966
67019
  require_chunk_Cek0wNdY();
66967
- var require_dist10 = require_dist_CpXBoZOv();
66968
- var require_retired_settings_keys = require_retired_settings_keys_1sEBolVU();
67020
+ var require_dist10 = require_dist_DluLUTzR();
67021
+ var require_retired_settings_keys = require_retired_settings_keys_VcrnwKN0();
66969
67022
  var node_crypto = __require("crypto");
66970
67023
  var _camstack_types_node = require_node();
66971
67024
  var JOB_HISTORY = 20;
@@ -72973,7 +73026,7 @@ var require_hub_forwarder = __commonJS({
72973
73026
  [Symbol.toStringTag]: { value: "Module" }
72974
73027
  });
72975
73028
  require_chunk_Cek0wNdY();
72976
- var require_dist10 = require_dist_CpXBoZOv();
73029
+ var require_dist10 = require_dist_DluLUTzR();
72977
73030
  var require_formatter = require_formatter_DqAKDlvN();
72978
73031
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
72979
73032
  var HubForwarderDestination = class {
@@ -73110,7 +73163,7 @@ var require_liveness_monitor_addon = __commonJS({
73110
73163
  "use strict";
73111
73164
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
73112
73165
  require_chunk_Cek0wNdY();
73113
- var require_dist10 = require_dist_CpXBoZOv();
73166
+ var require_dist10 = require_dist_DluLUTzR();
73114
73167
  var NO_DEVICES = "liveness:no-devices";
73115
73168
  var ALL_OFFLINE = "liveness:all-devices-offline";
73116
73169
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -73306,7 +73359,7 @@ var require_local_auth_addon = __commonJS({
73306
73359
  [Symbol.toStringTag]: { value: "Module" }
73307
73360
  });
73308
73361
  var require_chunk = require_chunk_Cek0wNdY();
73309
- var require_dist10 = require_dist_CpXBoZOv();
73362
+ var require_dist10 = require_dist_DluLUTzR();
73310
73363
  var node_crypto = __require("crypto");
73311
73364
  node_crypto = require_chunk.__toESM(node_crypto);
73312
73365
  var crypto$1 = __require("crypto");
@@ -81119,7 +81172,7 @@ var require_loki_logging = __commonJS({
81119
81172
  [Symbol.toStringTag]: { value: "Module" }
81120
81173
  });
81121
81174
  require_chunk_Cek0wNdY();
81122
- var require_dist10 = require_dist_CpXBoZOv();
81175
+ var require_dist10 = require_dist_DluLUTzR();
81123
81176
  function sanitizeLabelName(raw) {
81124
81177
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
81125
81178
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -81706,7 +81759,7 @@ var require_native_metrics_addon = __commonJS({
81706
81759
  [Symbol.toStringTag]: { value: "Module" }
81707
81760
  });
81708
81761
  var require_chunk = require_chunk_Cek0wNdY();
81709
- var require_dist10 = require_dist_CpXBoZOv();
81762
+ var require_dist10 = require_dist_DluLUTzR();
81710
81763
  var node_fs_promises = __require("fs/promises");
81711
81764
  var node_fs = __require("fs");
81712
81765
  node_fs = require_chunk.__toESM(node_fs);
@@ -84459,7 +84512,7 @@ var require_filesystem_storage_addon = __commonJS({
84459
84512
  [Symbol.toStringTag]: { value: "Module" }
84460
84513
  });
84461
84514
  var require_chunk = require_chunk_Cek0wNdY();
84462
- var require_dist10 = require_dist_CpXBoZOv();
84515
+ var require_dist10 = require_dist_DluLUTzR();
84463
84516
  var node_crypto = __require("crypto");
84464
84517
  var node_fs_promises = __require("fs/promises");
84465
84518
  var node_path = __require("path");
@@ -85686,8 +85739,8 @@ var require_sqlite_settings_addon = __commonJS({
85686
85739
  [Symbol.toStringTag]: { value: "Module" }
85687
85740
  });
85688
85741
  var require_chunk = require_chunk_Cek0wNdY();
85689
- var require_dist10 = require_dist_CpXBoZOv();
85690
- var require_retired_settings_keys = require_retired_settings_keys_1sEBolVU();
85742
+ var require_dist10 = require_dist_DluLUTzR();
85743
+ var require_retired_settings_keys = require_retired_settings_keys_VcrnwKN0();
85691
85744
  var require_wal_checkpoint_policy = require_wal_checkpoint_policy_CCJZngds();
85692
85745
  var node_crypto = __require("crypto");
85693
85746
  var node_path = __require("path");
@@ -88474,7 +88527,7 @@ var require_storage_orchestrator_addon = __commonJS({
88474
88527
  [Symbol.toStringTag]: { value: "Module" }
88475
88528
  });
88476
88529
  var require_chunk = require_chunk_Cek0wNdY();
88477
- var require_dist10 = require_dist_CpXBoZOv();
88530
+ var require_dist10 = require_dist_DluLUTzR();
88478
88531
  var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
88479
88532
  var zod = require_zod();
88480
88533
  var node_crypto = __require("crypto");
@@ -92201,7 +92254,7 @@ var require_system_config_addon = __commonJS({
92201
92254
  [Symbol.toStringTag]: { value: "Module" }
92202
92255
  });
92203
92256
  require_chunk_Cek0wNdY();
92204
- var require_dist10 = require_dist_CpXBoZOv();
92257
+ var require_dist10 = require_dist_DluLUTzR();
92205
92258
  var SECTION_TITLES = {
92206
92259
  server: "Server",
92207
92260
  auth: "Authentication"
@@ -110262,7 +110315,7 @@ var require_winston_logging = __commonJS({
110262
110315
  [Symbol.toStringTag]: { value: "Module" }
110263
110316
  });
110264
110317
  var require_chunk = require_chunk_Cek0wNdY();
110265
- var require_dist10 = require_dist_CpXBoZOv();
110318
+ var require_dist10 = require_dist_DluLUTzR();
110266
110319
  var require_formatter = require_formatter_DqAKDlvN();
110267
110320
  var node_path = __require("path");
110268
110321
  node_path = require_chunk.__toESM(node_path);
@@ -136529,7 +136582,7 @@ var require_dist3 = __commonJS({
136529
136582
  "use strict";
136530
136583
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
136531
136584
  var require_chunk = require_chunk_Cek0wNdY();
136532
- var require_dist10 = require_dist_CpXBoZOv();
136585
+ var require_dist10 = require_dist_DluLUTzR();
136533
136586
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
136534
136587
  require_alerts();
136535
136588
  var require_formatter = require_formatter_DqAKDlvN();
@@ -223815,7 +223868,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
223815
223868
  * - the signal is ENABLED for this camera (the operator's per-camera
223816
223869
  * choice — a camera may declare a signal the operator does not want
223817
223870
  * waking anything), and
223818
- * - a consumer is actually attached and waiting on the prestream. Waking
223871
+ * - a consumer is actually attached and waiting on the sentry. Waking
223819
223872
  * a camera nobody is watching is the one thing a battery camera must
223820
223873
  * never do, and a signal arriving with no consumer is exactly that.
223821
223874
  *
@@ -439978,6 +440031,7 @@ var require_launcher = __commonJS({
439978
440031
  var bootstrap_packages_js_1 = require_bootstrap_packages();
439979
440032
  var first_boot_addon_plan_js_1 = require_first_boot_addon_plan();
439980
440033
  var addon_realign_plan_js_1 = require_addon_realign_plan();
440034
+ var closure_node_modules_js_1 = require_closure_node_modules();
439981
440035
  var framework_nodepath_js_1 = require_framework_nodepath();
439982
440036
  var package_inventory_js_1 = require_package_inventory();
439983
440037
  var ARCHIVE_MANIFEST_NAME = ".camstack-backup-manifest.json";
@@ -440159,7 +440213,7 @@ var require_launcher = __commonJS({
440159
440213
  const bootstrapRequired = readBootstrapRequiredAddons(dataDir, bootstrapSchema) ?? roleDefaultBootstrap;
440160
440214
  console.log(`[launcher] bootstrap (${role}): ${bootstrapRequired.length} required package(s)`);
440161
440215
  try {
440162
- const closureNodeModules = path.resolve(__dirname, "..", "node_modules");
440216
+ const closureNodeModules = (0, closure_node_modules_js_1.resolveClosureNodeModules)(__dirname);
440163
440217
  const plan = (0, first_boot_addon_plan_js_1.planFirstBootAddons)({
440164
440218
  required: bootstrapRequired,
440165
440219
  installed: readInstalledAddonVersions(addonsDir, bootstrapRequired),
@@ -440183,7 +440237,7 @@ var require_launcher = __commonJS({
440183
440237
  }
440184
440238
  await installer.ensureRequiredPackages(bootstrapRequired);
440185
440239
  try {
440186
- const closureNodeModules = path.resolve(__dirname, "..", "node_modules");
440240
+ const closureNodeModules = (0, closure_node_modules_js_1.resolveClosureNodeModules)(__dirname);
440187
440241
  const decisions = (0, addon_realign_plan_js_1.planAddonRealignment)(bootstrapRequired.flatMap((pkg) => {
440188
440242
  const installedVersion = readInstalledAddonVersions(addonsDir, [pkg])[pkg];
440189
440243
  if (typeof installedVersion !== "string")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.165",
3
+ "version": "1.2.167",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",