@camstack/addon-post-analysis 1.2.145 → 1.2.148

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.
@@ -8309,18 +8309,61 @@ var RelocateFootageInputSchema = object({
8309
8309
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8310
8310
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8311
8311
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8312
+ /**
8313
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8314
+ * mover (the engine already walks both collections with a timestamp cursor and
8315
+ * already has a stamp-without-copy path).
8316
+ *
8317
+ * - `move` — the default and the historical behaviour: event-media and
8318
+ * retrain blobs move to `toLocationId` and their rows are
8319
+ * stamped. The enrolled gallery is skipped (D197).
8320
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8321
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8322
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8323
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8324
+ * instant a repoint moves that pointer the row reads from the
8325
+ * new disk while its bytes are on the old one.
8326
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8327
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8328
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8329
+ * never run beside a live second location: it is stop-the-world
8330
+ * by construction, which is acceptable only because the gallery
8331
+ * is a few KB per enrolled sample.
8332
+ */
8333
+ var MediaRelocateModeSchema = _enum([
8334
+ "move",
8335
+ "seal",
8336
+ "gallery"
8337
+ ]);
8312
8338
  var RelocateMediaInputSchema = object({
8313
8339
  toLocationId: string(),
8314
- throttleMbps: number().min(1).max(1e3).optional()
8340
+ throttleMbps: number().min(1).max(1e3).optional(),
8341
+ /** Omitted = `move`, the pre-existing behaviour. */
8342
+ mode: MediaRelocateModeSchema.optional()
8343
+ });
8344
+ /** How many rows still carry NO `locationId` — the population a repoint would
8345
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8346
+ * value that permits a non-blocking `eventMedia` cutover. */
8347
+ var UnstampedEventMediaCountSchema = object({
8348
+ media: number().int().nonnegative(),
8349
+ retrainFrames: number().int().nonnegative(),
8350
+ total: number().int().nonnegative()
8315
8351
  });
8316
8352
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8317
- /** The independently selectable logical storage classes. `recordings`
8318
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8319
- * segments; `eventMedia` is post-analysis blobs. */
8353
+ /** The independently selectable logical storage classes — every class
8354
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8355
+ * Zod enum error where they should meet an explanation.
8356
+ *
8357
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8358
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8359
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8360
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8320
8361
  var StorageMigrationClassSchema = _enum([
8321
8362
  "recordings",
8322
8363
  "recordingsLow",
8323
- "eventMedia"
8364
+ "eventMedia",
8365
+ "backups",
8366
+ "galleryMedia"
8324
8367
  ]);
8325
8368
  /** A destination is always an existing, fully-qualified location id. The
8326
8369
  * migration API intentionally never changes a source location's `basePath`:
@@ -8328,20 +8371,56 @@ var StorageMigrationClassSchema = _enum([
8328
8371
  var StorageMigrationDestinationsSchema = object({
8329
8372
  recordings: string().min(1).optional(),
8330
8373
  recordingsLow: string().min(1).optional(),
8331
- eventMedia: string().min(1).optional()
8374
+ eventMedia: string().min(1).optional(),
8375
+ backups: string().min(1).optional(),
8376
+ galleryMedia: string().min(1).optional()
8332
8377
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8378
+ /**
8379
+ * How a migration sequences the cutover against the byte move.
8380
+ *
8381
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8382
+ * resume. Recording is stopped for the whole move. Right
8383
+ * for a small or a cold class, and the only legal mode for
8384
+ * a `cardinality: 'single'` class.
8385
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8386
+ * refresh, resume, then move the past with everything
8387
+ * running. The pause is three bounded instants (a detach +
8388
+ * attach round, a write-gate drain, a lease) instead of one
8389
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8390
+ * stopped recording under `blocking`; the same move is
8391
+ * seconds of stopped recording under `nonBlocking`.
8392
+ *
8393
+ * The mode is on the JOB, not only on the input, because `status` is where an
8394
+ * operator finds out which one is running.
8395
+ */
8396
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8333
8397
  /** Shared input for planning and starting an orchestrated storage migration. */
8334
8398
  var StorageMigrationInputSchema = object({
8335
8399
  destinations: StorageMigrationDestinationsSchema,
8336
- throttleMbps: number().min(1).max(1e3).optional()
8400
+ throttleMbps: number().min(1).max(1e3).optional(),
8401
+ /** Omitted = `blocking`, which stays the default. */
8402
+ mode: StorageMigrationModeSchema.optional()
8337
8403
  });
8338
- /** The durable coordinator state machine. The only phase that changes default
8339
- * locations is `repointing`, after every selected mover has completed and been
8340
- * verified. */
8404
+ /**
8405
+ * The durable coordinator state machine.
8406
+ *
8407
+ * `blocking`:
8408
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8409
+ *
8410
+ * `nonBlocking`:
8411
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8412
+ *
8413
+ * Same phases, different order plus two new ones — not a second mover.
8414
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8415
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8416
+ * `repointing` is still the only phase that changes a default location.
8417
+ */
8341
8418
  var StorageMigrationPhaseSchema = _enum([
8342
8419
  "planning",
8420
+ "sealing",
8343
8421
  "pausing",
8344
8422
  "moving",
8423
+ "draining",
8345
8424
  "verifying",
8346
8425
  "repointing",
8347
8426
  "refreshing",
@@ -8366,6 +8445,9 @@ var StorageMigrationMoveSchema = object({
8366
8445
  var StorageMigrationJobSchema = object({
8367
8446
  jobId: string(),
8368
8447
  phase: StorageMigrationPhaseSchema,
8448
+ /** Which order this job is running. `status` is the only place an operator
8449
+ * can tell a seconds-long cutover from a thirty-hour one. */
8450
+ mode: StorageMigrationModeSchema,
8369
8451
  destinations: StorageMigrationDestinationsSchema,
8370
8452
  throttleMbps: number(),
8371
8453
  moves: array(StorageMigrationMoveSchema),
@@ -8378,13 +8460,30 @@ var StorageMigrationJobSchema = object({
8378
8460
  finishedAt: number().nullable(),
8379
8461
  error: string().nullable()
8380
8462
  });
8463
+ var StorageMigrationFindingSchema = object({
8464
+ code: _enum([
8465
+ "sharesDeviceWithSource",
8466
+ "deviceIdentityUnknown",
8467
+ "unstampedEventMediaRows",
8468
+ "blockingOnly",
8469
+ "noMover"
8470
+ ]),
8471
+ storageClass: StorageMigrationClassSchema,
8472
+ /** Human-readable, already carrying the ids and counts. */
8473
+ message: string()
8474
+ });
8381
8475
  var StorageMigrationPlanSchema = object({
8382
8476
  destinations: StorageMigrationDestinationsSchema,
8477
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8478
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8479
+ * it. */
8480
+ mode: StorageMigrationModeSchema,
8383
8481
  moves: array(object({
8384
8482
  storageClass: StorageMigrationClassSchema,
8385
8483
  fromLocationId: string(),
8386
8484
  toLocationId: string()
8387
- }))
8485
+ })),
8486
+ findings: array(StorageMigrationFindingSchema)
8388
8487
  });
8389
8488
  /**
8390
8489
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -20209,6 +20308,17 @@ var pipelineAnalyticsCapability = {
20209
20308
  kind: "mutation",
20210
20309
  auth: "admin"
20211
20310
  }),
20311
+ /**
20312
+ * How many media / retrain rows still carry NO `locationId`.
20313
+ *
20314
+ * A NULL row means "wherever `eventMedia` points NOW", so the instant a
20315
+ * repoint moves that pointer every such row reads from the new disk while
20316
+ * its bytes are on the old one — the archive goes dark until a drain
20317
+ * happens to stamp it. This count is what the migration planner's
20318
+ * non-blocking gate reads; `relocateMedia({ mode: 'seal' })` is what drives
20319
+ * it to zero.
20320
+ */
20321
+ countUnstampedEventMedia: method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }),
20212
20322
  /** Every relocate job this addon knows about, newest first (in RAM: the
20213
20323
  * move is resumable, so a lost list costs nothing but the display). */
20214
20324
  listRelocateMediaJobs: method(object({}), array(RelocateJobSchema).readonly(), {
@@ -22372,7 +22482,10 @@ method(object({
22372
22482
  }), StorageLocationSchema, {
22373
22483
  kind: "mutation",
22374
22484
  auth: "admin"
22375
- }), method(object({ id: string() }), _void(), {
22485
+ }), method(object({
22486
+ id: string(),
22487
+ force: boolean().optional()
22488
+ }), _void(), {
22376
22489
  kind: "mutation",
22377
22490
  auth: "admin"
22378
22491
  }), method(object({ id: string() }), object({
@@ -36380,6 +36493,12 @@ Object.freeze({
36380
36493
  addonId: null,
36381
36494
  access: "create"
36382
36495
  },
36496
+ "pipelineAnalytics.countUnstampedEventMedia": {
36497
+ capName: "pipeline-analytics",
36498
+ capScope: "device",
36499
+ addonId: null,
36500
+ access: "view"
36501
+ },
36383
36502
  "pipelineAnalytics.deleteDeviceEvents": {
36384
36503
  capName: "pipeline-analytics",
36385
36504
  capScope: "device",
@@ -8278,18 +8278,61 @@ var RelocateFootageInputSchema = object({
8278
8278
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8279
8279
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8280
8280
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8281
+ /**
8282
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8283
+ * mover (the engine already walks both collections with a timestamp cursor and
8284
+ * already has a stamp-without-copy path).
8285
+ *
8286
+ * - `move` — the default and the historical behaviour: event-media and
8287
+ * retrain blobs move to `toLocationId` and their rows are
8288
+ * stamped. The enrolled gallery is skipped (D197).
8289
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8290
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8291
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8292
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8293
+ * instant a repoint moves that pointer the row reads from the
8294
+ * new disk while its bytes are on the old one.
8295
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8296
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8297
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8298
+ * never run beside a live second location: it is stop-the-world
8299
+ * by construction, which is acceptable only because the gallery
8300
+ * is a few KB per enrolled sample.
8301
+ */
8302
+ var MediaRelocateModeSchema = _enum([
8303
+ "move",
8304
+ "seal",
8305
+ "gallery"
8306
+ ]);
8281
8307
  var RelocateMediaInputSchema = object({
8282
8308
  toLocationId: string(),
8283
- throttleMbps: number().min(1).max(1e3).optional()
8309
+ throttleMbps: number().min(1).max(1e3).optional(),
8310
+ /** Omitted = `move`, the pre-existing behaviour. */
8311
+ mode: MediaRelocateModeSchema.optional()
8312
+ });
8313
+ /** How many rows still carry NO `locationId` — the population a repoint would
8314
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8315
+ * value that permits a non-blocking `eventMedia` cutover. */
8316
+ var UnstampedEventMediaCountSchema = object({
8317
+ media: number().int().nonnegative(),
8318
+ retrainFrames: number().int().nonnegative(),
8319
+ total: number().int().nonnegative()
8284
8320
  });
8285
8321
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8286
- /** The independently selectable logical storage classes. `recordings`
8287
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8288
- * segments; `eventMedia` is post-analysis blobs. */
8322
+ /** The independently selectable logical storage classes — every class
8323
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8324
+ * Zod enum error where they should meet an explanation.
8325
+ *
8326
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8327
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8328
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8329
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8289
8330
  var StorageMigrationClassSchema = _enum([
8290
8331
  "recordings",
8291
8332
  "recordingsLow",
8292
- "eventMedia"
8333
+ "eventMedia",
8334
+ "backups",
8335
+ "galleryMedia"
8293
8336
  ]);
8294
8337
  /** A destination is always an existing, fully-qualified location id. The
8295
8338
  * migration API intentionally never changes a source location's `basePath`:
@@ -8297,20 +8340,56 @@ var StorageMigrationClassSchema = _enum([
8297
8340
  var StorageMigrationDestinationsSchema = object({
8298
8341
  recordings: string().min(1).optional(),
8299
8342
  recordingsLow: string().min(1).optional(),
8300
- eventMedia: string().min(1).optional()
8343
+ eventMedia: string().min(1).optional(),
8344
+ backups: string().min(1).optional(),
8345
+ galleryMedia: string().min(1).optional()
8301
8346
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8347
+ /**
8348
+ * How a migration sequences the cutover against the byte move.
8349
+ *
8350
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8351
+ * resume. Recording is stopped for the whole move. Right
8352
+ * for a small or a cold class, and the only legal mode for
8353
+ * a `cardinality: 'single'` class.
8354
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8355
+ * refresh, resume, then move the past with everything
8356
+ * running. The pause is three bounded instants (a detach +
8357
+ * attach round, a write-gate drain, a lease) instead of one
8358
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8359
+ * stopped recording under `blocking`; the same move is
8360
+ * seconds of stopped recording under `nonBlocking`.
8361
+ *
8362
+ * The mode is on the JOB, not only on the input, because `status` is where an
8363
+ * operator finds out which one is running.
8364
+ */
8365
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8302
8366
  /** Shared input for planning and starting an orchestrated storage migration. */
8303
8367
  var StorageMigrationInputSchema = object({
8304
8368
  destinations: StorageMigrationDestinationsSchema,
8305
- throttleMbps: number().min(1).max(1e3).optional()
8369
+ throttleMbps: number().min(1).max(1e3).optional(),
8370
+ /** Omitted = `blocking`, which stays the default. */
8371
+ mode: StorageMigrationModeSchema.optional()
8306
8372
  });
8307
- /** The durable coordinator state machine. The only phase that changes default
8308
- * locations is `repointing`, after every selected mover has completed and been
8309
- * verified. */
8373
+ /**
8374
+ * The durable coordinator state machine.
8375
+ *
8376
+ * `blocking`:
8377
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8378
+ *
8379
+ * `nonBlocking`:
8380
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8381
+ *
8382
+ * Same phases, different order plus two new ones — not a second mover.
8383
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8384
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8385
+ * `repointing` is still the only phase that changes a default location.
8386
+ */
8310
8387
  var StorageMigrationPhaseSchema = _enum([
8311
8388
  "planning",
8389
+ "sealing",
8312
8390
  "pausing",
8313
8391
  "moving",
8392
+ "draining",
8314
8393
  "verifying",
8315
8394
  "repointing",
8316
8395
  "refreshing",
@@ -8335,6 +8414,9 @@ var StorageMigrationMoveSchema = object({
8335
8414
  var StorageMigrationJobSchema = object({
8336
8415
  jobId: string(),
8337
8416
  phase: StorageMigrationPhaseSchema,
8417
+ /** Which order this job is running. `status` is the only place an operator
8418
+ * can tell a seconds-long cutover from a thirty-hour one. */
8419
+ mode: StorageMigrationModeSchema,
8338
8420
  destinations: StorageMigrationDestinationsSchema,
8339
8421
  throttleMbps: number(),
8340
8422
  moves: array(StorageMigrationMoveSchema),
@@ -8347,13 +8429,30 @@ var StorageMigrationJobSchema = object({
8347
8429
  finishedAt: number().nullable(),
8348
8430
  error: string().nullable()
8349
8431
  });
8432
+ var StorageMigrationFindingSchema = object({
8433
+ code: _enum([
8434
+ "sharesDeviceWithSource",
8435
+ "deviceIdentityUnknown",
8436
+ "unstampedEventMediaRows",
8437
+ "blockingOnly",
8438
+ "noMover"
8439
+ ]),
8440
+ storageClass: StorageMigrationClassSchema,
8441
+ /** Human-readable, already carrying the ids and counts. */
8442
+ message: string()
8443
+ });
8350
8444
  var StorageMigrationPlanSchema = object({
8351
8445
  destinations: StorageMigrationDestinationsSchema,
8446
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8447
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8448
+ * it. */
8449
+ mode: StorageMigrationModeSchema,
8352
8450
  moves: array(object({
8353
8451
  storageClass: StorageMigrationClassSchema,
8354
8452
  fromLocationId: string(),
8355
8453
  toLocationId: string()
8356
- }))
8454
+ })),
8455
+ findings: array(StorageMigrationFindingSchema)
8357
8456
  });
8358
8457
  /**
8359
8458
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -20178,6 +20277,17 @@ var pipelineAnalyticsCapability = {
20178
20277
  kind: "mutation",
20179
20278
  auth: "admin"
20180
20279
  }),
20280
+ /**
20281
+ * How many media / retrain rows still carry NO `locationId`.
20282
+ *
20283
+ * A NULL row means "wherever `eventMedia` points NOW", so the instant a
20284
+ * repoint moves that pointer every such row reads from the new disk while
20285
+ * its bytes are on the old one — the archive goes dark until a drain
20286
+ * happens to stamp it. This count is what the migration planner's
20287
+ * non-blocking gate reads; `relocateMedia({ mode: 'seal' })` is what drives
20288
+ * it to zero.
20289
+ */
20290
+ countUnstampedEventMedia: method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }),
20181
20291
  /** Every relocate job this addon knows about, newest first (in RAM: the
20182
20292
  * move is resumable, so a lost list costs nothing but the display). */
20183
20293
  listRelocateMediaJobs: method(object({}), array(RelocateJobSchema).readonly(), {
@@ -22341,7 +22451,10 @@ method(object({
22341
22451
  }), StorageLocationSchema, {
22342
22452
  kind: "mutation",
22343
22453
  auth: "admin"
22344
- }), method(object({ id: string() }), _void(), {
22454
+ }), method(object({
22455
+ id: string(),
22456
+ force: boolean().optional()
22457
+ }), _void(), {
22345
22458
  kind: "mutation",
22346
22459
  auth: "admin"
22347
22460
  }), method(object({ id: string() }), object({
@@ -36349,6 +36462,12 @@ Object.freeze({
36349
36462
  addonId: null,
36350
36463
  access: "create"
36351
36464
  },
36465
+ "pipelineAnalytics.countUnstampedEventMedia": {
36466
+ capName: "pipeline-analytics",
36467
+ capScope: "device",
36468
+ addonId: null,
36469
+ access: "view"
36470
+ },
36352
36471
  "pipelineAnalytics.deleteDeviceEvents": {
36353
36472
  capName: "pipeline-analytics",
36354
36473
  capScope: "device",
@@ -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-C8RL0Hzy.js");
5
+ const require_dist = require("../dist-1xYuXmDS.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 { Dt as BaseAddon, P as PoolMemoryWatchdog, ct as hfModelUrl, it as embeddingEncoderCapability, pt as parseProcStatus, yt as resolvePoolMemoryPolicy } from "../dist-3FJkk7Mx.mjs";
1
+ import { Dt as BaseAddon, P as PoolMemoryWatchdog, ct as hfModelUrl, it as embeddingEncoderCapability, pt as parseProcStatus, yt as resolvePoolMemoryPolicy } from "../dist-4eP-xmjY.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";
@@ -1,6 +1,6 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
2
2
  import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
3
- import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DC69_fX2.mjs";
3
+ import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-C7KsMvFR.mjs";
4
4
  import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
5
5
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
6
6
  var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
@@ -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.45",
6
+ version: "1.2.46",
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.123",
21
+ version: "1.2.124",
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.86",
36
+ version: "1.2.87",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",