@camstack/addon-pipeline 1.2.368 → 1.2.370
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/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/{custom-model-catalog-BY-aEI2s.js → custom-model-catalog-BFosahFu.js} +2 -2
- package/dist/{custom-model-catalog-Bnel86hH.mjs → custom-model-catalog-CVbK0xKc.mjs} +2 -2
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-5AhGOWWu.mjs → dist-CbFPOFAD.mjs} +407 -14
- package/dist/{dist-DDXsZaRH.js → dist-jkwxbcbK.js} +407 -14
- package/dist/{model-catalogs-DWR9EsGI.mjs → model-catalogs-DJmwfLfC.mjs} +1 -1
- package/dist/{model-catalogs-DJN58c_U.js → model-catalogs-Ds2hC2Br.js} +1 -1
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-DqZJFOzR.mjs → node-C-2fB9kH.mjs} +1 -1
- package/dist/{node-CiciZWts.js → node-C_1U1uzn.js} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-Batknjjt.mjs → process-memory-B3I-NvnX.mjs} +1 -1
- package/dist/{process-memory-BRu19Dgr.js → process-memory-Cfh1BQYg.js} +1 -1
- package/dist/recorder/index.js +12 -2
- package/dist/recorder/index.mjs +12 -2
- package/dist/{segment-demux-js-dlhO3Q8W.mjs → segment-demux-js-D3JBJeN6.mjs} +1 -1
- package/dist/{segment-demux-js-0CRf7GAb.js → segment-demux-js-uxBcJy15.js} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CSajlHKC.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DwwDKaZJ.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Bna0L8uC.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BAvXcDKy.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-KJ1eka58.mjs → hostInit-DVwYY7oo.mjs} +2 -2
- package/dist/stream-broker/index.js +302 -90
- package/dist/stream-broker/index.mjs +302 -90
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BfVREmhg.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-5KL24-a_.mjs +0 -26
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_model_catalogs = require("../model-catalogs-
|
|
8
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-jkwxbcbK.js");
|
|
7
|
+
const require_model_catalogs = require("../model-catalogs-Ds2hC2Br.js");
|
|
8
|
+
const require_process_memory = require("../process-memory-Cfh1BQYg.js");
|
|
9
9
|
let node_fs = require("node:fs");
|
|
10
10
|
node_fs = require_chunk.__toESM(node_fs);
|
|
11
11
|
let node_path = require("node:path");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { An as BaseAddon, F as PoolMemoryWatchdog, Fn as audioChunkBytesPerSample, Ft as mapAudioLabelToMacro, Kn as nodePin, On as errMsg, Q as audioAnalyzerCapability, Vn as hydrateSchema, Z as audioAnalysisCapability, cr as EventCategory, h as DEFAULT_AUDIO_ANALYZER_CONFIG, on as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES, zn as expandAudioChunkToF32le } from "../dist-
|
|
3
|
-
import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-
|
|
4
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { An as BaseAddon, F as PoolMemoryWatchdog, Fn as audioChunkBytesPerSample, Ft as mapAudioLabelToMacro, Kn as nodePin, On as errMsg, Q as audioAnalyzerCapability, Vn as hydrateSchema, Z as audioAnalysisCapability, cr as EventCategory, h as DEFAULT_AUDIO_ANALYZER_CONFIG, on as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES, zn as expandAudioChunkToF32le } from "../dist-CbFPOFAD.mjs";
|
|
3
|
+
import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-DJmwfLfC.mjs";
|
|
4
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B3I-NvnX.mjs";
|
|
5
5
|
import * as fs from "node:fs";
|
|
6
6
|
import * as path$1 from "node:path";
|
|
7
7
|
import { ensureModel } from "@camstack/system/addon-utils";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
2
|
-
const require_model_catalogs = require("./model-catalogs-
|
|
1
|
+
const require_dist = require("./dist-jkwxbcbK.js");
|
|
2
|
+
const require_model_catalogs = require("./model-catalogs-Ds2hC2Br.js");
|
|
3
3
|
const require_worker_protocol = require("./worker-protocol-C-G8qmye.js");
|
|
4
4
|
let node_crypto = require("node:crypto");
|
|
5
5
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as audioKindId, b as DEVICE_BACKEND_TO_FORMAT, dn as stepModelRunsOnFormat, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, kt as inferModelProvider, p as COCO_TO_MACRO } from "./dist-
|
|
2
|
-
import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-
|
|
1
|
+
import { $ as audioKindId, b as DEVICE_BACKEND_TO_FORMAT, dn as stepModelRunsOnFormat, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, kt as inferModelProvider, p as COCO_TO_MACRO } from "./dist-CbFPOFAD.mjs";
|
|
2
|
+
import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-DJmwfLfC.mjs";
|
|
3
3
|
import { t as isWorkerReply } from "./worker-protocol-D_NzPcnh.mjs";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
//#region src/detection-pipeline/registry/effective-confidence.ts
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_custom_model_catalog = require("../custom-model-catalog-
|
|
6
|
+
const require_dist = require("../dist-jkwxbcbK.js");
|
|
7
|
+
const require_node = require("../node-C_1U1uzn.js");
|
|
8
|
+
const require_custom_model_catalog = require("../custom-model-catalog-BFosahFu.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-Cfh1BQYg.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { An as BaseAddon, Bn as hfModelUrl, F as PoolMemoryWatchdog, Gt as pickClusterStepSettings, In as createEvent, Jt as pipelineExecutorCapability, Kn as nodePin, Nt as loadContributionCapability, O as LABEL_SUPPLY_MACRO, On as errMsg$1, Ut as overlayClusterStepSettings, Vn as hydrateSchema, Vt as modelBindingKey, X as applyModelBoundSettings, Yn as sleep, Zn as array, bt as evaluateZoneRules, cr as EventCategory, d as CLUSTER_MODEL_SCOPED_STEPS, dn as stepModelRunsOnFormat, dt as defaultDeviceFor$1, g as DEFAULT_CLUSTER_STEP_SETTINGS, gn as supportedRuntimes$1, gt as detectionPipelineCapability, jt as linkedLabelStepId, ln as rootSuppliesOf, n as APPLE_SA_TO_MACRO, on as resolvePoolMemoryPolicy, or as string, ot as collectModelBoundKeys, q as YAMNET_TO_MACRO, rr as object, sr as union, st as containingParentIndex, tn as resolveClusterStepModelId, un as runtimeDevices$1, yt as enumerateInferenceDevices } from "../dist-
|
|
3
|
-
import { s as readProcessCost } from "../node-
|
|
4
|
-
import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-
|
|
2
|
+
import { An as BaseAddon, Bn as hfModelUrl, F as PoolMemoryWatchdog, Gt as pickClusterStepSettings, In as createEvent, Jt as pipelineExecutorCapability, Kn as nodePin, Nt as loadContributionCapability, O as LABEL_SUPPLY_MACRO, On as errMsg$1, Ut as overlayClusterStepSettings, Vn as hydrateSchema, Vt as modelBindingKey, X as applyModelBoundSettings, Yn as sleep, Zn as array, bt as evaluateZoneRules, cr as EventCategory, d as CLUSTER_MODEL_SCOPED_STEPS, dn as stepModelRunsOnFormat, dt as defaultDeviceFor$1, g as DEFAULT_CLUSTER_STEP_SETTINGS, gn as supportedRuntimes$1, gt as detectionPipelineCapability, jt as linkedLabelStepId, ln as rootSuppliesOf, n as APPLE_SA_TO_MACRO, on as resolvePoolMemoryPolicy, or as string, ot as collectModelBoundKeys, q as YAMNET_TO_MACRO, rr as object, sr as union, st as containingParentIndex, tn as resolveClusterStepModelId, un as runtimeDevices$1, yt as enumerateInferenceDevices } from "../dist-CbFPOFAD.mjs";
|
|
3
|
+
import { s as readProcessCost } from "../node-C-2fB9kH.mjs";
|
|
4
|
+
import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-CVbK0xKc.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-B3I-NvnX.mjs";
|
|
7
7
|
import * as os$1 from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -5387,7 +5387,7 @@ var ZodIssueCode = {
|
|
|
5387
5387
|
var ZodFirstPartyTypeKind;
|
|
5388
5388
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5389
5389
|
//#endregion
|
|
5390
|
-
//#region ../types/dist/sleep-
|
|
5390
|
+
//#region ../types/dist/sleep-DAX0-2v9.mjs
|
|
5391
5391
|
/**
|
|
5392
5392
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5393
5393
|
* window to float samples (D455).
|
|
@@ -8421,6 +8421,8 @@ var CREDENTIAL_PARAM_PATTERNS = [
|
|
|
8421
8421
|
/^code$/i,
|
|
8422
8422
|
/^state$/i,
|
|
8423
8423
|
/^challenge$/i,
|
|
8424
|
+
/^code[_-]?challenge$/i,
|
|
8425
|
+
/^confirm$/i,
|
|
8424
8426
|
/^link$/i
|
|
8425
8427
|
];
|
|
8426
8428
|
function isCredentialParam(name) {
|
|
@@ -14652,6 +14654,13 @@ var ConvertResultSchema = object({
|
|
|
14652
14654
|
files: array(string()).readonly()
|
|
14653
14655
|
})).readonly()
|
|
14654
14656
|
});
|
|
14657
|
+
_enum(["new-session", "step-up"]);
|
|
14658
|
+
_enum(["en", "it"]);
|
|
14659
|
+
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
14660
|
+
var AppLoginPathSchema = discriminatedUnion("kind", [object({ kind: literal("native") }), object({
|
|
14661
|
+
kind: literal("browser"),
|
|
14662
|
+
startPath: string().startsWith("/")
|
|
14663
|
+
})]);
|
|
14655
14664
|
/**
|
|
14656
14665
|
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
14657
14666
|
* UI and the native viewer.
|
|
@@ -14811,7 +14820,9 @@ object({
|
|
|
14811
14820
|
signature: literal(DEVICE_CERT_SIGNATURE),
|
|
14812
14821
|
messageVersion: literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
14813
14822
|
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
14814
|
-
clients: array(_enum(["native", "web"]))
|
|
14823
|
+
clients: array(_enum(["native", "web"])),
|
|
14824
|
+
/** The app executes it itself, silently (D858). */
|
|
14825
|
+
app: AppLoginPathSchema.nullable()
|
|
14815
14826
|
});
|
|
14816
14827
|
var ExpressionBindingSourceSchema = union([
|
|
14817
14828
|
object({
|
|
@@ -18003,7 +18014,11 @@ var cameraStreamsCapability = {
|
|
|
18003
18014
|
* See `RuntimeStateDurability`. Enforced by
|
|
18004
18015
|
* `scripts/check-runtime-state-durability.ts`.
|
|
18005
18016
|
*/
|
|
18006
|
-
durability: "session"
|
|
18017
|
+
durability: "session",
|
|
18018
|
+
/**
|
|
18019
|
+
* History (D850): none — `online` duplicates device-status.online (one authority); slot data is nested enum/string.
|
|
18020
|
+
*/
|
|
18021
|
+
history: "none"
|
|
18007
18022
|
};
|
|
18008
18023
|
EventCategory.DoorbellOnPressed;
|
|
18009
18024
|
var CompositionEventPlanSchema = object({
|
|
@@ -18836,6 +18851,208 @@ method(object({
|
|
|
18836
18851
|
kind: "mutation",
|
|
18837
18852
|
auth: "admin"
|
|
18838
18853
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
18854
|
+
/**
|
|
18855
|
+
* device-history — the ONE mechanism for numeric history (D850).
|
|
18856
|
+
*
|
|
18857
|
+
* A device value is recorded because its capability says so (the `history`
|
|
18858
|
+
* block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
|
|
18859
|
+
* other series is DECLARED by the addon that produces it and fed with points
|
|
18860
|
+
* (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
|
|
18861
|
+
* 1d are computed here and nowhere else. Storage is `history.db` (D851).
|
|
18862
|
+
*
|
|
18863
|
+
* Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
|
|
18864
|
+
* checked against the `callerAddonId` the transport stamps into a call that
|
|
18865
|
+
* crossed a process (never in an input schema, so a session cannot supply it).
|
|
18866
|
+
* A call with no stamp is refused `not-owner`. The methods are `admin` so a
|
|
18867
|
+
* non-admin session never reaches them; an addon's `ctx.api` call bypasses the
|
|
18868
|
+
* tier by design.
|
|
18869
|
+
*/
|
|
18870
|
+
/** Whose history: a real device, or a cluster node (load, memory). */
|
|
18871
|
+
var DeviceHistorySubjectSchema = discriminatedUnion("kind", [object({
|
|
18872
|
+
kind: literal("device"),
|
|
18873
|
+
deviceId: number().int()
|
|
18874
|
+
}), object({
|
|
18875
|
+
kind: literal("node"),
|
|
18876
|
+
nodeId: string().min(1)
|
|
18877
|
+
})]);
|
|
18878
|
+
var DeviceHistoryKindSchema = _enum([
|
|
18879
|
+
"gauge",
|
|
18880
|
+
"counter",
|
|
18881
|
+
"boolean"
|
|
18882
|
+
]);
|
|
18883
|
+
var DeviceHistoryResolutionSchema = _enum([
|
|
18884
|
+
"raw",
|
|
18885
|
+
"5m",
|
|
18886
|
+
"1h",
|
|
18887
|
+
"1d"
|
|
18888
|
+
]);
|
|
18889
|
+
/** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
|
|
18890
|
+
var DeviceHistoryRefusalReasonSchema = _enum([
|
|
18891
|
+
"undeclared",
|
|
18892
|
+
"not-owner",
|
|
18893
|
+
"opted-out",
|
|
18894
|
+
"not-a-real-device",
|
|
18895
|
+
"rate",
|
|
18896
|
+
"ingest-mismatch",
|
|
18897
|
+
"out-of-range"
|
|
18898
|
+
]);
|
|
18899
|
+
var RefusalSchema = object({
|
|
18900
|
+
key: string(),
|
|
18901
|
+
reason: DeviceHistoryRefusalReasonSchema,
|
|
18902
|
+
count: number().int()
|
|
18903
|
+
});
|
|
18904
|
+
var IngestResultSchema = object({
|
|
18905
|
+
accepted: number().int(),
|
|
18906
|
+
refused: array(RefusalSchema).readonly()
|
|
18907
|
+
});
|
|
18908
|
+
var SeriesInfoSchema = object({
|
|
18909
|
+
key: string(),
|
|
18910
|
+
scope: string(),
|
|
18911
|
+
kind: DeviceHistoryKindSchema,
|
|
18912
|
+
/** `null` is unknown (a `unitFrom` series whose device does not state a unit right now), never a guess. */
|
|
18913
|
+
unit: string().nullable(),
|
|
18914
|
+
displayName: string(),
|
|
18915
|
+
source: _enum(["cap", "addon"]),
|
|
18916
|
+
firstTs: number(),
|
|
18917
|
+
lastTs: number()
|
|
18918
|
+
});
|
|
18919
|
+
var QueryPointSchema = object({
|
|
18920
|
+
/** Raw: the point's time. Rollup: the bucket start. */
|
|
18921
|
+
t: number(),
|
|
18922
|
+
samples: number().int(),
|
|
18923
|
+
/** `sum / samples`. */
|
|
18924
|
+
mean: number().nullable(),
|
|
18925
|
+
/** Time-weighted mean (`tw_sum / tw_ms`); `null` for bucket-ingested series. For a boolean: the fraction of time true. */
|
|
18926
|
+
twMean: number().nullable(),
|
|
18927
|
+
min: number(),
|
|
18928
|
+
max: number(),
|
|
18929
|
+
/** `null` is unknown, never zero (D393). */
|
|
18930
|
+
last: number().nullable()
|
|
18931
|
+
});
|
|
18932
|
+
var QuerySeriesSchema = object({
|
|
18933
|
+
scope: string(),
|
|
18934
|
+
/** The last point STRICTLY BEFORE `from` in the chosen tier, so a step chart can start at the held value. */
|
|
18935
|
+
before: object({
|
|
18936
|
+
t: number(),
|
|
18937
|
+
value: number().nullable()
|
|
18938
|
+
}).nullable(),
|
|
18939
|
+
points: array(QueryPointSchema).readonly()
|
|
18940
|
+
});
|
|
18941
|
+
/** The window part of a query, shared by the device and node forms. */
|
|
18942
|
+
var QueryWindowShape = {
|
|
18943
|
+
key: string(),
|
|
18944
|
+
scope: string().optional(),
|
|
18945
|
+
from: number(),
|
|
18946
|
+
to: number(),
|
|
18947
|
+
resolution: union([DeviceHistoryResolutionSchema, literal("auto")]).default("auto"),
|
|
18948
|
+
maxPoints: number().int().positive().max(5e3).default(1e3)
|
|
18949
|
+
};
|
|
18950
|
+
var QueryResultSchema = object({
|
|
18951
|
+
resolution: DeviceHistoryResolutionSchema,
|
|
18952
|
+
series: array(QuerySeriesSchema).readonly(),
|
|
18953
|
+
truncated: boolean()
|
|
18954
|
+
});
|
|
18955
|
+
var TierStatusSchema = object({
|
|
18956
|
+
tier: DeviceHistoryResolutionSchema,
|
|
18957
|
+
/** `null` until the first background count answered. */
|
|
18958
|
+
rows: number().int().nullable(),
|
|
18959
|
+
/** `rows` times a fixed per-row estimate — approximate, labelled so. */
|
|
18960
|
+
approxBytes: number().nullable(),
|
|
18961
|
+
countedAt: number().nullable()
|
|
18962
|
+
});
|
|
18963
|
+
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
18964
|
+
var DeviceHistoryStatusSchema = object({
|
|
18965
|
+
startedAt: number(),
|
|
18966
|
+
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
18967
|
+
ready: boolean(),
|
|
18968
|
+
series: number().int(),
|
|
18969
|
+
metrics: number().int(),
|
|
18970
|
+
optedOutDevices: number().int(),
|
|
18971
|
+
tiers: array(TierStatusSchema).readonly(),
|
|
18972
|
+
capture: object({
|
|
18973
|
+
eventsSeen: number().int(),
|
|
18974
|
+
pointsEmitted: number().int(),
|
|
18975
|
+
pointsWritten: number().int(),
|
|
18976
|
+
pointsDropped: number().int(),
|
|
18977
|
+
bufferDepth: number().int(),
|
|
18978
|
+
trailingEmitted: number().int(),
|
|
18979
|
+
reconciledPoints: number().int(),
|
|
18980
|
+
reconcileRuns: number().int(),
|
|
18981
|
+
reconcileFailures: number().int(),
|
|
18982
|
+
lastReconcileAt: number().nullable(),
|
|
18983
|
+
lastFlushAt: number().nullable(),
|
|
18984
|
+
flushFailures: number().int(),
|
|
18985
|
+
skipped: record(string(), number().int())
|
|
18986
|
+
}),
|
|
18987
|
+
ingest: object({
|
|
18988
|
+
accepted: number().int(),
|
|
18989
|
+
refused: record(string(), number().int())
|
|
18990
|
+
}),
|
|
18991
|
+
rollup: object({
|
|
18992
|
+
last5mAt: number().nullable(),
|
|
18993
|
+
last1hAt: number().nullable(),
|
|
18994
|
+
last1dAt: number().nullable(),
|
|
18995
|
+
errors: number().int(),
|
|
18996
|
+
dirty5m: number().int(),
|
|
18997
|
+
dirty1h: number().int(),
|
|
18998
|
+
dirty1d: number().int()
|
|
18999
|
+
}),
|
|
19000
|
+
retention: object({
|
|
19001
|
+
lastRunAt: number().nullable(),
|
|
19002
|
+
deleted: record(string(), number().int()),
|
|
19003
|
+
purgedSeries: number().int()
|
|
19004
|
+
}),
|
|
19005
|
+
directory: object({
|
|
19006
|
+
devices: number().int(),
|
|
19007
|
+
lastRefreshAt: number().nullable()
|
|
19008
|
+
})
|
|
19009
|
+
});
|
|
19010
|
+
method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly()), method(object({ nodeId: string().min(1) }), array(SeriesInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
19011
|
+
deviceId: number().int(),
|
|
19012
|
+
...QueryWindowShape
|
|
19013
|
+
}), QueryResultSchema), method(object({
|
|
19014
|
+
nodeId: string().min(1),
|
|
19015
|
+
...QueryWindowShape
|
|
19016
|
+
}), QueryResultSchema, { auth: "admin" }), method(object({
|
|
19017
|
+
name: string().regex(/^[a-z0-9-]+$/),
|
|
19018
|
+
subjectKind: _enum(["device", "node"]),
|
|
19019
|
+
kind: DeviceHistoryKindSchema,
|
|
19020
|
+
unit: string().optional(),
|
|
19021
|
+
displayName: string().min(1),
|
|
19022
|
+
ingest: _enum(["points", "buckets"])
|
|
19023
|
+
}), object({ key: string() }), {
|
|
19024
|
+
kind: "mutation",
|
|
19025
|
+
auth: "admin"
|
|
19026
|
+
}), method(object({ points: array(object({
|
|
19027
|
+
key: string(),
|
|
19028
|
+
subject: DeviceHistorySubjectSchema,
|
|
19029
|
+
scope: string().default(""),
|
|
19030
|
+
ts: number(),
|
|
19031
|
+
value: number()
|
|
19032
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
19033
|
+
kind: "mutation",
|
|
19034
|
+
auth: "admin"
|
|
19035
|
+
}), method(object({ buckets: array(object({
|
|
19036
|
+
key: string(),
|
|
19037
|
+
subject: DeviceHistorySubjectSchema,
|
|
19038
|
+
scope: string().default(""),
|
|
19039
|
+
bucketStart: number(),
|
|
19040
|
+
samples: number().int().positive(),
|
|
19041
|
+
sum: number(),
|
|
19042
|
+
min: number(),
|
|
19043
|
+
max: number(),
|
|
19044
|
+
last: number().nullable(),
|
|
19045
|
+
lastTs: number().nullable()
|
|
19046
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
19047
|
+
kind: "mutation",
|
|
19048
|
+
auth: "admin"
|
|
19049
|
+
}), method(object({ deviceId: number().int() }), object({ enabled: boolean() })), method(object({
|
|
19050
|
+
deviceId: number().int(),
|
|
19051
|
+
enabled: boolean()
|
|
19052
|
+
}), object({ enabled: boolean() }), {
|
|
19053
|
+
kind: "mutation",
|
|
19054
|
+
auth: "admin"
|
|
19055
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
|
|
18839
19056
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
18840
19057
|
object({ state: literal("absent") }),
|
|
18841
19058
|
object({
|
|
@@ -18953,6 +19170,9 @@ method(object({}), object({
|
|
|
18953
19170
|
}), {
|
|
18954
19171
|
kind: "mutation",
|
|
18955
19172
|
auth: "admin"
|
|
19173
|
+
}), method(object({}), object({ ok: literal(true) }), {
|
|
19174
|
+
kind: "mutation",
|
|
19175
|
+
auth: "admin"
|
|
18956
19176
|
}), method(object({
|
|
18957
19177
|
certPem: string().min(1),
|
|
18958
19178
|
caCertPem: string().min(1),
|
|
@@ -41785,7 +42005,13 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
41785
42005
|
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
41786
42006
|
* whatever their id. Absent / false — a login button only.
|
|
41787
42007
|
*/
|
|
41788
|
-
linkable: boolean().optional()
|
|
42008
|
+
linkable: boolean().optional(),
|
|
42009
|
+
/**
|
|
42010
|
+
* How a NATIVE app starts this method (D858): `{ kind: 'browser', startPath }`
|
|
42011
|
+
* when the route understands the app flow query (`app=1&code_challenge=…`),
|
|
42012
|
+
* `null`/absent when there is no app path - the app hides the method.
|
|
42013
|
+
*/
|
|
42014
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41789
42015
|
}),
|
|
41790
42016
|
object({
|
|
41791
42017
|
kind: literal("widget"),
|
|
@@ -41797,7 +42023,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
41797
42023
|
bundle: string(),
|
|
41798
42024
|
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
41799
42025
|
remote: WidgetRemoteSchema,
|
|
41800
|
-
stage: LoginStageEnum
|
|
42026
|
+
stage: LoginStageEnum,
|
|
42027
|
+
/** Widgets are web ceremonies: no native app path (D858). Absent reads as `null`. */
|
|
42028
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41801
42029
|
}),
|
|
41802
42030
|
object({
|
|
41803
42031
|
kind: literal("passkey"),
|
|
@@ -41809,7 +42037,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
41809
42037
|
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
41810
42038
|
rpId: string(),
|
|
41811
42039
|
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
41812
|
-
origin: string().nullable()
|
|
42040
|
+
origin: string().nullable(),
|
|
42041
|
+
/** Set by the hub for the primary arm; a second-factor passkey has no app path (D858). */
|
|
42042
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41813
42043
|
})
|
|
41814
42044
|
]);
|
|
41815
42045
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
@@ -42336,7 +42566,21 @@ var NetworkEndpointSchema = object({
|
|
|
42336
42566
|
url: string(),
|
|
42337
42567
|
hostname: string(),
|
|
42338
42568
|
port: number(),
|
|
42339
|
-
protocol: _enum(["http", "https"])
|
|
42569
|
+
protocol: _enum(["http", "https"]),
|
|
42570
|
+
/**
|
|
42571
|
+
* Whether this address survives a restart of its provider. `false` = it is
|
|
42572
|
+
* re-issued every time (a Quick tunnel's random `*.trycloudflare.com`); the
|
|
42573
|
+
* hub never selects such an address AUTOMATICALLY for a role (D860), though
|
|
42574
|
+
* it stays visible and an operator may still flag it. Absent = stable: every
|
|
42575
|
+
* provider except a Quick tunnel owns a name that does not change.
|
|
42576
|
+
*/
|
|
42577
|
+
stable: boolean().optional()
|
|
42578
|
+
});
|
|
42579
|
+
object({
|
|
42580
|
+
url: string(),
|
|
42581
|
+
/** Mirrors {@link NetworkEndpointSchema} `stable`; absent = stable. */
|
|
42582
|
+
stable: boolean().optional(),
|
|
42583
|
+
updated: boolean().optional()
|
|
42340
42584
|
});
|
|
42341
42585
|
var NetworkAccessStatusSchema = object({
|
|
42342
42586
|
connected: boolean(),
|
|
@@ -53140,7 +53384,22 @@ var SsoBridgeClaimsSchema = object({
|
|
|
53140
53384
|
* request to present the matching cookie — a login bridge is useless in
|
|
53141
53385
|
* any other browser.
|
|
53142
53386
|
*/
|
|
53143
|
-
browserBinding: string().optional()
|
|
53387
|
+
browserBinding: string().optional(),
|
|
53388
|
+
/**
|
|
53389
|
+
* The native app that started this sign-in (D858): its PKCE challenge,
|
|
53390
|
+
* `state`, purpose and allow-listed return URL, copied from the server-side
|
|
53391
|
+
* pending OIDC state. A bridge carrying it is finished ONLY at
|
|
53392
|
+
* `/api/auth/sso/finish-app` (which mints a handoff code, never a web
|
|
53393
|
+
* session); `/api/auth/sso/finish` refuses it.
|
|
53394
|
+
*/
|
|
53395
|
+
app: object({
|
|
53396
|
+
codeChallenge: string(),
|
|
53397
|
+
state: string(),
|
|
53398
|
+
purpose: _enum(["new-session", "step-up"]),
|
|
53399
|
+
redirect: string(),
|
|
53400
|
+
/** The page language the app asked for (D858); the confirm page speaks it. */
|
|
53401
|
+
lang: _enum(["en", "it"]).optional()
|
|
53402
|
+
}).optional()
|
|
53144
53403
|
});
|
|
53145
53404
|
method(object({
|
|
53146
53405
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -55760,7 +56019,12 @@ var SearchResultSchema = object({
|
|
|
55760
56019
|
publishedAt: string(),
|
|
55761
56020
|
author: string(),
|
|
55762
56021
|
installed: boolean(),
|
|
55763
|
-
installedVersion: string().optional()
|
|
56022
|
+
installedVersion: string().optional(),
|
|
56023
|
+
/**
|
|
56024
|
+
* Capability names the package's addons declare (from its published
|
|
56025
|
+
* manifest). `null` = the registry lookup failed — unknown, never `[]` (D393).
|
|
56026
|
+
*/
|
|
56027
|
+
capabilities: array(string()).readonly().nullable()
|
|
55764
56028
|
});
|
|
55765
56029
|
var AutoUpdateSettingsSchema = object({
|
|
55766
56030
|
channel: ChannelSchema,
|
|
@@ -55922,7 +56186,11 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
55922
56186
|
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
55923
56187
|
kind: "mutation",
|
|
55924
56188
|
auth: "admin"
|
|
55925
|
-
}), method(object({
|
|
56189
|
+
}), method(object({
|
|
56190
|
+
query: string().optional(),
|
|
56191
|
+
/** Only packages whose addons declare this capability (unknown ones excluded). */
|
|
56192
|
+
capability: string().optional()
|
|
56193
|
+
}), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
55926
56194
|
name: string().min(1),
|
|
55927
56195
|
version: string().optional(),
|
|
55928
56196
|
nodeId: string().optional()
|
|
@@ -56345,6 +56613,13 @@ onStatusChanged: { data: object({
|
|
|
56345
56613
|
* `scripts/check-runtime-state-durability.ts`.
|
|
56346
56614
|
*/
|
|
56347
56615
|
durability: "restored",
|
|
56616
|
+
/**
|
|
56617
|
+
* History (D850): recorded series. The generic capture replaces the `battery` series of `pipeline-analytics:stats-5m`.
|
|
56618
|
+
*/
|
|
56619
|
+
history: { fields: { percentage: {
|
|
56620
|
+
kind: "gauge",
|
|
56621
|
+
unit: "%"
|
|
56622
|
+
} } },
|
|
56348
56623
|
/** Clock fields: written, but excluded from the compare that decides
|
|
56349
56624
|
* whether persisting is worth a SQLite commit. */
|
|
56350
56625
|
volatileStateFields: ["lastUpdated"]
|
|
@@ -58412,7 +58687,13 @@ var ConnectionEndpointSchema = object({
|
|
|
58412
58687
|
* calls so the client can sort even if the cap returns a new
|
|
58413
58688
|
* ordering between polls.
|
|
58414
58689
|
*/
|
|
58415
|
-
priority: number()
|
|
58690
|
+
priority: number(),
|
|
58691
|
+
/**
|
|
58692
|
+
* `false` = the address changes on its own (a Quick tunnel, re-issued on
|
|
58693
|
+
* every respawn). Automatic role resolution skips it (D860); an explicit
|
|
58694
|
+
* operator flag still honours it. Absent = stable.
|
|
58695
|
+
*/
|
|
58696
|
+
stable: boolean().optional()
|
|
58416
58697
|
});
|
|
58417
58698
|
/**
|
|
58418
58699
|
* Where the advertised local port came from. Ordered most → least
|
|
@@ -59041,7 +59322,7 @@ var MotionOnMotionChangedDataSchema = object({
|
|
|
59041
59322
|
/** Who started it (D672). Absent = the camera itself. Only `onboard` carries `sensor`. */
|
|
59042
59323
|
triggeredBy: MotionTriggeredBySchema.optional()
|
|
59043
59324
|
});
|
|
59044
|
-
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean());
|
|
59325
|
+
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean()), DeviceType.Camera;
|
|
59045
59326
|
object({
|
|
59046
59327
|
enabled: boolean(),
|
|
59047
59328
|
/** Ms epoch of the last operator-driven change. */
|
|
@@ -62905,7 +63186,11 @@ getStatus: method(object({ deviceId: number() }), RecordingSignalStatusSchema) }
|
|
|
62905
63186
|
* See `RuntimeStateDurability`. Enforced by
|
|
62906
63187
|
* `scripts/check-runtime-state-durability.ts`.
|
|
62907
63188
|
*/
|
|
62908
|
-
durability: "session"
|
|
63189
|
+
durability: "session",
|
|
63190
|
+
/**
|
|
63191
|
+
* History (D850): none — recording intent is already in the recordings ledger.
|
|
63192
|
+
*/
|
|
63193
|
+
history: "none"
|
|
62909
63194
|
};
|
|
62910
63195
|
/**
|
|
62911
63196
|
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
@@ -63504,6 +63789,21 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
63504
63789
|
on: boolean(),
|
|
63505
63790
|
lastChangedAt: number()
|
|
63506
63791
|
});
|
|
63792
|
+
/** C0 controls, DEL and the C1 range: none of them belongs in a name. */
|
|
63793
|
+
function hasControlCharacter(value) {
|
|
63794
|
+
for (const char of value) {
|
|
63795
|
+
const code = char.codePointAt(0) ?? 0;
|
|
63796
|
+
if (code <= 31 || code >= 127 && code <= 159) return true;
|
|
63797
|
+
}
|
|
63798
|
+
return false;
|
|
63799
|
+
}
|
|
63800
|
+
string().transform((value) => value.trim()).pipe(string().min(1, "The server name cannot be empty").max(48, `The server name is at most 48 characters`).refine((value) => !hasControlCharacter(value), { message: "The server name cannot contain control characters" }));
|
|
63801
|
+
/** What every reader gets: the name to show, and whether the hub chose it itself. */
|
|
63802
|
+
var ServerNameInfoSchema = object({
|
|
63803
|
+
name: string(),
|
|
63804
|
+
/** `true` when nobody named the hub: `name` is the machine hostname. */
|
|
63805
|
+
isDefault: boolean()
|
|
63806
|
+
});
|
|
63507
63807
|
/**
|
|
63508
63808
|
* system — system-scoped singleton capability exposing hub-level
|
|
63509
63809
|
* health, feature flags, network interface enumeration, and the
|
|
@@ -63533,6 +63833,12 @@ var FeatureManifestSchema = object({
|
|
|
63533
63833
|
backup: boolean(),
|
|
63534
63834
|
repl: boolean()
|
|
63535
63835
|
});
|
|
63836
|
+
/**
|
|
63837
|
+
* `system.info`: the feature flags plus the hub's human name (D861). The name is
|
|
63838
|
+
* `{ name, isDefault }` — `isDefault: true` means nobody named the hub and `name`
|
|
63839
|
+
* is the machine hostname.
|
|
63840
|
+
*/
|
|
63841
|
+
var SystemInfoSchema = FeatureManifestSchema.extend({ serverName: ServerNameInfoSchema });
|
|
63536
63842
|
var HealthStatusSchema = object({
|
|
63537
63843
|
status: literal("ok"),
|
|
63538
63844
|
uptime: number()
|
|
@@ -64005,7 +64311,7 @@ var LoggingSettingsStateSchema = object({
|
|
|
64005
64311
|
opsLogRetentionDays: number().int().min(0),
|
|
64006
64312
|
persisted: boolean()
|
|
64007
64313
|
});
|
|
64008
|
-
method(_void(),
|
|
64314
|
+
method(_void(), SystemInfoSchema), method(_void(), HealthStatusSchema), method(_void(), FeatureManifestSchema), method(_void(), array(NetworkAddressSchema).readonly()), method(_void(), unknown().nullable(), { auth: "admin" }), method(record(string(), unknown()), _null(), {
|
|
64009
64315
|
kind: "mutation",
|
|
64010
64316
|
auth: "admin"
|
|
64011
64317
|
}), method(_void(), _void(), {
|
|
@@ -66936,6 +67242,66 @@ Object.freeze({
|
|
|
66936
67242
|
addonId: null,
|
|
66937
67243
|
access: "create"
|
|
66938
67244
|
},
|
|
67245
|
+
"deviceHistory.declareSeries": {
|
|
67246
|
+
capName: "device-history",
|
|
67247
|
+
capScope: "system",
|
|
67248
|
+
addonId: null,
|
|
67249
|
+
access: "create"
|
|
67250
|
+
},
|
|
67251
|
+
"deviceHistory.getDeviceEnabled": {
|
|
67252
|
+
capName: "device-history",
|
|
67253
|
+
capScope: "system",
|
|
67254
|
+
addonId: null,
|
|
67255
|
+
access: "view"
|
|
67256
|
+
},
|
|
67257
|
+
"deviceHistory.getStatus": {
|
|
67258
|
+
capName: "device-history",
|
|
67259
|
+
capScope: "system",
|
|
67260
|
+
addonId: null,
|
|
67261
|
+
access: "view"
|
|
67262
|
+
},
|
|
67263
|
+
"deviceHistory.listNodeSeries": {
|
|
67264
|
+
capName: "device-history",
|
|
67265
|
+
capScope: "system",
|
|
67266
|
+
addonId: null,
|
|
67267
|
+
access: "view"
|
|
67268
|
+
},
|
|
67269
|
+
"deviceHistory.listSeries": {
|
|
67270
|
+
capName: "device-history",
|
|
67271
|
+
capScope: "system",
|
|
67272
|
+
addonId: null,
|
|
67273
|
+
access: "view"
|
|
67274
|
+
},
|
|
67275
|
+
"deviceHistory.query": {
|
|
67276
|
+
capName: "device-history",
|
|
67277
|
+
capScope: "system",
|
|
67278
|
+
addonId: null,
|
|
67279
|
+
access: "view"
|
|
67280
|
+
},
|
|
67281
|
+
"deviceHistory.queryNode": {
|
|
67282
|
+
capName: "device-history",
|
|
67283
|
+
capScope: "system",
|
|
67284
|
+
addonId: null,
|
|
67285
|
+
access: "view"
|
|
67286
|
+
},
|
|
67287
|
+
"deviceHistory.record": {
|
|
67288
|
+
capName: "device-history",
|
|
67289
|
+
capScope: "system",
|
|
67290
|
+
addonId: null,
|
|
67291
|
+
access: "create"
|
|
67292
|
+
},
|
|
67293
|
+
"deviceHistory.recordBuckets": {
|
|
67294
|
+
capName: "device-history",
|
|
67295
|
+
capScope: "system",
|
|
67296
|
+
addonId: null,
|
|
67297
|
+
access: "create"
|
|
67298
|
+
},
|
|
67299
|
+
"deviceHistory.setDeviceEnabled": {
|
|
67300
|
+
capName: "device-history",
|
|
67301
|
+
capScope: "system",
|
|
67302
|
+
addonId: null,
|
|
67303
|
+
access: "create"
|
|
67304
|
+
},
|
|
66939
67305
|
"deviceManager.addLocation": {
|
|
66940
67306
|
capName: "device-manager",
|
|
66941
67307
|
capScope: "system",
|
|
@@ -69000,6 +69366,12 @@ Object.freeze({
|
|
|
69000
69366
|
addonId: null,
|
|
69001
69367
|
access: "create"
|
|
69002
69368
|
},
|
|
69369
|
+
"nodeCertificates.forgetHub": {
|
|
69370
|
+
capName: "node-certificates",
|
|
69371
|
+
capScope: "system",
|
|
69372
|
+
addonId: null,
|
|
69373
|
+
access: "delete"
|
|
69374
|
+
},
|
|
69003
69375
|
"nodeCertificates.getCertificates": {
|
|
69004
69376
|
capName: "node-certificates",
|
|
69005
69377
|
capScope: "system",
|
|
@@ -73727,6 +74099,26 @@ Object.freeze({
|
|
|
73727
74099
|
form: "single",
|
|
73728
74100
|
optional: false
|
|
73729
74101
|
}],
|
|
74102
|
+
"deviceHistory.getDeviceEnabled": [{
|
|
74103
|
+
name: "deviceId",
|
|
74104
|
+
form: "single",
|
|
74105
|
+
optional: false
|
|
74106
|
+
}],
|
|
74107
|
+
"deviceHistory.listSeries": [{
|
|
74108
|
+
name: "deviceId",
|
|
74109
|
+
form: "single",
|
|
74110
|
+
optional: false
|
|
74111
|
+
}],
|
|
74112
|
+
"deviceHistory.query": [{
|
|
74113
|
+
name: "deviceId",
|
|
74114
|
+
form: "single",
|
|
74115
|
+
optional: false
|
|
74116
|
+
}],
|
|
74117
|
+
"deviceHistory.setDeviceEnabled": [{
|
|
74118
|
+
name: "deviceId",
|
|
74119
|
+
form: "single",
|
|
74120
|
+
optional: false
|
|
74121
|
+
}],
|
|
73730
74122
|
"deviceManager.adoptionRelease": [{
|
|
73731
74123
|
name: "camDeviceId",
|
|
73732
74124
|
form: "single",
|
|
@@ -75905,6 +76297,7 @@ Object.freeze({
|
|
|
75905
76297
|
"network-access": "ingress",
|
|
75906
76298
|
"smtp-provider": "email"
|
|
75907
76299
|
});
|
|
76300
|
+
DeviceType.Camera;
|
|
75908
76301
|
var G711_SCALE_CORRECTION_DB = {
|
|
75909
76302
|
PCMU: 20 * Math.log10(4),
|
|
75910
76303
|
PCMA: 20 * Math.log10(8)
|