@camstack/system 1.2.354 → 1.2.356

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.
Files changed (80) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/calendars/calendar-prefs-store.d.ts +7 -0
  14. package/dist/builtins/calendars/calendars.addon.js +3 -2
  15. package/dist/builtins/calendars/calendars.addon.mjs +3 -2
  16. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +12 -2
  17. package/dist/builtins/camera-grid/index.js +15 -3
  18. package/dist/builtins/camera-grid/index.mjs +15 -3
  19. package/dist/builtins/composer/composer.addon.js +53 -12
  20. package/dist/builtins/composer/composer.addon.mjs +53 -12
  21. package/dist/builtins/console-logging/index.js +1 -1
  22. package/dist/builtins/console-logging/index.mjs +1 -1
  23. package/dist/builtins/core-blocks/block-settings-store.d.ts +5 -0
  24. package/dist/builtins/core-blocks/core-blocks.addon.js +7 -2
  25. package/dist/builtins/core-blocks/core-blocks.addon.mjs +7 -2
  26. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  27. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  28. package/dist/builtins/hub-forwarder/index.js +1 -1
  29. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  30. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  32. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  33. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  34. package/dist/builtins/local-network/local-network.addon.js +1 -1
  35. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  36. package/dist/builtins/loki-logging/index.js +1 -1
  37. package/dist/builtins/loki-logging/index.mjs +1 -1
  38. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  39. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  40. package/dist/builtins/platform-probe/index.js +1 -1
  41. package/dist/builtins/platform-probe/index.mjs +1 -1
  42. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  43. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  44. package/dist/builtins/snapshot/index.js +1 -1
  45. package/dist/builtins/snapshot/index.mjs +1 -1
  46. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +0 -2
  47. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  48. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  49. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +9 -11
  50. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  51. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  52. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  53. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  54. package/dist/builtins/system-config/system-config.addon.js +1 -1
  55. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  56. package/dist/builtins/winston-logging/index.js +1 -1
  57. package/dist/builtins/winston-logging/index.mjs +1 -1
  58. package/dist/{child-cap-dispatch-C1x1kNJK.mjs → child-cap-dispatch-BcRHQBKW.mjs} +28 -81
  59. package/dist/{child-cap-dispatch-CRqYKHAb.js → child-cap-dispatch-wbIQJctP.js} +27 -86
  60. package/dist/{composition-sources-DzkEFd8q.mjs → composition-sources-BBfqepyT.mjs} +1 -1
  61. package/dist/{composition-sources-0nuWOdNd.js → composition-sources-CeO0K2cl.js} +1 -1
  62. package/dist/{dist-DVyXxn41.mjs → dist-B7WRgEZY.mjs} +82 -49
  63. package/dist/{dist-DePB7uwU.js → dist-CFVOy8VT.js} +87 -48
  64. package/dist/index.d.ts +1 -1
  65. package/dist/index.js +18 -46
  66. package/dist/index.mjs +19 -46
  67. package/dist/kernel/event-plane-report.d.ts +7 -36
  68. package/dist/kernel/fs-utils.d.ts +1 -5
  69. package/dist/kernel/heap-spaces.d.ts +2 -23
  70. package/dist/kernel/index.d.ts +0 -2
  71. package/dist/kernel/moleculer/event-bus-core.d.ts +6 -28
  72. package/dist/kernel/moleculer/process-service.d.ts +2 -5
  73. package/dist/kernel/moleculer/runner-native-allocator.d.ts +1 -6
  74. package/dist/kernel/transport/index.d.ts +1 -1
  75. package/dist/kernel/transport/local-child-registry.d.ts +8 -41
  76. package/dist/kernel/transport/uds-event-bridge.d.ts +2 -2
  77. package/dist/{retired-settings-keys-BTKZdPn6.js → retired-settings-keys-CRlTzxaS.js} +1 -1
  78. package/dist/{retired-settings-keys-DFur4hJF.mjs → retired-settings-keys-DKRjfz0U.mjs} +1 -1
  79. package/package.json +1 -1
  80. package/dist/kernel/heap-allocation-sample.d.ts +0 -107
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_child_cap_dispatch = require("./child-cap-dispatch-CRqYKHAb.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-wbIQJctP.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Ft as installManifestNativeDeps, H as createUdsLoggerWithControl, It as resolveAddonClass, St as validateProviderRegistrations, Tn as emitHeapDiagnosticReport, U as LocalChildClient, _t as getWorkerNativeCapProvider, bt as setWorkerNativeCapsChangeListener, en as RUNNER_RSS_BUDGET_ENV, f as installManifestSystemDeps, g as createUdsAddonContext, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, pn as startRunnerHeapWatch, u as startRunnerParentDeathWatchdog, vt as getWorkerNativeCapSnapshot } from "./child-cap-dispatch-C1x1kNJK.mjs";
1
+ import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-BcRHQBKW.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, U as addonPagesCapability, Xn as errMsg, Zn as BaseAddon } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, Qn as BaseAddon, U as addonPagesCapability, Zn as errMsg } from "../../dist-B7WRgEZY.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { G as addonWidgetsCapability, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, G as addonWidgetsCapability, Qn as BaseAddon, Zn as errMsg } from "../../dist-B7WRgEZY.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  //#region src/builtins/alerts/device-label.ts
8
8
  /**
9
9
  * Operator-facing device label for alert messages.
@@ -1,4 +1,4 @@
1
- import { K as alertsCapability, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, n as AlertSchema, sr as createEvent } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, K as alertsCapability, Qn as BaseAddon, Zn as errMsg, cr as createEvent, n as AlertSchema } from "../../dist-B7WRgEZY.mjs";
2
2
  //#region src/builtins/alerts/device-label.ts
3
3
  /**
4
4
  * Operator-facing device label for alert messages.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { S as FIRST_LEVEL_MACRO_CLASSES, Sr as EventCategory, Xn as errMsg, Y as bareAddonId, Zn as BaseAddon, cn as ptzAutotrackCapability, pr as isEvent } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, Qn as BaseAddon, S as FIRST_LEVEL_MACRO_CLASSES, Y as bareAddonId, Zn as errMsg, ln as ptzAutotrackCapability, mr as isEvent } from "../../dist-B7WRgEZY.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { J as backupCapability, Jt as mayWriteToLocation, Sr as EventCategory, Tn as storageOccupancyCapability, Zn as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, mr as nodePin, xr as toNodeId } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, En as storageOccupancyCapability, J as backupCapability, Qn as BaseAddon, Sr as toNodeId, Yt as mayWriteToLocation, g as DATABASE_SNAPSHOT_SUFFIX, hr as nodePin } from "../../dist-B7WRgEZY.mjs";
2
2
  import { randomBytes, randomUUID } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -1,4 +1,11 @@
1
1
  import { CalendarPreferences, SettingsStoreClient } from '@camstack/types';
2
+ /**
3
+ * @durable class=config owner=calendars
4
+ * write="`setCalendarPreference` upserts the caller's row"
5
+ * retention="none — a missing row reads as empty prefs (all visible,
6
+ * system colours). Losing the table silently resets every operator's
7
+ * colour/hide choices."
8
+ */
2
9
  export declare const CALENDARS_USER_PREFS_COLLECTION = "calendars:user-prefs";
