@camstack/addon-model-studio 1.1.119 → 1.1.120

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/_stub.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-B-64r32q.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CCYZrGrz.mjs";
3
3
  import { _ as e, c as t, d as n, h as r, i, l as a, m as o, p as s, r as c, t as l, u, y as d } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
4
4
  import { a as f, i as p, o as m, r as h, s as g } from "./responsive-DPVjfYqA.mjs";
5
5
  import { d as _, l as v, u as y } from "./use-device-snapshot-Bw55QpDD.mjs";
@@ -14,6 +14,7 @@ import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_
14
14
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-nybV3Y4f.mjs";
15
15
  import { _ as ee, a as te, b as ne, c as O, d as k, f as A, h as j, i as re, l as M, m as ie, o as ae, p as oe, r as N, s as P, t as F, u as se, v as ce, x as I, y as le } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B4jedMw4.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-CISC_XrP.mjs";
17
+ import "@module-federation/runtime";
17
18
  var ue = g("activity", [["path", {
18
19
  d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
19
20
  key: "169zse"
@@ -1,9 +1,9 @@
1
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-B-64r32q.mjs";
1
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CCYZrGrz.mjs";
2
2
  //#region \0virtual:mf-localSharedImportMap:__mfe_internal__addon_model_studio_page
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.95",
6
+ version: "1.2.96",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_model_studio_page",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.175",
21
+ version: "1.2.176",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_model_studio_page",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.143",
36
+ version: "1.2.144",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_model_studio_page",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.175",
39
+ version: "1.2.176",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.95",
48
+ version: "1.2.96",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.143",
84
+ version: "1.2.144",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -20176,7 +20176,17 @@ var EventDensityBucketSchema = object({
20176
20176
  bucketStart: number(),
20177
20177
  motion: number().int(),
20178
20178
  object: number().int(),
20179
- audio: number().int()
20179
+ audio: number().int(),
20180
+ /**
20181
+ * Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
20182
+ * as opposed to `audio`, which is their COUNT (D431).
20183
+ *
20184
+ * ABSENT when the bucket holds no audio event. Absence means "nothing was
20185
+ * measured", which is not the same claim as silence, and a lane that cannot
20186
+ * tell them apart paints a quiet hour at full scale — which is exactly what
20187
+ * the count-on-a-level-meter did.
20188
+ */
20189
+ audioDbfs: number().optional()
20180
20190
  });
20181
20191
  /**
20182
20192
  * One camera's row in a `getEventDensityBatch` answer.
@@ -28343,7 +28353,23 @@ var RecordingRangeSchema = object({
28343
28353
  });
28344
28354
  var RecordingAvailabilitySchema = object({
28345
28355
  deviceId: number(),
28346
- ranges: array(RecordingRangeSchema)
28356
+ ranges: array(RecordingRangeSchema),
28357
+ /**
28358
+ * Every profile this camera has footage in — not only the one `ranges`
28359
+ * describes (D433).
28360
+ *
28361
+ * `ranges` answers for ONE profile by design: the timeline is a single bar,
28362
+ * and enumerating all of them triples the directory reads for a bar that
28363
+ * would look identical. But the answer used to say nothing about that, so a
28364
+ * caller asking "what can I export?" read the single preferred profile as
28365
+ * the only one that exists — on this deployment every camera records `high`
28366
+ * AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
28367
+ * UI could not see it.
28368
+ *
28369
+ * Cheap: it is the same shallow directory read the profile CHOICE already
28370
+ * makes. Ask for a specific profile's ranges with the `profile` input.
28371
+ */
28372
+ profilesWithFootage: array(string())
28347
28373
  });
28348
28374
  var RecordingDaysSchema = object({
28349
28375
  deviceId: number(),
@@ -28369,7 +28395,11 @@ var RecordingDaysSchema = object({
28369
28395
  var RecordingAvailabilityForDeviceSchema = object({
28370
28396
  deviceId: number(),
28371
28397
  read: _enum(["read", "unreadable"]),
28372
- ranges: array(RecordingRangeSchema).readonly()
28398
+ ranges: array(RecordingRangeSchema).readonly(),
28399
+ /** Same field, same meaning, as the singular answer (D433). A row that
28400
+ * dropped it would tell a grid caller the archive holds one profile.
28401
+ * Empty on an `'unreadable'` row: nobody looked. */
28402
+ profilesWithFootage: array(string()).readonly()
28373
28403
  });
28374
28404
  /**
28375
28405
  * One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
@@ -28659,7 +28689,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
28659
28689
  method(object({
28660
28690
  deviceId: number(),
28661
28691
  fromMs: number(),
28662
- toMs: number()
28692
+ toMs: number(),
28693
+ /**
28694
+ * Answer for THIS profile instead of the preferred one (D433). Absent
28695
+ * keeps the timeline's behaviour — one bar, one profile, one set of
28696
+ * reads. `profilesWithFootage` on the answer says what may be asked
28697
+ * for.
28698
+ */
28699
+ profile: string().optional()
28663
28700
  }), RecordingAvailabilitySchema, {
28664
28701
  kind: "query",
28665
28702
  auth: "protected"
@@ -20155,7 +20155,17 @@ var EventDensityBucketSchema = object({
20155
20155
  bucketStart: number(),
20156
20156
  motion: number().int(),
20157
20157
  object: number().int(),
20158
- audio: number().int()
20158
+ audio: number().int(),
20159
+ /**
20160
+ * Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
20161
+ * as opposed to `audio`, which is their COUNT (D431).
20162
+ *
20163
+ * ABSENT when the bucket holds no audio event. Absence means "nothing was
20164
+ * measured", which is not the same claim as silence, and a lane that cannot
20165
+ * tell them apart paints a quiet hour at full scale — which is exactly what
20166
+ * the count-on-a-level-meter did.
20167
+ */
20168
+ audioDbfs: number().optional()
20159
20169
  });
20160
20170
  /**
20161
20171
  * One camera's row in a `getEventDensityBatch` answer.
@@ -28322,7 +28332,23 @@ var RecordingRangeSchema = object({
28322
28332
  });
28323
28333
  var RecordingAvailabilitySchema = object({
28324
28334
  deviceId: number(),
28325
- ranges: array(RecordingRangeSchema)
28335
+ ranges: array(RecordingRangeSchema),
28336
+ /**
28337
+ * Every profile this camera has footage in — not only the one `ranges`
28338
+ * describes (D433).
28339
+ *
28340
+ * `ranges` answers for ONE profile by design: the timeline is a single bar,
28341
+ * and enumerating all of them triples the directory reads for a bar that
28342
+ * would look identical. But the answer used to say nothing about that, so a
28343
+ * caller asking "what can I export?" read the single preferred profile as
28344
+ * the only one that exists — on this deployment every camera records `high`
28345
+ * AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
28346
+ * UI could not see it.
28347
+ *
28348
+ * Cheap: it is the same shallow directory read the profile CHOICE already
28349
+ * makes. Ask for a specific profile's ranges with the `profile` input.
28350
+ */
28351
+ profilesWithFootage: array(string())
28326
28352
  });
28327
28353
  var RecordingDaysSchema = object({
28328
28354
  deviceId: number(),
@@ -28348,7 +28374,11 @@ var RecordingDaysSchema = object({
28348
28374
  var RecordingAvailabilityForDeviceSchema = object({
28349
28375
  deviceId: number(),
28350
28376
  read: _enum(["read", "unreadable"]),
28351
- ranges: array(RecordingRangeSchema).readonly()
28377
+ ranges: array(RecordingRangeSchema).readonly(),
28378
+ /** Same field, same meaning, as the singular answer (D433). A row that
28379
+ * dropped it would tell a grid caller the archive holds one profile.
28380
+ * Empty on an `'unreadable'` row: nobody looked. */
28381
+ profilesWithFootage: array(string()).readonly()
28352
28382
  });
28353
28383
  /**
28354
28384
  * One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
@@ -28638,7 +28668,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
28638
28668
  method(object({
28639
28669
  deviceId: number(),
28640
28670
  fromMs: number(),
28641
- toMs: number()
28671
+ toMs: number(),
28672
+ /**
28673
+ * Answer for THIS profile instead of the preferred one (D433). Absent
28674
+ * keeps the timeline's behaviour — one bar, one profile, one set of
28675
+ * reads. `profilesWithFootage` on the answer says what may be asked
28676
+ * for.
28677
+ */
28678
+ profile: string().optional()
28642
28679
  }), RecordingAvailabilitySchema, {
28643
28680
  kind: "query",
28644
28681
  auth: "protected"
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-B-64r32q.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CCYZrGrz.mjs";
2
2
  export { t as get, e as init };
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BBQxiWvp.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CytTL5IK.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-model-studio",
3
- "version": "1.1.119",
3
+ "version": "1.1.120",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",