@camstack/system 1.2.358 → 1.2.360
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/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/address-book.d.ts +69 -0
- package/dist/builtins/local-network/local-network.addon.d.ts +43 -47
- package/dist/builtins/local-network/local-network.addon.js +366 -81
- package/dist/builtins/local-network/local-network.addon.mjs +367 -80
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{child-cap-dispatch-C2dFiu87.mjs → child-cap-dispatch-StBHObCA.mjs} +1 -1
- package/dist/{child-cap-dispatch-BWk99kmA.js → child-cap-dispatch-T3Kdhbb3.js} +1 -1
- package/dist/{composition-sources-D8Hapyav.mjs → composition-sources-DASc7NBj.mjs} +1 -1
- package/dist/{composition-sources-BaHPH661.js → composition-sources-DFgayxCc.js} +1 -1
- package/dist/{dist-D3bhbMY3.mjs → dist-C9Rk6KVv.mjs} +381 -115
- package/dist/{dist-DzAHit0a.js → dist-Cv1lnnQq.js} +414 -118
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{retired-settings-keys-CkXoPjKy.js → retired-settings-keys-BGNqRNhu.js} +1 -1
- package/dist/{retired-settings-keys-B6AFmtlO.mjs → retired-settings-keys-BjG8bQVI.mjs} +1 -1
- package/package.json +1 -1
package/dist/addon-runner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_child_cap_dispatch = require("./child-cap-dispatch-
|
|
2
|
+
const require_child_cap_dispatch = require("./child-cap-dispatch-T3Kdhbb3.js");
|
|
3
3
|
const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
|
|
4
4
|
let node_path = require("node:path");
|
|
5
5
|
node_path = require_chunk.__toESM(node_path);
|
package/dist/addon-runner.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-
|
|
1
|
+
import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-StBHObCA.mjs";
|
|
2
2
|
import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
|
|
3
3
|
import { register } from "node:module";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, U as addonPagesCapability, ar as BaseAddon, ir as errMsg } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, G as addonWidgetsCapability, ar as BaseAddon, ir as errMsg } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
//#region src/builtins/alerts/device-label.ts
|
|
8
8
|
/**
|
|
9
9
|
* Operator-facing device label for alert messages.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, K as alertsCapability, ar as BaseAddon, hr as createEvent, ir as errMsg, n as AlertSchema } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
//#region src/builtins/alerts/device-label.ts
|
|
3
3
|
/**
|
|
4
4
|
* Operator-facing device label for alert messages.
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
8
8
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
9
9
|
deadZoneFraction: .5,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, S as FIRST_LEVEL_MACRO_CLASSES, Y as bareAddonId, ar as BaseAddon, fn as ptzAutotrackCapability, ir as errMsg, xr as isEvent } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
3
3
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
4
4
|
deadZoneFraction: .5,
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let buffer = require("buffer");
|
|
9
9
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, J as backupCapability, Mn as storageOccupancyCapability, Qt as mayWriteToLocation, Sr as nodePin, ar as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, kr as toNodeId } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
3
3
|
import { Buffer as Buffer$1 } from "buffer";
|
|
4
4
|
import * as fsp from "node:fs/promises";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
//#region src/builtins/calendars/calendar-color.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as calendarsCapability,
|
|
1
|
+
import { $ as calendarsCapability, ar as BaseAddon, p as CalendarPreferencesSchema } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/builtins/calendars/calendar-color.ts
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let _camstack_types_node = require("@camstack/types/node");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $
|
|
1
|
+
import { $t as memoizePinnedFfmpeg, A as MOTION_CLOSE_AFTER_MS, Ar as EventCategory, Pn as streamCatalogCapability, Wn as buildFfmpegArgs, ar as BaseAddon, b as DeclaredDevices, et as cameraGridLayoutCapability, hr as createEvent, i as BaseDevice, ir as errMsg, kn as snapshotCapability, mt as declarationOwnerNodeId, nn as motionCapability, rr as DeviceType, tr as DeviceFeature, y as DERIVED_CAMERA_SILENCED_CAP_NAMES, yr as hydrateSchema } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { FfmpegProcess } from "@camstack/types/node";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_composition_sources = require("../../composition-sources-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
|
+
const require_composition_sources = require("../../composition-sources-DFgayxCc.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
//#region src/builtins/shared/device-state-changed.ts
|
|
10
10
|
/** Structural narrowing helper for untrusted bus payloads. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $n as
|
|
2
|
-
import { n as normalizedNativeOwner } from "../../composition-sources-
|
|
1
|
+
import { $n as disarmRoseMemory, Ar as EventCategory, Et as evaluateCompositionField, Gn as cloneStatefulExpressionMemory, Jn as compositionFeatureEnabled, Kn as composedDeviceRef, Qn as createStatefulExpressionMemory, Un as COMPOSER_ADDON_ID, Xn as compositionSliceKey, Yn as compositionItemFieldPath, Z as buildCapabilityLookup, Zn as compositionSourceKey, ar as BaseAddon, b as DeclaredDevices, er as toExpressionValue, hr as createEvent, i as BaseDevice, ir as errMsg, it as compositionFieldKey, kt as expressionContainsBuiltinCall, l as COMPOSED_ITEM_FIXED_FIELDS, ln as planComposition, qn as composedDeviceStableId, rr as DeviceType, rt as composerCapability, t as ALL_CAPABILITY_DEFINITIONS } from "../../dist-C9Rk6KVv.mjs";
|
|
2
|
+
import { n as normalizedNativeOwner } from "../../composition-sources-DASc7NBj.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/builtins/shared/device-state-changed.ts
|
|
5
5
|
/** Structural narrowing helper for untrusted bus payloads. */
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
//#region src/builtins/console-logging/console-destination.ts
|
|
9
9
|
var LEVEL_RANK = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
//#region src/builtins/console-logging/console-destination.ts
|
|
4
4
|
var LEVEL_RANK = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
4
|
-
const require_composition_sources = require("../../composition-sources-
|
|
3
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
4
|
+
const require_composition_sources = require("../../composition-sources-DFgayxCc.js");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
6
6
|
let _camstack_types_node = require("@camstack/types/node");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as describeCompositionSources } from "../../composition-sources-
|
|
1
|
+
import { Kn as composedDeviceRef, Ln as validateComposition, Z as buildCapabilityLookup, Zn as compositionSourceKey, _n as resolveCoreBlockEntry, ar as BaseAddon, at as compositionSourceRefs, b as DeclaredDevices, ct as coreBlockIdFromAddonId, d as CORE_BLOCKS_ADDON_ID, f as CORE_BLOCK_ADDON_PREFIX, ir as errMsg, ln as planComposition, lt as coreBlockSourceKind, m as CoreBlockSchema, mn as replacedFieldKeys, ot as coreBlockAddonId, rn as normalizeCoreBlockWrite, st as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ut as coreBlocksCapability, vn as resolveCoreBlockFiles, vt as describeComposableCaps, yr as hydrateSchema } from "../../dist-C9Rk6KVv.mjs";
|
|
2
|
+
import { t as describeCompositionSources } from "../../composition-sources-DASc7NBj.mjs";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { customizationBlockName } from "@camstack/types/node";
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_retired_settings_keys = require("../../retired-settings-keys-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-BGNqRNhu.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-
|
|
1
|
+
import { Ar as EventCategory, C as FieldClaimModeSchema, Cn as runtimeStatePolicyFor, D as LocationIconIdSchema, I as STREAM_PROFILE_META, Nt as formatMinutes, On as siteZoneKey, Or as sleep$1, Ot as expandContainer, Q as buildStreamParamsConfigSchema, St as deviceStatusCapability, Tt as enumerateSchemaFields, Ut as legacyAutoLinkIds, ar as BaseAddon, br as isDeviceConfigCap, bt as deviceManagerCapability, c as CAP_NAMES_WITH_STATUS, dr as WELL_KNOWN_TAB_MAP, dt as createDeviceExtensionProvider, gt as defineExtensionSlotProvider, in as normalizeUnit, ir as errMsg, k as MINUTES_PER_DAY, nr as DeviceRole, o as CAMERA_SWITCH_ORDER, qt as locationIconKey, rr as DeviceType, sn as parseStreamParamsFormPatch, t as ALL_CAPABILITY_DEFINITIONS, tr as DeviceFeature, v as DAY_NAMES, w as FieldClaimSchema, wt as enumerateItemArrayFields, x as DeviceStatusSchema, xt as deviceStateCapability, yt as deviceExtensionCapability } from "../../dist-C9Rk6KVv.mjs";
|
|
2
|
+
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BjG8bQVI.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { canonicalDeviceFingerprint } from "@camstack/types/node";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
9
9
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
4
4
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
4
4
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
5
5
|
var NO_DEVICES = "liveness:no-devices";
|
|
6
6
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ar as EventCategory, P as RecordingStatusSchema, ar as BaseAddon, hr as createEvent, ir as errMsg, j as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-C9Rk6KVv.mjs";
|
|
2
2
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
3
3
|
var NO_DEVICES = "liveness:no-devices";
|
|
4
4
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-Cv1lnnQq.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { H as UserRecordSchema,
|
|
2
|
+
import { H as UserRecordSchema, In as userManagementCapability, L as ScopedTokenSchema, ar as BaseAddon, q as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-C9Rk6KVv.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as crypto$2 from "node:crypto";
|
|
5
5
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ConnectionEndpoint, HubAddressBook, HubAddressFlags, HubAddressRole } from '@camstack/types';
|
|
2
|
+
export interface CustomAddress {
|
|
3
|
+
readonly baseUrl: string;
|
|
4
|
+
readonly label: string;
|
|
5
|
+
}
|
|
6
|
+
/** The address-book keys of the addon's stored settings. */
|
|
7
|
+
export interface StoredAddressSettings {
|
|
8
|
+
readonly customAddresses: unknown;
|
|
9
|
+
readonly appConnectionUrls: readonly string[];
|
|
10
|
+
readonly notificationTapUrl: string;
|
|
11
|
+
readonly publicEndpointUrl: string;
|
|
12
|
+
readonly internalUrl: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AddressBookState {
|
|
15
|
+
readonly custom: readonly CustomAddress[];
|
|
16
|
+
readonly flags: HubAddressFlags;
|
|
17
|
+
}
|
|
18
|
+
/** Parse the stored custom list; a malformed store reads as empty, never throws. */
|
|
19
|
+
export declare function parseCustomAddresses(raw: unknown): readonly CustomAddress[];
|
|
20
|
+
/**
|
|
21
|
+
* The address book as it stands: stored custom addresses, plus every
|
|
22
|
+
* single-valued flag that names neither a detected address, a custom one nor
|
|
23
|
+
* the app link, promoted to a custom address (see the module doc).
|
|
24
|
+
*/
|
|
25
|
+
export declare function normalizeAddressBook(stored: StoredAddressSettings, detectedUrls: ReadonlySet<string>): AddressBookState;
|
|
26
|
+
/** The stored-settings patch that persists `state`. */
|
|
27
|
+
export declare function addressBookPatch(state: AddressBookState): {
|
|
28
|
+
readonly customAddresses: readonly CustomAddress[];
|
|
29
|
+
readonly appConnectionUrls: readonly string[];
|
|
30
|
+
readonly notificationTapUrl: string;
|
|
31
|
+
readonly publicEndpointUrl: string;
|
|
32
|
+
readonly internalUrl: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function withCustomAddress(state: AddressBookState, entry: CustomAddress): AddressBookState;
|
|
35
|
+
/** Drop a custom address and every flag it carried (those roles turn automatic). */
|
|
36
|
+
export declare function withoutCustomAddress(state: AddressBookState, baseUrl: string): AddressBookState;
|
|
37
|
+
/** Every role back to automatic for `role`. */
|
|
38
|
+
export declare function withRoleAutomatic(state: AddressBookState, role: HubAddressRole): AddressBookState;
|
|
39
|
+
/**
|
|
40
|
+
* Flag or unflag `baseUrl` for `role`. A single-valued role flagged here moves
|
|
41
|
+
* off every other address (it is one URL); unflagging the address that carries
|
|
42
|
+
* it returns the role to automatic. The app link flagged for notification
|
|
43
|
+
* taps IS the automatic answer, stored as automatic — one representation.
|
|
44
|
+
* `appConnections` toggles inside the set; toggling while automatic starts
|
|
45
|
+
* from the automatic set (`autoApp`) so the other addresses keep racing.
|
|
46
|
+
*/
|
|
47
|
+
export declare function withRoleFlag(state: AddressBookState, role: HubAddressRole, baseUrl: string, enabled: boolean, autoApp: readonly string[]): AddressBookState;
|
|
48
|
+
/** What a row may be flagged with. */
|
|
49
|
+
export declare function eligibleRoles(endpoint: ConnectionEndpoint): readonly HubAddressRole[];
|
|
50
|
+
export declare const CUSTOM_ADDRESS_PRIORITY = 200;
|
|
51
|
+
/** A custom address as a palette entry (`kind: 'custom'`). */
|
|
52
|
+
export declare function customEndpoint(entry: CustomAddress): ConnectionEndpoint;
|
|
53
|
+
/**
|
|
54
|
+
* The palette a client races: the detected endpoints plus the custom
|
|
55
|
+
* addresses flagged `appConnections` (a detected URL is never listed twice).
|
|
56
|
+
*/
|
|
57
|
+
export declare function withAppConnectionCustomEndpoints(detected: readonly ConnectionEndpoint[], state: AddressBookState): ConnectionEndpoint[];
|
|
58
|
+
export interface AddressBookInputs {
|
|
59
|
+
/** Detected endpoints in the scheme the rows are shown in. */
|
|
60
|
+
readonly rowsPalette: readonly ConnectionEndpoint[];
|
|
61
|
+
/** Detected endpoints over HTTPS — what `internal` and `publicEndpoint` resolve over. */
|
|
62
|
+
readonly httpsPalette: readonly ConnectionEndpoint[];
|
|
63
|
+
readonly appLink: ConnectionEndpoint;
|
|
64
|
+
readonly appLinkHub: string | null;
|
|
65
|
+
}
|
|
66
|
+
/** Every role's answer — the resolvers from `@camstack/types`, nothing else. */
|
|
67
|
+
export declare function resolveRoles(state: AddressBookState, appPalette: readonly ConnectionEndpoint[], httpsPalette: readonly ConnectionEndpoint[]): HubAddressBook['roles'];
|
|
68
|
+
/** The Addresses table: app link, detected rows, then custom-only rows. */
|
|
69
|
+
export declare function buildAddressBook(state: AddressBookState, inputs: AddressBookInputs): HubAddressBook;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AdvertisedLocalPort, ConnectionEndpoint, LocalInterface, ProviderRegistration, BaseAddon } from '@camstack/types';
|
|
2
|
+
import { CustomAddress } from './address-book.js';
|
|
2
3
|
/**
|
|
3
4
|
* Cached mesh-reachable endpoint, learned from the `mesh-network`
|
|
4
5
|
* provider via the `MeshNetworkChanged` event-tail + pull-reconcile.
|
|
@@ -32,18 +33,16 @@ interface LocalNetworkConfig {
|
|
|
32
33
|
* allowlist" (true + empty → respect operator's choice). */
|
|
33
34
|
readonly bootSeeded: boolean;
|
|
34
35
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* different address after a reboot.
|
|
36
|
+
* Role flag `notificationTaps` (D709, D734): the ONE address a notification
|
|
37
|
+
* TAP opens. Empty = automatic (the CamStack app link). Stored VERBATIM
|
|
38
|
+
* rather than as an index into the candidate list — interfaces come and go,
|
|
39
|
+
* and an index would silently re-point after a reboot. See `address-book.ts`.
|
|
40
40
|
*/
|
|
41
|
-
readonly
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
readonly viewerBaseUrls: readonly string[];
|
|
41
|
+
readonly notificationTapUrl: string;
|
|
42
|
+
/** Role flag `appConnections`: the addresses the apps try. Empty = automatic. */
|
|
43
|
+
readonly appConnectionUrls: readonly string[];
|
|
44
|
+
/** Operator-entered custom addresses (`address-book.ts`). Parsed on read. */
|
|
45
|
+
readonly customAddresses: readonly CustomAddress[];
|
|
47
46
|
/** LAN HTTP listener. Default true — native apps skip the private cert. */
|
|
48
47
|
readonly httpEnabled: boolean;
|
|
49
48
|
/** Dedicated HTTP port. Must not equal the HTTPS listen port. */
|
|
@@ -51,18 +50,16 @@ interface LocalNetworkConfig {
|
|
|
51
50
|
/** Operator-declared DNS name advertised instead of the raw LAN IP. Empty = none. */
|
|
52
51
|
readonly localHostname: string;
|
|
53
52
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* bridge networking, NAT, VPN). Empty = automatic. Validated on write
|
|
57
|
-
* (`validateHubAddressOverride`): http(s), never loopback.
|
|
53
|
+
* Role flag `internal`: the ONE address agents and LAN devices download
|
|
54
|
+
* from. Empty = automatic.
|
|
58
55
|
*/
|
|
59
|
-
readonly
|
|
56
|
+
readonly internalUrl: string;
|
|
60
57
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* automatic.
|
|
58
|
+
* Role flag `publicEndpoint`: the ONE address every off-LAN URL is built on
|
|
59
|
+
* (sign-in, OAuth2, passkeys, notification buttons / media / admin links).
|
|
60
|
+
* Empty = automatic.
|
|
64
61
|
*/
|
|
65
|
-
readonly
|
|
62
|
+
readonly publicEndpointUrl: string;
|
|
66
63
|
}
|
|
67
64
|
export declare class LocalNetworkAddon extends BaseAddon<LocalNetworkConfig> {
|
|
68
65
|
private pollTimer;
|
|
@@ -81,33 +78,42 @@ export declare class LocalNetworkAddon extends BaseAddon<LocalNetworkConfig> {
|
|
|
81
78
|
private meshEndpoint;
|
|
82
79
|
constructor();
|
|
83
80
|
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
81
|
+
* The detected palettes, with the mesh reconciled once: `https` (what
|
|
82
|
+
* `internal` and `publicEndpoint` resolve over, and the app link's `hub=`)
|
|
83
|
+
* and `http` (what the app-connections race resolves over).
|
|
87
84
|
*/
|
|
88
|
-
private
|
|
85
|
+
private palettes;
|
|
86
|
+
/** The stored address book, normalised against what is detected now. */
|
|
87
|
+
private addressState;
|
|
88
|
+
/** The role flags alone — they do not depend on what is detected. */
|
|
89
|
+
private storedFlags;
|
|
90
|
+
/** `getAddresses`: the Addresses table and every role's answer. */
|
|
91
|
+
private addressBook;
|
|
89
92
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* 2026-10-06; before it AUTO was the tunnel, then the mesh). The app link is
|
|
93
|
-
* not a hub address: the NC's signed media and buttons keep their own hub
|
|
94
|
-
* ladder when it is flagged; only viewer taps take the app form.
|
|
93
|
+
* Apply one change to the address book and persist it, normalised (a flag
|
|
94
|
+
* naming an address in no row becomes a custom address in the same write).
|
|
95
95
|
*/
|
|
96
|
-
private
|
|
96
|
+
private changeAddressBook;
|
|
97
|
+
/** The deprecated `getHubAddresses` shape, from the role resolvers. */
|
|
98
|
+
private snapshotHubAddresses;
|
|
97
99
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
100
|
+
* Flag / unflag `baseUrl` for `role`, or (`baseUrl: null`) return the role
|
|
101
|
+
* to automatic. Validated: the address must be a row (detected, custom, or
|
|
102
|
+
* the app link for `notificationTaps`), never loopback, and
|
|
103
|
+
* `publicEndpoint` on plain http only when accepted. A refusal stores nothing.
|
|
101
104
|
*/
|
|
102
|
-
private
|
|
105
|
+
private setRole;
|
|
103
106
|
private notificationEndpointSnapshot;
|
|
104
107
|
private snapshotViewerEndpoints;
|
|
105
108
|
/**
|
|
106
|
-
* Palette shown
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
+
* Palette shown to clients: LAN IPv4, stable LAN IPv6, public, mesh, and
|
|
110
|
+
* the custom addresses flagged `appConnections` (`kind: 'custom'`). The app
|
|
111
|
+
* HTTP/WS race is a subset (`selectAppConnectionEndpoints`) — IPv6 stays in this
|
|
112
|
+
* list because ICE/WebRTC gathers it regardless.
|
|
109
113
|
*/
|
|
110
114
|
private buildAdvertisedEndpoints;
|
|
115
|
+
/** The DETECTED palette from the cached interface/tunnel/mesh state. */
|
|
116
|
+
private endpointsNow;
|
|
111
117
|
protected onInitialize(): Promise<ProviderRegistration[]>;
|
|
112
118
|
protected globalSettingsSchema(): import('@camstack/types').ConfigUISchema;
|
|
113
119
|
protected onConfigChanged(): Promise<void>;
|
|
@@ -247,16 +253,6 @@ export interface LanHttpAdvertisement {
|
|
|
247
253
|
*/
|
|
248
254
|
export declare function appLinkEndpoint(): ConnectionEndpoint;
|
|
249
255
|
export declare function buildEndpoints(interfaces: readonly LocalInterface[], port: number, includeLoopback: boolean, ipv4Only: boolean, publicHostname: string, scheme?: 'http' | 'https', meshEndpoint?: MeshEndpointCache | null, lanHttp?: LanHttpAdvertisement | null): ConnectionEndpoint[];
|
|
250
|
-
/** AUTO viewer race: LAN IPv4 + the public tunnel. Never IPv6, mesh, or loopback. */
|
|
251
|
-
export declare function isDefaultViewerEndpoint(endpoint: ConnectionEndpoint): boolean;
|
|
252
|
-
/**
|
|
253
|
-
* The URLs the SDK should race for API / viewer access.
|
|
254
|
-
*
|
|
255
|
-
* Empty `viewerBaseUrls` = AUTO (IPv4 + public tunnel). A non-empty list is
|
|
256
|
-
* the operator's pin; if none of those URLs are in the current palette,
|
|
257
|
-
* fall back to AUTO rather than racing an empty set.
|
|
258
|
-
*/
|
|
259
|
-
export declare function selectViewerEndpoints(endpoints: readonly ConnectionEndpoint[], viewerBaseUrls: readonly string[]): ConnectionEndpoint[];
|
|
260
256
|
/**
|
|
261
257
|
* First-boot heuristic: which addresses should the allowlist start
|
|
262
258
|
* with? Includes LAN + Wi-Fi IPv4 addresses + plausible IPv6:
|