@camstack/system 1.2.161 → 1.2.163
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/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- 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 +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- 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/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- 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/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- 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/location-secrets.d.ts +42 -2
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +7 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +67 -41
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +67 -41
- 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/{dist-Keu5TDO7.js → dist-B29Skpzo.js} +359 -1
- package/dist/{dist-D4xNBlJM.mjs → dist-DxFjna2a.mjs} +359 -1
- package/dist/index.js +74 -11
- package/dist/index.mjs +74 -11
- package/dist/{manifest-system-deps-CiCuev2R.mjs → manifest-system-deps-CG9ESHhv.mjs} +1 -1
- package/dist/{manifest-system-deps-DYv4ZPo2.js → manifest-system-deps-DBje540e.js} +1 -1
- package/dist/{retired-settings-keys-BBohF-eC.js → retired-settings-keys-CRL0qOnU.js} +1 -1
- package/dist/{retired-settings-keys-COQMNlOJ.mjs → retired-settings-keys-N0NZzDE3.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_manifest_system_deps = require("./manifest-system-deps-
|
|
2
|
+
const require_manifest_system_deps = require("./manifest-system-deps-DBje540e.js");
|
|
3
3
|
const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.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 { Ct as resolveAddonClass, N as createUdsLoggerWithControl, P as LocalChildClient, Rt as RUNNER_RSS_BUDGET_ENV, St as installManifestNativeDeps, Zt as startRunnerHeapWatch, a as createUdsAddonContext, at as getWorkerNativeCapSnapshot, it as getWorkerNativeCapProvider, lt as validateProviderRegistrations, n as installManifestPythonDeps, nn as emitHeapDiagnosticReport, st as setWorkerNativeCapsChangeListener, t as installManifestSystemDeps } from "./manifest-system-deps-
|
|
1
|
+
import { Ct as resolveAddonClass, N as createUdsLoggerWithControl, P as LocalChildClient, Rt as RUNNER_RSS_BUDGET_ENV, St as installManifestNativeDeps, Zt as startRunnerHeapWatch, a as createUdsAddonContext, at as getWorkerNativeCapSnapshot, it as getWorkerNativeCapProvider, lt as validateProviderRegistrations, n as installManifestPythonDeps, nn as emitHeapDiagnosticReport, st as setWorkerNativeCapsChangeListener, t as installManifestSystemDeps } from "./manifest-system-deps-CG9ESHhv.mjs";
|
|
2
2
|
import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.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-B29Skpzo.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 { Mt as BaseAddon, in as EventCategory, jt as errMsg, w as addonPagesCapability } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, in as EventCategory, jt as errMsg, w as addonPagesCapability } from "../../dist-DxFjna2a.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-B29Skpzo.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 { E as addonWidgetsCapability, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-
|
|
1
|
+
import { E as addonWidgetsCapability, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-DxFjna2a.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-B29Skpzo.js");
|
|
7
7
|
//#region src/builtins/alerts/prune-policy.ts
|
|
8
8
|
/**
|
|
9
9
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as alertsCapability, Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg, n as AlertSchema } from "../../dist-
|
|
1
|
+
import { D as alertsCapability, Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg, n as AlertSchema } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
//#region src/builtins/alerts/prune-policy.ts
|
|
3
3
|
/**
|
|
4
4
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -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-B29Skpzo.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 { Mt as BaseAddon, in as EventCategory, k as backupCapability } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, in as EventCategory, k as backupCapability } from "../../dist-DxFjna2a.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-B29Skpzo.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 { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.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,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-B29Skpzo.js");
|
|
4
4
|
let node_crypto = require("node:crypto");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as coreBlockIdFromAddonId, I as coreBlocksCapability, Mt as BaseAddon, P as coreBlockAddonId, c as CoreBlockSchema, jt as errMsg, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-
|
|
1
|
+
import { F as coreBlockIdFromAddonId, I as coreBlocksCapability, Mt as BaseAddon, P as coreBlockAddonId, c as CoreBlockSchema, jt as errMsg, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs/promises";
|
|
4
4
|
import * as path$1 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_retired_settings_keys = require("../../retired-settings-keys-
|
|
6
|
+
const require_dist = require("../../dist-B29Skpzo.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-CRL0qOnU.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
10
10
|
//#region src/builtins/device-manager/adoption-job-engine.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as deviceManagerCapability, G as enumerateItemArrayFields, H as deviceStatusCapability, It as DeviceFeature, K as enumerateSchemaFields, Lt as DeviceRole, M as buildStreamParamsConfigSchema, Mt as BaseAddon, Rt as DeviceType, V as deviceStateCapability, Vt as WELL_KNOWN_TAB_MAP, Xt as isDeviceConfigCap, a as CAP_NAMES_WITH_STATUS, d as DeviceStatusSchema, ft as parseStreamParamsFormPatch, in as EventCategory, jt as errMsg, rn as sleep, t as ALL_CAPABILITY_DEFINITIONS, ut as normalizeUnit, vt as runtimeStatePolicyFor, y as STREAM_PROFILE_META } from "../../dist-
|
|
2
|
-
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-
|
|
1
|
+
import { B as deviceManagerCapability, G as enumerateItemArrayFields, H as deviceStatusCapability, It as DeviceFeature, K as enumerateSchemaFields, Lt as DeviceRole, M as buildStreamParamsConfigSchema, Mt as BaseAddon, Rt as DeviceType, V as deviceStateCapability, Vt as WELL_KNOWN_TAB_MAP, Xt as isDeviceConfigCap, a as CAP_NAMES_WITH_STATUS, d as DeviceStatusSchema, ft as parseStreamParamsFormPatch, in as EventCategory, jt as errMsg, rn as sleep, t as ALL_CAPABILITY_DEFINITIONS, ut as normalizeUnit, vt as runtimeStatePolicyFor, y as STREAM_PROFILE_META } from "../../dist-DxFjna2a.mjs";
|
|
2
|
+
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-N0NZzDE3.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { canonicalDeviceFingerprint } from "@camstack/types/node";
|
|
5
5
|
//#region src/builtins/device-manager/adoption-job-engine.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-B29Skpzo.js");
|
|
7
7
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
8
8
|
/**
|
|
9
9
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as bareAddonId, Gt as createEvent, Mt as BaseAddon, Rt as DeviceType, U as doorbellCapability, _ as SOURCE_DEVICE_TYPES, et as isSameAddonId, g as SOURCE_CAPS, in as EventCategory, jt as errMsg, q as evaluateSensorEdge, tt as isSourceCap } from "../../dist-
|
|
1
|
+
import { A as bareAddonId, Gt as createEvent, Mt as BaseAddon, Rt as DeviceType, U as doorbellCapability, _ as SOURCE_DEVICE_TYPES, et as isSameAddonId, g as SOURCE_CAPS, in as EventCategory, jt as errMsg, q as evaluateSensorEdge, tt as isSourceCap } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
3
3
|
/**
|
|
4
4
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -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-B29Skpzo.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 { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.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-B29Skpzo.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 { Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-
|
|
1
|
+
import { Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-DxFjna2a.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-B29Skpzo.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
9
9
|
let crypto$1 = require("crypto");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { C as UserRecordSchema, Mt as BaseAddon, O as authProviderCapability, Ot as userManagementCapability, b as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-
|
|
2
|
+
import { C as UserRecordSchema, Mt as BaseAddon, O as authProviderCapability, Ot as userManagementCapability, b as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-DxFjna2a.mjs";
|
|
3
3
|
import * as crypto$2 from "node:crypto";
|
|
4
4
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
5
5
|
import nodeCrypto from "crypto";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-B29Skpzo.js");
|
|
4
4
|
const require_tls = require("../../tls-BxQlomxd.js");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mt as BaseAddon, at as localNetworkCapability, in as EventCategory } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, at as localNetworkCapability, in as EventCategory } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-DOTmtLCW.mjs";
|
|
3
3
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
4
4
|
import { join } 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-B29Skpzo.js");
|
|
7
7
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
8
8
|
/**
|
|
9
9
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
3
3
|
/**
|
|
4
4
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
8
|
let node_child_process = require("node:child_process");
|
|
9
9
|
let node_util = require("node:util");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gt as createEvent, Mt as BaseAddon, X as foldSnapshotByFunction, gt as resolveBucketMs, ht as reducePoints, in as EventCategory, jt as errMsg, lt as metricsProviderCapability } from "../../dist-
|
|
1
|
+
import { Gt as createEvent, Mt as BaseAddon, X as foldSnapshotByFunction, gt as resolveBucketMs, ht as reducePoints, in as EventCategory, jt as errMsg, lt as metricsProviderCapability } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
import { readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import { execFile, execFileSync } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
let node_child_process = require("node:child_process");
|
|
8
8
|
let node_util = require("node:util");
|
|
9
9
|
let node_fs = require("node:fs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Mt as BaseAddon, W as enumerateInferenceDevices, in as EventCategory, jt as errMsg, pt as platformProbeCapability, qt as emitReadiness, xt as scoreRuntimes } from "../../dist-
|
|
2
|
+
import { Mt as BaseAddon, W as enumerateInferenceDevices, in as EventCategory, jt as errMsg, pt as platformProbeCapability, qt as emitReadiness, xt as scoreRuntimes } from "../../dist-DxFjna2a.mjs";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
import * as fs from "node:fs";
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
8
8
|
/**
|
|
9
9
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mt as BaseAddon, in as EventCategory } from "../../dist-
|
|
1
|
+
import { Mt as BaseAddon, in as EventCategory } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
3
3
|
/**
|
|
4
4
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as bareAddonId, Ct as snapshotCapability, Dt as streamQualityLabel, It as DeviceFeature, Mt as BaseAddon, Rt as DeviceType, Zt as nodePin, i as BatteryStatusSchema, in as EventCategory, j as batteryCapability, jt as errMsg, z as deriveBatteryPresence } from "../../dist-
|
|
1
|
+
import { A as bareAddonId, Ct as snapshotCapability, Dt as streamQualityLabel, It as DeviceFeature, Mt as BaseAddon, Rt as DeviceType, Zt as nodePin, i as BatteryStatusSchema, in as EventCategory, j as batteryCapability, jt as errMsg, z as deriveBatteryPresence } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Et as storageProviderCapability, Mt as BaseAddon, Y as filesystemBrowseCapability } from "../../dist-
|
|
1
|
+
import { Et as storageProviderCapability, Mt as BaseAddon, Y as filesystemBrowseCapability } from "../../dist-DxFjna2a.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { StorageLocation } from '@camstack/types';
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The config keys the ORCHESTRATOR itself owns, as opposed to the ones a
|
|
4
|
+
* provider owns. Every one of them is read by framework code that has no idea
|
|
5
|
+
* which provider is behind the row:
|
|
6
|
+
*
|
|
7
|
+
* - `basePath` — `localCapacityOf`, `locationOccupancy`, the seed pass,
|
|
8
|
+
* `LocationCard`'s summary, `StorageSection`;
|
|
9
|
+
* - `readOnly` — drain mode; the recorder and post-analysis both filter on
|
|
10
|
+
* it off a `listLocations` row;
|
|
11
|
+
* - `maxUsedGb` — `resolveLocationMaxUsedBytes`;
|
|
12
|
+
* - `minFreePercent` — `resolveLocationThresholds`.
|
|
13
|
+
*
|
|
14
|
+
* None can be a credential, because the framework interprets all four itself.
|
|
15
|
+
* That is what makes the list safe to hardcode — it is NOT a list of "keys we
|
|
16
|
+
* believe are not secret", which is the rotting kind. It is the closed set of
|
|
17
|
+
* keys this module, not a provider, defines the meaning of.
|
|
18
|
+
*/
|
|
19
|
+
export declare const FRAMEWORK_CONFIG_KEYS: ReadonlySet<string>;
|
|
4
20
|
/** Minimal shape needed off a provider's `getProviderInfo()` result. */
|
|
5
21
|
export interface ProviderInfoLike {
|
|
6
22
|
readonly providerId: string;
|
|
@@ -8,6 +24,30 @@ export interface ProviderInfoLike {
|
|
|
8
24
|
}
|
|
9
25
|
/** Secret config keys a provider declares, derived from its own form schema. */
|
|
10
26
|
export declare function secretKeysOfProviderInfo(info: ProviderInfoLike): ReadonlySet<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Which keys of THIS config must be treated as secret.
|
|
29
|
+
*
|
|
30
|
+
* `declared` is what the provider's own schema said, or `undefined` when the
|
|
31
|
+
* provider has not registered on this node and so has said nothing.
|
|
32
|
+
*
|
|
33
|
+
* The `undefined` branch is the one that matters. Redaction is schema-driven
|
|
34
|
+
* and the schema arrives with the provider, so "no provider" used to mean "no
|
|
35
|
+
* secret keys" — which redacted nothing while `listLocations` happily served
|
|
36
|
+
* the row, because that method reads the store and never needs a provider.
|
|
37
|
+
* That is a real window on every hub restart (the `remote-storage` group is a
|
|
38
|
+
* separate runner that registers after the orchestrator boots) and it is
|
|
39
|
+
* PERMANENT for a runner the CrashSupervisor marked terminally failed.
|
|
40
|
+
*
|
|
41
|
+
* So an unknown provider fails CLOSED: every key the framework does not itself
|
|
42
|
+
* define is withheld. It over-redacts — a host name is hidden alongside the
|
|
43
|
+
* password — and that is the correct direction, because the admin UI cannot
|
|
44
|
+
* render a provider's form without that same provider's `configSchema` either,
|
|
45
|
+
* so nothing that was working stops working.
|
|
46
|
+
*
|
|
47
|
+
* Withholding is done with the sentinel, never by dropping the key, so a save
|
|
48
|
+
* performed in this degraded state still round-trips every value back intact.
|
|
49
|
+
*/
|
|
50
|
+
export declare function secretKeysForConfig(config: Readonly<Record<string, unknown>>, declared: ReadonlySet<string> | undefined): ReadonlySet<string>;
|
|
11
51
|
/**
|
|
12
52
|
* A copy of `config` with every declared secret replaced by the sentinel.
|
|
13
53
|
* Returns the SAME object when there is nothing to redact, so the common case
|
|
@@ -74,7 +74,13 @@ export declare class StorageOrchestratorAddon extends BaseAddon<StorageOrchestra
|
|
|
74
74
|
* the recorder so disk-pressure is a single core concern.
|
|
75
75
|
*/
|
|
76
76
|
private resolveLocationThresholds;
|
|
77
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* What the provider's own schema declared secret, or `undefined` when this
|
|
79
|
+
* node has never heard from that provider. The distinction is the whole
|
|
80
|
+
* point — see `secretKeysForConfig`, which fails CLOSED on `undefined`.
|
|
81
|
+
*/
|
|
82
|
+
private declaredSecretKeys;
|
|
83
|
+
/** Which keys of a given stored config must never leave this process. */
|
|
78
84
|
private secretKeysFor;
|
|
79
85
|
/** A location with its provider's declared secrets replaced by the sentinel. */
|
|
80
86
|
private redacted;
|
|
@@ -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-B29Skpzo.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1178,47 +1178,62 @@ function createDataStoreDispatch(getEngines) {
|
|
|
1178
1178
|
//#endregion
|
|
1179
1179
|
//#region src/builtins/storage-orchestrator/location-secrets.ts
|
|
1180
1180
|
/**
|
|
1181
|
-
*
|
|
1181
|
+
* The config keys the ORCHESTRATOR itself owns, as opposed to the ones a
|
|
1182
|
+
* provider owns. Every one of them is read by framework code that has no idea
|
|
1183
|
+
* which provider is behind the row:
|
|
1182
1184
|
*
|
|
1183
|
-
*
|
|
1184
|
-
*
|
|
1185
|
-
*
|
|
1186
|
-
*
|
|
1187
|
-
* `
|
|
1188
|
-
*
|
|
1189
|
-
* `secretAccessKey` and `token` inside it. Nothing was exposed only because
|
|
1190
|
-
* every location on the live hub is `filesystem-storage`, whose config is
|
|
1191
|
-
* `basePath` + `maxUsedGb`. The exposure arrives with the first remote
|
|
1192
|
-
* location, and three providers that collect one already ship.
|
|
1185
|
+
* - `basePath` — `localCapacityOf`, `locationOccupancy`, the seed pass,
|
|
1186
|
+
* `LocationCard`'s summary, `StorageSection`;
|
|
1187
|
+
* - `readOnly` — drain mode; the recorder and post-analysis both filter on
|
|
1188
|
+
* it off a `listLocations` row;
|
|
1189
|
+
* - `maxUsedGb` — `resolveLocationMaxUsedBytes`;
|
|
1190
|
+
* - `minFreePercent` — `resolveLocationThresholds`.
|
|
1193
1191
|
*
|
|
1194
|
-
*
|
|
1195
|
-
*
|
|
1196
|
-
*
|
|
1197
|
-
*
|
|
1198
|
-
*
|
|
1199
|
-
* Two directions, and both are needed:
|
|
1200
|
-
* - **out** — {@link redactLocationConfig} replaces every secret value with
|
|
1201
|
-
* `REDACTED_SECRET` on the way to a caller.
|
|
1202
|
-
* - **in** — {@link restoreRedactedSecrets} treats that same sentinel, sent
|
|
1203
|
-
* back on an upsert, as "keep what is stored". Without it the wizard's
|
|
1204
|
-
* edit-and-save round trip would write the sentinel into the config and
|
|
1205
|
-
* lock the operator out of their own share on the first rename.
|
|
1206
|
-
*
|
|
1207
|
-
* ── The trap this deliberately avoids ──────────────────────────────────────
|
|
1208
|
-
* Keying redaction off `type: 'password'` alone MISSES a secret parked in a
|
|
1209
|
-
* `textarea`, and the SFTP provider parks an entire PEM private key there.
|
|
1210
|
-
* Discovery goes through `collectSecretConfigKeys`, whose discriminator is
|
|
1211
|
-
* `type === 'password' || secret === true`. A redaction that quietly misses a
|
|
1212
|
-
* credential is worse than none: it is a leak plus an assurance there is not
|
|
1213
|
-
* one.
|
|
1192
|
+
* None can be a credential, because the framework interprets all four itself.
|
|
1193
|
+
* That is what makes the list safe to hardcode — it is NOT a list of "keys we
|
|
1194
|
+
* believe are not secret", which is the rotting kind. It is the closed set of
|
|
1195
|
+
* keys this module, not a provider, defines the meaning of.
|
|
1214
1196
|
*/
|
|
1215
|
-
|
|
1216
|
-
|
|
1197
|
+
var FRAMEWORK_CONFIG_KEYS = new Set([
|
|
1198
|
+
"basePath",
|
|
1199
|
+
"readOnly",
|
|
1200
|
+
"maxUsedGb",
|
|
1201
|
+
"minFreePercent"
|
|
1202
|
+
]);
|
|
1217
1203
|
/** Secret config keys a provider declares, derived from its own form schema. */
|
|
1218
1204
|
function secretKeysOfProviderInfo(info) {
|
|
1219
1205
|
return require_dist.collectSecretConfigKeys(info.configSchema);
|
|
1220
1206
|
}
|
|
1221
1207
|
/**
|
|
1208
|
+
* Which keys of THIS config must be treated as secret.
|
|
1209
|
+
*
|
|
1210
|
+
* `declared` is what the provider's own schema said, or `undefined` when the
|
|
1211
|
+
* provider has not registered on this node and so has said nothing.
|
|
1212
|
+
*
|
|
1213
|
+
* The `undefined` branch is the one that matters. Redaction is schema-driven
|
|
1214
|
+
* and the schema arrives with the provider, so "no provider" used to mean "no
|
|
1215
|
+
* secret keys" — which redacted nothing while `listLocations` happily served
|
|
1216
|
+
* the row, because that method reads the store and never needs a provider.
|
|
1217
|
+
* That is a real window on every hub restart (the `remote-storage` group is a
|
|
1218
|
+
* separate runner that registers after the orchestrator boots) and it is
|
|
1219
|
+
* PERMANENT for a runner the CrashSupervisor marked terminally failed.
|
|
1220
|
+
*
|
|
1221
|
+
* So an unknown provider fails CLOSED: every key the framework does not itself
|
|
1222
|
+
* define is withheld. It over-redacts — a host name is hidden alongside the
|
|
1223
|
+
* password — and that is the correct direction, because the admin UI cannot
|
|
1224
|
+
* render a provider's form without that same provider's `configSchema` either,
|
|
1225
|
+
* so nothing that was working stops working.
|
|
1226
|
+
*
|
|
1227
|
+
* Withholding is done with the sentinel, never by dropping the key, so a save
|
|
1228
|
+
* performed in this degraded state still round-trips every value back intact.
|
|
1229
|
+
*/
|
|
1230
|
+
function secretKeysForConfig(config, declared) {
|
|
1231
|
+
if (declared !== void 0) return declared;
|
|
1232
|
+
const out = /* @__PURE__ */ new Set();
|
|
1233
|
+
for (const key of Object.keys(config)) if (!FRAMEWORK_CONFIG_KEYS.has(key)) out.add(key);
|
|
1234
|
+
return out;
|
|
1235
|
+
}
|
|
1236
|
+
/**
|
|
1222
1237
|
* A copy of `config` with every declared secret replaced by the sentinel.
|
|
1223
1238
|
* Returns the SAME object when there is nothing to redact, so the common case
|
|
1224
1239
|
* (a filesystem location) allocates nothing.
|
|
@@ -2300,7 +2315,7 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
|
|
|
2300
2315
|
listLocationDeclarations: async () => service.listDeclarations(),
|
|
2301
2316
|
upsertLocation: async (input) => {
|
|
2302
2317
|
const stored = service.getLocationById(input.id);
|
|
2303
|
-
const config = restoreRedactedSecrets(input.config, stored?.config, this.secretKeysFor(input.providerId));
|
|
2318
|
+
const config = restoreRedactedSecrets(input.config, stored?.config, this.secretKeysFor(input.providerId, stored?.config ?? {}));
|
|
2304
2319
|
const saved = service.upsertLocation(config === input.config ? input : {
|
|
2305
2320
|
...input,
|
|
2306
2321
|
config
|
|
@@ -2333,11 +2348,14 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
|
|
|
2333
2348
|
} });
|
|
2334
2349
|
});
|
|
2335
2350
|
},
|
|
2336
|
-
testConfig: async ({ providerId, config }) => {
|
|
2351
|
+
testConfig: async ({ providerId, locationId, config }) => {
|
|
2352
|
+
const stored = locationId === void 0 ? void 0 : service.getLocationById(locationId);
|
|
2353
|
+
const base = stored?.providerId === providerId ? stored.config : void 0;
|
|
2354
|
+
const resolved = restoreRedactedSecrets(config, base, this.secretKeysFor(providerId, base ?? {}));
|
|
2337
2355
|
const providers = getProviders();
|
|
2338
2356
|
for (const p of providers) try {
|
|
2339
2357
|
if ((await p.getProviderInfo()).providerId !== providerId) continue;
|
|
2340
|
-
return p.testLocation({ config });
|
|
2358
|
+
return p.testLocation({ config: resolved });
|
|
2341
2359
|
} catch (err) {
|
|
2342
2360
|
return {
|
|
2343
2361
|
ok: false,
|
|
@@ -2655,13 +2673,21 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
|
|
|
2655
2673
|
}
|
|
2656
2674
|
return out;
|
|
2657
2675
|
}
|
|
2658
|
-
/**
|
|
2659
|
-
|
|
2660
|
-
|
|
2676
|
+
/**
|
|
2677
|
+
* What the provider's own schema declared secret, or `undefined` when this
|
|
2678
|
+
* node has never heard from that provider. The distinction is the whole
|
|
2679
|
+
* point — see `secretKeysForConfig`, which fails CLOSED on `undefined`.
|
|
2680
|
+
*/
|
|
2681
|
+
declaredSecretKeys(providerId) {
|
|
2682
|
+
return this.secretKeysByProvider.get(providerId);
|
|
2683
|
+
}
|
|
2684
|
+
/** Which keys of a given stored config must never leave this process. */
|
|
2685
|
+
secretKeysFor(providerId, config) {
|
|
2686
|
+
return secretKeysForConfig(config, this.declaredSecretKeys(providerId));
|
|
2661
2687
|
}
|
|
2662
2688
|
/** A location with its provider's declared secrets replaced by the sentinel. */
|
|
2663
2689
|
redacted(location) {
|
|
2664
|
-
return redactLocation(location, this.secretKeysFor(location.providerId));
|
|
2690
|
+
return redactLocation(location, this.secretKeysFor(location.providerId, location.config));
|
|
2665
2691
|
}
|
|
2666
2692
|
/**
|
|
2667
2693
|
* Is this location backed by a provider that serves a genuine local
|