3
10
  export declare function declareCalendarPrefsSchema(store: SettingsStoreClient): Promise<void>;
4
11
  export declare function loadCalendarPreferences(store: SettingsStoreClient, userId: string): Promise<CalendarPreferences>;
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/calendars/calendar-color.ts
@@ -38,7 +38,8 @@ function defaultCalendarColor(calendarId) {
38
38
  *
39
39
  * One row per `userId`. The calendars builtin owns declare + read/write;
40
40
  * the browser never talks to `settingsStore` directly.
41
- *
41
+ */
42
+ /**
42
43
  * @durable class=config owner=calendars
43
44
  * write="`setCalendarPreference` upserts the caller's row"
44
45
  * retention="none — a missing row reads as empty prefs (all visible,
@@ -1,4 +1,4 @@
1
- import { $ as calendarsCapability, Zn as BaseAddon, p as CalendarPreferencesSchema } from "../../dist-DVyXxn41.mjs";
1
+ import { $ as calendarsCapability, Qn as BaseAddon, p as CalendarPreferencesSchema } from "../../dist-B7WRgEZY.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/calendars/calendar-color.ts
@@ -33,7 +33,8 @@ function defaultCalendarColor(calendarId) {
33
33
  *
34
34
  * One row per `userId`. The calendars builtin owns declare + read/write;
35
35
  * the browser never talks to `settingsStore` directly.
36
- *
36
+ */
37
+ /**
37
38
  * @durable class=config owner=calendars
38
39
  * write="`setCalendarPreference` upserts the caller's row"
39
40
  * retention="none — a missing row reads as empty prefs (all visible,
@@ -1,14 +1,24 @@
1
1
  /** The grid's own motion answer, in the shape the `motion` cap publishes. */
2
2
  export interface GridMotionState {
3
3
  readonly detected: boolean;
4
- /** Ms epoch of the most recent rising edge on ANY source. Null if never. */
4
+ /** Ms epoch of the most recent rising edge on ANY source (never a heartbeat). Null if never. */
5
5
  readonly lastDetectedAt: number | null;
6
6
  }
7
7
  export declare class GridActivityMirror {
8
8
  private readonly motion;
9
9
  private readonly audio;
10
10
  private lastDetectedAt;
11
- /** One source's motion push. `detected: false` is as important as `true`. */
11
+ /**
12
+ * One source's motion push. `detected: false` is as important as `true`.
13
+ *
14
+ * `lastDetectedAt` moves only on a source's RISING edge — the source was not
15
+ * moving, or its last `true` had expired. A source's pushes include a
16
+ * heartbeat (the bridge's sustain ticks, every `true` a camera re-sends while
17
+ * a subject stays), and moving the stamp on each one made the grid's
18
+ * `lastDetectedAt` "the last tick of any cell" while every camera's is its
19
+ * last effective RISE (D696): the viewer's Motion order then ranked the grid
20
+ * above the very cells it shows (2026-10-06).
21
+ */
12
22
  noteMotion(sourceDeviceId: number, detected: boolean, atMs: number): void;
13
23
  /** One source's audio window. `dbfs` is the level, on the analyzer's scale. */
14
24
  noteAudio(sourceDeviceId: number, dbfs: number, atMs: number): void;
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -475,13 +475,25 @@ var GridActivityMirror = class {
475
475
  motion = /* @__PURE__ */ new Map();
476
476
  audio = /* @__PURE__ */ new Map();
477
477
  lastDetectedAt = null;
478
- /** One source's motion push. `detected: false` is as important as `true`. */
478
+ /**
479
+ * One source's motion push. `detected: false` is as important as `true`.
480
+ *
481
+ * `lastDetectedAt` moves only on a source's RISING edge — the source was not
482
+ * moving, or its last `true` had expired. A source's pushes include a
483
+ * heartbeat (the bridge's sustain ticks, every `true` a camera re-sends while
484
+ * a subject stays), and moving the stamp on each one made the grid's
485
+ * `lastDetectedAt` "the last tick of any cell" while every camera's is its
486
+ * last effective RISE (D696): the viewer's Motion order then ranked the grid
487
+ * above the very cells it shows (2026-10-06).
488
+ */
479
489
  noteMotion(sourceDeviceId, detected, atMs) {
490
+ const prev = this.motion.get(sourceDeviceId);
491
+ const wasMoving = prev !== void 0 && prev.detected && atMs - prev.atMs <= 15e3;
480
492
  this.motion.set(sourceDeviceId, {
481
493
  detected,
482
494
  atMs
483
495
  });
484
- if (detected) this.lastDetectedAt = Math.max(this.lastDetectedAt ?? 0, atMs);
496
+ if (detected && !wasMoving) this.lastDetectedAt = Math.max(this.lastDetectedAt ?? 0, atMs);
485
497
  }
486
498
  /** One source's audio window. `dbfs` is the level, on the analyzer's scale. */
487
499
  noteAudio(sourceDeviceId, dbfs, atMs) {
@@ -1,4 +1,4 @@
1
- import { A as MOTION_CLOSE_AFTER_MS, Dn as streamCatalogCapability, In as buildFfmpegArgs, Qt as motionCapability, Sn as snapshotCapability, Sr as EventCategory, Xn as errMsg, Yn as DeviceType, Yt as memoizePinnedFfmpeg, Zn as BaseAddon, b as DeclaredDevices, dr as hydrateSchema, et as cameraGridLayoutCapability, i as BaseDevice, pt as declarationOwnerNodeId, qn as DeviceFeature, sr as createEvent, y as DERIVED_CAMERA_SILENCED_CAP_NAMES } from "../../dist-DVyXxn41.mjs";
1
+ import { $t as motionCapability, A as MOTION_CLOSE_AFTER_MS, Cn as snapshotCapability, Cr as EventCategory, Jn as DeviceFeature, Ln as buildFfmpegArgs, On as streamCatalogCapability, Qn as BaseAddon, Xn as DeviceType, Xt as memoizePinnedFfmpeg, Zn as errMsg, b as DeclaredDevices, cr as createEvent, et as cameraGridLayoutCapability, fr as hydrateSchema, i as BaseDevice, pt as declarationOwnerNodeId, y as DERIVED_CAMERA_SILENCED_CAP_NAMES } from "../../dist-B7WRgEZY.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -470,13 +470,25 @@ var GridActivityMirror = class {
470
470
  motion = /* @__PURE__ */ new Map();
471
471
  audio = /* @__PURE__ */ new Map();
472
472
  lastDetectedAt = null;
473
- /** One source's motion push. `detected: false` is as important as `true`. */
473
+ /**
474
+ * One source's motion push. `detected: false` is as important as `true`.
475
+ *
476
+ * `lastDetectedAt` moves only on a source's RISING edge — the source was not
477
+ * moving, or its last `true` had expired. A source's pushes include a
478
+ * heartbeat (the bridge's sustain ticks, every `true` a camera re-sends while
479
+ * a subject stays), and moving the stamp on each one made the grid's
480
+ * `lastDetectedAt` "the last tick of any cell" while every camera's is its
481
+ * last effective RISE (D696): the viewer's Motion order then ranked the grid
482
+ * above the very cells it shows (2026-10-06).
483
+ */
474
484
  noteMotion(sourceDeviceId, detected, atMs) {
485
+ const prev = this.motion.get(sourceDeviceId);
486
+ const wasMoving = prev !== void 0 && prev.detected && atMs - prev.atMs <= 15e3;
475
487
  this.motion.set(sourceDeviceId, {
476
488
  detected,
477
489
  atMs
478
490
  });
479
- if (detected) this.lastDetectedAt = Math.max(this.lastDetectedAt ?? 0, atMs);
491
+ if (detected && !wasMoving) this.lastDetectedAt = Math.max(this.lastDetectedAt ?? 0, atMs);
480
492
  }
481
493
  /** One source's audio window. `dbfs` is the level, on the analyzer's scale. */
482
494
  noteAudio(sourceDeviceId, dbfs, atMs) {
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
7
- const require_composition_sources = require("../../composition-sources-0nuWOdNd.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
+ const require_composition_sources = require("../../composition-sources-CeO0K2cl.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1307,16 +1307,56 @@ function ownFieldReading(records, key) {
1307
1307
  * to a synchronous subscriber first.
1308
1308
  * - Derived fields are evaluated before accumulators, and every field reading
1309
1309
  * an own field that changed is re-evaluated in the same pass.
1310
+ * - An edge-latched (`rose`) field holds its last edge through a source
1311
+ * outage: the field goes stale, its value does not change (D713).
1310
1312
  */
1311
1313
  /**
1312
- * Whether a `rose` call of this field has ever committed a level. Only such a
1313
- * field can FLAP: a source that never answered (late at boot, or an
1314
- * expression that never succeeded) has no level to protect, so its first
1315
- * answered reading is a first observation, not a recovery, and must count.
1314
+ * Whether the field's last outcome said a SOURCE did not answer — unavailable
1315
+ * for that reason, or held over it. An expression that failed on answered
1316
+ * values is not an outage: its rose memory was never committed, so the next
1317
+ * success compares against the level from before (D716).
1316
1318
  */
1317
- function hasObservedRoseLevel(memory) {
1318
- for (const call of memory.calls.values()) if (call.kind === "rose" && call.priorLevel !== void 0) return true;
1319
- return false;
1319
+ function wasDown(outcome) {
1320
+ if (outcome === null) return false;
1321
+ if (outcome.state === "unavailable") return outcome.expressionFailed !== true;
1322
+ return outcome.held === true;
1323
+ }
1324
+ function isExpressionValue(value) {
1325
+ return value === null || typeof value === "number" || typeof value === "string" || typeof value === "boolean";
1326
+ }
1327
+ /** Whether the field's output is LATCHED by `rose`: it is the last edge, not a reading of now. */
1328
+ function isEdgeLatch(record) {
1329
+ const source = record.plan.source;
1330
+ return source.kind === "expression" && require_dist.expressionContainsBuiltinCall(source.expr, "rose");
1331
+ }
1332
+ /**
1333
+ * D713: an edge-latched field keeps its last known value when a source stops
1334
+ * answering. `rose` already returns its current output whenever no edge
1335
+ * happened, so its value is the last edge — a doorbell's `lastPressedAt` is
1336
+ * history, not a reading of now — and a source outage marks the FIELD stale
1337
+ * and leaves the value alone (the `count` accumulator already did, D670). A
1338
+ * provider redeploy used to write `null` over the restored stamp. Only for
1339
+ * the policies that would otherwise WRITE a stand-in (`null`, `'unknown'`): a
1340
+ * `release` field still goes back to its native provider and an `offline` one
1341
+ * still takes its device offline. A GONE source (fatal) is not held — the
1342
+ * block must fail. An expression that FAILED on answered values is not an
1343
+ * outage and is not held. Nothing known (no seed, nothing written) stays
1344
+ * unavailable.
1345
+ * A measurement (`battery.percentage = level`) is NOT held: D393.
1346
+ */
1347
+ function holdLatchedValue(record, outcome) {
1348
+ if (outcome.state !== "unavailable" || outcome.fatal || outcome.expressionFailed) return outcome;
1349
+ if (record.plan.unavailable !== "null" && record.plan.unavailable !== "unknown") return outcome;
1350
+ if (!isEdgeLatch(record)) return outcome;
1351
+ const last = currentOutput(record);
1352
+ if (last === void 0 || !isExpressionValue(last)) return outcome;
1353
+ return {
1354
+ state: "stale",
1355
+ value: last,
1356
+ reason: `${outcome.reason}; holding the last edge`,
1357
+ deadline: null,
1358
+ held: true
1359
+ };
1320
1360
  }
1321
1361
  function strictFiniteAdvance(previous, next) {
1322
1362
  return typeof next === "number" && Number.isFinite(next) && (previous === null || next > previous);
@@ -1365,8 +1405,8 @@ function evaluateFields(host, keys, now) {
1365
1405
  const record = next.get(key);
1366
1406
  if (record === void 0) continue;
1367
1407
  const candidateMemory = require_dist.cloneStatefulExpressionMemory(record.expressionMemory);
1368
- if (record.outcome?.state === "unavailable" && hasObservedRoseLevel(record.expressionMemory)) require_dist.disarmRoseMemory(candidateMemory);
1369
- const outcome = require_dist.evaluateCompositionField({
1408
+ if (wasDown(record.outcome)) require_dist.disarmRoseMemory(candidateMemory);
1409
+ const evaluatedOutcome = require_dist.evaluateCompositionField({
1370
1410
  source: record.plan.source,
1371
1411
  read,
1372
1412
  now,
@@ -1377,7 +1417,8 @@ function evaluateFields(host, keys, now) {
1377
1417
  callPathPrefix: fieldKey(record.plan)
1378
1418
  }
1379
1419
  });
1380
- const expressionSucceeded = outcome.state !== "unavailable";
1420
+ const expressionSucceeded = evaluatedOutcome.state !== "unavailable";
1421
+ const outcome = holdLatchedValue(record, evaluatedOutcome);
1381
1422
  if (expressionSucceeded) candidateMemory.disarmRoseNext = false;
1382
1423
  let evaluated = {
1383
1424
  ...record,
@@ -1,5 +1,5 @@
1
- import { Bn as compositionFeatureEnabled, Fn as COMPOSER_ADDON_ID, Gn as disarmRoseMemory, Hn as compositionSliceKey, Kn as toExpressionValue, Ln as cloneStatefulExpressionMemory, Rn as composedDeviceRef, Sr as EventCategory, Tt as evaluateCompositionField, Un as compositionSourceKey, Vn as compositionItemFieldPath, Wn as createStatefulExpressionMemory, Xn as errMsg, Yn as DeviceType, Z as buildCapabilityLookup, Zn as BaseAddon, an as planComposition, b as DeclaredDevices, i as BaseDevice, l as COMPOSED_ITEM_FIXED_FIELDS, nt as composerCapability, rt as compositionFieldKey, sr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, zn as composedDeviceStableId } from "../../dist-DVyXxn41.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-DzkEFd8q.mjs";
1
+ import { Bn as composedDeviceStableId, Cr as EventCategory, Gn as createStatefulExpressionMemory, Hn as compositionItemFieldPath, In as COMPOSER_ADDON_ID, Kn as disarmRoseMemory, Ot as expressionContainsBuiltinCall, Qn as BaseAddon, Rn as cloneStatefulExpressionMemory, Tt as evaluateCompositionField, Un as compositionSliceKey, Vn as compositionFeatureEnabled, Wn as compositionSourceKey, Xn as DeviceType, Z as buildCapabilityLookup, Zn as errMsg, b as DeclaredDevices, cr as createEvent, i as BaseDevice, l as COMPOSED_ITEM_FIXED_FIELDS, nt as composerCapability, on as planComposition, qn as toExpressionValue, rt as compositionFieldKey, t as ALL_CAPABILITY_DEFINITIONS, zn as composedDeviceRef } from "../../dist-B7WRgEZY.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-BBfqepyT.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1302,16 +1302,56 @@ function ownFieldReading(records, key) {
1302
1302
  * to a synchronous subscriber first.
1303
1303
  * - Derived fields are evaluated before accumulators, and every field reading
1304
1304
  * an own field that changed is re-evaluated in the same pass.
1305
+ * - An edge-latched (`rose`) field holds its last edge through a source
1306
+ * outage: the field goes stale, its value does not change (D713).
1305
1307
  */
1306
1308
  /**
1307
- * Whether a `rose` call of this field has ever committed a level. Only such a
1308
- * field can FLAP: a source that never answered (late at boot, or an
1309
- * expression that never succeeded) has no level to protect, so its first
1310
- * answered reading is a first observation, not a recovery, and must count.
1309
+ * Whether the field's last outcome said a SOURCE did not answer — unavailable
1310
+ * for that reason, or held over it. An expression that failed on answered
1311
+ * values is not an outage: its rose memory was never committed, so the next
1312
+ * success compares against the level from before (D716).
1311
1313
  */
1312
- function hasObservedRoseLevel(memory) {
1313
- for (const call of memory.calls.values()) if (call.kind === "rose" && call.priorLevel !== void 0) return true;
1314
- return false;
1314
+ function wasDown(outcome) {
1315
+ if (outcome === null) return false;
1316
+ if (outcome.state === "unavailable") return outcome.expressionFailed !== true;
1317
+ return outcome.held === true;
1318
+ }
1319
+ function isExpressionValue(value) {
1320
+ return value === null || typeof value === "number" || typeof value === "string" || typeof value === "boolean";
1321
+ }
1322
+ /** Whether the field's output is LATCHED by `rose`: it is the last edge, not a reading of now. */
1323
+ function isEdgeLatch(record) {
1324
+ const source = record.plan.source;
1325
+ return source.kind === "expression" && expressionContainsBuiltinCall(source.expr, "rose");
1326
+ }
1327
+ /**
1328
+ * D713: an edge-latched field keeps its last known value when a source stops
1329
+ * answering. `rose` already returns its current output whenever no edge
1330
+ * happened, so its value is the last edge — a doorbell's `lastPressedAt` is
1331
+ * history, not a reading of now — and a source outage marks the FIELD stale
1332
+ * and leaves the value alone (the `count` accumulator already did, D670). A
1333
+ * provider redeploy used to write `null` over the restored stamp. Only for
1334
+ * the policies that would otherwise WRITE a stand-in (`null`, `'unknown'`): a
1335
+ * `release` field still goes back to its native provider and an `offline` one
1336
+ * still takes its device offline. A GONE source (fatal) is not held — the
1337
+ * block must fail. An expression that FAILED on answered values is not an
1338
+ * outage and is not held. Nothing known (no seed, nothing written) stays
1339
+ * unavailable.
1340
+ * A measurement (`battery.percentage = level`) is NOT held: D393.
1341
+ */
1342
+ function holdLatchedValue(record, outcome) {
1343
+ if (outcome.state !== "unavailable" || outcome.fatal || outcome.expressionFailed) return outcome;
1344
+ if (record.plan.unavailable !== "null" && record.plan.unavailable !== "unknown") return outcome;
1345
+ if (!isEdgeLatch(record)) return outcome;
1346
+ const last = currentOutput(record);
1347
+ if (last === void 0 || !isExpressionValue(last)) return outcome;
1348
+ return {
1349
+ state: "stale",
1350
+ value: last,
1351
+ reason: `${outcome.reason}; holding the last edge`,
1352
+ deadline: null,
1353
+ held: true
1354
+ };
1315
1355
  }
1316
1356
  function strictFiniteAdvance(previous, next) {
1317
1357
  return typeof next === "number" && Number.isFinite(next) && (previous === null || next > previous);
@@ -1360,8 +1400,8 @@ function evaluateFields(host, keys, now) {
1360
1400
  const record = next.get(key);
1361
1401
  if (record === void 0) continue;
1362
1402
  const candidateMemory = cloneStatefulExpressionMemory(record.expressionMemory);
1363
- if (record.outcome?.state === "unavailable" && hasObservedRoseLevel(record.expressionMemory)) disarmRoseMemory(candidateMemory);
1364
- const outcome = evaluateCompositionField({
1403
+ if (wasDown(record.outcome)) disarmRoseMemory(candidateMemory);
1404
+ const evaluatedOutcome = evaluateCompositionField({
1365
1405
  source: record.plan.source,
1366
1406
  read,
1367
1407
  now,
@@ -1372,7 +1412,8 @@ function evaluateFields(host, keys, now) {
1372
1412
  callPathPrefix: fieldKey(record.plan)
1373
1413
  }
1374
1414
  });
1375
- const expressionSucceeded = outcome.state !== "unavailable";
1415
+ const expressionSucceeded = evaluatedOutcome.state !== "unavailable";
1416
+ const outcome = holdLatchedValue(record, evaluatedOutcome);
1376
1417
  if (expressionSucceeded) candidateMemory.disarmRoseNext = false;
1377
1418
  let evaluated = {
1378
1419
  ...record,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { Wt as logDestinationCapability, Zn as BaseAddon } from "../../dist-DVyXxn41.mjs";
1
+ import { Gt as logDestinationCapability, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,4 +1,9 @@
1
1
  import { SettingsStoreClient } from '@camstack/types';
2
+ /**
3
+ * @durable class=config owner=core-blocks
4
+ * write="`setValues` / `mergeValues` persist the operator's prefs for one block"
5
+ * retention="`delete` when the block is deleted. Nothing ages out."
6
+ */
2
7
  export declare const CORE_BLOCK_SETTINGS_COLLECTION = "core-blocks:settings";
3
8
  export declare const CORE_BLOCK_SETTINGS_COLUMNS: readonly [{
4
9
  readonly name: "id";
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DePB7uwU.js");
4
- const require_composition_sources = require("../../composition-sources-0nuWOdNd.js");
3
+ const require_dist = require("../../dist-CFVOy8VT.js");
4
+ const require_composition_sources = require("../../composition-sources-CeO0K2cl.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
@@ -491,6 +491,11 @@ var BlockSupervisor = class {
491
491
  };
492
492
  //#endregion
493
493
  //#region src/builtins/core-blocks/block-settings-store.ts
494
+ /**
495
+ * @durable class=config owner=core-blocks
496
+ * write="`setValues` / `mergeValues` persist the operator's prefs for one block"
497
+ * retention="`delete` when the block is deleted. Nothing ages out."
498
+ */
494
499
  var CORE_BLOCK_SETTINGS_COLLECTION = "core-blocks:settings";
495
500
  var CORE_BLOCK_SETTINGS_COLUMNS = [{
496
501
  name: "id",
@@ -1,5 +1,5 @@
1
- import { $t as normalizeCoreBlockWrite, An as validateComposition, Rn as composedDeviceRef, Un as compositionSourceKey, Xn as errMsg, Z as buildCapabilityLookup, Zn as BaseAddon, _t as describeComposableCaps, an as planComposition, at as coreBlockAddonId, b as DeclaredDevices, ct as coreBlockSourceKind, d as CORE_BLOCKS_ADDON_ID, dr as hydrateSchema, f as CORE_BLOCK_ADDON_PREFIX, fn as resolveCoreBlockEntry, it as compositionSourceRefs, lt as coreBlocksCapability, m as CoreBlockSchema, ot as coreBlockComposition, pn as resolveCoreBlockFiles, st as coreBlockIdFromAddonId, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, un as replacedFieldKeys } from "../../dist-DVyXxn41.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-DzkEFd8q.mjs";
1
+ import { Qn as BaseAddon, Wn as compositionSourceKey, Z as buildCapabilityLookup, Zn as errMsg, _t as describeComposableCaps, at as coreBlockAddonId, b as DeclaredDevices, ct as coreBlockSourceKind, d as CORE_BLOCKS_ADDON_ID, dn as replacedFieldKeys, en as normalizeCoreBlockWrite, f as CORE_BLOCK_ADDON_PREFIX, fr as hydrateSchema, it as compositionSourceRefs, jn as validateComposition, lt as coreBlocksCapability, m as CoreBlockSchema, mn as resolveCoreBlockFiles, on as planComposition, ot as coreBlockComposition, pn as resolveCoreBlockEntry, st as coreBlockIdFromAddonId, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, zn as composedDeviceRef } from "../../dist-B7WRgEZY.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-BBfqepyT.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { customizationBlockName } from "@camstack/types/node";
@@ -486,6 +486,11 @@ var BlockSupervisor = class {
486
486
  };
487
487
  //#endregion
488
488
  //#region src/builtins/core-blocks/block-settings-store.ts
489
+ /**
490
+ * @durable class=config owner=core-blocks
491
+ * write="`setValues` / `mergeValues` persist the operator's prefs for one block"
492
+ * retention="`delete` when the block is deleted. Nothing ages out."
493
+ */
489
494
  var CORE_BLOCK_SETTINGS_COLLECTION = "core-blocks:settings";
490
495
  var CORE_BLOCK_SETTINGS_COLUMNS = [{
491
496
  name: "id",
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-BTKZdPn6.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-CRlTzxaS.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,5 +1,5 @@
1
- import { C as FieldClaimModeSchema, Ct as enumerateItemArrayFields, D as LocationIconIdSchema, Dt as expandContainer, I as STREAM_PROFILE_META, Jn as DeviceRole, Q as buildStreamParamsConfigSchema, Sr as EventCategory, Ut as locationIconKey, Xn as errMsg, Yn as DeviceType, Zn as BaseAddon, br as sleep$1, bt as deviceStateCapability, c as CAP_NAMES_WITH_STATUS, en as normalizeUnit, fr as isDeviceConfigCap, gn as runtimeStatePolicyFor, ht as defineExtensionSlotProvider, jt as formatMinutes, k as MINUTES_PER_DAY, o as CAMERA_SWITCH_ORDER, qn as DeviceFeature, rn as parseStreamParamsFormPatch, rr as WELL_KNOWN_TAB_MAP, t as ALL_CAPABILITY_DEFINITIONS, ut as createDeviceExtensionProvider, v as DAY_NAMES, vt as deviceExtensionCapability, w as FieldClaimSchema, wt as enumerateSchemaFields, x as DeviceStatusSchema, xn as siteZoneKey, xt as deviceStatusCapability, yt as deviceManagerCapability, zt as legacyAutoLinkIds } from "../../dist-DVyXxn41.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DFur4hJF.mjs";
1
+ import { Bt as legacyAutoLinkIds, C as FieldClaimModeSchema, Cr as EventCategory, Ct as enumerateItemArrayFields, D as LocationIconIdSchema, Dt as expandContainer, I as STREAM_PROFILE_META, Jn as DeviceFeature, Mt as formatMinutes, Q as buildStreamParamsConfigSchema, Qn as BaseAddon, Sn as siteZoneKey, Wt as locationIconKey, Xn as DeviceType, Yn as DeviceRole, Zn as errMsg, _n as runtimeStatePolicyFor, bt as deviceStateCapability, c as CAP_NAMES_WITH_STATUS, ht as defineExtensionSlotProvider, in as parseStreamParamsFormPatch, ir as WELL_KNOWN_TAB_MAP, k as MINUTES_PER_DAY, o as CAMERA_SWITCH_ORDER, pr as isDeviceConfigCap, t as ALL_CAPABILITY_DEFINITIONS, tn as normalizeUnit, ut as createDeviceExtensionProvider, v as DAY_NAMES, vt as deviceExtensionCapability, w as FieldClaimSchema, wt as enumerateSchemaFields, x as DeviceStatusSchema, xr as sleep$1, xt as deviceStatusCapability, yt as deviceManagerCapability } from "../../dist-B7WRgEZY.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DKRjfz0U.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Wt as logDestinationCapability, Zn as BaseAddon } from "../../dist-DVyXxn41.mjs";
1
+ import { Gt as logDestinationCapability, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DePB7uwU.js");
3
+ const require_dist = require("../../dist-CFVOy8VT.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { P as RecordingStatusSchema, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, j as RECORDING_SOURCE_CAMSTACK_ADDON, sr as createEvent } from "../../dist-DVyXxn41.mjs";
1
+ import { Cr as EventCategory, P as RecordingStatusSchema, Qn as BaseAddon, Zn as errMsg, cr as createEvent, j as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-B7WRgEZY.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DePB7uwU.js");
6
+ const require_dist = require("../../dist-CFVOy8VT.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { H as UserRecordSchema, L as ScopedTokenSchema, Zn as BaseAddon, kn as userManagementCapability, q as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-DVyXxn41.mjs";
2
+ import { An as userManagementCapability, H as UserRecordSchema, L as ScopedTokenSchema, Qn as BaseAddon, q as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-B7WRgEZY.mjs";
3
3
  import * as crypto$2 from "node:crypto";
4
4
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
5
5
  import nodeCrypto from "crypto";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DePB7uwU.js");
3
+ const require_dist = require("../../dist-CFVOy8VT.js");
4
4
  const require_tls = require("../../tls-ue_Xefmv.js");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_path = require("node:path");