@camstack/system 1.2.258 → 1.2.260
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/camera-grid/acquire-retry.d.ts +30 -0
- package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +16 -4
- package/dist/builtins/camera-grid/index.js +38 -2
- package/dist/builtins/camera-grid/index.mjs +38 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-BJj6Akye.js → dist-6hiXbrNY.js} +2 -1
- package/dist/{dist-Ch93tyHB.mjs → dist-CQ7ItBIG.mjs} +2 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-BRCn6-mt.js → retired-settings-keys-AmmGrCp1.js} +1 -1
- package/dist/{retired-settings-keys-uCaSKuwd.mjs → retired-settings-keys-CCXmaFTK.mjs} +1 -1
- package/package.json +1 -1
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { Nn as EventCategory, P as addonPagesCapability, in as errMsg, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Nn as EventCategory, P as addonPagesCapability, in as errMsg, on as BaseAddon } from "../../dist-CQ7ItBIG.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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { I as addonWidgetsCapability, Nn as EventCategory, in as errMsg, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { I as addonWidgetsCapability, Nn as EventCategory, in as errMsg, on as BaseAddon } from "../../dist-CQ7ItBIG.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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
//#region src/builtins/alerts/prune-policy.ts
|
|
8
8
|
/**
|
|
9
9
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as alertsCapability, Nn as EventCategory, in as errMsg, on as BaseAddon, r as AlertSchema, yn as createEvent } from "../../dist-
|
|
1
|
+
import { L as alertsCapability, Nn as EventCategory, in as errMsg, on as BaseAddon, r as AlertSchema, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
//#region src/builtins/alerts/prune-policy.ts
|
|
3
3
|
/**
|
|
4
4
|
* Ids older than `cutoffMs`, oldest first.
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { B as bareAddonId, Ft as ptzAutotrackCapability, Nn as EventCategory, Tn as isEvent, g as FIRST_LEVEL_MACRO_CLASSES, in as errMsg, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { B as bareAddonId, Ft as ptzAutotrackCapability, Nn as EventCategory, Tn as isEvent, g as FIRST_LEVEL_MACRO_CLASSES, in as errMsg, on as BaseAddon } from "../../dist-CQ7ItBIG.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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { Dt as mayWriteToLocation, Nn as EventCategory, Xt as storageOccupancyCapability, on as BaseAddon, z as backupCapability } from "../../dist-
|
|
1
|
+
import { Dt as mayWriteToLocation, Nn as EventCategory, Xt as storageOccupancyCapability, on as BaseAddon, z as backupCapability } from "../../dist-CQ7ItBIG.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";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asking again for a source that has not republished yet.
|
|
3
|
+
*
|
|
4
|
+
* A camera provider re-announces its streams a moment after the hub comes up,
|
|
5
|
+
* and a grid opened inside that window used to fail outright:
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* camera grid: could not acquire every source — releasing the ones already taken
|
|
9
|
+
* {acquired=0 error="getStreamWithCodec: profile \"low\" source \"native:sub\"
|
|
10
|
+
* not published for device 592"}
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Observed twice on the hub at 12:02 on 2026-09-18 and gone by the next attempt.
|
|
14
|
+
* It is the same shape as a WebRTC broker being rebuilt: the answer changes with
|
|
15
|
+
* TIME, and the consumer was deciding on the first ask.
|
|
16
|
+
*
|
|
17
|
+
* The retry is BOUNDED and it changes no verdict — a camera that really has no
|
|
18
|
+
* such profile still fails, with the provider's own error, after a wait that is
|
|
19
|
+
* reported. What it stops is a grid refusing to open for the first few seconds
|
|
20
|
+
* of every hub's life.
|
|
21
|
+
*/
|
|
22
|
+
export interface AcquireRetryDeps {
|
|
23
|
+
/** Wall-clock ceiling for the whole acquire, across every attempt. */
|
|
24
|
+
readonly budgetMs: number;
|
|
25
|
+
readonly now: () => number;
|
|
26
|
+
readonly sleep: () => Promise<void>;
|
|
27
|
+
/** Called before each retry with the ms spent so far — for the log line. */
|
|
28
|
+
readonly onRetry?: (waitedMs: number) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare function acquireWithRetry<T>(attempt: () => Promise<T>, deps: AcquireRetryDeps): Promise<T>;
|
|
@@ -4,15 +4,27 @@
|
|
|
4
4
|
* ## What "sentryMuted" turned out to be
|
|
5
5
|
*
|
|
6
6
|
* The operator asked for a stream that *"non esiste ancora"*. It half did.
|
|
7
|
-
* `SENTRY_PATH_SUFFIX` has existed since the sentry shipped
|
|
8
|
-
* `parseRestreamPath` already answers `muted: true` for it — the sentry path IS
|
|
9
|
-
* the muted one, by construction, because an `m=audio` nobody fills stalls a
|
|
10
|
-
* consumer for the hours a camera may sit asleep. What did not exist is the
|
|
7
|
+
* `SENTRY_PATH_SUFFIX` has existed since the sentry shipped. What did not exist is the
|
|
11
8
|
* WRITER that turns an acquired restream url into that dial, and the broker
|
|
12
9
|
* telling a consumer whether one is on offer. Both are now in
|
|
13
10
|
* `addon-pipeline/src/stream-broker`: `withSentryIntent`, and `sentryUrl` on
|
|
14
11
|
* the `getStreamWithCodec` result.
|
|
15
12
|
*
|
|
13
|
+
* ## It is NOT muted, and this comment used to say it was
|
|
14
|
+
*
|
|
15
|
+
* `parseRestreamPath` answered `muted: true` for `/sentry` when this was
|
|
16
|
+
* written, and D525 changed it to `false` the next day: the mute belonged to
|
|
17
|
+
* the PLACEHOLDER, not to the path. The track is announced and FILLED — silence
|
|
18
|
+
* while the still picture is served, the camera's own RTP the instant media
|
|
19
|
+
* flows — because a decision taken from a string is taken once and RTSP cannot
|
|
20
|
+
* renegotiate, so `true` there meant a sentry consumer could never receive
|
|
21
|
+
* audio, awake or asleep.
|
|
22
|
+
*
|
|
23
|
+
* A grid takes no audio from any source (`audio: 'none'`), so nothing about the
|
|
24
|
+
* composite changes either way. The correction is here because the old sentence
|
|
25
|
+
* described the design that was REPLACED, which is the one kind of comment that
|
|
26
|
+
* reads as verification.
|
|
27
|
+
*
|
|
16
28
|
* ## The rule, and the fallback it refuses
|
|
17
29
|
*
|
|
18
30
|
* An offered sentry is TAKEN. There is no sleep check and no fallback, and that
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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");
|
|
@@ -209,6 +209,19 @@ var GridCameraDevice = class extends require_dist.BaseDevice {
|
|
|
209
209
|
}
|
|
210
210
|
};
|
|
211
211
|
//#endregion
|
|
212
|
+
//#region src/builtins/camera-grid/acquire-retry.ts
|
|
213
|
+
async function acquireWithRetry(attempt, deps) {
|
|
214
|
+
const startedAt = deps.now();
|
|
215
|
+
for (;;) try {
|
|
216
|
+
return await attempt();
|
|
217
|
+
} catch (error) {
|
|
218
|
+
const waited = deps.now() - startedAt;
|
|
219
|
+
if (waited >= deps.budgetMs) throw error;
|
|
220
|
+
deps.onRetry?.(waited);
|
|
221
|
+
await deps.sleep();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//#endregion
|
|
212
225
|
//#region src/builtins/camera-grid/grid-instances.ts
|
|
213
226
|
/**
|
|
214
227
|
* The operator-written grid rows.
|
|
@@ -1590,6 +1603,7 @@ function inputPlanFor(source) {
|
|
|
1590
1603
|
rtspTransport: "tcp",
|
|
1591
1604
|
fflags: ["+discardcorrupt"],
|
|
1592
1605
|
lowDelay: true,
|
|
1606
|
+
useWallclockTimestamps: true,
|
|
1593
1607
|
analyzeDurationUs: ANALYZE_DURATION_US,
|
|
1594
1608
|
probeSizeBytes: PROBE_SIZE_BYTES
|
|
1595
1609
|
};
|
|
@@ -1700,6 +1714,13 @@ async function startGridChild(ctx, plan, sources, onEnded) {
|
|
|
1700
1714
|
//#region src/builtins/camera-grid/addon.ts
|
|
1701
1715
|
var INTEGRATION_NAME = "Camera Grids";
|
|
1702
1716
|
var RECONCILE_MS = 6e4;
|
|
1717
|
+
/**
|
|
1718
|
+
* How long a source acquire may keep asking while a provider is still coming up.
|
|
1719
|
+
* Long enough to cover the republish window after a hub restart, short enough
|
|
1720
|
+
* that a genuinely missing profile fails while the operator is still looking.
|
|
1721
|
+
*/
|
|
1722
|
+
var SOURCE_ACQUIRE_BUDGET_MS = 8e3;
|
|
1723
|
+
var SOURCE_ACQUIRE_PAUSE_MS = 700;
|
|
1703
1724
|
var DEFAULTS = {
|
|
1704
1725
|
cameraGrids: [],
|
|
1705
1726
|
cameraGridTombstones: []
|
|
@@ -2012,12 +2033,27 @@ var CameraGridAddon = class extends require_dist.BaseAddon {
|
|
|
2012
2033
|
deps: {
|
|
2013
2034
|
logger: this.ctx.logger,
|
|
2014
2035
|
acquireSource: async (sourceDeviceId) => {
|
|
2015
|
-
const dial = gridSourceDial(await this.ctx.api.streamBroker.getStreamWithCodec.mutate({
|
|
2036
|
+
const dial = gridSourceDial(await acquireWithRetry(() => this.ctx.api.streamBroker.getStreamWithCodec.mutate({
|
|
2016
2037
|
deviceId: sourceDeviceId,
|
|
2017
2038
|
video: "copy",
|
|
2018
2039
|
audio: "none",
|
|
2019
2040
|
profile,
|
|
2020
2041
|
tag: `camera-grid:${String(deviceId)}:${profile}`
|
|
2042
|
+
}), {
|
|
2043
|
+
budgetMs: SOURCE_ACQUIRE_BUDGET_MS,
|
|
2044
|
+
now: () => Date.now(),
|
|
2045
|
+
sleep: () => new Promise((resolve) => setTimeout(resolve, SOURCE_ACQUIRE_PAUSE_MS)),
|
|
2046
|
+
onRetry: (waitedMs) => {
|
|
2047
|
+
this.ctx.logger.info("camera grid: a source has not republished yet — asking again", {
|
|
2048
|
+
tags: { deviceId },
|
|
2049
|
+
meta: {
|
|
2050
|
+
instanceId,
|
|
2051
|
+
profile,
|
|
2052
|
+
sourceDeviceId,
|
|
2053
|
+
waitedMs
|
|
2054
|
+
}
|
|
2055
|
+
});
|
|
2056
|
+
}
|
|
2021
2057
|
}));
|
|
2022
2058
|
this.ctx.logger.info("camera grid: source acquired", {
|
|
2023
2059
|
tags: { deviceId },
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Cn as hydrateSchema, Qt as streamCatalogCapability, U as cameraGridLayoutCapability, Y as declarationOwnerNodeId, a as BaseDevice, an as buildFfmpegArgs, fn as DeviceType, in as errMsg, m as DeclaredDevices, n as AUDIO_ANALYSIS_CAP_NAME, on as BaseAddon, p as DETECTION_PIPELINE_CAP_NAME, qt as snapshotCapability, un as DeviceFeature } from "../../dist-
|
|
1
|
+
import { Cn as hydrateSchema, Qt as streamCatalogCapability, U as cameraGridLayoutCapability, Y as declarationOwnerNodeId, a as BaseDevice, an as buildFfmpegArgs, fn as DeviceType, in as errMsg, m as DeclaredDevices, n as AUDIO_ANALYSIS_CAP_NAME, on as BaseAddon, p as DETECTION_PIPELINE_CAP_NAME, qt as snapshotCapability, un as DeviceFeature } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { FfmpegProcess } from "@camstack/types/node";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -204,6 +204,19 @@ var GridCameraDevice = class extends BaseDevice {
|
|
|
204
204
|
}
|
|
205
205
|
};
|
|
206
206
|
//#endregion
|
|
207
|
+
//#region src/builtins/camera-grid/acquire-retry.ts
|
|
208
|
+
async function acquireWithRetry(attempt, deps) {
|
|
209
|
+
const startedAt = deps.now();
|
|
210
|
+
for (;;) try {
|
|
211
|
+
return await attempt();
|
|
212
|
+
} catch (error) {
|
|
213
|
+
const waited = deps.now() - startedAt;
|
|
214
|
+
if (waited >= deps.budgetMs) throw error;
|
|
215
|
+
deps.onRetry?.(waited);
|
|
216
|
+
await deps.sleep();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//#endregion
|
|
207
220
|
//#region src/builtins/camera-grid/grid-instances.ts
|
|
208
221
|
/**
|
|
209
222
|
* The operator-written grid rows.
|
|
@@ -1585,6 +1598,7 @@ function inputPlanFor(source) {
|
|
|
1585
1598
|
rtspTransport: "tcp",
|
|
1586
1599
|
fflags: ["+discardcorrupt"],
|
|
1587
1600
|
lowDelay: true,
|
|
1601
|
+
useWallclockTimestamps: true,
|
|
1588
1602
|
analyzeDurationUs: ANALYZE_DURATION_US,
|
|
1589
1603
|
probeSizeBytes: PROBE_SIZE_BYTES
|
|
1590
1604
|
};
|
|
@@ -1695,6 +1709,13 @@ async function startGridChild(ctx, plan, sources, onEnded) {
|
|
|
1695
1709
|
//#region src/builtins/camera-grid/addon.ts
|
|
1696
1710
|
var INTEGRATION_NAME = "Camera Grids";
|
|
1697
1711
|
var RECONCILE_MS = 6e4;
|
|
1712
|
+
/**
|
|
1713
|
+
* How long a source acquire may keep asking while a provider is still coming up.
|
|
1714
|
+
* Long enough to cover the republish window after a hub restart, short enough
|
|
1715
|
+
* that a genuinely missing profile fails while the operator is still looking.
|
|
1716
|
+
*/
|
|
1717
|
+
var SOURCE_ACQUIRE_BUDGET_MS = 8e3;
|
|
1718
|
+
var SOURCE_ACQUIRE_PAUSE_MS = 700;
|
|
1698
1719
|
var DEFAULTS = {
|
|
1699
1720
|
cameraGrids: [],
|
|
1700
1721
|
cameraGridTombstones: []
|
|
@@ -2007,12 +2028,27 @@ var CameraGridAddon = class extends BaseAddon {
|
|
|
2007
2028
|
deps: {
|
|
2008
2029
|
logger: this.ctx.logger,
|
|
2009
2030
|
acquireSource: async (sourceDeviceId) => {
|
|
2010
|
-
const dial = gridSourceDial(await this.ctx.api.streamBroker.getStreamWithCodec.mutate({
|
|
2031
|
+
const dial = gridSourceDial(await acquireWithRetry(() => this.ctx.api.streamBroker.getStreamWithCodec.mutate({
|
|
2011
2032
|
deviceId: sourceDeviceId,
|
|
2012
2033
|
video: "copy",
|
|
2013
2034
|
audio: "none",
|
|
2014
2035
|
profile,
|
|
2015
2036
|
tag: `camera-grid:${String(deviceId)}:${profile}`
|
|
2037
|
+
}), {
|
|
2038
|
+
budgetMs: SOURCE_ACQUIRE_BUDGET_MS,
|
|
2039
|
+
now: () => Date.now(),
|
|
2040
|
+
sleep: () => new Promise((resolve) => setTimeout(resolve, SOURCE_ACQUIRE_PAUSE_MS)),
|
|
2041
|
+
onRetry: (waitedMs) => {
|
|
2042
|
+
this.ctx.logger.info("camera grid: a source has not republished yet — asking again", {
|
|
2043
|
+
tags: { deviceId },
|
|
2044
|
+
meta: {
|
|
2045
|
+
instanceId,
|
|
2046
|
+
profile,
|
|
2047
|
+
sourceDeviceId,
|
|
2048
|
+
waitedMs
|
|
2049
|
+
}
|
|
2050
|
+
});
|
|
2051
|
+
}
|
|
2016
2052
|
}));
|
|
2017
2053
|
this.ctx.logger.info("camera grid: source acquired", {
|
|
2018
2054
|
tags: { deviceId },
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.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,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-
|
|
3
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
4
4
|
let node_crypto = require("node:crypto");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as coreBlockAddonId, K as coreBlockIdFromAddonId, d as CoreBlockSchema, in as errMsg, l as CORE_BLOCKS_ADDON_ID, m as DeclaredDevices, on as BaseAddon, q as coreBlocksCapability, u as CORE_BLOCK_ADDON_PREFIX } from "../../dist-
|
|
1
|
+
import { G as coreBlockAddonId, K as coreBlockIdFromAddonId, d as CoreBlockSchema, in as errMsg, l as CORE_BLOCKS_ADDON_ID, m as DeclaredDevices, on as BaseAddon, q as coreBlocksCapability, u as CORE_BLOCK_ADDON_PREFIX } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -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-
|
|
7
|
-
const require_retired_settings_keys = require("../../retired-settings-keys-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-AmmGrCp1.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
10
10
|
//#region src/builtins/device-manager/adoption-job-engine.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as deviceStateCapability, At as normalizeUnit, D as STREAM_PROFILE_META, H as buildStreamParamsConfigSchema, Kt as siteZoneKey, Mn as sleep$1, Mt as parseStreamParamsFormPatch, Nn as EventCategory, Q as deviceManagerCapability, Rt as resolveContainerPrimaryChild, St as locationIconKey, Vt as runtimeStatePolicyFor, c as CAP_NAMES_WITH_STATUS, dn as DeviceRole, et as deviceStatusCapability, fn as DeviceType, h as DeviceStatusSchema, hn as WELL_KNOWN_TAB_MAP, in as errMsg, it as enumerateSchemaFields, on as BaseAddon, rt as enumerateItemArrayFields, s as CAMERA_SWITCH_ORDER, t as ALL_CAPABILITY_DEFINITIONS, un as DeviceFeature, wn as isDeviceConfigCap, y as LocationIconIdSchema } from "../../dist-
|
|
2
|
-
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-
|
|
1
|
+
import { $ as deviceStateCapability, At as normalizeUnit, D as STREAM_PROFILE_META, H as buildStreamParamsConfigSchema, Kt as siteZoneKey, Mn as sleep$1, Mt as parseStreamParamsFormPatch, Nn as EventCategory, Q as deviceManagerCapability, Rt as resolveContainerPrimaryChild, St as locationIconKey, Vt as runtimeStatePolicyFor, c as CAP_NAMES_WITH_STATUS, dn as DeviceRole, et as deviceStatusCapability, fn as DeviceType, h as DeviceStatusSchema, hn as WELL_KNOWN_TAB_MAP, in as errMsg, it as enumerateSchemaFields, on as BaseAddon, rt as enumerateItemArrayFields, s as CAMERA_SWITCH_ORDER, t as ALL_CAPABILITY_DEFINITIONS, un as DeviceFeature, wn as isDeviceConfigCap, y as LocationIconIdSchema } from "../../dist-CQ7ItBIG.mjs";
|
|
2
|
+
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CCXmaFTK.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { canonicalDeviceFingerprint } from "@camstack/types/node";
|
|
5
5
|
//#region src/builtins/device-manager/adoption-job-engine.ts
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
8
8
|
/**
|
|
9
9
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as bareAddonId, Nn as EventCategory, T as SOURCE_DEVICE_TYPES, at as evaluateSensorEdge, fn as DeviceType, gt as isSourceCap, ht as isSameAddonId, in as errMsg, on as BaseAddon, tt as doorbellCapability, w as SOURCE_CAPS, yn as createEvent } from "../../dist-
|
|
1
|
+
import { B as bareAddonId, Nn as EventCategory, T as SOURCE_DEVICE_TYPES, at as evaluateSensorEdge, fn as DeviceType, gt as isSourceCap, ht as isSameAddonId, in as errMsg, on as BaseAddon, tt as doorbellCapability, w as SOURCE_CAPS, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
//#region src/builtins/doorbell/trigger-engine.ts
|
|
3
3
|
/**
|
|
4
4
|
* Pure trigger logic for the virtual-doorbell builtin — edge detection over
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.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-
|
|
3
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { C as RecordingStatusSchema, Nn as EventCategory, in as errMsg, on as BaseAddon, yn as createEvent } from "../../dist-
|
|
1
|
+
import { C as RecordingStatusSchema, Nn as EventCategory, in as errMsg, on as BaseAddon, yn as createEvent } from "../../dist-CQ7ItBIG.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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.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 { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, en as userManagementCapability, i as ApiKeyRecordSchema, on as BaseAddon } from "../../dist-
|
|
2
|
+
import { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, en as userManagementCapability, i as ApiKeyRecordSchema, on as BaseAddon } from "../../dist-CQ7ItBIG.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-
|
|
3
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
4
4
|
const require_tls = require("../../tls-BFs4PzoW.js");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
6
6
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nn as EventCategory, on as BaseAddon, xt as localNetworkCapability } from "../../dist-
|
|
1
|
+
import { Nn as EventCategory, on as BaseAddon, xt as localNetworkCapability } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-2xbgg78V.mjs";
|
|
3
3
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
4
4
|
import { join } 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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
8
8
|
/**
|
|
9
9
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
3
3
|
/**
|
|
4
4
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as reducePoints, Lt as resolveBucketMs, Nn as EventCategory, Ot as metricsProviderCapability, in as errMsg, lt as foldSnapshotByFunction, on as BaseAddon, yn as createEvent } from "../../dist-
|
|
1
|
+
import { It as reducePoints, Lt as resolveBucketMs, Nn as EventCategory, Ot as metricsProviderCapability, in as errMsg, lt as foldSnapshotByFunction, on as BaseAddon, yn as createEvent } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { access, readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { constants, readFileSync } from "node:fs";
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
node_fs = require_chunk.__toESM(node_fs);
|
|
9
9
|
let node_child_process = require("node:child_process");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Nn as EventCategory, Nt as platformProbeCapability, Wt as scoreRuntimes, in as errMsg, nt as enumerateInferenceDevices, on as BaseAddon, xn as emitReadiness } from "../../dist-
|
|
2
|
+
import { Nn as EventCategory, Nt as platformProbeCapability, Wt as scoreRuntimes, in as errMsg, nt as enumerateInferenceDevices, on as BaseAddon, xn as emitReadiness } from "../../dist-CQ7ItBIG.mjs";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
5
5
|
import * as os from "node:os";
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
8
8
|
/**
|
|
9
9
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nn as EventCategory, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Nn as EventCategory, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
3
3
|
/**
|
|
4
4
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as streamQualityLabel, B as bareAddonId, En as nodePin, Nn as EventCategory, V as batteryCapability, Z as deriveBatteryPresence, fn as DeviceType, in as errMsg, o as BatteryStatusSchema, on as BaseAddon, qt as snapshotCapability, un as DeviceFeature } from "../../dist-
|
|
1
|
+
import { $t as streamQualityLabel, B as bareAddonId, En as nodePin, Nn as EventCategory, V as batteryCapability, Z as deriveBatteryPresence, fn as DeviceType, in as errMsg, o as BatteryStatusSchema, on as BaseAddon, qt as snapshotCapability, un as DeviceFeature } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Zt as storageProviderCapability, ct as filesystemBrowseCapability, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Zt as storageProviderCapability, ct as filesystemBrowseCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
Binary file
|
|
Binary file
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as StorageLocationModeSchema, Dn as parseJsonObject, Dt as mayWriteToLocation, Et as mayReadLocation, Gt as settingsStoreCapability, Jt as storageCapability, M as StorageMigrationJobSchema, Nn as EventCategory, W as collectSecretConfigKeys, Yt as storageMigrationCapability, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kt as modeMayWrite, on as BaseAddon, ot as evictionPolicyOfLocation, pt as isLocationEnabled, rn as withLocationMode, ut as gbToBytes, v as LegacyStorageLocationDefaultSchema, x as REDACTED_SECRET, yt as legacyModeOf, zt as resolveLocationMode } from "../../dist-
|
|
1
|
+
import { A as StorageLocationModeSchema, Dn as parseJsonObject, Dt as mayWriteToLocation, Et as mayReadLocation, Gt as settingsStoreCapability, Jt as storageCapability, M as StorageMigrationJobSchema, Nn as EventCategory, W as collectSecretConfigKeys, Yt as storageMigrationCapability, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kt as modeMayWrite, on as BaseAddon, ot as evictionPolicyOfLocation, pt as isLocationEnabled, rn as withLocationMode, ut as gbToBytes, v as LegacyStorageLocationDefaultSchema, x as REDACTED_SECRET, yt as legacyModeOf, zt as resolveLocationMode } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
8
8
|
/**
|
|
9
9
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Cn as hydrateSchema, in as errMsg, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Cn as hydrateSchema, in as errMsg, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
3
3
|
/**
|
|
4
4
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -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-
|
|
6
|
+
const require_dist = require("../../dist-6hiXbrNY.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-
|
|
1
|
+
import { Ct as logDestinationCapability, on as BaseAddon } from "../../dist-CQ7ItBIG.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import path from "node:path";
|
|
@@ -3404,7 +3404,7 @@ function sleep(ms) {
|
|
|
3404
3404
|
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
3405
3405
|
}
|
|
3406
3406
|
//#endregion
|
|
3407
|
-
//#region ../types/dist/canonical-hash-
|
|
3407
|
+
//#region ../types/dist/canonical-hash-DI7tT-zZ.mjs
|
|
3408
3408
|
var AUDIO_ENCODER_BY_CODEC = {
|
|
3409
3409
|
opus: "libopus",
|
|
3410
3410
|
aac: "aac",
|
|
@@ -3465,6 +3465,7 @@ function buildInputArgs(input, decodeHwAccel) {
|
|
|
3465
3465
|
if (input.analyzeDurationUs !== void 0) args.push("-analyzeduration", String(input.analyzeDurationUs));
|
|
3466
3466
|
if (input.probeSizeBytes !== void 0) args.push("-probesize", String(input.probeSizeBytes));
|
|
3467
3467
|
if (input.lowDelay === true) args.push("-flags", "low_delay");
|
|
3468
|
+
if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
|
|
3468
3469
|
if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
|
|
3469
3470
|
if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
|
|
3470
3471
|
args.push("-i", input.url);
|
|
@@ -3404,7 +3404,7 @@ function sleep(ms) {
|
|
|
3404
3404
|
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
3405
3405
|
}
|
|
3406
3406
|
//#endregion
|
|
3407
|
-
//#region ../types/dist/canonical-hash-
|
|
3407
|
+
//#region ../types/dist/canonical-hash-DI7tT-zZ.mjs
|
|
3408
3408
|
var AUDIO_ENCODER_BY_CODEC = {
|
|
3409
3409
|
opus: "libopus",
|
|
3410
3410
|
aac: "aac",
|
|
@@ -3465,6 +3465,7 @@ function buildInputArgs(input, decodeHwAccel) {
|
|
|
3465
3465
|
if (input.analyzeDurationUs !== void 0) args.push("-analyzeduration", String(input.analyzeDurationUs));
|
|
3466
3466
|
if (input.probeSizeBytes !== void 0) args.push("-probesize", String(input.probeSizeBytes));
|
|
3467
3467
|
if (input.lowDelay === true) args.push("-flags", "low_delay");
|
|
3468
|
+
if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
|
|
3468
3469
|
if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
|
|
3469
3470
|
if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
|
|
3470
3471
|
args.push("-i", input.url);
|
package/dist/index.js
CHANGED
|
@@ -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-
|
|
3
|
+
const require_dist = require("./dist-6hiXbrNY.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { An as resolveCapMount, Bt as resolveMethodAuth, Dn as parseJsonObject, F as addonSettingsCapability, Ht as scopesAllowAddon, Nn as EventCategory$1, On as parseJsonUnknown, Pt as procedureAuthKey, S as RUNTIME_DEFAULTS, Sn as expandCapMethods, Tt as looseSchema, Ut as scopesAllowDeviceCap, _ as LOG_LEVEL_RANK, _n as asNumber, _t as isVoidInput, b as METHOD_ACCESS_MAP, bn as emitDownForOwnedCaps, bt as lifecycleJobSchema, cn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, gn as asJsonObject$1, in as errMsg$1, jn as scopeKey, jt as objectInputDeclaresAddonId, kn as readinessKey, ln as DEVICE_STATUS_METHOD, mn as ReadinessTimeoutError, mt as isObjectInput, pn as ReadinessRegistry, sn as DATAPLANE_SECRET_HEADER$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, vn as asString$1, vt as kebabToCamel, wt as logLevelAtMost, yn as createEvent } from "./dist-
|
|
2
|
+
import { An as resolveCapMount, Bt as resolveMethodAuth, Dn as parseJsonObject, F as addonSettingsCapability, Ht as scopesAllowAddon, Nn as EventCategory$1, On as parseJsonUnknown, Pt as procedureAuthKey, S as RUNTIME_DEFAULTS, Sn as expandCapMethods, Tt as looseSchema, Ut as scopesAllowDeviceCap, _ as LOG_LEVEL_RANK, _n as asNumber, _t as isVoidInput, b as METHOD_ACCESS_MAP, bn as emitDownForOwnedCaps, bt as lifecycleJobSchema, cn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, gn as asJsonObject$1, in as errMsg$1, jn as scopeKey, jt as objectInputDeclaresAddonId, kn as readinessKey, ln as DEVICE_STATUS_METHOD, mn as ReadinessTimeoutError, mt as isObjectInput, pn as ReadinessRegistry, sn as DATAPLANE_SECRET_HEADER$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, vn as asString$1, vt as kebabToCamel, wt as logLevelAtMost, yn as createEvent } from "./dist-CQ7ItBIG.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|