camstack 1.2.51 → 1.2.52

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-HPFKAZ3A.js";
4
+ } from "./chunk-YVH2KSTL.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-EJ6BGNVY.js");
41
+ await import("./launcher-7T4UUMOZ.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-EJ6BGNVY.js");
86
+ await import("./launcher-7T4UUMOZ.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-OVQWH2QN.js");
1133
+ const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-7QG523MP.js");
1134
1134
  if (presetNamespace) {
1135
1135
  const spinner4 = clack.spinner();
1136
1136
  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-HPFKAZ3A.js";
8
+ } from "./chunk-YVH2KSTL.js";
9
9
  import "./chunk-LMMQX4CK.js";
10
10
  export {
11
11
  DEFAULT_HUB_HTTPS_PORT,
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
23633
23633
  }
23634
23634
  });
23635
23635
 
23636
- // ../system/dist/dist-Dl6MFXPr.js
23637
- var require_dist_Dl6MFXPr = __commonJS({
23638
- "../system/dist/dist-Dl6MFXPr.js"(exports) {
23636
+ // ../system/dist/dist-B-mBrEz9.js
23637
+ var require_dist_B_mBrEz9 = __commonJS({
23638
+ "../system/dist/dist-B-mBrEz9.js"(exports) {
23639
23639
  "use strict";
23640
23640
  var zod = require_zod();
23641
23641
  var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
@@ -48902,7 +48902,7 @@ var require_dist_Dl6MFXPr = __commonJS({
48902
48902
  "ffmpeg.binaryPath": "ffmpeg",
48903
48903
  "ffmpeg.hwAccel": "auto",
48904
48904
  "ffmpeg.threadCount": 0,
48905
- "auth.tokenExpiry": "7d"
48905
+ "auth.tokenExpiry": "30d"
48906
48906
  };
48907
48907
  var AccessoryKind = {
48908
48908
  Siren: DeviceRole.Siren,
@@ -58395,7 +58395,7 @@ var require_alerts_addon = __commonJS({
58395
58395
  [Symbol.toStringTag]: { value: "Module" }
58396
58396
  });
58397
58397
  require_chunk_Cek0wNdY();
58398
- var require_dist10 = require_dist_Dl6MFXPr();
58398
+ var require_dist10 = require_dist_B_mBrEz9();
58399
58399
  function selectExpired(alerts, cutoffMs) {
58400
58400
  return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
58401
58401
  }
@@ -59214,7 +59214,7 @@ var require_console_logging = __commonJS({
59214
59214
  [Symbol.toStringTag]: { value: "Module" }
59215
59215
  });
59216
59216
  require_chunk_Cek0wNdY();
59217
- var require_dist10 = require_dist_Dl6MFXPr();
59217
+ var require_dist10 = require_dist_B_mBrEz9();
59218
59218
  var require_formatter = require_formatter_DqAKDlvN();
59219
59219
  var LEVEL_RANK = {
59220
59220
  debug: 0,
@@ -59308,7 +59308,7 @@ var require_core_blocks_addon = __commonJS({
59308
59308
  "use strict";
59309
59309
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
59310
59310
  var require_chunk = require_chunk_Cek0wNdY();
59311
- var require_dist10 = require_dist_Dl6MFXPr();
59311
+ var require_dist10 = require_dist_B_mBrEz9();
59312
59312
  var node_crypto = __require("crypto");
59313
59313
  var node_fs_promises = __require("fs/promises");
59314
59314
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -60205,11 +60205,11 @@ var require_core_blocks = __commonJS({
60205
60205
  }
60206
60206
  });
60207
60207
 
60208
- // ../system/dist/retired-settings-keys-6w_JOqBg.js
60209
- var require_retired_settings_keys_6w_JOqBg = __commonJS({
60210
- "../system/dist/retired-settings-keys-6w_JOqBg.js"(exports) {
60208
+ // ../system/dist/retired-settings-keys-Davtjo5p.js
60209
+ var require_retired_settings_keys_Davtjo5p = __commonJS({
60210
+ "../system/dist/retired-settings-keys-Davtjo5p.js"(exports) {
60211
60211
  "use strict";
60212
- var require_dist10 = require_dist_Dl6MFXPr();
60212
+ var require_dist10 = require_dist_B_mBrEz9();
60213
60213
  function settingsStoreIsAuthoritativeHere(env) {
60214
60214
  const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
60215
60215
  return raw === "" || raw === "hub";
@@ -62363,8 +62363,8 @@ var require_device_manager_addon = __commonJS({
62363
62363
  [Symbol.toStringTag]: { value: "Module" }
62364
62364
  });
62365
62365
  require_chunk_Cek0wNdY();
62366
- var require_dist10 = require_dist_Dl6MFXPr();
62367
- var require_retired_settings_keys = require_retired_settings_keys_6w_JOqBg();
62366
+ var require_dist10 = require_dist_B_mBrEz9();
62367
+ var require_retired_settings_keys = require_retired_settings_keys_Davtjo5p();
62368
62368
  var node_crypto = __require("crypto");
62369
62369
  var _camstack_types_node = require_node();
62370
62370
  var JOB_HISTORY = 20;
@@ -67113,7 +67113,7 @@ var require_hub_forwarder = __commonJS({
67113
67113
  [Symbol.toStringTag]: { value: "Module" }
67114
67114
  });
67115
67115
  require_chunk_Cek0wNdY();
67116
- var require_dist10 = require_dist_Dl6MFXPr();
67116
+ var require_dist10 = require_dist_B_mBrEz9();
67117
67117
  var require_formatter = require_formatter_DqAKDlvN();
67118
67118
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
67119
67119
  var HubForwarderDestination = class {
@@ -67250,7 +67250,7 @@ var require_liveness_monitor_addon = __commonJS({
67250
67250
  "use strict";
67251
67251
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
67252
67252
  require_chunk_Cek0wNdY();
67253
- var require_dist10 = require_dist_Dl6MFXPr();
67253
+ var require_dist10 = require_dist_B_mBrEz9();
67254
67254
  var NO_DEVICES = "liveness:no-devices";
67255
67255
  var ALL_OFFLINE = "liveness:all-devices-offline";
67256
67256
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -67440,7 +67440,7 @@ var require_local_auth_addon = __commonJS({
67440
67440
  [Symbol.toStringTag]: { value: "Module" }
67441
67441
  });
67442
67442
  var require_chunk = require_chunk_Cek0wNdY();
67443
- var require_dist10 = require_dist_Dl6MFXPr();
67443
+ var require_dist10 = require_dist_B_mBrEz9();
67444
67444
  var node_crypto = __require("crypto");
67445
67445
  node_crypto = require_chunk.__toESM(node_crypto);
67446
67446
  var crypto$1 = __require("crypto");
@@ -71954,6 +71954,99 @@ var require_local_auth_addon = __commonJS({
71954
71954
  };
71955
71955
  }));
71956
71956
  var import_jsonwebtoken = /* @__PURE__ */ require_chunk.__toESM(require_jsonwebtoken());
71957
+ var DURATION_PATTERN = /^(\d+(?:\.\d+)?)\s*(ms|milliseconds?|msecs?|s|secs?|seconds?|m|mins?|minutes?|h|hrs?|hours?|d|days?|w|weeks?|y|yrs?|years?)$/i;
71958
+ var UNIT_MS = {
71959
+ ms: 1,
71960
+ msec: 1,
71961
+ msecs: 1,
71962
+ millisecond: 1,
71963
+ milliseconds: 1,
71964
+ s: 1e3,
71965
+ sec: 1e3,
71966
+ secs: 1e3,
71967
+ second: 1e3,
71968
+ seconds: 1e3,
71969
+ m: 6e4,
71970
+ min: 6e4,
71971
+ mins: 6e4,
71972
+ minute: 6e4,
71973
+ minutes: 6e4,
71974
+ h: 36e5,
71975
+ hr: 36e5,
71976
+ hrs: 36e5,
71977
+ hour: 36e5,
71978
+ hours: 36e5,
71979
+ d: 864e5,
71980
+ day: 864e5,
71981
+ days: 864e5,
71982
+ w: 6048e5,
71983
+ week: 6048e5,
71984
+ weeks: 6048e5,
71985
+ y: 315576e5,
71986
+ yr: 315576e5,
71987
+ yrs: 315576e5,
71988
+ year: 315576e5,
71989
+ years: 315576e5
71990
+ };
71991
+ var MIN_EXPIRY_MS = 6e4;
71992
+ var MAX_EXPIRY_MS = 365 * 864e5;
71993
+ function durationMs(candidate) {
71994
+ const match = DURATION_PATTERN.exec(candidate);
71995
+ if (match === null) return null;
71996
+ const amount = Number(match[1]);
71997
+ const unitMs = UNIT_MS[match[2].toLowerCase()];
71998
+ if (!Number.isFinite(amount) || unitMs === void 0) return null;
71999
+ return amount * unitMs;
72000
+ }
72001
+ var DEFAULT_SECONDS = (() => {
72002
+ const ms = durationMs("30d");
72003
+ if (ms === null) throw new Error(`DEFAULT_TOKEN_EXPIRY is not a duration: 30d`);
72004
+ return ms / 1e3;
72005
+ })();
72006
+ function refuse(reason) {
72007
+ return {
72008
+ ok: false,
72009
+ reason,
72010
+ seconds: DEFAULT_SECONDS,
72011
+ value: "30d"
72012
+ };
72013
+ }
72014
+ function parseTokenExpiry(configured) {
72015
+ if (configured === void 0 || configured === null) return {
72016
+ ok: true,
72017
+ seconds: DEFAULT_SECONDS,
72018
+ value: "30d"
72019
+ };
72020
+ if (typeof configured !== "string") return refuse("not-a-string");
72021
+ const trimmed = configured.trim();
72022
+ if (trimmed === "") return {
72023
+ ok: true,
72024
+ seconds: DEFAULT_SECONDS,
72025
+ value: "30d"
72026
+ };
72027
+ const totalMs = durationMs(trimmed);
72028
+ if (totalMs === null) return refuse("malformed");
72029
+ if (totalMs < MIN_EXPIRY_MS) return refuse("too-short");
72030
+ if (totalMs > MAX_EXPIRY_MS) return refuse("too-long");
72031
+ return {
72032
+ ok: true,
72033
+ seconds: totalMs / 1e3,
72034
+ value: trimmed
72035
+ };
72036
+ }
72037
+ var REJECTION_DETAIL = {
72038
+ "not-a-string": "value is not a string",
72039
+ malformed: "not a duration string (expected e.g. 24h, 7d, 30d \u2014 a bare number is NOT seconds)",
72040
+ "too-short": `shorter than the ${MIN_EXPIRY_MS / 1e3}s minimum`,
72041
+ "too-long": `longer than the ${MAX_EXPIRY_MS / 864e5}d maximum`
72042
+ };
72043
+ function logTokenExpiryRejection(configured, rejection, logger) {
72044
+ logger.warn(`auth.tokenExpiry REJECTED \u2014 ${REJECTION_DETAIL[rejection.reason]}; signing with the default 30d instead`, { meta: {
72045
+ configured,
72046
+ reason: rejection.reason,
72047
+ applied: rejection.value
72048
+ } });
72049
+ }
71957
72050
  var noopLogger = {
71958
72051
  debug() {
71959
72052
  },
@@ -71974,6 +72067,16 @@ var require_local_auth_addon = __commonJS({
71974
72067
  config;
71975
72068
  jwtSecret;
71976
72069
  logger;
72070
+ /**
72071
+ * Offending `auth.tokenExpiry` values already reported by this instance.
72072
+ *
72073
+ * `signToken` re-reads the setting on EVERY mint so an operator's change
72074
+ * takes effect without a restart — which also means a bad value would log
72075
+ * once per login and once per silent refresh from every viewer. The refusal
72076
+ * must be visible, not repeated: the first mint after a bad save logs, the
72077
+ * rest resolve silently to the same default until the value changes.
72078
+ */
72079
+ reportedInvalidExpiries = /* @__PURE__ */ new Set();
71977
72080
  constructor(config, logger = noopLogger) {
71978
72081
  this.config = config;
71979
72082
  this.logger = logger;
@@ -71988,8 +72091,15 @@ var require_local_auth_addon = __commonJS({
71988
72091
  }
71989
72092
  signToken(payload) {
71990
72093
  const configured = this.config.get("auth.tokenExpiry");
71991
- const expiresIn = typeof configured === "string" && configured.trim() !== "" ? configured.trim() : "30d";
71992
- return import_jsonwebtoken.sign({ ...payload }, this.jwtSecret, { expiresIn });
72094
+ const parsed = parseTokenExpiry(configured);
72095
+ if (!parsed.ok) {
72096
+ const seen = typeof configured === "string" ? configured : JSON.stringify(configured);
72097
+ if (!this.reportedInvalidExpiries.has(seen)) {
72098
+ this.reportedInvalidExpiries.add(seen);
72099
+ logTokenExpiryRejection(configured, parsed, this.logger);
72100
+ }
72101
+ }
72102
+ return import_jsonwebtoken.sign({ ...payload }, this.jwtSecret, { expiresIn: parsed.seconds });
71993
72103
  }
71994
72104
  verifyToken(token2) {
71995
72105
  return import_jsonwebtoken.verify(token2, this.jwtSecret);
@@ -74276,6 +74386,30 @@ var require_local_auth_addon = __commonJS({
74276
74386
  return parseRow(results[0].data);
74277
74387
  }
74278
74388
  };
74389
+ function createAuthConfigReader(resolved, writeAuthSection) {
74390
+ return {
74391
+ get(path) {
74392
+ switch (path) {
74393
+ case "auth.jwtSecret":
74394
+ return narrow(resolved.jwtSecret);
74395
+ case "auth.adminUsername":
74396
+ return narrow(resolved.adminUsername);
74397
+ case "auth.adminPassword":
74398
+ return narrow(resolved.adminPassword);
74399
+ case "auth.tokenExpiry":
74400
+ return narrow(resolved.tokenExpiry);
74401
+ default:
74402
+ return;
74403
+ }
74404
+ },
74405
+ update(_section, data) {
74406
+ if (typeof data["jwtSecret"] === "string") writeAuthSection({ jwtSecret: data["jwtSecret"] });
74407
+ }
74408
+ };
74409
+ }
74410
+ function narrow(value) {
74411
+ return value;
74412
+ }
74279
74413
  var USERS_COLLECTION = "users";
74280
74414
  var API_KEYS_COLLECTION = "api_keys";
74281
74415
  var SCOPED_TOKENS_COLLECTION = "scoped_tokens";
@@ -74806,19 +74940,14 @@ var require_local_auth_addon = __commonJS({
74806
74940
  }
74807
74941
  async onInitialize() {
74808
74942
  const authSection = await this.ctx.settings?.getSection("auth") ?? {};
74809
- const resolvedJwtSecret = typeof authSection["jwtSecret"] === "string" ? authSection["jwtSecret"] : this.config.jwtSecret ?? "";
74810
- const resolvedAdminUser = typeof authSection["adminUsername"] === "string" && authSection["adminUsername"] ? authSection["adminUsername"] : this.config.adminUsername ?? "";
74811
- const resolvedAdminPass = typeof authSection["adminPassword"] === "string" && authSection["adminPassword"] ? authSection["adminPassword"] : this.config.adminPassword ?? "";
74812
- const reader = {
74813
- get(path) {
74814
- if (path === "auth.jwtSecret") return resolvedJwtSecret;
74815
- if (path === "auth.adminUsername") return resolvedAdminUser;
74816
- if (path === "auth.adminPassword") return resolvedAdminPass;
74817
- },
74818
- update: (_section, data) => {
74819
- if (typeof data["jwtSecret"] === "string") this.ctx.settings?.setSection("auth", { jwtSecret: data["jwtSecret"] });
74820
- }
74821
- };
74943
+ const reader = createAuthConfigReader({
74944
+ jwtSecret: typeof authSection["jwtSecret"] === "string" ? authSection["jwtSecret"] : this.config.jwtSecret ?? "",
74945
+ adminUsername: typeof authSection["adminUsername"] === "string" && authSection["adminUsername"] ? authSection["adminUsername"] : this.config.adminUsername ?? "",
74946
+ adminPassword: typeof authSection["adminPassword"] === "string" && authSection["adminPassword"] ? authSection["adminPassword"] : this.config.adminPassword ?? "",
74947
+ tokenExpiry: typeof authSection["tokenExpiry"] === "string" && authSection["tokenExpiry"] ? authSection["tokenExpiry"] : void 0
74948
+ }, (patch) => {
74949
+ this.ctx.settings?.setSection("auth", patch);
74950
+ });
74822
74951
  this.authManager = new AuthManager(reader, this.ctx.logger);
74823
74952
  const store = this.ctx.api?.settingsStore;
74824
74953
  if (store) {
@@ -75124,7 +75253,7 @@ var require_loki_logging = __commonJS({
75124
75253
  [Symbol.toStringTag]: { value: "Module" }
75125
75254
  });
75126
75255
  require_chunk_Cek0wNdY();
75127
- var require_dist10 = require_dist_Dl6MFXPr();
75256
+ var require_dist10 = require_dist_B_mBrEz9();
75128
75257
  function sanitizeLabelName(raw) {
75129
75258
  const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
75130
75259
  return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
@@ -75689,7 +75818,7 @@ var require_native_metrics_addon = __commonJS({
75689
75818
  [Symbol.toStringTag]: { value: "Module" }
75690
75819
  });
75691
75820
  var require_chunk = require_chunk_Cek0wNdY();
75692
- var require_dist10 = require_dist_Dl6MFXPr();
75821
+ var require_dist10 = require_dist_B_mBrEz9();
75693
75822
  var node_fs_promises = __require("fs/promises");
75694
75823
  var node_child_process = __require("child_process");
75695
75824
  var node_util = __require("util");
@@ -77646,7 +77775,7 @@ var require_filesystem_storage_addon = __commonJS({
77646
77775
  [Symbol.toStringTag]: { value: "Module" }
77647
77776
  });
77648
77777
  var require_chunk = require_chunk_Cek0wNdY();
77649
- var require_dist10 = require_dist_Dl6MFXPr();
77778
+ var require_dist10 = require_dist_B_mBrEz9();
77650
77779
  var node_crypto = __require("crypto");
77651
77780
  var node_fs_promises = __require("fs/promises");
77652
77781
  var node_path = __require("path");
@@ -78762,8 +78891,8 @@ var require_sqlite_settings_addon = __commonJS({
78762
78891
  [Symbol.toStringTag]: { value: "Module" }
78763
78892
  });
78764
78893
  var require_chunk = require_chunk_Cek0wNdY();
78765
- var require_dist10 = require_dist_Dl6MFXPr();
78766
- var require_retired_settings_keys = require_retired_settings_keys_6w_JOqBg();
78894
+ var require_dist10 = require_dist_B_mBrEz9();
78895
+ var require_retired_settings_keys = require_retired_settings_keys_Davtjo5p();
78767
78896
  var node_crypto = __require("crypto");
78768
78897
  var node_fs = __require("fs");
78769
78898
  var node_module = __require("module");
@@ -81042,7 +81171,7 @@ var require_storage_orchestrator_addon = __commonJS({
81042
81171
  [Symbol.toStringTag]: { value: "Module" }
81043
81172
  });
81044
81173
  var require_chunk = require_chunk_Cek0wNdY();
81045
- var require_dist10 = require_dist_Dl6MFXPr();
81174
+ var require_dist10 = require_dist_B_mBrEz9();
81046
81175
  var node_crypto = __require("crypto");
81047
81176
  var node_fs_promises = __require("fs/promises");
81048
81177
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -82923,7 +83052,7 @@ var require_system_config_addon = __commonJS({
82923
83052
  [Symbol.toStringTag]: { value: "Module" }
82924
83053
  });
82925
83054
  require_chunk_Cek0wNdY();
82926
- var require_dist10 = require_dist_Dl6MFXPr();
83055
+ var require_dist10 = require_dist_B_mBrEz9();
82927
83056
  var SECTION_TITLES = {
82928
83057
  server: "Server",
82929
83058
  auth: "Authentication"
@@ -82988,7 +83117,7 @@ var require_system_config_addon = __commonJS({
82988
83117
  type: "text",
82989
83118
  key: "tokenExpiry",
82990
83119
  label: "Token Expiry",
82991
- description: "JWT token lifetime (e.g. 24h, 7d, 30d)",
83120
+ description: "Lifetime of a session token, as a duration string (e.g. 24h, 7d, 30d). A bare number is rejected \u2014 it would be read as milliseconds. Applies to tokens issued from the next login or silent refresh; tokens already handed out keep the lifetime they were signed with.",
82992
83121
  placeholder: "30d",
82993
83122
  default: "30d"
82994
83123
  }]
@@ -100984,7 +101113,7 @@ var require_winston_logging = __commonJS({
100984
101113
  [Symbol.toStringTag]: { value: "Module" }
100985
101114
  });
100986
101115
  var require_chunk = require_chunk_Cek0wNdY();
100987
- var require_dist10 = require_dist_Dl6MFXPr();
101116
+ var require_dist10 = require_dist_B_mBrEz9();
100988
101117
  var require_formatter = require_formatter_DqAKDlvN();
100989
101118
  var node_path = __require("path");
100990
101119
  node_path = require_chunk.__toESM(node_path);
@@ -113361,12 +113490,12 @@ var require_dist2 = __commonJS({
113361
113490
  }
113362
113491
  });
113363
113492
 
113364
- // ../system/dist/manifest-python-deps-FYZBHc3v.js
113365
- var require_manifest_python_deps_FYZBHc3v = __commonJS({
113366
- "../system/dist/manifest-python-deps-FYZBHc3v.js"(exports) {
113493
+ // ../system/dist/manifest-python-deps-BV_Cy99l.js
113494
+ var require_manifest_python_deps_BV_Cy99l = __commonJS({
113495
+ "../system/dist/manifest-python-deps-BV_Cy99l.js"(exports) {
113367
113496
  "use strict";
113368
113497
  var require_chunk = require_chunk_Cek0wNdY();
113369
- require_dist_Dl6MFXPr();
113498
+ require_dist_B_mBrEz9();
113370
113499
  var node_crypto = __require("crypto");
113371
113500
  node_crypto = require_chunk.__toESM(node_crypto);
113372
113501
  var _camstack_types_node = require_node();
@@ -124481,7 +124610,7 @@ var require_dist3 = __commonJS({
124481
124610
  "use strict";
124482
124611
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
124483
124612
  var require_chunk = require_chunk_Cek0wNdY();
124484
- var require_dist10 = require_dist_Dl6MFXPr();
124613
+ var require_dist10 = require_dist_B_mBrEz9();
124485
124614
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
124486
124615
  require_alerts();
124487
124616
  var require_formatter = require_formatter_DqAKDlvN();
@@ -124507,7 +124636,7 @@ var require_dist3 = __commonJS({
124507
124636
  var require_builtins_winston_logging_index = require_winston_logging();
124508
124637
  var require_file_data_plane = require_file_data_plane_DO8KbxCe();
124509
124638
  var require_tls$1 = require_tls_u8QCJCFE();
124510
- var require_manifest_python_deps = require_manifest_python_deps_FYZBHc3v();
124639
+ var require_manifest_python_deps = require_manifest_python_deps_BV_Cy99l();
124511
124640
  var require_resource_monitor = require_resource_monitor_CdnzxBLP();
124512
124641
  var require_custom_action_registry = require_custom_action_registry_jY0NOZK8();
124513
124642
  var zod = require_zod();
@@ -231423,6 +231552,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
231423
231552
  }
231424
231553
  var HF_REPO = "camstack/camstack-models";
231425
231554
  var HF_BASE_URL = `https://huggingface.co/${HF_REPO}/resolve/main`;
231555
+ var DEFAULT_TOKEN_EXPIRY = "30d";
231426
231556
  var RUNTIME_DEFAULTS = {
231427
231557
  "features.streaming": true,
231428
231558
  "features.notifications": true,
@@ -231451,7 +231581,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
231451
231581
  "ffmpeg.binaryPath": "ffmpeg",
231452
231582
  "ffmpeg.hwAccel": "auto",
231453
231583
  "ffmpeg.threadCount": 0,
231454
- "auth.tokenExpiry": "7d"
231584
+ "auth.tokenExpiry": "30d"
231455
231585
  };
231456
231586
  var AccessoryKind = {
231457
231587
  Siren: require_sleep.DeviceRole.Siren,
@@ -246697,6 +246827,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
246697
246827
  exports.DEFAULT_RETENTION = DEFAULT_RETENTION;
246698
246828
  exports.DEFAULT_RUNTIME_STATE_DURABILITY = require_sleep.DEFAULT_RUNTIME_STATE_DURABILITY;
246699
246829
  exports.DEFAULT_TIMELAPSE_PREVIEW_TEXT = DEFAULT_TIMELAPSE_PREVIEW_TEXT;
246830
+ exports.DEFAULT_TOKEN_EXPIRY = DEFAULT_TOKEN_EXPIRY;
246700
246831
  exports.DETAIL_CROP_PADDING_FIELD = DETAIL_CROP_PADDING_FIELD;
246701
246832
  exports.DETAIL_CROP_PADDING_KEY = DETAIL_CROP_PADDING_KEY;
246702
246833
  exports.DETAIL_CROP_SECTION_ID = DETAIL_CROP_SECTION_ID;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.51",
3
+ "version": "1.2.52",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",
File without changes