@camstack/addon-post-analysis 1.2.221 → 1.2.222
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/{dist-Clp3AeIp.mjs → dist-CxPGPwcy.mjs} +31 -2
- package/dist/{dist-B6jHfZ6s.js → dist-iJA2F7_d.js} +31 -2
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BVv-ddKp.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B3K65b9h.mjs} +3 -3
- package/dist/pipeline-analytics/{hostInit-EskKIFx1.mjs → hostInit-DoL6NTW5.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +40 -6
- package/dist/pipeline-analytics/index.mjs +40 -6
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -22472,6 +22472,14 @@ var NativeCropResultSchema = object({
|
|
|
22472
22472
|
* set `encodeJpeg: true`; `bytes` is then absent.
|
|
22473
22473
|
*/
|
|
22474
22474
|
jpeg: string().optional(),
|
|
22475
|
+
/**
|
|
22476
|
+
* The SAME compressed JPEG as `jpeg`, as bytes (D462). Present instead of
|
|
22477
|
+
* `jpeg` when the request set `acceptJpegBytes`; a request that did not gets
|
|
22478
|
+
* `jpeg` exactly as before. MsgPack and the mesh leg both carry binary —
|
|
22479
|
+
* `bytes` above has crossed this boundary as a `Uint8Array` all along — so
|
|
22480
|
+
* base64 was buying nothing but a multi-megabyte string in the relay's heap.
|
|
22481
|
+
*/
|
|
22482
|
+
jpegBytes: _instanceof(Uint8Array).optional(),
|
|
22475
22483
|
width: number().int().positive(),
|
|
22476
22484
|
height: number().int().positive(),
|
|
22477
22485
|
/**
|
|
@@ -22538,7 +22546,14 @@ var ParkTrackFrameResultSchema = discriminatedUnion("parked", [object({
|
|
|
22538
22546
|
})]);
|
|
22539
22547
|
/** A retrieved parcel — the runner's own JPEG, base64 for the wire. */
|
|
22540
22548
|
var ParkedTrackFrameSchema = object({
|
|
22541
|
-
|
|
22549
|
+
/**
|
|
22550
|
+
* Base64 JPEG — the pre-D462 wire. OPTIONAL since D462: a request that set
|
|
22551
|
+
* `acceptJpegBytes` is answered in `jpegBytes` and this is then absent.
|
|
22552
|
+
* Exactly one of the two is present.
|
|
22553
|
+
*/
|
|
22554
|
+
jpeg: string().optional(),
|
|
22555
|
+
/** The same JPEG as bytes, for a caller that declared it reads them (D462). */
|
|
22556
|
+
jpegBytes: _instanceof(Uint8Array).optional(),
|
|
22542
22557
|
width: number().int().positive(),
|
|
22543
22558
|
height: number().int().positive(),
|
|
22544
22559
|
/** The frame instant the parcel shows (the caller's clock, echoed back). */
|
|
@@ -23125,6 +23140,13 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
23125
23140
|
bbox: NativeCropBboxSchema,
|
|
23126
23141
|
maxWidth: number().int().positive().optional(),
|
|
23127
23142
|
/**
|
|
23143
|
+
* The caller reads a `Uint8Array` (D462). When set, a JPEG answer comes
|
|
23144
|
+
* back in `jpegBytes` instead of base64 `jpeg`. Absent means the old
|
|
23145
|
+
* wire — never assume consent: a pre-D462 caller parses the field as
|
|
23146
|
+
* base64 and bytes would decode to garbage rather than fail.
|
|
23147
|
+
*/
|
|
23148
|
+
acceptJpegBytes: boolean().optional(),
|
|
23149
|
+
/**
|
|
23128
23150
|
* When `true`, the runner encodes the resolved crop to JPEG ON THE
|
|
23129
23151
|
* OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
|
|
23130
23152
|
* Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
|
|
@@ -23192,7 +23214,14 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
23192
23214
|
}), ParkTrackFrameResultSchema, { kind: "mutation" }), method(object({
|
|
23193
23215
|
deviceId: number(),
|
|
23194
23216
|
trackId: string(),
|
|
23195
|
-
kind: ParkedFrameKindSchema
|
|
23217
|
+
kind: ParkedFrameKindSchema,
|
|
23218
|
+
/**
|
|
23219
|
+
* The caller reads a `Uint8Array` (D462). When set, a JPEG answer comes
|
|
23220
|
+
* back in `jpegBytes` instead of base64 `jpeg`. Absent means the old
|
|
23221
|
+
* wire — never assume consent: a pre-D462 caller parses the field as
|
|
23222
|
+
* base64 and bytes would decode to garbage rather than fail.
|
|
23223
|
+
*/
|
|
23224
|
+
acceptJpegBytes: boolean().optional()
|
|
23196
23225
|
}), ParkedTrackFrameSchema.nullable()), method(object({
|
|
23197
23226
|
deviceId: number(),
|
|
23198
23227
|
trackId: string()
|
|
@@ -22503,6 +22503,14 @@ var NativeCropResultSchema = object({
|
|
|
22503
22503
|
* set `encodeJpeg: true`; `bytes` is then absent.
|
|
22504
22504
|
*/
|
|
22505
22505
|
jpeg: string().optional(),
|
|
22506
|
+
/**
|
|
22507
|
+
* The SAME compressed JPEG as `jpeg`, as bytes (D462). Present instead of
|
|
22508
|
+
* `jpeg` when the request set `acceptJpegBytes`; a request that did not gets
|
|
22509
|
+
* `jpeg` exactly as before. MsgPack and the mesh leg both carry binary —
|
|
22510
|
+
* `bytes` above has crossed this boundary as a `Uint8Array` all along — so
|
|
22511
|
+
* base64 was buying nothing but a multi-megabyte string in the relay's heap.
|
|
22512
|
+
*/
|
|
22513
|
+
jpegBytes: _instanceof(Uint8Array).optional(),
|
|
22506
22514
|
width: number().int().positive(),
|
|
22507
22515
|
height: number().int().positive(),
|
|
22508
22516
|
/**
|
|
@@ -22569,7 +22577,14 @@ var ParkTrackFrameResultSchema = discriminatedUnion("parked", [object({
|
|
|
22569
22577
|
})]);
|
|
22570
22578
|
/** A retrieved parcel — the runner's own JPEG, base64 for the wire. */
|
|
22571
22579
|
var ParkedTrackFrameSchema = object({
|
|
22572
|
-
|
|
22580
|
+
/**
|
|
22581
|
+
* Base64 JPEG — the pre-D462 wire. OPTIONAL since D462: a request that set
|
|
22582
|
+
* `acceptJpegBytes` is answered in `jpegBytes` and this is then absent.
|
|
22583
|
+
* Exactly one of the two is present.
|
|
22584
|
+
*/
|
|
22585
|
+
jpeg: string().optional(),
|
|
22586
|
+
/** The same JPEG as bytes, for a caller that declared it reads them (D462). */
|
|
22587
|
+
jpegBytes: _instanceof(Uint8Array).optional(),
|
|
22573
22588
|
width: number().int().positive(),
|
|
22574
22589
|
height: number().int().positive(),
|
|
22575
22590
|
/** The frame instant the parcel shows (the caller's clock, echoed back). */
|
|
@@ -23156,6 +23171,13 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
23156
23171
|
bbox: NativeCropBboxSchema,
|
|
23157
23172
|
maxWidth: number().int().positive().optional(),
|
|
23158
23173
|
/**
|
|
23174
|
+
* The caller reads a `Uint8Array` (D462). When set, a JPEG answer comes
|
|
23175
|
+
* back in `jpegBytes` instead of base64 `jpeg`. Absent means the old
|
|
23176
|
+
* wire — never assume consent: a pre-D462 caller parses the field as
|
|
23177
|
+
* base64 and bytes would decode to garbage rather than fail.
|
|
23178
|
+
*/
|
|
23179
|
+
acceptJpegBytes: boolean().optional(),
|
|
23180
|
+
/**
|
|
23159
23181
|
* When `true`, the runner encodes the resolved crop to JPEG ON THE
|
|
23160
23182
|
* OWNING NODE and returns it in `jpeg` (base64) INSTEAD of raw `bytes`.
|
|
23161
23183
|
* Callers set this for CROSS-NODE fetches (`handle.nodeId` is a remote
|
|
@@ -23223,7 +23245,14 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
23223
23245
|
}), ParkTrackFrameResultSchema, { kind: "mutation" }), method(object({
|
|
23224
23246
|
deviceId: number(),
|
|
23225
23247
|
trackId: string(),
|
|
23226
|
-
kind: ParkedFrameKindSchema
|
|
23248
|
+
kind: ParkedFrameKindSchema,
|
|
23249
|
+
/**
|
|
23250
|
+
* The caller reads a `Uint8Array` (D462). When set, a JPEG answer comes
|
|
23251
|
+
* back in `jpegBytes` instead of base64 `jpeg`. Absent means the old
|
|
23252
|
+
* wire — never assume consent: a pre-D462 caller parses the field as
|
|
23253
|
+
* base64 and bytes would decode to garbage rather than fail.
|
|
23254
|
+
*/
|
|
23255
|
+
acceptJpegBytes: boolean().optional()
|
|
23227
23256
|
}), ParkedTrackFrameSchema.nullable()), method(object({
|
|
23228
23257
|
deviceId: number(),
|
|
23229
23258
|
trackId: string()
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-iJA2F7_d.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as resolvePoolMemoryPolicy, B as PoolMemoryWatchdog, Ct as parseProcStatus, gt as hfModelUrl, ut as embeddingEncoderCapability, zt as BaseAddon } from "../dist-
|
|
1
|
+
import { At as resolvePoolMemoryPolicy, B as PoolMemoryWatchdog, Ct as parseProcStatus, gt as hfModelUrl, ut as embeddingEncoderCapability, zt as BaseAddon } from "../dist-CxPGPwcy.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.100",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.180",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.148",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.180",
|
|
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.
|
|
48
|
+
version: "1.2.100",
|
|
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.
|
|
84
|
+
version: "1.2.148",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-iJA2F7_d.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -45876,8 +45876,13 @@ async function encodeRgbCropToJpeg(bytes, width, height) {
|
|
|
45876
45876
|
* same-node (raw) or cross-node (JPEG). The decode happens IN-PROCESS on the
|
|
45877
45877
|
* post-processing node — no raw pixels ever cross a process boundary.
|
|
45878
45878
|
*/
|
|
45879
|
-
|
|
45880
|
-
|
|
45879
|
+
/**
|
|
45880
|
+
* Decode a JPEG to raw RGB. Takes the BYTES, or the base64 a pre-D462 runner
|
|
45881
|
+
* still answers with — sharp wants bytes either way, so accepting both here is
|
|
45882
|
+
* what lets the caller stop base64-ing purely to be understood.
|
|
45883
|
+
*/
|
|
45884
|
+
async function decodeJpegToRgb(jpeg) {
|
|
45885
|
+
const { data, info } = await (0, sharp.default)(typeof jpeg === "string" ? Buffer.from(jpeg, "base64") : Buffer.from(jpeg)).raw().toBuffer({ resolveWithObject: true });
|
|
45881
45886
|
return {
|
|
45882
45887
|
bytes: data,
|
|
45883
45888
|
width: info.width,
|
|
@@ -64362,6 +64367,15 @@ function createNativeFrameTransport(deps) {
|
|
|
64362
64367
|
const wantJpeg = (_handle) => true;
|
|
64363
64368
|
const cropReplyToRgb = async (reply) => {
|
|
64364
64369
|
const tier = reply.tier;
|
|
64370
|
+
if (reply.jpegBytes !== void 0) {
|
|
64371
|
+
const rgb = await decodeJpegToRgb(reply.jpegBytes);
|
|
64372
|
+
return {
|
|
64373
|
+
bytes: rgb.bytes,
|
|
64374
|
+
width: rgb.width,
|
|
64375
|
+
height: rgb.height,
|
|
64376
|
+
...tier !== void 0 ? { tier } : {}
|
|
64377
|
+
};
|
|
64378
|
+
}
|
|
64365
64379
|
if (reply.jpeg !== void 0) {
|
|
64366
64380
|
const rgb = await decodeJpegToRgb(reply.jpeg);
|
|
64367
64381
|
return {
|
|
@@ -64381,6 +64395,12 @@ function createNativeFrameTransport(deps) {
|
|
|
64381
64395
|
};
|
|
64382
64396
|
const cropReplyToJpeg = async (reply) => {
|
|
64383
64397
|
const tier = reply.tier;
|
|
64398
|
+
if (reply.jpegBytes !== void 0) return {
|
|
64399
|
+
jpeg: Buffer.from(reply.jpegBytes),
|
|
64400
|
+
width: reply.width,
|
|
64401
|
+
height: reply.height,
|
|
64402
|
+
...tier !== void 0 ? { tier } : {}
|
|
64403
|
+
};
|
|
64384
64404
|
if (reply.jpeg !== void 0) return {
|
|
64385
64405
|
jpeg: Buffer.from(reply.jpeg, "base64"),
|
|
64386
64406
|
width: reply.width,
|
|
@@ -64442,7 +64462,8 @@ function createNativeFrameTransport(deps) {
|
|
|
64442
64462
|
handle: frameHandle,
|
|
64443
64463
|
bbox,
|
|
64444
64464
|
...maxWidth !== void 0 ? { maxWidth } : {},
|
|
64445
|
-
encodeJpeg: wantJpeg(frameHandle)
|
|
64465
|
+
encodeJpeg: wantJpeg(frameHandle),
|
|
64466
|
+
acceptJpegBytes: true
|
|
64446
64467
|
}, require_dist.nodePin(frameHandle.nodeId));
|
|
64447
64468
|
if (!native || native.width <= 0 || native.height <= 0) return null;
|
|
64448
64469
|
return await normalize(native);
|
|
@@ -64763,7 +64784,8 @@ function createParkedFrameClient(deps) {
|
|
|
64763
64784
|
const parcel = await api.getParkedTrackFrame.query({
|
|
64764
64785
|
deviceId: known.deviceId,
|
|
64765
64786
|
trackId,
|
|
64766
|
-
kind
|
|
64787
|
+
kind,
|
|
64788
|
+
acceptJpegBytes: true
|
|
64767
64789
|
}, require_dist.nodePin(known.nodeId));
|
|
64768
64790
|
if (parcel === null) {
|
|
64769
64791
|
logger.warn("parked frame gone at retrieval — the node no longer holds it", {
|
|
@@ -64777,8 +64799,20 @@ function createParkedFrameClient(deps) {
|
|
|
64777
64799
|
});
|
|
64778
64800
|
return null;
|
|
64779
64801
|
}
|
|
64802
|
+
const jpeg = parcel.jpegBytes !== void 0 ? Buffer.from(parcel.jpegBytes) : parcel.jpeg !== void 0 ? Buffer.from(parcel.jpeg, "base64") : null;
|
|
64803
|
+
if (jpeg === null) {
|
|
64804
|
+
logger.warn("parked frame arrived with neither jpegBytes nor jpeg", {
|
|
64805
|
+
tags: { deviceId: known.deviceId },
|
|
64806
|
+
meta: {
|
|
64807
|
+
trackId,
|
|
64808
|
+
kind,
|
|
64809
|
+
nodeId: known.nodeId
|
|
64810
|
+
}
|
|
64811
|
+
});
|
|
64812
|
+
return null;
|
|
64813
|
+
}
|
|
64780
64814
|
return {
|
|
64781
|
-
jpeg
|
|
64815
|
+
jpeg,
|
|
64782
64816
|
width: parcel.width,
|
|
64783
64817
|
height: parcel.height,
|
|
64784
64818
|
timestamp: parcel.timestamp,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as VISIT_MERGE_GAP_MS, $t as object, A as NcRulePatchSchema, Bt as CamProfileSchema, C as NC_ALARM_SYSTEM_EVENT_KINDS, D as NC_TAXONOMY, Dt as readDeviceStateFrom, Et as plateGalleryCapability, F as NcSnoozeSchema, Ft as vectorDimFromBase64, G as SCENE_DEFAULT_UNCOVERED_POLICY, Gt as nodePin, H as RetrainStatusSchema, Ht as createEvent, I as NcSnoozeSuppressedSchema, It as videoclipsCapability, J as TIMELAPSE_DENSE_FLOOR_SEC, Jt as array, K as SCENE_DIVERGED, Kt as sleep$1, L as NcSystemEventKindSchema, Lt as zoneAnalyticsCapability, M as NcRuleTargetSchema, Mt as storageOccupancyCapability, N as NcScheduleSchema, Nt as subKindsOf, O as NcConditionDescriptorSchema, Ot as readTimelapseGeneratedAt, P as NcSnoozeInputSchema, Pt as systemEventFilterApplies, Q as TrackSourceSchema, Qt as number, R as NcTaxonomySchema, Rt as errMsg$1, S as MediaFileKindEnum, St as notificationRulesCapability, T as NC_DEFAULT_SNOOZE_MINUTES, Tt as pipelineAnalyticsCapability, Ut as hydrateSchema, V as RECORDING_EXPORT_MAX_READ_BYTES, Vt as DeviceType, W as SCENE_DEFAULT_ANCHOR_THRESHOLD, Wt as isDeviceScopedCap, X as TimelapseRulePatchSchema, Xt as discriminatedUnion, Y as TimelapseRuleInputSchema, Yt as boolean, Z as TimelapseRuleSchema, Zt as literal, _ as FailureCounters, _t as isDetectionMacroClass, a as CLUSTER_MODEL_SCOPED_STEPS, at as buildEventKindDescriptor, b as MAX_BIRTH_DECISION_RECORDS, bt as kebabToCamel, ct as defineCustomActions, dt as encodeVectorBase64, en as partialRecord, et as addonWidgetsSourceCapability, f as DeclaredDevices, ft as evaluateSensorEdge, g as FULL_IMAGE_BBOX, h as FIRST_LEVEL_MACRO_CLASSES, ht as failureContributionCapability, i as BirthDecisionRecordSchema, in as EventCategory, it as audioModeOf, j as NcRuleSchema, jt as sceneMonitorCapability, k as NcRuleInputSchema, kt as resolveLocationMode, lt as deriveRecordingMode, m as EVENT_PAD_MS, mt as faceGalleryCapability, n as ArchivedDebugNoteSchema, nn as string, nt as assertTimelapseCadences, o as COCO_TO_MACRO, ot as cosineSimilarity$1, p as EVENT_KIND_BY_CAP, pt as evictionPolicyOfLocation, q as SceneMonitorSchema, qt as _enum, r as BaseDevice, rn as unknown, rt as audioMetricsCapability, s as DEFAULT_EVENT_COLOR, st as customAction, t as AUDIO_MACRO_LABELS, tn as record, tt as alarmPanelCapability, u as DETECTION_MACRO_CLASSES, v as LabelAttributionSchema, vt as isScheduleActive, w as NC_CONDITION_CATALOG, wt as pickClusterStepModels, xt as mayWriteToLocation, y as MAX_ARCHIVED_DEBUG_NOTES, yt as isSourceCap, z as OpsLogEntrySchema, zt as BaseAddon } from "../dist-
|
|
1
|
+
import { $ as VISIT_MERGE_GAP_MS, $t as object, A as NcRulePatchSchema, Bt as CamProfileSchema, C as NC_ALARM_SYSTEM_EVENT_KINDS, D as NC_TAXONOMY, Dt as readDeviceStateFrom, Et as plateGalleryCapability, F as NcSnoozeSchema, Ft as vectorDimFromBase64, G as SCENE_DEFAULT_UNCOVERED_POLICY, Gt as nodePin, H as RetrainStatusSchema, Ht as createEvent, I as NcSnoozeSuppressedSchema, It as videoclipsCapability, J as TIMELAPSE_DENSE_FLOOR_SEC, Jt as array, K as SCENE_DIVERGED, Kt as sleep$1, L as NcSystemEventKindSchema, Lt as zoneAnalyticsCapability, M as NcRuleTargetSchema, Mt as storageOccupancyCapability, N as NcScheduleSchema, Nt as subKindsOf, O as NcConditionDescriptorSchema, Ot as readTimelapseGeneratedAt, P as NcSnoozeInputSchema, Pt as systemEventFilterApplies, Q as TrackSourceSchema, Qt as number, R as NcTaxonomySchema, Rt as errMsg$1, S as MediaFileKindEnum, St as notificationRulesCapability, T as NC_DEFAULT_SNOOZE_MINUTES, Tt as pipelineAnalyticsCapability, Ut as hydrateSchema, V as RECORDING_EXPORT_MAX_READ_BYTES, Vt as DeviceType, W as SCENE_DEFAULT_ANCHOR_THRESHOLD, Wt as isDeviceScopedCap, X as TimelapseRulePatchSchema, Xt as discriminatedUnion, Y as TimelapseRuleInputSchema, Yt as boolean, Z as TimelapseRuleSchema, Zt as literal, _ as FailureCounters, _t as isDetectionMacroClass, a as CLUSTER_MODEL_SCOPED_STEPS, at as buildEventKindDescriptor, b as MAX_BIRTH_DECISION_RECORDS, bt as kebabToCamel, ct as defineCustomActions, dt as encodeVectorBase64, en as partialRecord, et as addonWidgetsSourceCapability, f as DeclaredDevices, ft as evaluateSensorEdge, g as FULL_IMAGE_BBOX, h as FIRST_LEVEL_MACRO_CLASSES, ht as failureContributionCapability, i as BirthDecisionRecordSchema, in as EventCategory, it as audioModeOf, j as NcRuleSchema, jt as sceneMonitorCapability, k as NcRuleInputSchema, kt as resolveLocationMode, lt as deriveRecordingMode, m as EVENT_PAD_MS, mt as faceGalleryCapability, n as ArchivedDebugNoteSchema, nn as string, nt as assertTimelapseCadences, o as COCO_TO_MACRO, ot as cosineSimilarity$1, p as EVENT_KIND_BY_CAP, pt as evictionPolicyOfLocation, q as SceneMonitorSchema, qt as _enum, r as BaseDevice, rn as unknown, rt as audioMetricsCapability, s as DEFAULT_EVENT_COLOR, st as customAction, t as AUDIO_MACRO_LABELS, tn as record, tt as alarmPanelCapability, u as DETECTION_MACRO_CLASSES, v as LabelAttributionSchema, vt as isScheduleActive, w as NC_CONDITION_CATALOG, wt as pickClusterStepModels, xt as mayWriteToLocation, y as MAX_ARCHIVED_DEBUG_NOTES, yt as isSourceCap, z as OpsLogEntrySchema, zt as BaseAddon } from "../dist-CxPGPwcy.mjs";
|
|
2
2
|
import { t as __exportAll } from "../embedding-encoder/index.mjs";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { promises } from "node:fs";
|
|
@@ -45802,8 +45802,13 @@ async function encodeRgbCropToJpeg(bytes, width, height) {
|
|
|
45802
45802
|
* same-node (raw) or cross-node (JPEG). The decode happens IN-PROCESS on the
|
|
45803
45803
|
* post-processing node — no raw pixels ever cross a process boundary.
|
|
45804
45804
|
*/
|
|
45805
|
-
|
|
45806
|
-
|
|
45805
|
+
/**
|
|
45806
|
+
* Decode a JPEG to raw RGB. Takes the BYTES, or the base64 a pre-D462 runner
|
|
45807
|
+
* still answers with — sharp wants bytes either way, so accepting both here is
|
|
45808
|
+
* what lets the caller stop base64-ing purely to be understood.
|
|
45809
|
+
*/
|
|
45810
|
+
async function decodeJpegToRgb(jpeg) {
|
|
45811
|
+
const { data, info } = await sharp(typeof jpeg === "string" ? Buffer.from(jpeg, "base64") : Buffer.from(jpeg)).raw().toBuffer({ resolveWithObject: true });
|
|
45807
45812
|
return {
|
|
45808
45813
|
bytes: data,
|
|
45809
45814
|
width: info.width,
|
|
@@ -64288,6 +64293,15 @@ function createNativeFrameTransport(deps) {
|
|
|
64288
64293
|
const wantJpeg = (_handle) => true;
|
|
64289
64294
|
const cropReplyToRgb = async (reply) => {
|
|
64290
64295
|
const tier = reply.tier;
|
|
64296
|
+
if (reply.jpegBytes !== void 0) {
|
|
64297
|
+
const rgb = await decodeJpegToRgb(reply.jpegBytes);
|
|
64298
|
+
return {
|
|
64299
|
+
bytes: rgb.bytes,
|
|
64300
|
+
width: rgb.width,
|
|
64301
|
+
height: rgb.height,
|
|
64302
|
+
...tier !== void 0 ? { tier } : {}
|
|
64303
|
+
};
|
|
64304
|
+
}
|
|
64291
64305
|
if (reply.jpeg !== void 0) {
|
|
64292
64306
|
const rgb = await decodeJpegToRgb(reply.jpeg);
|
|
64293
64307
|
return {
|
|
@@ -64307,6 +64321,12 @@ function createNativeFrameTransport(deps) {
|
|
|
64307
64321
|
};
|
|
64308
64322
|
const cropReplyToJpeg = async (reply) => {
|
|
64309
64323
|
const tier = reply.tier;
|
|
64324
|
+
if (reply.jpegBytes !== void 0) return {
|
|
64325
|
+
jpeg: Buffer.from(reply.jpegBytes),
|
|
64326
|
+
width: reply.width,
|
|
64327
|
+
height: reply.height,
|
|
64328
|
+
...tier !== void 0 ? { tier } : {}
|
|
64329
|
+
};
|
|
64310
64330
|
if (reply.jpeg !== void 0) return {
|
|
64311
64331
|
jpeg: Buffer.from(reply.jpeg, "base64"),
|
|
64312
64332
|
width: reply.width,
|
|
@@ -64368,7 +64388,8 @@ function createNativeFrameTransport(deps) {
|
|
|
64368
64388
|
handle: frameHandle,
|
|
64369
64389
|
bbox,
|
|
64370
64390
|
...maxWidth !== void 0 ? { maxWidth } : {},
|
|
64371
|
-
encodeJpeg: wantJpeg(frameHandle)
|
|
64391
|
+
encodeJpeg: wantJpeg(frameHandle),
|
|
64392
|
+
acceptJpegBytes: true
|
|
64372
64393
|
}, nodePin(frameHandle.nodeId));
|
|
64373
64394
|
if (!native || native.width <= 0 || native.height <= 0) return null;
|
|
64374
64395
|
return await normalize(native);
|
|
@@ -64689,7 +64710,8 @@ function createParkedFrameClient(deps) {
|
|
|
64689
64710
|
const parcel = await api.getParkedTrackFrame.query({
|
|
64690
64711
|
deviceId: known.deviceId,
|
|
64691
64712
|
trackId,
|
|
64692
|
-
kind
|
|
64713
|
+
kind,
|
|
64714
|
+
acceptJpegBytes: true
|
|
64693
64715
|
}, nodePin(known.nodeId));
|
|
64694
64716
|
if (parcel === null) {
|
|
64695
64717
|
logger.warn("parked frame gone at retrieval — the node no longer holds it", {
|
|
@@ -64703,8 +64725,20 @@ function createParkedFrameClient(deps) {
|
|
|
64703
64725
|
});
|
|
64704
64726
|
return null;
|
|
64705
64727
|
}
|
|
64728
|
+
const jpeg = parcel.jpegBytes !== void 0 ? Buffer.from(parcel.jpegBytes) : parcel.jpeg !== void 0 ? Buffer.from(parcel.jpeg, "base64") : null;
|
|
64729
|
+
if (jpeg === null) {
|
|
64730
|
+
logger.warn("parked frame arrived with neither jpegBytes nor jpeg", {
|
|
64731
|
+
tags: { deviceId: known.deviceId },
|
|
64732
|
+
meta: {
|
|
64733
|
+
trackId,
|
|
64734
|
+
kind,
|
|
64735
|
+
nodeId: known.nodeId
|
|
64736
|
+
}
|
|
64737
|
+
});
|
|
64738
|
+
return null;
|
|
64739
|
+
}
|
|
64706
64740
|
return {
|
|
64707
|
-
jpeg
|
|
64741
|
+
jpeg,
|
|
64708
64742
|
width: parcel.width,
|
|
64709
64743
|
height: parcel.height,
|
|
64710
64744
|
timestamp: parcel.timestamp,
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B3K65b9h.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.222",
|
|
4
4
|
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|