@camstack/addon-decoder-nodeav 1.1.6 → 1.1.8

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/index.js CHANGED
@@ -16977,7 +16977,15 @@ var FrameworkPackageStatusSchema = object({
16977
16977
  latestVersion: string().nullable(),
16978
16978
  hasUpdate: boolean(),
16979
16979
  /** Optional manifest description for the row tooltip. */
16980
- description: string().optional()
16980
+ description: string().optional(),
16981
+ /**
16982
+ * Content build-id (md5 of the resolved `dist/` tree) of the code the hub
16983
+ * ACTUALLY loaded. Framework packages ship code changes without always
16984
+ * bumping `currentVersion`, so semver alone hides "same version, new code".
16985
+ * `null` when the dist can't be hashed (not installed / empty). The admin-UI
16986
+ * surfaces this so a stale-code hub is visible even at an unchanged version.
16987
+ */
16988
+ buildId: string().nullable()
16981
16989
  });
16982
16990
  var LogStreamEntrySchema = object({
16983
16991
  timestamp: string(),
@@ -25880,15 +25888,19 @@ var DecoderNodeAvAddon = class extends BaseAddon {
25880
25888
  this.sessionMeta.set(sessionId, {
25881
25889
  codec: config.codec,
25882
25890
  outputFormat: config.outputFormat,
25883
- createdAtMs: Date.now()
25891
+ createdAtMs: Date.now(),
25892
+ deviceId: config.deviceId
25893
+ });
25894
+ this.ctx.logger.info("node-av: created session", {
25895
+ tags: typeof config.deviceId === "number" ? { deviceId: config.deviceId } : void 0,
25896
+ meta: {
25897
+ sessionId,
25898
+ codec: config.codec,
25899
+ hwaccelPref: hwaccel,
25900
+ frameSink,
25901
+ nodeId
25902
+ }
25884
25903
  });
25885
- this.ctx.logger.info("node-av: created session", { meta: {
25886
- sessionId,
25887
- codec: config.codec,
25888
- hwaccelPref: hwaccel,
25889
- frameSink,
25890
- nodeId
25891
- } });
25892
25904
  return {
25893
25905
  sessionId,
25894
25906
  nodeId
@@ -25936,13 +25948,17 @@ var DecoderNodeAvAddon = class extends BaseAddon {
25936
25948
  if (unsub) unsub();
25937
25949
  this.frameBuffers.get(sessionId)?.cancel();
25938
25950
  this.handleBuffers.get(sessionId)?.cancel();
25951
+ const deviceId = this.sessionMeta.get(sessionId)?.deviceId;
25939
25952
  await session.destroy();
25940
25953
  this.sessions.delete(sessionId);
25941
25954
  this.frameBuffers.delete(sessionId);
25942
25955
  this.handleBuffers.delete(sessionId);
25943
25956
  this.unsubscribers.delete(sessionId);
25944
25957
  this.sessionMeta.delete(sessionId);
25945
- this.ctx.logger.info("node-av: destroyed session", { meta: { sessionId } });
25958
+ this.ctx.logger.info("node-av: destroyed session", {
25959
+ tags: typeof deviceId === "number" ? { deviceId } : void 0,
25960
+ meta: { sessionId }
25961
+ });
25946
25962
  }
25947
25963
  async listActiveSessions() {
25948
25964
  const out = [];
package/dist/index.mjs CHANGED
@@ -16973,7 +16973,15 @@ var FrameworkPackageStatusSchema = object({
16973
16973
  latestVersion: string().nullable(),
16974
16974
  hasUpdate: boolean(),
16975
16975
  /** Optional manifest description for the row tooltip. */
16976
- description: string().optional()
16976
+ description: string().optional(),
16977
+ /**
16978
+ * Content build-id (md5 of the resolved `dist/` tree) of the code the hub
16979
+ * ACTUALLY loaded. Framework packages ship code changes without always
16980
+ * bumping `currentVersion`, so semver alone hides "same version, new code".
16981
+ * `null` when the dist can't be hashed (not installed / empty). The admin-UI
16982
+ * surfaces this so a stale-code hub is visible even at an unchanged version.
16983
+ */
16984
+ buildId: string().nullable()
16977
16985
  });
16978
16986
  var LogStreamEntrySchema = object({
16979
16987
  timestamp: string(),
@@ -25876,15 +25884,19 @@ var DecoderNodeAvAddon = class extends BaseAddon {
25876
25884
  this.sessionMeta.set(sessionId, {
25877
25885
  codec: config.codec,
25878
25886
  outputFormat: config.outputFormat,
25879
- createdAtMs: Date.now()
25887
+ createdAtMs: Date.now(),
25888
+ deviceId: config.deviceId
25889
+ });
25890
+ this.ctx.logger.info("node-av: created session", {
25891
+ tags: typeof config.deviceId === "number" ? { deviceId: config.deviceId } : void 0,
25892
+ meta: {
25893
+ sessionId,
25894
+ codec: config.codec,
25895
+ hwaccelPref: hwaccel,
25896
+ frameSink,
25897
+ nodeId
25898
+ }
25880
25899
  });
25881
- this.ctx.logger.info("node-av: created session", { meta: {
25882
- sessionId,
25883
- codec: config.codec,
25884
- hwaccelPref: hwaccel,
25885
- frameSink,
25886
- nodeId
25887
- } });
25888
25900
  return {
25889
25901
  sessionId,
25890
25902
  nodeId
@@ -25932,13 +25944,17 @@ var DecoderNodeAvAddon = class extends BaseAddon {
25932
25944
  if (unsub) unsub();
25933
25945
  this.frameBuffers.get(sessionId)?.cancel();
25934
25946
  this.handleBuffers.get(sessionId)?.cancel();
25947
+ const deviceId = this.sessionMeta.get(sessionId)?.deviceId;
25935
25948
  await session.destroy();
25936
25949
  this.sessions.delete(sessionId);
25937
25950
  this.frameBuffers.delete(sessionId);
25938
25951
  this.handleBuffers.delete(sessionId);
25939
25952
  this.unsubscribers.delete(sessionId);
25940
25953
  this.sessionMeta.delete(sessionId);
25941
- this.ctx.logger.info("node-av: destroyed session", { meta: { sessionId } });
25954
+ this.ctx.logger.info("node-av: destroyed session", {
25955
+ tags: typeof deviceId === "number" ? { deviceId } : void 0,
25956
+ meta: { sessionId }
25957
+ });
25942
25958
  }
25943
25959
  async listActiveSessions() {
25944
25960
  const out = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-nodeav",
3
- "version": "1.1.6",
3
+ "version": "1.1.8",
4
4
  "description": "Standalone in-process node-av decoder addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",