@camstack/addon-model-studio 1.1.258 → 1.1.259
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/{MotionZonesSettings-CkV2aUvO.mjs → MotionZonesSettings-D85Kti2I.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-A04FmFki.mjs → PrivacyMaskSettings-Cj_Afwxb.mjs} +4 -4
- package/dist/{SceneMonitorEditor-BGsdcHlo.mjs → SceneMonitorEditor-B66YfelB.mjs} +3 -3
- package/dist/_stub.js +10 -10
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-C9097na_.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-wSH7KpHb.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BGNXnwH_.mjs +26 -0
- package/dist/{hostInit-kJIPeeR8.mjs → hostInit-nJa6_txV.mjs} +2 -2
- package/dist/model-studio.addon.js +285 -2
- package/dist/model-studio.addon.mjs +285 -2
- package/dist/{player-overlays-CEo6fyPi.mjs → player-overlays-miGdycLL.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Pow15MKn.mjs → responsive-DyoB_c2Y.mjs} +1 -1
- package/dist/{scene-monitor-copy-DtoPg3LV.mjs → scene-monitor-copy-DBTY-6gg.mjs} +1 -1
- package/dist/{square-CaF-sfeh.mjs → square-Bgxk1vlP.mjs} +1 -1
- package/dist/{trash-2-DBoe6JLZ.mjs → trash-2-9ynW2pBt.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-EXT3i1_G.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CbS0rHPV.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D_ZqRreN.mjs +0 -26
|
@@ -5782,7 +5782,7 @@ var ZodIssueCode = {
|
|
|
5782
5782
|
var ZodFirstPartyTypeKind;
|
|
5783
5783
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5784
5784
|
//#endregion
|
|
5785
|
-
//#region ../types/dist/sleep-
|
|
5785
|
+
//#region ../types/dist/sleep--g-h2_c_.mjs
|
|
5786
5786
|
/**
|
|
5787
5787
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5788
5788
|
* window to float samples (D455).
|
|
@@ -16528,6 +16528,208 @@ method(object({
|
|
|
16528
16528
|
kind: "mutation",
|
|
16529
16529
|
auth: "admin"
|
|
16530
16530
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
16531
|
+
/**
|
|
16532
|
+
* device-history — the ONE mechanism for numeric history (D850).
|
|
16533
|
+
*
|
|
16534
|
+
* A device value is recorded because its capability says so (the `history`
|
|
16535
|
+
* block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
|
|
16536
|
+
* other series is DECLARED by the addon that produces it and fed with points
|
|
16537
|
+
* (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
|
|
16538
|
+
* 1d are computed here and nowhere else. Storage is `history.db` (D851).
|
|
16539
|
+
*
|
|
16540
|
+
* Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
|
|
16541
|
+
* checked against the `callerAddonId` the transport stamps into a call that
|
|
16542
|
+
* crossed a process (never in an input schema, so a session cannot supply it).
|
|
16543
|
+
* A call with no stamp is refused `not-owner`. The methods are `admin` so a
|
|
16544
|
+
* non-admin session never reaches them; an addon's `ctx.api` call bypasses the
|
|
16545
|
+
* tier by design.
|
|
16546
|
+
*/
|
|
16547
|
+
/** Whose history: a real device, or a cluster node (load, memory). */
|
|
16548
|
+
var DeviceHistorySubjectSchema = discriminatedUnion("kind", [object({
|
|
16549
|
+
kind: literal("device"),
|
|
16550
|
+
deviceId: number().int()
|
|
16551
|
+
}), object({
|
|
16552
|
+
kind: literal("node"),
|
|
16553
|
+
nodeId: string().min(1)
|
|
16554
|
+
})]);
|
|
16555
|
+
var DeviceHistoryKindSchema = _enum([
|
|
16556
|
+
"gauge",
|
|
16557
|
+
"counter",
|
|
16558
|
+
"boolean"
|
|
16559
|
+
]);
|
|
16560
|
+
var DeviceHistoryResolutionSchema = _enum([
|
|
16561
|
+
"raw",
|
|
16562
|
+
"5m",
|
|
16563
|
+
"1h",
|
|
16564
|
+
"1d"
|
|
16565
|
+
]);
|
|
16566
|
+
/** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
|
|
16567
|
+
var DeviceHistoryRefusalReasonSchema = _enum([
|
|
16568
|
+
"undeclared",
|
|
16569
|
+
"not-owner",
|
|
16570
|
+
"opted-out",
|
|
16571
|
+
"not-a-real-device",
|
|
16572
|
+
"rate",
|
|
16573
|
+
"ingest-mismatch",
|
|
16574
|
+
"out-of-range"
|
|
16575
|
+
]);
|
|
16576
|
+
var RefusalSchema = object({
|
|
16577
|
+
key: string(),
|
|
16578
|
+
reason: DeviceHistoryRefusalReasonSchema,
|
|
16579
|
+
count: number().int()
|
|
16580
|
+
});
|
|
16581
|
+
var IngestResultSchema = object({
|
|
16582
|
+
accepted: number().int(),
|
|
16583
|
+
refused: array(RefusalSchema).readonly()
|
|
16584
|
+
});
|
|
16585
|
+
var SeriesInfoSchema = object({
|
|
16586
|
+
key: string(),
|
|
16587
|
+
scope: string(),
|
|
16588
|
+
kind: DeviceHistoryKindSchema,
|
|
16589
|
+
/** `null` is unknown (a `unitFrom` series whose device does not state a unit right now), never a guess. */
|
|
16590
|
+
unit: string().nullable(),
|
|
16591
|
+
displayName: string(),
|
|
16592
|
+
source: _enum(["cap", "addon"]),
|
|
16593
|
+
firstTs: number(),
|
|
16594
|
+
lastTs: number()
|
|
16595
|
+
});
|
|
16596
|
+
var QueryPointSchema = object({
|
|
16597
|
+
/** Raw: the point's time. Rollup: the bucket start. */
|
|
16598
|
+
t: number(),
|
|
16599
|
+
samples: number().int(),
|
|
16600
|
+
/** `sum / samples`. */
|
|
16601
|
+
mean: number().nullable(),
|
|
16602
|
+
/** Time-weighted mean (`tw_sum / tw_ms`); `null` for bucket-ingested series. For a boolean: the fraction of time true. */
|
|
16603
|
+
twMean: number().nullable(),
|
|
16604
|
+
min: number(),
|
|
16605
|
+
max: number(),
|
|
16606
|
+
/** `null` is unknown, never zero (D393). */
|
|
16607
|
+
last: number().nullable()
|
|
16608
|
+
});
|
|
16609
|
+
var QuerySeriesSchema = object({
|
|
16610
|
+
scope: string(),
|
|
16611
|
+
/** The last point STRICTLY BEFORE `from` in the chosen tier, so a step chart can start at the held value. */
|
|
16612
|
+
before: object({
|
|
16613
|
+
t: number(),
|
|
16614
|
+
value: number().nullable()
|
|
16615
|
+
}).nullable(),
|
|
16616
|
+
points: array(QueryPointSchema).readonly()
|
|
16617
|
+
});
|
|
16618
|
+
/** The window part of a query, shared by the device and node forms. */
|
|
16619
|
+
var QueryWindowShape = {
|
|
16620
|
+
key: string(),
|
|
16621
|
+
scope: string().optional(),
|
|
16622
|
+
from: number(),
|
|
16623
|
+
to: number(),
|
|
16624
|
+
resolution: union([DeviceHistoryResolutionSchema, literal("auto")]).default("auto"),
|
|
16625
|
+
maxPoints: number().int().positive().max(5e3).default(1e3)
|
|
16626
|
+
};
|
|
16627
|
+
var QueryResultSchema = object({
|
|
16628
|
+
resolution: DeviceHistoryResolutionSchema,
|
|
16629
|
+
series: array(QuerySeriesSchema).readonly(),
|
|
16630
|
+
truncated: boolean()
|
|
16631
|
+
});
|
|
16632
|
+
var TierStatusSchema = object({
|
|
16633
|
+
tier: DeviceHistoryResolutionSchema,
|
|
16634
|
+
/** `null` until the first background count answered. */
|
|
16635
|
+
rows: number().int().nullable(),
|
|
16636
|
+
/** `rows` times a fixed per-row estimate — approximate, labelled so. */
|
|
16637
|
+
approxBytes: number().nullable(),
|
|
16638
|
+
countedAt: number().nullable()
|
|
16639
|
+
});
|
|
16640
|
+
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
16641
|
+
var DeviceHistoryStatusSchema = object({
|
|
16642
|
+
startedAt: number(),
|
|
16643
|
+
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
16644
|
+
ready: boolean(),
|
|
16645
|
+
series: number().int(),
|
|
16646
|
+
metrics: number().int(),
|
|
16647
|
+
optedOutDevices: number().int(),
|
|
16648
|
+
tiers: array(TierStatusSchema).readonly(),
|
|
16649
|
+
capture: object({
|
|
16650
|
+
eventsSeen: number().int(),
|
|
16651
|
+
pointsEmitted: number().int(),
|
|
16652
|
+
pointsWritten: number().int(),
|
|
16653
|
+
pointsDropped: number().int(),
|
|
16654
|
+
bufferDepth: number().int(),
|
|
16655
|
+
trailingEmitted: number().int(),
|
|
16656
|
+
reconciledPoints: number().int(),
|
|
16657
|
+
reconcileRuns: number().int(),
|
|
16658
|
+
reconcileFailures: number().int(),
|
|
16659
|
+
lastReconcileAt: number().nullable(),
|
|
16660
|
+
lastFlushAt: number().nullable(),
|
|
16661
|
+
flushFailures: number().int(),
|
|
16662
|
+
skipped: record(string(), number().int())
|
|
16663
|
+
}),
|
|
16664
|
+
ingest: object({
|
|
16665
|
+
accepted: number().int(),
|
|
16666
|
+
refused: record(string(), number().int())
|
|
16667
|
+
}),
|
|
16668
|
+
rollup: object({
|
|
16669
|
+
last5mAt: number().nullable(),
|
|
16670
|
+
last1hAt: number().nullable(),
|
|
16671
|
+
last1dAt: number().nullable(),
|
|
16672
|
+
errors: number().int(),
|
|
16673
|
+
dirty5m: number().int(),
|
|
16674
|
+
dirty1h: number().int(),
|
|
16675
|
+
dirty1d: number().int()
|
|
16676
|
+
}),
|
|
16677
|
+
retention: object({
|
|
16678
|
+
lastRunAt: number().nullable(),
|
|
16679
|
+
deleted: record(string(), number().int()),
|
|
16680
|
+
purgedSeries: number().int()
|
|
16681
|
+
}),
|
|
16682
|
+
directory: object({
|
|
16683
|
+
devices: number().int(),
|
|
16684
|
+
lastRefreshAt: number().nullable()
|
|
16685
|
+
})
|
|
16686
|
+
});
|
|
16687
|
+
method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly()), method(object({ nodeId: string().min(1) }), array(SeriesInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
16688
|
+
deviceId: number().int(),
|
|
16689
|
+
...QueryWindowShape
|
|
16690
|
+
}), QueryResultSchema), method(object({
|
|
16691
|
+
nodeId: string().min(1),
|
|
16692
|
+
...QueryWindowShape
|
|
16693
|
+
}), QueryResultSchema, { auth: "admin" }), method(object({
|
|
16694
|
+
name: string().regex(/^[a-z0-9-]+$/),
|
|
16695
|
+
subjectKind: _enum(["device", "node"]),
|
|
16696
|
+
kind: DeviceHistoryKindSchema,
|
|
16697
|
+
unit: string().optional(),
|
|
16698
|
+
displayName: string().min(1),
|
|
16699
|
+
ingest: _enum(["points", "buckets"])
|
|
16700
|
+
}), object({ key: string() }), {
|
|
16701
|
+
kind: "mutation",
|
|
16702
|
+
auth: "admin"
|
|
16703
|
+
}), method(object({ points: array(object({
|
|
16704
|
+
key: string(),
|
|
16705
|
+
subject: DeviceHistorySubjectSchema,
|
|
16706
|
+
scope: string().default(""),
|
|
16707
|
+
ts: number(),
|
|
16708
|
+
value: number()
|
|
16709
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16710
|
+
kind: "mutation",
|
|
16711
|
+
auth: "admin"
|
|
16712
|
+
}), method(object({ buckets: array(object({
|
|
16713
|
+
key: string(),
|
|
16714
|
+
subject: DeviceHistorySubjectSchema,
|
|
16715
|
+
scope: string().default(""),
|
|
16716
|
+
bucketStart: number(),
|
|
16717
|
+
samples: number().int().positive(),
|
|
16718
|
+
sum: number(),
|
|
16719
|
+
min: number(),
|
|
16720
|
+
max: number(),
|
|
16721
|
+
last: number().nullable(),
|
|
16722
|
+
lastTs: number().nullable()
|
|
16723
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16724
|
+
kind: "mutation",
|
|
16725
|
+
auth: "admin"
|
|
16726
|
+
}), method(object({ deviceId: number().int() }), object({ enabled: boolean() })), method(object({
|
|
16727
|
+
deviceId: number().int(),
|
|
16728
|
+
enabled: boolean()
|
|
16729
|
+
}), object({ enabled: boolean() }), {
|
|
16730
|
+
kind: "mutation",
|
|
16731
|
+
auth: "admin"
|
|
16732
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
|
|
16531
16733
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
16532
16734
|
object({ state: literal("absent") }),
|
|
16533
16735
|
object({
|
|
@@ -55360,7 +55562,7 @@ var MotionOnMotionChangedDataSchema = object({
|
|
|
55360
55562
|
/** Who started it (D672). Absent = the camera itself. Only `onboard` carries `sensor`. */
|
|
55361
55563
|
triggeredBy: MotionTriggeredBySchema.optional()
|
|
55362
55564
|
});
|
|
55363
|
-
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean());
|
|
55565
|
+
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean()), DeviceType.Camera;
|
|
55364
55566
|
object({
|
|
55365
55567
|
enabled: boolean(),
|
|
55366
55568
|
/** Ms epoch of the last operator-driven change. */
|
|
@@ -62815,6 +63017,66 @@ Object.freeze({
|
|
|
62815
63017
|
addonId: null,
|
|
62816
63018
|
access: "create"
|
|
62817
63019
|
},
|
|
63020
|
+
"deviceHistory.declareSeries": {
|
|
63021
|
+
capName: "device-history",
|
|
63022
|
+
capScope: "system",
|
|
63023
|
+
addonId: null,
|
|
63024
|
+
access: "create"
|
|
63025
|
+
},
|
|
63026
|
+
"deviceHistory.getDeviceEnabled": {
|
|
63027
|
+
capName: "device-history",
|
|
63028
|
+
capScope: "system",
|
|
63029
|
+
addonId: null,
|
|
63030
|
+
access: "view"
|
|
63031
|
+
},
|
|
63032
|
+
"deviceHistory.getStatus": {
|
|
63033
|
+
capName: "device-history",
|
|
63034
|
+
capScope: "system",
|
|
63035
|
+
addonId: null,
|
|
63036
|
+
access: "view"
|
|
63037
|
+
},
|
|
63038
|
+
"deviceHistory.listNodeSeries": {
|
|
63039
|
+
capName: "device-history",
|
|
63040
|
+
capScope: "system",
|
|
63041
|
+
addonId: null,
|
|
63042
|
+
access: "view"
|
|
63043
|
+
},
|
|
63044
|
+
"deviceHistory.listSeries": {
|
|
63045
|
+
capName: "device-history",
|
|
63046
|
+
capScope: "system",
|
|
63047
|
+
addonId: null,
|
|
63048
|
+
access: "view"
|
|
63049
|
+
},
|
|
63050
|
+
"deviceHistory.query": {
|
|
63051
|
+
capName: "device-history",
|
|
63052
|
+
capScope: "system",
|
|
63053
|
+
addonId: null,
|
|
63054
|
+
access: "view"
|
|
63055
|
+
},
|
|
63056
|
+
"deviceHistory.queryNode": {
|
|
63057
|
+
capName: "device-history",
|
|
63058
|
+
capScope: "system",
|
|
63059
|
+
addonId: null,
|
|
63060
|
+
access: "view"
|
|
63061
|
+
},
|
|
63062
|
+
"deviceHistory.record": {
|
|
63063
|
+
capName: "device-history",
|
|
63064
|
+
capScope: "system",
|
|
63065
|
+
addonId: null,
|
|
63066
|
+
access: "create"
|
|
63067
|
+
},
|
|
63068
|
+
"deviceHistory.recordBuckets": {
|
|
63069
|
+
capName: "device-history",
|
|
63070
|
+
capScope: "system",
|
|
63071
|
+
addonId: null,
|
|
63072
|
+
access: "create"
|
|
63073
|
+
},
|
|
63074
|
+
"deviceHistory.setDeviceEnabled": {
|
|
63075
|
+
capName: "device-history",
|
|
63076
|
+
capScope: "system",
|
|
63077
|
+
addonId: null,
|
|
63078
|
+
access: "create"
|
|
63079
|
+
},
|
|
62818
63080
|
"deviceManager.addLocation": {
|
|
62819
63081
|
capName: "device-manager",
|
|
62820
63082
|
capScope: "system",
|
|
@@ -69606,6 +69868,26 @@ Object.freeze({
|
|
|
69606
69868
|
form: "single",
|
|
69607
69869
|
optional: false
|
|
69608
69870
|
}],
|
|
69871
|
+
"deviceHistory.getDeviceEnabled": [{
|
|
69872
|
+
name: "deviceId",
|
|
69873
|
+
form: "single",
|
|
69874
|
+
optional: false
|
|
69875
|
+
}],
|
|
69876
|
+
"deviceHistory.listSeries": [{
|
|
69877
|
+
name: "deviceId",
|
|
69878
|
+
form: "single",
|
|
69879
|
+
optional: false
|
|
69880
|
+
}],
|
|
69881
|
+
"deviceHistory.query": [{
|
|
69882
|
+
name: "deviceId",
|
|
69883
|
+
form: "single",
|
|
69884
|
+
optional: false
|
|
69885
|
+
}],
|
|
69886
|
+
"deviceHistory.setDeviceEnabled": [{
|
|
69887
|
+
name: "deviceId",
|
|
69888
|
+
form: "single",
|
|
69889
|
+
optional: false
|
|
69890
|
+
}],
|
|
69609
69891
|
"deviceManager.adoptionRelease": [{
|
|
69610
69892
|
name: "camDeviceId",
|
|
69611
69893
|
form: "single",
|
|
@@ -71784,6 +72066,7 @@ Object.freeze({
|
|
|
71784
72066
|
"network-access": "ingress",
|
|
71785
72067
|
"smtp-provider": "email"
|
|
71786
72068
|
});
|
|
72069
|
+
DeviceType.Camera;
|
|
71787
72070
|
var G711_SCALE_CORRECTION_DB = {
|
|
71788
72071
|
PCMU: 20 * Math.log10(4),
|
|
71789
72072
|
PCMA: 20 * Math.log10(8)
|
|
@@ -5756,7 +5756,7 @@ var ZodIssueCode = {
|
|
|
5756
5756
|
var ZodFirstPartyTypeKind;
|
|
5757
5757
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5758
5758
|
//#endregion
|
|
5759
|
-
//#region ../types/dist/sleep-
|
|
5759
|
+
//#region ../types/dist/sleep--g-h2_c_.mjs
|
|
5760
5760
|
/**
|
|
5761
5761
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5762
5762
|
* window to float samples (D455).
|
|
@@ -16502,6 +16502,208 @@ method(object({
|
|
|
16502
16502
|
kind: "mutation",
|
|
16503
16503
|
auth: "admin"
|
|
16504
16504
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
16505
|
+
/**
|
|
16506
|
+
* device-history — the ONE mechanism for numeric history (D850).
|
|
16507
|
+
*
|
|
16508
|
+
* A device value is recorded because its capability says so (the `history`
|
|
16509
|
+
* block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
|
|
16510
|
+
* other series is DECLARED by the addon that produces it and fed with points
|
|
16511
|
+
* (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
|
|
16512
|
+
* 1d are computed here and nowhere else. Storage is `history.db` (D851).
|
|
16513
|
+
*
|
|
16514
|
+
* Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
|
|
16515
|
+
* checked against the `callerAddonId` the transport stamps into a call that
|
|
16516
|
+
* crossed a process (never in an input schema, so a session cannot supply it).
|
|
16517
|
+
* A call with no stamp is refused `not-owner`. The methods are `admin` so a
|
|
16518
|
+
* non-admin session never reaches them; an addon's `ctx.api` call bypasses the
|
|
16519
|
+
* tier by design.
|
|
16520
|
+
*/
|
|
16521
|
+
/** Whose history: a real device, or a cluster node (load, memory). */
|
|
16522
|
+
var DeviceHistorySubjectSchema = discriminatedUnion("kind", [object({
|
|
16523
|
+
kind: literal("device"),
|
|
16524
|
+
deviceId: number().int()
|
|
16525
|
+
}), object({
|
|
16526
|
+
kind: literal("node"),
|
|
16527
|
+
nodeId: string().min(1)
|
|
16528
|
+
})]);
|
|
16529
|
+
var DeviceHistoryKindSchema = _enum([
|
|
16530
|
+
"gauge",
|
|
16531
|
+
"counter",
|
|
16532
|
+
"boolean"
|
|
16533
|
+
]);
|
|
16534
|
+
var DeviceHistoryResolutionSchema = _enum([
|
|
16535
|
+
"raw",
|
|
16536
|
+
"5m",
|
|
16537
|
+
"1h",
|
|
16538
|
+
"1d"
|
|
16539
|
+
]);
|
|
16540
|
+
/** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
|
|
16541
|
+
var DeviceHistoryRefusalReasonSchema = _enum([
|
|
16542
|
+
"undeclared",
|
|
16543
|
+
"not-owner",
|
|
16544
|
+
"opted-out",
|
|
16545
|
+
"not-a-real-device",
|
|
16546
|
+
"rate",
|
|
16547
|
+
"ingest-mismatch",
|
|
16548
|
+
"out-of-range"
|
|
16549
|
+
]);
|
|
16550
|
+
var RefusalSchema = object({
|
|
16551
|
+
key: string(),
|
|
16552
|
+
reason: DeviceHistoryRefusalReasonSchema,
|
|
16553
|
+
count: number().int()
|
|
16554
|
+
});
|
|
16555
|
+
var IngestResultSchema = object({
|
|
16556
|
+
accepted: number().int(),
|
|
16557
|
+
refused: array(RefusalSchema).readonly()
|
|
16558
|
+
});
|
|
16559
|
+
var SeriesInfoSchema = object({
|
|
16560
|
+
key: string(),
|
|
16561
|
+
scope: string(),
|
|
16562
|
+
kind: DeviceHistoryKindSchema,
|
|
16563
|
+
/** `null` is unknown (a `unitFrom` series whose device does not state a unit right now), never a guess. */
|
|
16564
|
+
unit: string().nullable(),
|
|
16565
|
+
displayName: string(),
|
|
16566
|
+
source: _enum(["cap", "addon"]),
|
|
16567
|
+
firstTs: number(),
|
|
16568
|
+
lastTs: number()
|
|
16569
|
+
});
|
|
16570
|
+
var QueryPointSchema = object({
|
|
16571
|
+
/** Raw: the point's time. Rollup: the bucket start. */
|
|
16572
|
+
t: number(),
|
|
16573
|
+
samples: number().int(),
|
|
16574
|
+
/** `sum / samples`. */
|
|
16575
|
+
mean: number().nullable(),
|
|
16576
|
+
/** Time-weighted mean (`tw_sum / tw_ms`); `null` for bucket-ingested series. For a boolean: the fraction of time true. */
|
|
16577
|
+
twMean: number().nullable(),
|
|
16578
|
+
min: number(),
|
|
16579
|
+
max: number(),
|
|
16580
|
+
/** `null` is unknown, never zero (D393). */
|
|
16581
|
+
last: number().nullable()
|
|
16582
|
+
});
|
|
16583
|
+
var QuerySeriesSchema = object({
|
|
16584
|
+
scope: string(),
|
|
16585
|
+
/** The last point STRICTLY BEFORE `from` in the chosen tier, so a step chart can start at the held value. */
|
|
16586
|
+
before: object({
|
|
16587
|
+
t: number(),
|
|
16588
|
+
value: number().nullable()
|
|
16589
|
+
}).nullable(),
|
|
16590
|
+
points: array(QueryPointSchema).readonly()
|
|
16591
|
+
});
|
|
16592
|
+
/** The window part of a query, shared by the device and node forms. */
|
|
16593
|
+
var QueryWindowShape = {
|
|
16594
|
+
key: string(),
|
|
16595
|
+
scope: string().optional(),
|
|
16596
|
+
from: number(),
|
|
16597
|
+
to: number(),
|
|
16598
|
+
resolution: union([DeviceHistoryResolutionSchema, literal("auto")]).default("auto"),
|
|
16599
|
+
maxPoints: number().int().positive().max(5e3).default(1e3)
|
|
16600
|
+
};
|
|
16601
|
+
var QueryResultSchema = object({
|
|
16602
|
+
resolution: DeviceHistoryResolutionSchema,
|
|
16603
|
+
series: array(QuerySeriesSchema).readonly(),
|
|
16604
|
+
truncated: boolean()
|
|
16605
|
+
});
|
|
16606
|
+
var TierStatusSchema = object({
|
|
16607
|
+
tier: DeviceHistoryResolutionSchema,
|
|
16608
|
+
/** `null` until the first background count answered. */
|
|
16609
|
+
rows: number().int().nullable(),
|
|
16610
|
+
/** `rows` times a fixed per-row estimate — approximate, labelled so. */
|
|
16611
|
+
approxBytes: number().nullable(),
|
|
16612
|
+
countedAt: number().nullable()
|
|
16613
|
+
});
|
|
16614
|
+
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
16615
|
+
var DeviceHistoryStatusSchema = object({
|
|
16616
|
+
startedAt: number(),
|
|
16617
|
+
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
16618
|
+
ready: boolean(),
|
|
16619
|
+
series: number().int(),
|
|
16620
|
+
metrics: number().int(),
|
|
16621
|
+
optedOutDevices: number().int(),
|
|
16622
|
+
tiers: array(TierStatusSchema).readonly(),
|
|
16623
|
+
capture: object({
|
|
16624
|
+
eventsSeen: number().int(),
|
|
16625
|
+
pointsEmitted: number().int(),
|
|
16626
|
+
pointsWritten: number().int(),
|
|
16627
|
+
pointsDropped: number().int(),
|
|
16628
|
+
bufferDepth: number().int(),
|
|
16629
|
+
trailingEmitted: number().int(),
|
|
16630
|
+
reconciledPoints: number().int(),
|
|
16631
|
+
reconcileRuns: number().int(),
|
|
16632
|
+
reconcileFailures: number().int(),
|
|
16633
|
+
lastReconcileAt: number().nullable(),
|
|
16634
|
+
lastFlushAt: number().nullable(),
|
|
16635
|
+
flushFailures: number().int(),
|
|
16636
|
+
skipped: record(string(), number().int())
|
|
16637
|
+
}),
|
|
16638
|
+
ingest: object({
|
|
16639
|
+
accepted: number().int(),
|
|
16640
|
+
refused: record(string(), number().int())
|
|
16641
|
+
}),
|
|
16642
|
+
rollup: object({
|
|
16643
|
+
last5mAt: number().nullable(),
|
|
16644
|
+
last1hAt: number().nullable(),
|
|
16645
|
+
last1dAt: number().nullable(),
|
|
16646
|
+
errors: number().int(),
|
|
16647
|
+
dirty5m: number().int(),
|
|
16648
|
+
dirty1h: number().int(),
|
|
16649
|
+
dirty1d: number().int()
|
|
16650
|
+
}),
|
|
16651
|
+
retention: object({
|
|
16652
|
+
lastRunAt: number().nullable(),
|
|
16653
|
+
deleted: record(string(), number().int()),
|
|
16654
|
+
purgedSeries: number().int()
|
|
16655
|
+
}),
|
|
16656
|
+
directory: object({
|
|
16657
|
+
devices: number().int(),
|
|
16658
|
+
lastRefreshAt: number().nullable()
|
|
16659
|
+
})
|
|
16660
|
+
});
|
|
16661
|
+
method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly()), method(object({ nodeId: string().min(1) }), array(SeriesInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
16662
|
+
deviceId: number().int(),
|
|
16663
|
+
...QueryWindowShape
|
|
16664
|
+
}), QueryResultSchema), method(object({
|
|
16665
|
+
nodeId: string().min(1),
|
|
16666
|
+
...QueryWindowShape
|
|
16667
|
+
}), QueryResultSchema, { auth: "admin" }), method(object({
|
|
16668
|
+
name: string().regex(/^[a-z0-9-]+$/),
|
|
16669
|
+
subjectKind: _enum(["device", "node"]),
|
|
16670
|
+
kind: DeviceHistoryKindSchema,
|
|
16671
|
+
unit: string().optional(),
|
|
16672
|
+
displayName: string().min(1),
|
|
16673
|
+
ingest: _enum(["points", "buckets"])
|
|
16674
|
+
}), object({ key: string() }), {
|
|
16675
|
+
kind: "mutation",
|
|
16676
|
+
auth: "admin"
|
|
16677
|
+
}), method(object({ points: array(object({
|
|
16678
|
+
key: string(),
|
|
16679
|
+
subject: DeviceHistorySubjectSchema,
|
|
16680
|
+
scope: string().default(""),
|
|
16681
|
+
ts: number(),
|
|
16682
|
+
value: number()
|
|
16683
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16684
|
+
kind: "mutation",
|
|
16685
|
+
auth: "admin"
|
|
16686
|
+
}), method(object({ buckets: array(object({
|
|
16687
|
+
key: string(),
|
|
16688
|
+
subject: DeviceHistorySubjectSchema,
|
|
16689
|
+
scope: string().default(""),
|
|
16690
|
+
bucketStart: number(),
|
|
16691
|
+
samples: number().int().positive(),
|
|
16692
|
+
sum: number(),
|
|
16693
|
+
min: number(),
|
|
16694
|
+
max: number(),
|
|
16695
|
+
last: number().nullable(),
|
|
16696
|
+
lastTs: number().nullable()
|
|
16697
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16698
|
+
kind: "mutation",
|
|
16699
|
+
auth: "admin"
|
|
16700
|
+
}), method(object({ deviceId: number().int() }), object({ enabled: boolean() })), method(object({
|
|
16701
|
+
deviceId: number().int(),
|
|
16702
|
+
enabled: boolean()
|
|
16703
|
+
}), object({ enabled: boolean() }), {
|
|
16704
|
+
kind: "mutation",
|
|
16705
|
+
auth: "admin"
|
|
16706
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
|
|
16505
16707
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
16506
16708
|
object({ state: literal("absent") }),
|
|
16507
16709
|
object({
|
|
@@ -55334,7 +55536,7 @@ var MotionOnMotionChangedDataSchema = object({
|
|
|
55334
55536
|
/** Who started it (D672). Absent = the camera itself. Only `onboard` carries `sensor`. */
|
|
55335
55537
|
triggeredBy: MotionTriggeredBySchema.optional()
|
|
55336
55538
|
});
|
|
55337
|
-
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean());
|
|
55539
|
+
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean()), DeviceType.Camera;
|
|
55338
55540
|
object({
|
|
55339
55541
|
enabled: boolean(),
|
|
55340
55542
|
/** Ms epoch of the last operator-driven change. */
|
|
@@ -62789,6 +62991,66 @@ Object.freeze({
|
|
|
62789
62991
|
addonId: null,
|
|
62790
62992
|
access: "create"
|
|
62791
62993
|
},
|
|
62994
|
+
"deviceHistory.declareSeries": {
|
|
62995
|
+
capName: "device-history",
|
|
62996
|
+
capScope: "system",
|
|
62997
|
+
addonId: null,
|
|
62998
|
+
access: "create"
|
|
62999
|
+
},
|
|
63000
|
+
"deviceHistory.getDeviceEnabled": {
|
|
63001
|
+
capName: "device-history",
|
|
63002
|
+
capScope: "system",
|
|
63003
|
+
addonId: null,
|
|
63004
|
+
access: "view"
|
|
63005
|
+
},
|
|
63006
|
+
"deviceHistory.getStatus": {
|
|
63007
|
+
capName: "device-history",
|
|
63008
|
+
capScope: "system",
|
|
63009
|
+
addonId: null,
|
|
63010
|
+
access: "view"
|
|
63011
|
+
},
|
|
63012
|
+
"deviceHistory.listNodeSeries": {
|
|
63013
|
+
capName: "device-history",
|
|
63014
|
+
capScope: "system",
|
|
63015
|
+
addonId: null,
|
|
63016
|
+
access: "view"
|
|
63017
|
+
},
|
|
63018
|
+
"deviceHistory.listSeries": {
|
|
63019
|
+
capName: "device-history",
|
|
63020
|
+
capScope: "system",
|
|
63021
|
+
addonId: null,
|
|
63022
|
+
access: "view"
|
|
63023
|
+
},
|
|
63024
|
+
"deviceHistory.query": {
|
|
63025
|
+
capName: "device-history",
|
|
63026
|
+
capScope: "system",
|
|
63027
|
+
addonId: null,
|
|
63028
|
+
access: "view"
|
|
63029
|
+
},
|
|
63030
|
+
"deviceHistory.queryNode": {
|
|
63031
|
+
capName: "device-history",
|
|
63032
|
+
capScope: "system",
|
|
63033
|
+
addonId: null,
|
|
63034
|
+
access: "view"
|
|
63035
|
+
},
|
|
63036
|
+
"deviceHistory.record": {
|
|
63037
|
+
capName: "device-history",
|
|
63038
|
+
capScope: "system",
|
|
63039
|
+
addonId: null,
|
|
63040
|
+
access: "create"
|
|
63041
|
+
},
|
|
63042
|
+
"deviceHistory.recordBuckets": {
|
|
63043
|
+
capName: "device-history",
|
|
63044
|
+
capScope: "system",
|
|
63045
|
+
addonId: null,
|
|
63046
|
+
access: "create"
|
|
63047
|
+
},
|
|
63048
|
+
"deviceHistory.setDeviceEnabled": {
|
|
63049
|
+
capName: "device-history",
|
|
63050
|
+
capScope: "system",
|
|
63051
|
+
addonId: null,
|
|
63052
|
+
access: "create"
|
|
63053
|
+
},
|
|
62792
63054
|
"deviceManager.addLocation": {
|
|
62793
63055
|
capName: "device-manager",
|
|
62794
63056
|
capScope: "system",
|
|
@@ -69580,6 +69842,26 @@ Object.freeze({
|
|
|
69580
69842
|
form: "single",
|
|
69581
69843
|
optional: false
|
|
69582
69844
|
}],
|
|
69845
|
+
"deviceHistory.getDeviceEnabled": [{
|
|
69846
|
+
name: "deviceId",
|
|
69847
|
+
form: "single",
|
|
69848
|
+
optional: false
|
|
69849
|
+
}],
|
|
69850
|
+
"deviceHistory.listSeries": [{
|
|
69851
|
+
name: "deviceId",
|
|
69852
|
+
form: "single",
|
|
69853
|
+
optional: false
|
|
69854
|
+
}],
|
|
69855
|
+
"deviceHistory.query": [{
|
|
69856
|
+
name: "deviceId",
|
|
69857
|
+
form: "single",
|
|
69858
|
+
optional: false
|
|
69859
|
+
}],
|
|
69860
|
+
"deviceHistory.setDeviceEnabled": [{
|
|
69861
|
+
name: "deviceId",
|
|
69862
|
+
form: "single",
|
|
69863
|
+
optional: false
|
|
69864
|
+
}],
|
|
69583
69865
|
"deviceManager.adoptionRelease": [{
|
|
69584
69866
|
name: "camDeviceId",
|
|
69585
69867
|
form: "single",
|
|
@@ -71758,6 +72040,7 @@ Object.freeze({
|
|
|
71758
72040
|
"network-access": "ingress",
|
|
71759
72041
|
"smtp-provider": "email"
|
|
71760
72042
|
});
|
|
72043
|
+
DeviceType.Camera;
|
|
71761
72044
|
var G711_SCALE_CORRECTION_DB = {
|
|
71762
72045
|
PCMU: 20 * Math.log10(4),
|
|
71763
72046
|
PCMA: 20 * Math.log10(8)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
-
import { b as i, y as a } from "./responsive-
|
|
2
|
+
import { b as i, y as a } from "./responsive-DyoB_c2Y.mjs";
|
|
3
3
|
import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
4
4
|
var l = i("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CbS0rHPV.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as e, b as t, c as n, g as r, l as i, m as a, n as o, r as s, t as c, u as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
-
import { g as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
2
|
+
import { g as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BGNXnwH_.mjs";
|
|
3
3
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
5
|
t();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, c as t, g as n, m as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
-
import { b as i } from "./responsive-
|
|
2
|
+
import { b as i } from "./responsive-DyoB_c2Y.mjs";
|
|
3
3
|
var a = i("camera", [["path", {
|
|
4
4
|
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
5
5
|
key: "18u6gg"
|