@camstack/addon-post-analysis 1.2.117 → 1.2.119

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.
@@ -5831,6 +5831,13 @@ var BaseAddon = class {
5831
5831
  _readinessGeneration = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2, 14);
5832
5832
  /** Capability names this addon registered at init — used to emit matching `down` events on shutdown. */
5833
5833
  _registeredCapNames = [];
5834
+ /**
5835
+ * True only after `readAddonStore` actually answered. Constructor
5836
+ * defaults look like stored config when the store is down — a forked
5837
+ * addon that auto-starts from those defaults (cloudflare-tunnel quick
5838
+ * mode, 2026-08-25) is not "the operator chose this".
5839
+ */
5840
+ settingsStoreReady = false;
5834
5841
  /** Default config values. Provided via constructor. */
5835
5842
  defaults;
5836
5843
  constructor(defaults) {
@@ -6231,7 +6238,9 @@ var BaseAddon = class {
6231
6238
  ];
6232
6239
  let lastErr;
6233
6240
  for (let attempt = 0; attempt <= delaysMs.length; attempt++) try {
6234
- return await settings.readAddonStore() ?? {};
6241
+ const stored = await settings.readAddonStore() ?? {};
6242
+ this.settingsStoreReady = true;
6243
+ return stored;
6235
6244
  } catch (err) {
6236
6245
  lastErr = err;
6237
6246
  const msg = err instanceof Error ? err.message : String(err);
@@ -6239,6 +6248,7 @@ var BaseAddon = class {
6239
6248
  if (attempt === delaysMs.length) break;
6240
6249
  await new Promise((r) => setTimeout(r, delaysMs[attempt]));
6241
6250
  }
6251
+ this.settingsStoreReady = false;
6242
6252
  this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults", { meta: { error: lastErr instanceof Error ? lastErr.message : String(lastErr) } });
6243
6253
  return {};
6244
6254
  }
@@ -27144,7 +27154,12 @@ var PlateInfoSchema = object({
27144
27154
  plateBbox: BoundingBoxSchema.optional(),
27145
27155
  /** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
27146
27156
  keyFrameMediaKey: string().optional(),
27147
- base64: string().optional()
27157
+ base64: string().optional(),
27158
+ /**
27159
+ * Same crop as a data-plane URL. `getPlateByTrack` returns this and
27160
+ * never inlines JPEG; `listPlates` still inlines for the admin-ui.
27161
+ */
27162
+ cropUrl: string().optional()
27148
27163
  });
27149
27164
  var MediaFileLiteSchema = object({
27150
27165
  key: string(),
@@ -5800,6 +5800,13 @@ var BaseAddon = class {
5800
5800
  _readinessGeneration = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2, 14);
5801
5801
  /** Capability names this addon registered at init — used to emit matching `down` events on shutdown. */
5802
5802
  _registeredCapNames = [];
5803
+ /**
5804
+ * True only after `readAddonStore` actually answered. Constructor
5805
+ * defaults look like stored config when the store is down — a forked
5806
+ * addon that auto-starts from those defaults (cloudflare-tunnel quick
5807
+ * mode, 2026-08-25) is not "the operator chose this".
5808
+ */
5809
+ settingsStoreReady = false;
5803
5810
  /** Default config values. Provided via constructor. */
5804
5811
  defaults;
5805
5812
  constructor(defaults) {
@@ -6200,7 +6207,9 @@ var BaseAddon = class {
6200
6207
  ];
6201
6208
  let lastErr;
6202
6209
  for (let attempt = 0; attempt <= delaysMs.length; attempt++) try {
6203
- return await settings.readAddonStore() ?? {};
6210
+ const stored = await settings.readAddonStore() ?? {};
6211
+ this.settingsStoreReady = true;
6212
+ return stored;
6204
6213
  } catch (err) {
6205
6214
  lastErr = err;
6206
6215
  const msg = err instanceof Error ? err.message : String(err);
@@ -6208,6 +6217,7 @@ var BaseAddon = class {
6208
6217
  if (attempt === delaysMs.length) break;
6209
6218
  await new Promise((r) => setTimeout(r, delaysMs[attempt]));
6210
6219
  }
6220
+ this.settingsStoreReady = false;
6211
6221
  this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults", { meta: { error: lastErr instanceof Error ? lastErr.message : String(lastErr) } });
6212
6222
  return {};
6213
6223
  }
@@ -27113,7 +27123,12 @@ var PlateInfoSchema = object({
27113
27123
  plateBbox: BoundingBoxSchema.optional(),
27114
27124
  /** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
27115
27125
  keyFrameMediaKey: string().optional(),
27116
- base64: string().optional()
27126
+ base64: string().optional(),
27127
+ /**
27128
+ * Same crop as a data-plane URL. `getPlateByTrack` returns this and
27129
+ * never inlines JPEG; `listPlates` still inlines for the admin-ui.
27130
+ */
27131
+ cropUrl: string().optional()
27117
27132
  });
27118
27133
  var MediaFileLiteSchema = object({
27119
27134
  key: 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-Dk-BdVHw.js");
5
+ const require_dist = require("../dist-BtIolp2d.js");
6
6
  let node_fs = require("node:fs");
7
7
  let node_fs$1 = require_dist.__toESM(node_fs, 1);
8
8
  node_fs = require_dist.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { M as PoolMemoryWatchdog, at as hfModelUrl, gt as resolvePoolMemoryPolicy, nt as embeddingEncoderCapability, ut as parseProcStatus, wt as BaseAddon } from "../dist-PMOtjzh2.mjs";
1
+ import { M as PoolMemoryWatchdog, at as hfModelUrl, gt as resolvePoolMemoryPolicy, nt as embeddingEncoderCapability, ut as parseProcStatus, wt as BaseAddon } from "../dist-R0Wd863b.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import "node:fs";
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.101",
21
+ version: "1.2.103",
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.69",
36
+ version: "1.2.70",
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.101",
39
+ version: "1.2.103",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.69",
84
+ version: "1.2.70",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,