@camstack/system 1.2.279 → 1.2.281
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/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- 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-C6z4MoX5.js → dist-BEICnNLn.js} +976 -9
- package/dist/{dist-BLHDOV8o.mjs → dist-OKbs4A_r.mjs} +976 -9
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-DsMEZO3v.mjs → retired-settings-keys-BSensQtj.mjs} +1 -1
- package/dist/{retired-settings-keys-_qA7nWba.js → retired-settings-keys-eH9h-hTR.js} +1 -1
- package/package.json +1 -1
|
@@ -691,7 +691,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
691
691
|
return EventCategory;
|
|
692
692
|
}({});
|
|
693
693
|
//#endregion
|
|
694
|
-
//#region ../types/dist/sleep-
|
|
694
|
+
//#region ../types/dist/sleep-BVhJDJka.mjs
|
|
695
695
|
/**
|
|
696
696
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
697
697
|
* window to float samples (D455).
|
|
@@ -2853,6 +2853,18 @@ function systemMethod(input, output, options) {
|
|
|
2853
2853
|
systemOnly: true
|
|
2854
2854
|
};
|
|
2855
2855
|
}
|
|
2856
|
+
/**
|
|
2857
|
+
* A method a SOURCE of a collection cap may legitimately not serve — OPTIONAL
|
|
2858
|
+
* on `InferProvider`. The `providerOptional: true` literal is what
|
|
2859
|
+
* `InferProvider` keys on; see {@link CapabilityMethodSchema.providerOptional}
|
|
2860
|
+
* for when this is the honest answer and when it is a soft stub.
|
|
2861
|
+
*/
|
|
2862
|
+
function optionalMethod(input, output, options) {
|
|
2863
|
+
return {
|
|
2864
|
+
...method(input, output, options),
|
|
2865
|
+
providerOptional: true
|
|
2866
|
+
};
|
|
2867
|
+
}
|
|
2856
2868
|
/** Shorthand to define an event schema */
|
|
2857
2869
|
function event(data) {
|
|
2858
2870
|
return { data };
|
|
@@ -26214,6 +26226,59 @@ var ClipPlaybackSchema = zod.z.object({
|
|
|
26214
26226
|
* which days it asked for and got nothing — "no clips" would be a lie about a
|
|
26215
26227
|
* card that is full of them.
|
|
26216
26228
|
*/
|
|
26229
|
+
/**
|
|
26230
|
+
* The operator's authorisation to WAKE a sleeping camera for one clip read.
|
|
26231
|
+
*
|
|
26232
|
+
* ONE value, absent by default, and it is a `force`-shaped operator signal in
|
|
26233
|
+
* exactly the sense `snapshot-wake-gate.ts` uses the word: *"`snapshot.getSnapshot`'s
|
|
26234
|
+
* `force` flag, and nothing else… a background caller must never set it…
|
|
26235
|
+
* Stale but honest beats woken"*. A scheduler, a retry, a reconcile and a
|
|
26236
|
+
* prefetch never set it; a surface sets it only behind the same confirm the
|
|
26237
|
+
* "Wake and refresh" gesture uses, and it is refused below 15 % battery
|
|
26238
|
+
* exactly as that gesture is.
|
|
26239
|
+
*
|
|
26240
|
+
* The gate is decided BEFORE `getApi()`, because on UDP the login IS the wake
|
|
26241
|
+
* (D549) — a read that opened a session and then checked would have woken the
|
|
26242
|
+
* camera to find out it was not allowed to.
|
|
26243
|
+
*
|
|
26244
|
+
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
26245
|
+
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
26246
|
+
* it was proposed, it is free on the battery, and the operator declined it on
|
|
26247
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."*,
|
|
26248
|
+
* D558 "Considered and not taken").
|
|
26249
|
+
*/
|
|
26250
|
+
var ClipWakeSchema = zod.z.enum(["authorised"]);
|
|
26251
|
+
/**
|
|
26252
|
+
* A clip's finished bytes, inline — the twin of `recordingExport.readExportBytes`.
|
|
26253
|
+
*
|
|
26254
|
+
* `bytes` is the DECODED length, so nobody infers it from the base64 length,
|
|
26255
|
+
* and `served` says which twin the caller actually got.
|
|
26256
|
+
*/
|
|
26257
|
+
var ClipBytesSchema = zod.z.object({
|
|
26258
|
+
base64: zod.z.string(),
|
|
26259
|
+
contentType: zod.z.string(),
|
|
26260
|
+
/** Suggested filename, extension included. */
|
|
26261
|
+
name: zod.z.string(),
|
|
26262
|
+
bytes: zod.z.number().int().nonnegative(),
|
|
26263
|
+
/**
|
|
26264
|
+
* Which twin was actually served — the same contract
|
|
26265
|
+
* {@link ClipPlaybackSchema.served} carries, and REQUIRED here because the
|
|
26266
|
+
* export record persists it: a row read a week later must say the same thing
|
|
26267
|
+
* the panel said at the moment of the tap. A missing main twin is never
|
|
26268
|
+
* served silently as if it were the asked-for quality (D549 15).
|
|
26269
|
+
*/
|
|
26270
|
+
served: CamProfileSchema,
|
|
26271
|
+
/**
|
|
26272
|
+
* The DECODED duration of the delivered file, when the fetch measured one.
|
|
26273
|
+
*
|
|
26274
|
+
* A clip fetch verifies its own completion against the catalog row and
|
|
26275
|
+
* retries a materially short pass (D568); this is that measurement, carried
|
|
26276
|
+
* so a consumer can say the same thing rather than re-deriving it. Absent
|
|
26277
|
+
* when the producer did not measure — never zero, which would say the file
|
|
26278
|
+
* is empty.
|
|
26279
|
+
*/
|
|
26280
|
+
durationMs: zod.z.number().positive().optional()
|
|
26281
|
+
});
|
|
26217
26282
|
var ClipSourceAvailabilitySchema = zod.z.object({
|
|
26218
26283
|
state: zod.z.enum([
|
|
26219
26284
|
"ok",
|
|
@@ -26385,6 +26450,68 @@ var videoclipsCapability = {
|
|
|
26385
26450
|
}), ClipPlaybackSchema, {
|
|
26386
26451
|
kind: "query",
|
|
26387
26452
|
auth: "protected"
|
|
26453
|
+
}),
|
|
26454
|
+
/**
|
|
26455
|
+
* This clip's BYTES, base64, bounded — the by-handle read a clip EXPORT
|
|
26456
|
+
* pulls once (D558).
|
|
26457
|
+
*
|
|
26458
|
+
* `getClipPlayback` is the right answer for a player: it hands back a URL
|
|
26459
|
+
* on a plane the hub serves `access:'authenticated'`, which a browser and a
|
|
26460
|
+
* viewer session satisfy. It is the wrong answer for another ADDON. There
|
|
26461
|
+
* is no addon→addon byte transport in this framework — `AddonDataPlane`
|
|
26462
|
+
* only lets an addon SERVE, on `127.0.0.1` behind a per-listener secret
|
|
26463
|
+
* only the hub may present — so a recorder that wants a camera's clip
|
|
26464
|
+
* cannot fetch that URL. This method is the one seam that exists for it,
|
|
26465
|
+
* and it is deliberately the same shape (and the same bound) as
|
|
26466
|
+
* `recordingExport.readExportBytes`, which exists for the mirror-image
|
|
26467
|
+
* reason.
|
|
26468
|
+
*
|
|
26469
|
+
* Routing needs no `provider` pin: the id is source-prefixed and
|
|
26470
|
+
* self-contained, so `device-collection-dispatch.ts` rule 3 hands the call
|
|
26471
|
+
* to the source that claims it — and an id nobody claims is REFUSED rather
|
|
26472
|
+
* than answered by another source.
|
|
26473
|
+
*
|
|
26474
|
+
* The producer reuses the fetch path it already has, completion rules
|
|
26475
|
+
* included: a clip is taken by cmd 5 and finished on a short idle window
|
|
26476
|
+
* whose result is PROVED against the catalog row's own span, retried once
|
|
26477
|
+
* when it comes up materially short, and served-and-named when it is still
|
|
26478
|
+
* short (D568). A second fetch with different completion rules is exactly
|
|
26479
|
+
* the second authority D558 refuses to create.
|
|
26480
|
+
*
|
|
26481
|
+
* Every refusal THROWS with its reason and none of them is silent — the
|
|
26482
|
+
* sleep gate (decided before `getApi()`, liftable only by
|
|
26483
|
+
* {@link ClipWakeSchema}), a catalog row nobody claims, a clip with no
|
|
26484
|
+
* bytes behind it, a mux that failed, and the size bound. The caller turns
|
|
26485
|
+
* that reason into an operator-facing one; a truncated file is never an
|
|
26486
|
+
* answer.
|
|
26487
|
+
*/
|
|
26488
|
+
readClipBytes: optionalMethod(zod.z.object({
|
|
26489
|
+
deviceId: zod.z.number(),
|
|
26490
|
+
clipId: zod.z.string().min(1),
|
|
26491
|
+
/**
|
|
26492
|
+
* Which twin to fetch, on the mapping D549 15 already fixed:
|
|
26493
|
+
* `low | mid` → the sub file, `high` → the main twin. `auto` is not
|
|
26494
|
+
* accepted here for the same reason it is not accepted by
|
|
26495
|
+
* `getClipPlayback` — a stored file has no broker session, so the
|
|
26496
|
+
* adaptive tier cannot be resolved for it.
|
|
26497
|
+
*/
|
|
26498
|
+
profile: CamProfileSchema.optional(),
|
|
26499
|
+
/**
|
|
26500
|
+
* The CALLER's byte bound, so an over-size clip is refused before it is
|
|
26501
|
+
* read and encoded rather than after. Capped by
|
|
26502
|
+
* {@link VIDEOCLIPS_MAX_READ_BYTES} whatever is passed; absent means
|
|
26503
|
+
* that ceiling.
|
|
26504
|
+
*/
|
|
26505
|
+
maxBytes: zod.z.number().int().positive().optional(),
|
|
26506
|
+
/**
|
|
26507
|
+
* The operator's authorisation to wake a sleeping camera for this
|
|
26508
|
+
* read. Absent — the default — means a sleeping standalone battery
|
|
26509
|
+
* camera is REFUSED by name, before any session is opened.
|
|
26510
|
+
*/
|
|
26511
|
+
wake: ClipWakeSchema.optional()
|
|
26512
|
+
}), ClipBytesSchema, {
|
|
26513
|
+
kind: "query",
|
|
26514
|
+
auth: "protected"
|
|
26388
26515
|
})
|
|
26389
26516
|
}
|
|
26390
26517
|
};
|
|
@@ -35107,9 +35234,21 @@ var recordingCapability = {
|
|
|
35107
35234
|
kind: "query",
|
|
35108
35235
|
auth: "admin"
|
|
35109
35236
|
}),
|
|
35237
|
+
/**
|
|
35238
|
+
* READ the camera's recording intent.
|
|
35239
|
+
*
|
|
35240
|
+
* `protected`, not `admin`, since 2026-09-21. It is the only per-camera
|
|
35241
|
+
* source of the recording mode the viewer has, and the camera status dot
|
|
35242
|
+
* asks for it on a screen every read-only user sees. As `admin` it answered
|
|
35243
|
+
* FORBIDDEN, the viewer collapsed that to `null` and `null` to `'off'`, and
|
|
35244
|
+
* a recording camera was drawn GREEN — a failed measurement rendered as a
|
|
35245
|
+
* value (D315, D393, D590). It carries schedules and retention, no secret,
|
|
35246
|
+
* and the per-device gate in `scope-access.ts` still applies; `setDeviceConfig`
|
|
35247
|
+
* stays `admin`.
|
|
35248
|
+
*/
|
|
35110
35249
|
getDeviceConfig: method(zod.z.object({ deviceId: zod.z.number() }), RecordingConfigSchema, {
|
|
35111
35250
|
kind: "query",
|
|
35112
|
-
auth: "
|
|
35251
|
+
auth: "protected"
|
|
35113
35252
|
}),
|
|
35114
35253
|
/** Locate footage at a wall-clock instant: the covering segment's window,
|
|
35115
35254
|
* or a gap with the forward nearest covered edge. Used by a feeder running
|
|
@@ -35461,13 +35600,135 @@ var ExportStateSchema = zod.z.enum([
|
|
|
35461
35600
|
"expired",
|
|
35462
35601
|
"deleted"
|
|
35463
35602
|
]);
|
|
35464
|
-
/**
|
|
35603
|
+
/**
|
|
35604
|
+
* A stretch of footage THIS system recorded — the only thing `createExport`
|
|
35605
|
+
* could export before D558, and still the shape every legacy caller sends.
|
|
35606
|
+
*/
|
|
35607
|
+
var ExportFootageSubjectSchema = zod.z.object({
|
|
35608
|
+
kind: zod.z.literal("footage"),
|
|
35609
|
+
deviceId: zod.z.number(),
|
|
35610
|
+
profiles: zod.z.array(zod.z.string()).min(1),
|
|
35611
|
+
fromMs: zod.z.number(),
|
|
35612
|
+
toMs: zod.z.number()
|
|
35613
|
+
});
|
|
35614
|
+
/**
|
|
35615
|
+
* A CLIP — a finished file with boundaries the camera chose, listed by one of
|
|
35616
|
+
* the device's `videoclips` sources.
|
|
35617
|
+
*
|
|
35618
|
+
* There is deliberately **no `fromMs`/`toMs` here**. The camera chose them,
|
|
35619
|
+
* no surface on this path asks for them (there is no drag and no
|
|
35620
|
+
* `datetime-local` pair — D558 § 5.4.3), and they reach the record only as the
|
|
35621
|
+
* projection. A range in the subject would be a second place the boundaries
|
|
35622
|
+
* live and the one a caller could get wrong.
|
|
35623
|
+
*
|
|
35624
|
+
* `provider` is the **addonId** of the source's serving addon — the `provider`
|
|
35625
|
+
* pin `videoclips.listClips` REQUIRES since D554 was amended on 2026-09-20.
|
|
35626
|
+
* There was never a default: a bare call fanned out and returned the union of
|
|
35627
|
+
* every source with `limit` meaning `limit × sources`. The catalog check that
|
|
35628
|
+
* validates this subject names it, so it asks exactly the source the operator
|
|
35629
|
+
* picked.
|
|
35630
|
+
*
|
|
35631
|
+
* `source` is that source's id (the namespace `clipId` is prefixed with), and
|
|
35632
|
+
* `sourceLabel` is its operator-facing name FROZEN at creation — a history row
|
|
35633
|
+
* still reads "SD card" after the source is unbound.
|
|
35634
|
+
*
|
|
35635
|
+
* `profile` is exactly ONE, and it is what was ASKED. What was SERVED lands on
|
|
35636
|
+
* the record's top-level `profile`, so a clip with no main twin renders the
|
|
35637
|
+
* divergence instead of hiding it (D549 15; measured on 592, 17 of 546 clips
|
|
35638
|
+
* had no main twin, so a silent fallback would be right 96.9 % of the time).
|
|
35639
|
+
* `auto` is not a member: a stored file has no broker session, so the adaptive
|
|
35640
|
+
* tier cannot be resolved for it.
|
|
35641
|
+
*/
|
|
35642
|
+
var ExportClipSubjectSchema = zod.z.object({
|
|
35643
|
+
kind: zod.z.literal("clip"),
|
|
35644
|
+
deviceId: zod.z.number(),
|
|
35645
|
+
provider: zod.z.string().min(1),
|
|
35646
|
+
source: zod.z.string().min(1),
|
|
35647
|
+
sourceLabel: zod.z.string().min(1),
|
|
35648
|
+
clipId: zod.z.string().min(1),
|
|
35649
|
+
/**
|
|
35650
|
+
* WHERE IN THE CATALOG to confirm this clip — the day window the surface was
|
|
35651
|
+
* already listing when the operator picked the segment.
|
|
35652
|
+
*
|
|
35653
|
+
* It is **not** a time range control and it never becomes one: the record's
|
|
35654
|
+
* `fromMs`/`toMs` come from the catalog ROW and from nothing a caller
|
|
35655
|
+
* supplied (D558 § 5.4.3), and a window that does not contain the clip is a
|
|
35656
|
+
* `catalog-miss`, not a silently wider search. It exists because
|
|
35657
|
+
* `videoclips.listClips` takes `since`/`until` and has no by-handle twin:
|
|
35658
|
+
* the catalog check D558 asks for is literally that call, and a call needs a
|
|
35659
|
+
* window. The surface has one — `ClipsBrowser`'s `dayWindow`, one local
|
|
35660
|
+
* wall-clock day, which is also the only width measured to be cheap (one
|
|
35661
|
+
* day on 592 lists 171 clips in 712 ms, a busy day 546 in 2.0 s; twenty days
|
|
35662
|
+
* of one child's events took 3.6–5.4 s).
|
|
35663
|
+
*/
|
|
35664
|
+
catalogWindow: zod.z.object({
|
|
35665
|
+
sinceMs: zod.z.number(),
|
|
35666
|
+
untilMs: zod.z.number()
|
|
35667
|
+
}),
|
|
35668
|
+
profile: zod.z.enum([
|
|
35669
|
+
"high",
|
|
35670
|
+
"mid",
|
|
35671
|
+
"low"
|
|
35672
|
+
]),
|
|
35673
|
+
/**
|
|
35674
|
+
* The operator's authorisation to wake a sleeping camera for this export.
|
|
35675
|
+
* ONE definition, in the cap that owns the clip read ({@link ClipWakeSchema}),
|
|
35676
|
+
* because the gate that honours it is the clip provider's sleep gate — a
|
|
35677
|
+
* second enum here would be a second contract. Absent by default; never
|
|
35678
|
+
* settable by a scheduler or a retry.
|
|
35679
|
+
*
|
|
35680
|
+
* **One authorised yes is ONE wake.** A failed clip export is retried only by
|
|
35681
|
+
* an operator act that asks again; a queued job that outlived its wake fails
|
|
35682
|
+
* with a reason rather than waking on its turn; and this subject carries
|
|
35683
|
+
* exactly one profile precisely so one tap is never two fetches (D558 § 5.2).
|
|
35684
|
+
*/
|
|
35685
|
+
wake: ClipWakeSchema.optional()
|
|
35686
|
+
});
|
|
35687
|
+
/**
|
|
35688
|
+
* WHAT an export is — the authority, as opposed to the four top-level fields
|
|
35689
|
+
* the Library sorts and labels on (D558 § 2.2).
|
|
35690
|
+
*
|
|
35691
|
+
* Read it through {@link exportSubjectOf}, never off the record directly: the
|
|
35692
|
+
* field is optional for the history rows written before it existed, and that
|
|
35693
|
+
* absence has exactly one interpreter.
|
|
35694
|
+
*/
|
|
35695
|
+
var ExportSubjectSchema = zod.z.discriminatedUnion("kind", [ExportFootageSubjectSchema, ExportClipSubjectSchema]);
|
|
35696
|
+
/**
|
|
35697
|
+
* One export job / history row.
|
|
35698
|
+
*
|
|
35699
|
+
* **`subject` is the AUTHORITY on what was exported. `deviceId`, `profile`,
|
|
35700
|
+
* `fromMs` and `toMs` are its PROJECTION** — kept top-level because the whole
|
|
35701
|
+
* Library sorts and labels on them (`library-items.ts` orders an export by
|
|
35702
|
+
* `fromMs`; `export-format.ts` draws `rangeLabel` from the pair), and a row
|
|
35703
|
+
* that did not fill them would sort under the epoch and render a blank range.
|
|
35704
|
+
* Write to the subject and read from the projection and the two will disagree;
|
|
35705
|
+
* the projection is derived at creation and never edited afterwards.
|
|
35706
|
+
*
|
|
35707
|
+
* And they mean DIFFERENT FACTS for the two kinds, which is the part a reader
|
|
35708
|
+
* who knows only the recording export will get wrong:
|
|
35709
|
+
*
|
|
35710
|
+
* | field | `kind:'footage'` | `kind:'clip'` |
|
|
35711
|
+
* | --- | --- | --- |
|
|
35712
|
+
* | `fromMs`/`toMs` | the stretch the operator ASKED for | the camera's own boundaries, always `clip.timeRange`, never anything a caller supplied |
|
|
35713
|
+
* | `profile` | the stream rendered | the twin actually SERVED (`subject.profile` is the one asked for) |
|
|
35714
|
+
*
|
|
35715
|
+
* Same type, different fact — the shape this repo keeps getting wrong (D385's
|
|
35716
|
+
* two authorities, D224's second copy).
|
|
35717
|
+
*/
|
|
35465
35718
|
var ExportRecordSchema = zod.z.object({
|
|
35466
35719
|
id: zod.z.string(),
|
|
35467
35720
|
deviceId: zod.z.number(),
|
|
35468
35721
|
profile: zod.z.string(),
|
|
35469
35722
|
fromMs: zod.z.number(),
|
|
35470
35723
|
toMs: zod.z.number(),
|
|
35724
|
+
/**
|
|
35725
|
+
* What this export IS. Optional ONLY for the rows written before D558: the
|
|
35726
|
+
* store parses every row through this schema on every read, so a required
|
|
35727
|
+
* field would make the export AUDIT — which is the whole reason rows survive
|
|
35728
|
+
* file deletion — unreadable in one release. Absence means `footage`, and
|
|
35729
|
+
* {@link exportSubjectOf} is the one place that says so.
|
|
35730
|
+
*/
|
|
35731
|
+
subject: ExportSubjectSchema.optional(),
|
|
35471
35732
|
options: ExportOptionsSchema,
|
|
35472
35733
|
state: ExportStateSchema,
|
|
35473
35734
|
/** 0–100 while rendering; null otherwise. */
|
|
@@ -35484,6 +35745,18 @@ var ExportRecordSchema = zod.z.object({
|
|
|
35484
35745
|
/** Failure reason when state is 'failed'; null otherwise. */
|
|
35485
35746
|
error: zod.z.string().nullable()
|
|
35486
35747
|
});
|
|
35748
|
+
zod.z.enum([
|
|
35749
|
+
"catalog-miss",
|
|
35750
|
+
"catalog-unreachable",
|
|
35751
|
+
"no-file-for-window",
|
|
35752
|
+
"clip-in-progress",
|
|
35753
|
+
"unsupported-option",
|
|
35754
|
+
"sleeping",
|
|
35755
|
+
"camera-refused",
|
|
35756
|
+
"fetch-failed",
|
|
35757
|
+
"too-large-to-transfer",
|
|
35758
|
+
"wake-expired"
|
|
35759
|
+
]);
|
|
35487
35760
|
/** Candidate download URLs (LAN first, then operator extra hosts). */
|
|
35488
35761
|
var ExportDownloadSchema = zod.z.object({
|
|
35489
35762
|
url: zod.z.string(),
|
|
@@ -35502,24 +35775,77 @@ var ExportBytesSchema = zod.z.object({
|
|
|
35502
35775
|
name: zod.z.string(),
|
|
35503
35776
|
bytes: zod.z.number().int().nonnegative()
|
|
35504
35777
|
});
|
|
35778
|
+
/** Canonical `profiles[]`, falling back to the legacy singular `profile`. */
|
|
35779
|
+
function resolveExportProfiles(input) {
|
|
35780
|
+
if (input.profiles !== void 0 && input.profiles.length > 0) return [...input.profiles];
|
|
35781
|
+
if (typeof input.profile === "string" && input.profile.length > 0) return [input.profile];
|
|
35782
|
+
return [];
|
|
35783
|
+
}
|
|
35505
35784
|
var recordingExportCapability = {
|
|
35506
35785
|
name: "recording-export",
|
|
35507
35786
|
scope: "system",
|
|
35508
35787
|
mode: "singleton",
|
|
35509
35788
|
methods: {
|
|
35510
|
-
/**
|
|
35511
|
-
*
|
|
35512
|
-
*
|
|
35789
|
+
/**
|
|
35790
|
+
* Queue an export of {@link ExportSubjectSchema}.
|
|
35791
|
+
*
|
|
35792
|
+
* `kind:'footage'` — a render of `[fromMs,toMs)` for `deviceId`/`profiles`
|
|
35793
|
+
* (legacy flat input, singular `profile` included, still accepted and
|
|
35794
|
+
* rewritten). Fails fast when no footage covers the range. One job per
|
|
35795
|
+
* profile; **returns the first queued record and the others are reachable
|
|
35796
|
+
* only through `listExports`** — a defect named in D558 § 6.3 and the
|
|
35797
|
+
* reason a clip subject carries exactly ONE profile.
|
|
35798
|
+
*
|
|
35799
|
+
* `kind:'clip'` — a finished file the camera holds, validated against the
|
|
35800
|
+
* device's clip CATALOG (`videoclips.listClips`, at the subject's
|
|
35801
|
+
* `provider`) instead of the recording index, and fetched once by handle
|
|
35802
|
+
* under a bound. Its `fromMs`/`toMs` come from the catalog row and from
|
|
35803
|
+
* nowhere else; a caller supplying a range is refused.
|
|
35804
|
+
*
|
|
35805
|
+
* A clip export reuses the six {@link ExportStateSchema} members and adds
|
|
35806
|
+
* none: the viewer maps an unknown state string to `failed`, so a seventh
|
|
35807
|
+
* member renders every live export — of both kinds — as FAILED on every
|
|
35808
|
+
* installed app (D558 § 6.1, pinned by `export-state-members.spec.ts`).
|
|
35809
|
+
* `subject.kind` is what tells a surface what `rendering` means.
|
|
35810
|
+
*/
|
|
35513
35811
|
createExport: method(zod.z.object({
|
|
35514
35812
|
deviceId: zod.z.number(),
|
|
35515
35813
|
/** @deprecated Prefer `profiles`. Kept so timelapse/notifiers keep working. */
|
|
35516
35814
|
profile: zod.z.string().optional(),
|
|
35517
35815
|
profiles: zod.z.array(zod.z.string()).min(1).optional(),
|
|
35518
|
-
|
|
35519
|
-
|
|
35816
|
+
/** Footage only — a clip's boundaries are the camera's. */
|
|
35817
|
+
fromMs: zod.z.number().optional(),
|
|
35818
|
+
toMs: zod.z.number().optional(),
|
|
35819
|
+
/** What to export. Absent means the legacy flat footage request. */
|
|
35820
|
+
subject: ExportSubjectSchema.optional(),
|
|
35520
35821
|
options: ExportOptionsSchema
|
|
35521
35822
|
}).superRefine((v, ctx) => {
|
|
35522
|
-
if (
|
|
35823
|
+
if (v.subject?.kind === "clip") {
|
|
35824
|
+
if (v.subject.deviceId !== v.deviceId) ctx.addIssue({
|
|
35825
|
+
code: zod.z.ZodIssueCode.custom,
|
|
35826
|
+
message: `subject.deviceId (${v.subject.deviceId}) must equal deviceId (${v.deviceId}) — the top-level field is what per-device scope enforcement reads`,
|
|
35827
|
+
path: ["subject", "deviceId"]
|
|
35828
|
+
});
|
|
35829
|
+
if (v.fromMs !== void 0 || v.toMs !== void 0) ctx.addIssue({
|
|
35830
|
+
code: zod.z.ZodIssueCode.custom,
|
|
35831
|
+
message: "a clip export asks for no time range: the camera chose the boundaries and they are read from the catalog row",
|
|
35832
|
+
path: ["fromMs"]
|
|
35833
|
+
});
|
|
35834
|
+
return;
|
|
35835
|
+
}
|
|
35836
|
+
if (v.subject?.kind === "footage" && v.subject.deviceId !== v.deviceId) ctx.addIssue({
|
|
35837
|
+
code: zod.z.ZodIssueCode.custom,
|
|
35838
|
+
message: `subject.deviceId (${v.subject.deviceId}) must equal deviceId (${v.deviceId})`,
|
|
35839
|
+
path: ["subject", "deviceId"]
|
|
35840
|
+
});
|
|
35841
|
+
const fromMs = v.subject?.kind === "footage" ? v.subject.fromMs : v.fromMs;
|
|
35842
|
+
const toMs = v.subject?.kind === "footage" ? v.subject.toMs : v.toMs;
|
|
35843
|
+
if (typeof fromMs !== "number" || typeof toMs !== "number") ctx.addIssue({
|
|
35844
|
+
code: zod.z.ZodIssueCode.custom,
|
|
35845
|
+
message: "a footage export needs fromMs and toMs",
|
|
35846
|
+
path: ["fromMs"]
|
|
35847
|
+
});
|
|
35848
|
+
if ((v.subject?.kind === "footage" ? [...v.subject.profiles] : resolveExportProfiles(v)).length < 1) ctx.addIssue({
|
|
35523
35849
|
code: zod.z.ZodIssueCode.custom,
|
|
35524
35850
|
message: "pass profiles[] (min 1) or legacy profile",
|
|
35525
35851
|
path: ["profiles"]
|
|
@@ -40184,6 +40510,12 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
40184
40510
|
zonesCapability
|
|
40185
40511
|
];
|
|
40186
40512
|
var METHOD_ACCESS_MAP = Object.freeze({
|
|
40513
|
+
"accessories.getStatus": {
|
|
40514
|
+
capName: "accessories",
|
|
40515
|
+
capScope: "device",
|
|
40516
|
+
addonId: null,
|
|
40517
|
+
access: "view"
|
|
40518
|
+
},
|
|
40187
40519
|
"accessories.setChildHidden": {
|
|
40188
40520
|
capName: "accessories",
|
|
40189
40521
|
capScope: "device",
|
|
@@ -40466,6 +40798,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40466
40798
|
addonId: null,
|
|
40467
40799
|
access: "view"
|
|
40468
40800
|
},
|
|
40801
|
+
"airQualitySensor.getStatus": {
|
|
40802
|
+
capName: "air-quality-sensor",
|
|
40803
|
+
capScope: "device",
|
|
40804
|
+
addonId: null,
|
|
40805
|
+
access: "view"
|
|
40806
|
+
},
|
|
40469
40807
|
"alarmPanel.arm": {
|
|
40470
40808
|
capName: "alarm-panel",
|
|
40471
40809
|
capScope: "device",
|
|
@@ -40478,6 +40816,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40478
40816
|
addonId: null,
|
|
40479
40817
|
access: "create"
|
|
40480
40818
|
},
|
|
40819
|
+
"alarmPanel.getStatus": {
|
|
40820
|
+
capName: "alarm-panel",
|
|
40821
|
+
capScope: "device",
|
|
40822
|
+
addonId: null,
|
|
40823
|
+
access: "view"
|
|
40824
|
+
},
|
|
40481
40825
|
"alarmPanel.trigger": {
|
|
40482
40826
|
capName: "alarm-panel",
|
|
40483
40827
|
capScope: "device",
|
|
@@ -40526,6 +40870,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40526
40870
|
addonId: null,
|
|
40527
40871
|
access: "create"
|
|
40528
40872
|
},
|
|
40873
|
+
"ambientLightSensor.getStatus": {
|
|
40874
|
+
capName: "ambient-light-sensor",
|
|
40875
|
+
capScope: "device",
|
|
40876
|
+
addonId: null,
|
|
40877
|
+
access: "view"
|
|
40878
|
+
},
|
|
40879
|
+
"audioAnalysis.applyDeviceSettingsPatch": {
|
|
40880
|
+
capName: "audio-analysis",
|
|
40881
|
+
capScope: "device",
|
|
40882
|
+
addonId: null,
|
|
40883
|
+
access: "create"
|
|
40884
|
+
},
|
|
40885
|
+
"audioAnalysis.getDeviceLiveContribution": {
|
|
40886
|
+
capName: "audio-analysis",
|
|
40887
|
+
capScope: "device",
|
|
40888
|
+
addonId: null,
|
|
40889
|
+
access: "view"
|
|
40890
|
+
},
|
|
40891
|
+
"audioAnalysis.getDeviceSettingsContribution": {
|
|
40892
|
+
capName: "audio-analysis",
|
|
40893
|
+
capScope: "device",
|
|
40894
|
+
addonId: null,
|
|
40895
|
+
access: "view"
|
|
40896
|
+
},
|
|
40529
40897
|
"audioAnalysis.resolveDeviceSettings": {
|
|
40530
40898
|
capName: "audio-analysis",
|
|
40531
40899
|
capScope: "device",
|
|
@@ -40688,6 +41056,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40688
41056
|
addonId: null,
|
|
40689
41057
|
access: "create"
|
|
40690
41058
|
},
|
|
41059
|
+
"automationControl.getStatus": {
|
|
41060
|
+
capName: "automation-control",
|
|
41061
|
+
capScope: "device",
|
|
41062
|
+
addonId: null,
|
|
41063
|
+
access: "view"
|
|
41064
|
+
},
|
|
40691
41065
|
"automationControl.trigger": {
|
|
40692
41066
|
capName: "automation-control",
|
|
40693
41067
|
capScope: "device",
|
|
@@ -40784,12 +41158,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40784
41158
|
addonId: null,
|
|
40785
41159
|
access: "create"
|
|
40786
41160
|
},
|
|
41161
|
+
"battery.getStatus": {
|
|
41162
|
+
capName: "battery",
|
|
41163
|
+
capScope: "device",
|
|
41164
|
+
addonId: null,
|
|
41165
|
+
access: "view"
|
|
41166
|
+
},
|
|
40787
41167
|
"battery.wakeForStream": {
|
|
40788
41168
|
capName: "battery",
|
|
40789
41169
|
capScope: "device",
|
|
40790
41170
|
addonId: null,
|
|
40791
41171
|
access: "create"
|
|
40792
41172
|
},
|
|
41173
|
+
"binary.getStatus": {
|
|
41174
|
+
capName: "binary",
|
|
41175
|
+
capScope: "device",
|
|
41176
|
+
addonId: null,
|
|
41177
|
+
access: "view"
|
|
41178
|
+
},
|
|
41179
|
+
"brightness.getStatus": {
|
|
41180
|
+
capName: "brightness",
|
|
41181
|
+
capScope: "device",
|
|
41182
|
+
addonId: null,
|
|
41183
|
+
access: "view"
|
|
41184
|
+
},
|
|
40793
41185
|
"brightness.setBrightness": {
|
|
40794
41186
|
capName: "brightness",
|
|
40795
41187
|
capScope: "device",
|
|
@@ -40904,6 +41296,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40904
41296
|
addonId: null,
|
|
40905
41297
|
access: "view"
|
|
40906
41298
|
},
|
|
41299
|
+
"cameraCredentials.getStatus": {
|
|
41300
|
+
capName: "camera-credentials",
|
|
41301
|
+
capScope: "device",
|
|
41302
|
+
addonId: null,
|
|
41303
|
+
access: "view"
|
|
41304
|
+
},
|
|
41305
|
+
"cameraGridLayout.applyDeviceSettingsPatch": {
|
|
41306
|
+
capName: "camera-grid-layout",
|
|
41307
|
+
capScope: "device",
|
|
41308
|
+
addonId: null,
|
|
41309
|
+
access: "create"
|
|
41310
|
+
},
|
|
41311
|
+
"cameraGridLayout.getDeviceLiveContribution": {
|
|
41312
|
+
capName: "camera-grid-layout",
|
|
41313
|
+
capScope: "device",
|
|
41314
|
+
addonId: null,
|
|
41315
|
+
access: "view"
|
|
41316
|
+
},
|
|
41317
|
+
"cameraGridLayout.getDeviceSettingsContribution": {
|
|
41318
|
+
capName: "camera-grid-layout",
|
|
41319
|
+
capScope: "device",
|
|
41320
|
+
addonId: null,
|
|
41321
|
+
access: "view"
|
|
41322
|
+
},
|
|
40907
41323
|
"cameraGridLayout.getLayout": {
|
|
40908
41324
|
capName: "camera-grid-layout",
|
|
40909
41325
|
capScope: "device",
|
|
@@ -40916,6 +41332,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40916
41332
|
addonId: null,
|
|
40917
41333
|
access: "create"
|
|
40918
41334
|
},
|
|
41335
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": {
|
|
41336
|
+
capName: "camera-pipeline-config",
|
|
41337
|
+
capScope: "device",
|
|
41338
|
+
addonId: null,
|
|
41339
|
+
access: "create"
|
|
41340
|
+
},
|
|
41341
|
+
"cameraPipelineConfig.getDeviceLiveContribution": {
|
|
41342
|
+
capName: "camera-pipeline-config",
|
|
41343
|
+
capScope: "device",
|
|
41344
|
+
addonId: null,
|
|
41345
|
+
access: "view"
|
|
41346
|
+
},
|
|
41347
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": {
|
|
41348
|
+
capName: "camera-pipeline-config",
|
|
41349
|
+
capScope: "device",
|
|
41350
|
+
addonId: null,
|
|
41351
|
+
access: "view"
|
|
41352
|
+
},
|
|
40919
41353
|
"cameraStreams.getBrokerStreams": {
|
|
40920
41354
|
capName: "camera-streams",
|
|
40921
41355
|
capScope: "device",
|
|
@@ -40946,6 +41380,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40946
41380
|
addonId: null,
|
|
40947
41381
|
access: "view"
|
|
40948
41382
|
},
|
|
41383
|
+
"carbonMonoxide.getStatus": {
|
|
41384
|
+
capName: "carbon-monoxide",
|
|
41385
|
+
capScope: "device",
|
|
41386
|
+
addonId: null,
|
|
41387
|
+
access: "view"
|
|
41388
|
+
},
|
|
41389
|
+
"climateControl.getStatus": {
|
|
41390
|
+
capName: "climate-control",
|
|
41391
|
+
capScope: "device",
|
|
41392
|
+
addonId: null,
|
|
41393
|
+
access: "view"
|
|
41394
|
+
},
|
|
40949
41395
|
"climateControl.setFanMode": {
|
|
40950
41396
|
capName: "climate-control",
|
|
40951
41397
|
capScope: "device",
|
|
@@ -40994,6 +41440,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
40994
41440
|
addonId: null,
|
|
40995
41441
|
access: "create"
|
|
40996
41442
|
},
|
|
41443
|
+
"color.getStatus": {
|
|
41444
|
+
capName: "color",
|
|
41445
|
+
capScope: "device",
|
|
41446
|
+
addonId: null,
|
|
41447
|
+
access: "view"
|
|
41448
|
+
},
|
|
40997
41449
|
"color.setColor": {
|
|
40998
41450
|
capName: "color",
|
|
40999
41451
|
capScope: "device",
|
|
@@ -41012,12 +41464,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41012
41464
|
addonId: null,
|
|
41013
41465
|
access: "create"
|
|
41014
41466
|
},
|
|
41467
|
+
"connectivity.getStatus": {
|
|
41468
|
+
capName: "connectivity",
|
|
41469
|
+
capScope: "device",
|
|
41470
|
+
addonId: null,
|
|
41471
|
+
access: "view"
|
|
41472
|
+
},
|
|
41473
|
+
"consumables.getStatus": {
|
|
41474
|
+
capName: "consumables",
|
|
41475
|
+
capScope: "device",
|
|
41476
|
+
addonId: null,
|
|
41477
|
+
access: "view"
|
|
41478
|
+
},
|
|
41015
41479
|
"consumables.reset": {
|
|
41016
41480
|
capName: "consumables",
|
|
41017
41481
|
capScope: "device",
|
|
41018
41482
|
addonId: null,
|
|
41019
41483
|
access: "delete"
|
|
41020
41484
|
},
|
|
41485
|
+
"contact.getStatus": {
|
|
41486
|
+
capName: "contact",
|
|
41487
|
+
capScope: "device",
|
|
41488
|
+
addonId: null,
|
|
41489
|
+
access: "view"
|
|
41490
|
+
},
|
|
41491
|
+
"control.getStatus": {
|
|
41492
|
+
capName: "control",
|
|
41493
|
+
capScope: "device",
|
|
41494
|
+
addonId: null,
|
|
41495
|
+
access: "view"
|
|
41496
|
+
},
|
|
41021
41497
|
"control.setValue": {
|
|
41022
41498
|
capName: "control",
|
|
41023
41499
|
capScope: "device",
|
|
@@ -41084,6 +41560,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41084
41560
|
addonId: null,
|
|
41085
41561
|
access: "create"
|
|
41086
41562
|
},
|
|
41563
|
+
"cover.getStatus": {
|
|
41564
|
+
capName: "cover",
|
|
41565
|
+
capScope: "device",
|
|
41566
|
+
addonId: null,
|
|
41567
|
+
access: "view"
|
|
41568
|
+
},
|
|
41087
41569
|
"cover.open": {
|
|
41088
41570
|
capName: "cover",
|
|
41089
41571
|
capScope: "device",
|
|
@@ -41216,6 +41698,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41216
41698
|
addonId: null,
|
|
41217
41699
|
access: "view"
|
|
41218
41700
|
},
|
|
41701
|
+
"dayNight.getStatus": {
|
|
41702
|
+
capName: "day-night",
|
|
41703
|
+
capScope: "device",
|
|
41704
|
+
addonId: null,
|
|
41705
|
+
access: "view"
|
|
41706
|
+
},
|
|
41219
41707
|
"dayNight.setSettings": {
|
|
41220
41708
|
capName: "day-night",
|
|
41221
41709
|
capScope: "device",
|
|
@@ -41306,6 +41794,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41306
41794
|
addonId: null,
|
|
41307
41795
|
access: "view"
|
|
41308
41796
|
},
|
|
41797
|
+
"detectionPipeline.applyDeviceSettingsPatch": {
|
|
41798
|
+
capName: "detection-pipeline",
|
|
41799
|
+
capScope: "device",
|
|
41800
|
+
addonId: null,
|
|
41801
|
+
access: "create"
|
|
41802
|
+
},
|
|
41803
|
+
"detectionPipeline.getDeviceLiveContribution": {
|
|
41804
|
+
capName: "detection-pipeline",
|
|
41805
|
+
capScope: "device",
|
|
41806
|
+
addonId: null,
|
|
41807
|
+
access: "view"
|
|
41808
|
+
},
|
|
41809
|
+
"detectionPipeline.getDeviceSettingsContribution": {
|
|
41810
|
+
capName: "detection-pipeline",
|
|
41811
|
+
capScope: "device",
|
|
41812
|
+
addonId: null,
|
|
41813
|
+
access: "view"
|
|
41814
|
+
},
|
|
41309
41815
|
"deviceAdoption.adopt": {
|
|
41310
41816
|
capName: "device-adoption",
|
|
41311
41817
|
capScope: "system",
|
|
@@ -41318,6 +41824,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41318
41824
|
addonId: null,
|
|
41319
41825
|
access: "view"
|
|
41320
41826
|
},
|
|
41827
|
+
"deviceAdoption.getStatus": {
|
|
41828
|
+
capName: "device-adoption",
|
|
41829
|
+
capScope: "system",
|
|
41830
|
+
addonId: null,
|
|
41831
|
+
access: "view"
|
|
41832
|
+
},
|
|
41321
41833
|
"deviceAdoption.listCandidateFilters": {
|
|
41322
41834
|
capName: "device-adoption",
|
|
41323
41835
|
capScope: "system",
|
|
@@ -41354,6 +41866,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41354
41866
|
addonId: null,
|
|
41355
41867
|
access: "create"
|
|
41356
41868
|
},
|
|
41869
|
+
"deviceDiscovery.getStatus": {
|
|
41870
|
+
capName: "device-discovery",
|
|
41871
|
+
capScope: "device",
|
|
41872
|
+
addonId: null,
|
|
41873
|
+
access: "view"
|
|
41874
|
+
},
|
|
41357
41875
|
"deviceDiscovery.listDiscovered": {
|
|
41358
41876
|
capName: "device-discovery",
|
|
41359
41877
|
capScope: "device",
|
|
@@ -41372,12 +41890,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41372
41890
|
addonId: null,
|
|
41373
41891
|
access: "create"
|
|
41374
41892
|
},
|
|
41893
|
+
"deviceExport.applyDeviceSettingsPatch": {
|
|
41894
|
+
capName: "device-export",
|
|
41895
|
+
capScope: "system",
|
|
41896
|
+
addonId: null,
|
|
41897
|
+
access: "create"
|
|
41898
|
+
},
|
|
41375
41899
|
"deviceExport.exposeDevice": {
|
|
41376
41900
|
capName: "device-export",
|
|
41377
41901
|
capScope: "system",
|
|
41378
41902
|
addonId: null,
|
|
41379
41903
|
access: "create"
|
|
41380
41904
|
},
|
|
41905
|
+
"deviceExport.getDeviceLiveContribution": {
|
|
41906
|
+
capName: "device-export",
|
|
41907
|
+
capScope: "system",
|
|
41908
|
+
addonId: null,
|
|
41909
|
+
access: "view"
|
|
41910
|
+
},
|
|
41911
|
+
"deviceExport.getDeviceSettingsContribution": {
|
|
41912
|
+
capName: "device-export",
|
|
41913
|
+
capScope: "system",
|
|
41914
|
+
addonId: null,
|
|
41915
|
+
access: "view"
|
|
41916
|
+
},
|
|
41381
41917
|
"deviceExport.getStatus": {
|
|
41382
41918
|
capName: "device-export",
|
|
41383
41919
|
capScope: "system",
|
|
@@ -41474,6 +42010,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41474
42010
|
addonId: null,
|
|
41475
42011
|
access: "create"
|
|
41476
42012
|
},
|
|
42013
|
+
"deviceManager.applyDeviceSettingsPatch": {
|
|
42014
|
+
capName: "device-manager",
|
|
42015
|
+
capScope: "system",
|
|
42016
|
+
addonId: null,
|
|
42017
|
+
access: "create"
|
|
42018
|
+
},
|
|
41477
42019
|
"deviceManager.applyInitialMeta": {
|
|
41478
42020
|
capName: "device-manager",
|
|
41479
42021
|
capScope: "system",
|
|
@@ -41576,6 +42118,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41576
42118
|
addonId: null,
|
|
41577
42119
|
access: "view"
|
|
41578
42120
|
},
|
|
42121
|
+
"deviceManager.getDeviceLiveContribution": {
|
|
42122
|
+
capName: "device-manager",
|
|
42123
|
+
capScope: "system",
|
|
42124
|
+
addonId: null,
|
|
42125
|
+
access: "view"
|
|
42126
|
+
},
|
|
41579
42127
|
"deviceManager.getDeviceLiveInfoAggregate": {
|
|
41580
42128
|
capName: "device-manager",
|
|
41581
42129
|
capScope: "system",
|
|
@@ -41588,6 +42136,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41588
42136
|
addonId: null,
|
|
41589
42137
|
access: "view"
|
|
41590
42138
|
},
|
|
42139
|
+
"deviceManager.getDeviceSettingsContribution": {
|
|
42140
|
+
capName: "device-manager",
|
|
42141
|
+
capScope: "system",
|
|
42142
|
+
addonId: null,
|
|
42143
|
+
access: "view"
|
|
42144
|
+
},
|
|
41591
42145
|
"deviceManager.getDeviceStatusAggregate": {
|
|
41592
42146
|
capName: "device-manager",
|
|
41593
42147
|
capScope: "system",
|
|
@@ -42080,6 +42634,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42080
42634
|
addonId: null,
|
|
42081
42635
|
access: "create"
|
|
42082
42636
|
},
|
|
42637
|
+
"deviceStatus.getStatus": {
|
|
42638
|
+
capName: "device-status",
|
|
42639
|
+
capScope: "device",
|
|
42640
|
+
addonId: null,
|
|
42641
|
+
access: "view"
|
|
42642
|
+
},
|
|
42643
|
+
"doorbell.applyDeviceSettingsPatch": {
|
|
42644
|
+
capName: "doorbell",
|
|
42645
|
+
capScope: "device",
|
|
42646
|
+
addonId: null,
|
|
42647
|
+
access: "create"
|
|
42648
|
+
},
|
|
42649
|
+
"doorbell.getDeviceLiveContribution": {
|
|
42650
|
+
capName: "doorbell",
|
|
42651
|
+
capScope: "device",
|
|
42652
|
+
addonId: null,
|
|
42653
|
+
access: "view"
|
|
42654
|
+
},
|
|
42655
|
+
"doorbell.getDeviceSettingsContribution": {
|
|
42656
|
+
capName: "doorbell",
|
|
42657
|
+
capScope: "device",
|
|
42658
|
+
addonId: null,
|
|
42659
|
+
access: "view"
|
|
42660
|
+
},
|
|
42661
|
+
"doorbell.getStatus": {
|
|
42662
|
+
capName: "doorbell",
|
|
42663
|
+
capScope: "device",
|
|
42664
|
+
addonId: null,
|
|
42665
|
+
access: "view"
|
|
42666
|
+
},
|
|
42083
42667
|
"embeddingEncoder.encode": {
|
|
42084
42668
|
capName: "embedding-encoder",
|
|
42085
42669
|
capScope: "system",
|
|
@@ -42098,6 +42682,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42098
42682
|
addonId: null,
|
|
42099
42683
|
access: "view"
|
|
42100
42684
|
},
|
|
42685
|
+
"enumSensor.getStatus": {
|
|
42686
|
+
capName: "enum-sensor",
|
|
42687
|
+
capScope: "device",
|
|
42688
|
+
addonId: null,
|
|
42689
|
+
access: "view"
|
|
42690
|
+
},
|
|
42691
|
+
"eventEmitter.getStatus": {
|
|
42692
|
+
capName: "event-emitter",
|
|
42693
|
+
capScope: "device",
|
|
42694
|
+
addonId: null,
|
|
42695
|
+
access: "view"
|
|
42696
|
+
},
|
|
42101
42697
|
"events.getEventClipUrl": {
|
|
42102
42698
|
capName: "events",
|
|
42103
42699
|
capScope: "device",
|
|
@@ -42218,6 +42814,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42218
42814
|
addonId: null,
|
|
42219
42815
|
access: "view"
|
|
42220
42816
|
},
|
|
42817
|
+
"fanControl.getStatus": {
|
|
42818
|
+
capName: "fan-control",
|
|
42819
|
+
capScope: "device",
|
|
42820
|
+
addonId: null,
|
|
42821
|
+
access: "view"
|
|
42822
|
+
},
|
|
42221
42823
|
"fanControl.setDirection": {
|
|
42222
42824
|
capName: "fan-control",
|
|
42223
42825
|
capScope: "device",
|
|
@@ -42242,6 +42844,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42242
42844
|
addonId: null,
|
|
42243
42845
|
access: "create"
|
|
42244
42846
|
},
|
|
42847
|
+
"featureProbe.getStatus": {
|
|
42848
|
+
capName: "feature-probe",
|
|
42849
|
+
capScope: "device",
|
|
42850
|
+
addonId: null,
|
|
42851
|
+
access: "view"
|
|
42852
|
+
},
|
|
42245
42853
|
"filesystemBrowse.browse": {
|
|
42246
42854
|
capName: "filesystem-browse",
|
|
42247
42855
|
capScope: "system",
|
|
@@ -42260,6 +42868,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42260
42868
|
addonId: null,
|
|
42261
42869
|
access: "view"
|
|
42262
42870
|
},
|
|
42871
|
+
"flood.getStatus": {
|
|
42872
|
+
capName: "flood",
|
|
42873
|
+
capScope: "device",
|
|
42874
|
+
addonId: null,
|
|
42875
|
+
access: "view"
|
|
42876
|
+
},
|
|
42877
|
+
"gas.getStatus": {
|
|
42878
|
+
capName: "gas",
|
|
42879
|
+
capScope: "device",
|
|
42880
|
+
addonId: null,
|
|
42881
|
+
access: "view"
|
|
42882
|
+
},
|
|
42883
|
+
"humidifier.getStatus": {
|
|
42884
|
+
capName: "humidifier",
|
|
42885
|
+
capScope: "device",
|
|
42886
|
+
addonId: null,
|
|
42887
|
+
access: "view"
|
|
42888
|
+
},
|
|
42263
42889
|
"humidifier.setMode": {
|
|
42264
42890
|
capName: "humidifier",
|
|
42265
42891
|
capScope: "device",
|
|
@@ -42278,12 +42904,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42278
42904
|
addonId: null,
|
|
42279
42905
|
access: "create"
|
|
42280
42906
|
},
|
|
42907
|
+
"humiditySensor.getStatus": {
|
|
42908
|
+
capName: "humidity-sensor",
|
|
42909
|
+
capScope: "device",
|
|
42910
|
+
addonId: null,
|
|
42911
|
+
access: "view"
|
|
42912
|
+
},
|
|
42913
|
+
"image.getStatus": {
|
|
42914
|
+
capName: "image",
|
|
42915
|
+
capScope: "device",
|
|
42916
|
+
addonId: null,
|
|
42917
|
+
access: "view"
|
|
42918
|
+
},
|
|
42281
42919
|
"imageSettings.getOptions": {
|
|
42282
42920
|
capName: "image-settings",
|
|
42283
42921
|
capScope: "device",
|
|
42284
42922
|
addonId: null,
|
|
42285
42923
|
access: "view"
|
|
42286
42924
|
},
|
|
42925
|
+
"imageSettings.getStatus": {
|
|
42926
|
+
capName: "image-settings",
|
|
42927
|
+
capScope: "device",
|
|
42928
|
+
addonId: null,
|
|
42929
|
+
access: "view"
|
|
42930
|
+
},
|
|
42287
42931
|
"imageSettings.setSettings": {
|
|
42288
42932
|
capName: "image-settings",
|
|
42289
42933
|
capScope: "device",
|
|
@@ -42356,6 +43000,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42356
43000
|
addonId: null,
|
|
42357
43001
|
access: "create"
|
|
42358
43002
|
},
|
|
43003
|
+
"intercom.getStatus": {
|
|
43004
|
+
capName: "intercom",
|
|
43005
|
+
capScope: "device",
|
|
43006
|
+
addonId: null,
|
|
43007
|
+
access: "view"
|
|
43008
|
+
},
|
|
42359
43009
|
"intercom.handleAnswer": {
|
|
42360
43010
|
capName: "intercom",
|
|
42361
43011
|
capScope: "device",
|
|
@@ -42392,6 +43042,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42392
43042
|
addonId: null,
|
|
42393
43043
|
access: "create"
|
|
42394
43044
|
},
|
|
43045
|
+
"lawnMowerControl.getStatus": {
|
|
43046
|
+
capName: "lawn-mower-control",
|
|
43047
|
+
capScope: "device",
|
|
43048
|
+
addonId: null,
|
|
43049
|
+
access: "view"
|
|
43050
|
+
},
|
|
42395
43051
|
"lawnMowerControl.pause": {
|
|
42396
43052
|
capName: "lawn-mower-control",
|
|
42397
43053
|
capScope: "device",
|
|
@@ -42674,6 +43330,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42674
43330
|
addonId: null,
|
|
42675
43331
|
access: "create"
|
|
42676
43332
|
},
|
|
43333
|
+
"lockControl.getStatus": {
|
|
43334
|
+
capName: "lock-control",
|
|
43335
|
+
capScope: "device",
|
|
43336
|
+
addonId: null,
|
|
43337
|
+
access: "view"
|
|
43338
|
+
},
|
|
42677
43339
|
"lockControl.lock": {
|
|
42678
43340
|
capName: "lock-control",
|
|
42679
43341
|
capScope: "device",
|
|
@@ -42722,6 +43384,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42722
43384
|
addonId: null,
|
|
42723
43385
|
access: "view"
|
|
42724
43386
|
},
|
|
43387
|
+
"mediaPlayer.getStatus": {
|
|
43388
|
+
capName: "media-player",
|
|
43389
|
+
capScope: "device",
|
|
43390
|
+
addonId: null,
|
|
43391
|
+
access: "view"
|
|
43392
|
+
},
|
|
42725
43393
|
"mediaPlayer.next": {
|
|
42726
43394
|
capName: "media-player",
|
|
42727
43395
|
capScope: "device",
|
|
@@ -42914,6 +43582,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42914
43582
|
addonId: null,
|
|
42915
43583
|
access: "create"
|
|
42916
43584
|
},
|
|
43585
|
+
"motion.getStatus": {
|
|
43586
|
+
capName: "motion",
|
|
43587
|
+
capScope: "device",
|
|
43588
|
+
addonId: null,
|
|
43589
|
+
access: "view"
|
|
43590
|
+
},
|
|
42917
43591
|
"motion.isDetected": {
|
|
42918
43592
|
capName: "motion",
|
|
42919
43593
|
capScope: "device",
|
|
@@ -42926,6 +43600,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42926
43600
|
addonId: null,
|
|
42927
43601
|
access: "create"
|
|
42928
43602
|
},
|
|
43603
|
+
"motionDetection.applyDeviceSettingsPatch": {
|
|
43604
|
+
capName: "motion-detection",
|
|
43605
|
+
capScope: "device",
|
|
43606
|
+
addonId: null,
|
|
43607
|
+
access: "create"
|
|
43608
|
+
},
|
|
43609
|
+
"motionDetection.getDeviceLiveContribution": {
|
|
43610
|
+
capName: "motion-detection",
|
|
43611
|
+
capScope: "device",
|
|
43612
|
+
addonId: null,
|
|
43613
|
+
access: "view"
|
|
43614
|
+
},
|
|
43615
|
+
"motionDetection.getDeviceSettingsContribution": {
|
|
43616
|
+
capName: "motion-detection",
|
|
43617
|
+
capScope: "device",
|
|
43618
|
+
addonId: null,
|
|
43619
|
+
access: "view"
|
|
43620
|
+
},
|
|
42929
43621
|
"motionDetection.removeCamera": {
|
|
42930
43622
|
capName: "motion-detection",
|
|
42931
43623
|
capScope: "device",
|
|
@@ -42938,6 +43630,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42938
43630
|
addonId: null,
|
|
42939
43631
|
access: "delete"
|
|
42940
43632
|
},
|
|
43633
|
+
"motionTrigger.getStatus": {
|
|
43634
|
+
capName: "motion-trigger",
|
|
43635
|
+
capScope: "device",
|
|
43636
|
+
addonId: null,
|
|
43637
|
+
access: "view"
|
|
43638
|
+
},
|
|
42941
43639
|
"motionTrigger.setMotionTrigger": {
|
|
42942
43640
|
capName: "motion-trigger",
|
|
42943
43641
|
capScope: "device",
|
|
@@ -42950,6 +43648,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42950
43648
|
addonId: null,
|
|
42951
43649
|
access: "view"
|
|
42952
43650
|
},
|
|
43651
|
+
"motionZones.getStatus": {
|
|
43652
|
+
capName: "motion-zones",
|
|
43653
|
+
capScope: "device",
|
|
43654
|
+
addonId: null,
|
|
43655
|
+
access: "view"
|
|
43656
|
+
},
|
|
42953
43657
|
"motionZones.setZone": {
|
|
42954
43658
|
capName: "motion-zones",
|
|
42955
43659
|
capScope: "device",
|
|
@@ -43010,6 +43714,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43010
43714
|
addonId: null,
|
|
43011
43715
|
access: "view"
|
|
43012
43716
|
},
|
|
43717
|
+
"nativeObjectDetection.getStatus": {
|
|
43718
|
+
capName: "native-object-detection",
|
|
43719
|
+
capScope: "device",
|
|
43720
|
+
addonId: null,
|
|
43721
|
+
access: "view"
|
|
43722
|
+
},
|
|
43013
43723
|
"nativeObjectDetection.setEnabled": {
|
|
43014
43724
|
capName: "native-object-detection",
|
|
43015
43725
|
capScope: "device",
|
|
@@ -43028,6 +43738,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43028
43738
|
addonId: null,
|
|
43029
43739
|
access: "view"
|
|
43030
43740
|
},
|
|
43741
|
+
"navigation.getStatus": {
|
|
43742
|
+
capName: "navigation",
|
|
43743
|
+
capScope: "device",
|
|
43744
|
+
addonId: null,
|
|
43745
|
+
access: "view"
|
|
43746
|
+
},
|
|
43031
43747
|
"navigation.goToPoint": {
|
|
43032
43748
|
capName: "navigation",
|
|
43033
43749
|
capScope: "device",
|
|
@@ -43112,6 +43828,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43112
43828
|
addonId: null,
|
|
43113
43829
|
access: "create"
|
|
43114
43830
|
},
|
|
43831
|
+
"networkLink.getStatus": {
|
|
43832
|
+
capName: "network-link",
|
|
43833
|
+
capScope: "device",
|
|
43834
|
+
addonId: null,
|
|
43835
|
+
access: "view"
|
|
43836
|
+
},
|
|
43115
43837
|
"networkQuality.getAllStats": {
|
|
43116
43838
|
capName: "network-quality",
|
|
43117
43839
|
capScope: "system",
|
|
@@ -43370,18 +44092,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43370
44092
|
addonId: null,
|
|
43371
44093
|
access: "create"
|
|
43372
44094
|
},
|
|
44095
|
+
"notifier.getStatus": {
|
|
44096
|
+
capName: "notifier",
|
|
44097
|
+
capScope: "device",
|
|
44098
|
+
addonId: null,
|
|
44099
|
+
access: "view"
|
|
44100
|
+
},
|
|
43373
44101
|
"notifier.send": {
|
|
43374
44102
|
capName: "notifier",
|
|
43375
44103
|
capScope: "device",
|
|
43376
44104
|
addonId: null,
|
|
43377
44105
|
access: "create"
|
|
43378
44106
|
},
|
|
44107
|
+
"numericSensor.getStatus": {
|
|
44108
|
+
capName: "numeric-sensor",
|
|
44109
|
+
capScope: "device",
|
|
44110
|
+
addonId: null,
|
|
44111
|
+
access: "view"
|
|
44112
|
+
},
|
|
43379
44113
|
"oauthIntegration.getDescriptor": {
|
|
43380
44114
|
capName: "oauth-integration",
|
|
43381
44115
|
capScope: "system",
|
|
43382
44116
|
addonId: null,
|
|
43383
44117
|
access: "view"
|
|
43384
44118
|
},
|
|
44119
|
+
"osd.getStatus": {
|
|
44120
|
+
capName: "osd",
|
|
44121
|
+
capScope: "device",
|
|
44122
|
+
addonId: null,
|
|
44123
|
+
access: "view"
|
|
44124
|
+
},
|
|
43385
44125
|
"osd.setOverlay": {
|
|
43386
44126
|
capName: "osd",
|
|
43387
44127
|
capScope: "device",
|
|
@@ -43454,6 +44194,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43454
44194
|
addonId: null,
|
|
43455
44195
|
access: "create"
|
|
43456
44196
|
},
|
|
44197
|
+
"petFeeder.getStatus": {
|
|
44198
|
+
capName: "pet-feeder",
|
|
44199
|
+
capScope: "device",
|
|
44200
|
+
addonId: null,
|
|
44201
|
+
access: "view"
|
|
44202
|
+
},
|
|
43457
44203
|
"petFeeder.markFoodReplenished": {
|
|
43458
44204
|
capName: "pet-feeder",
|
|
43459
44205
|
capScope: "device",
|
|
@@ -43496,6 +44242,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43496
44242
|
addonId: null,
|
|
43497
44243
|
access: "create"
|
|
43498
44244
|
},
|
|
44245
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": {
|
|
44246
|
+
capName: "pipeline-analytics",
|
|
44247
|
+
capScope: "device",
|
|
44248
|
+
addonId: null,
|
|
44249
|
+
access: "create"
|
|
44250
|
+
},
|
|
43499
44251
|
"pipelineAnalytics.cancelRelocateMedia": {
|
|
43500
44252
|
capName: "pipeline-analytics",
|
|
43501
44253
|
capScope: "device",
|
|
@@ -43562,6 +44314,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43562
44314
|
addonId: null,
|
|
43563
44315
|
access: "view"
|
|
43564
44316
|
},
|
|
44317
|
+
"pipelineAnalytics.getDeviceLiveContribution": {
|
|
44318
|
+
capName: "pipeline-analytics",
|
|
44319
|
+
capScope: "device",
|
|
44320
|
+
addonId: null,
|
|
44321
|
+
access: "view"
|
|
44322
|
+
},
|
|
44323
|
+
"pipelineAnalytics.getDeviceSettingsContribution": {
|
|
44324
|
+
capName: "pipeline-analytics",
|
|
44325
|
+
capScope: "device",
|
|
44326
|
+
addonId: null,
|
|
44327
|
+
access: "view"
|
|
44328
|
+
},
|
|
43565
44329
|
"pipelineAnalytics.getEventDensity": {
|
|
43566
44330
|
capName: "pipeline-analytics",
|
|
43567
44331
|
capScope: "device",
|
|
@@ -44132,6 +44896,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44132
44896
|
addonId: null,
|
|
44133
44897
|
access: "view"
|
|
44134
44898
|
},
|
|
44899
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": {
|
|
44900
|
+
capName: "pipeline-orchestrator",
|
|
44901
|
+
capScope: "system",
|
|
44902
|
+
addonId: null,
|
|
44903
|
+
access: "create"
|
|
44904
|
+
},
|
|
44135
44905
|
"pipelineOrchestrator.assignAudio": {
|
|
44136
44906
|
capName: "pipeline-orchestrator",
|
|
44137
44907
|
capScope: "system",
|
|
@@ -44222,6 +44992,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44222
44992
|
addonId: null,
|
|
44223
44993
|
access: "view"
|
|
44224
44994
|
},
|
|
44995
|
+
"pipelineOrchestrator.getDeviceLiveContribution": {
|
|
44996
|
+
capName: "pipeline-orchestrator",
|
|
44997
|
+
capScope: "system",
|
|
44998
|
+
addonId: null,
|
|
44999
|
+
access: "view"
|
|
45000
|
+
},
|
|
45001
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": {
|
|
45002
|
+
capName: "pipeline-orchestrator",
|
|
45003
|
+
capScope: "system",
|
|
45004
|
+
addonId: null,
|
|
45005
|
+
access: "view"
|
|
45006
|
+
},
|
|
44225
45007
|
"pipelineOrchestrator.getGlobalMetrics": {
|
|
44226
45008
|
capName: "pipeline-orchestrator",
|
|
44227
45009
|
capScope: "system",
|
|
@@ -44630,12 +45412,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44630
45412
|
addonId: null,
|
|
44631
45413
|
access: "view"
|
|
44632
45414
|
},
|
|
45415
|
+
"powerMeter.getStatus": {
|
|
45416
|
+
capName: "power-meter",
|
|
45417
|
+
capScope: "device",
|
|
45418
|
+
addonId: null,
|
|
45419
|
+
access: "view"
|
|
45420
|
+
},
|
|
45421
|
+
"presence.getStatus": {
|
|
45422
|
+
capName: "presence",
|
|
45423
|
+
capScope: "device",
|
|
45424
|
+
addonId: null,
|
|
45425
|
+
access: "view"
|
|
45426
|
+
},
|
|
45427
|
+
"pressureSensor.getStatus": {
|
|
45428
|
+
capName: "pressure-sensor",
|
|
45429
|
+
capScope: "device",
|
|
45430
|
+
addonId: null,
|
|
45431
|
+
access: "view"
|
|
45432
|
+
},
|
|
44633
45433
|
"privacyMask.getOptions": {
|
|
44634
45434
|
capName: "privacy-mask",
|
|
44635
45435
|
capScope: "device",
|
|
44636
45436
|
addonId: null,
|
|
44637
45437
|
access: "view"
|
|
44638
45438
|
},
|
|
45439
|
+
"privacyMask.getStatus": {
|
|
45440
|
+
capName: "privacy-mask",
|
|
45441
|
+
capScope: "device",
|
|
45442
|
+
addonId: null,
|
|
45443
|
+
access: "view"
|
|
45444
|
+
},
|
|
44639
45445
|
"privacyMask.setAudioEnabled": {
|
|
44640
45446
|
capName: "privacy-mask",
|
|
44641
45447
|
capScope: "device",
|
|
@@ -44696,6 +45502,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44696
45502
|
addonId: null,
|
|
44697
45503
|
access: "view"
|
|
44698
45504
|
},
|
|
45505
|
+
"ptz.getStatus": {
|
|
45506
|
+
capName: "ptz",
|
|
45507
|
+
capScope: "device",
|
|
45508
|
+
addonId: null,
|
|
45509
|
+
access: "view"
|
|
45510
|
+
},
|
|
44699
45511
|
"ptz.goHome": {
|
|
44700
45512
|
capName: "ptz",
|
|
44701
45513
|
capScope: "device",
|
|
@@ -44774,6 +45586,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44774
45586
|
addonId: null,
|
|
44775
45587
|
access: "create"
|
|
44776
45588
|
},
|
|
45589
|
+
"recording.applyDeviceSettingsPatch": {
|
|
45590
|
+
capName: "recording",
|
|
45591
|
+
capScope: "system",
|
|
45592
|
+
addonId: null,
|
|
45593
|
+
access: "create"
|
|
45594
|
+
},
|
|
44777
45595
|
"recording.cancelRelocateJob": {
|
|
44778
45596
|
capName: "recording",
|
|
44779
45597
|
capScope: "system",
|
|
@@ -44822,6 +45640,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44822
45640
|
addonId: null,
|
|
44823
45641
|
access: "view"
|
|
44824
45642
|
},
|
|
45643
|
+
"recording.getDeviceLiveContribution": {
|
|
45644
|
+
capName: "recording",
|
|
45645
|
+
capScope: "system",
|
|
45646
|
+
addonId: null,
|
|
45647
|
+
access: "view"
|
|
45648
|
+
},
|
|
45649
|
+
"recording.getDeviceSettingsContribution": {
|
|
45650
|
+
capName: "recording",
|
|
45651
|
+
capScope: "system",
|
|
45652
|
+
addonId: null,
|
|
45653
|
+
access: "view"
|
|
45654
|
+
},
|
|
44825
45655
|
"recording.getPlacement": {
|
|
44826
45656
|
capName: "recording",
|
|
44827
45657
|
capScope: "system",
|
|
@@ -44840,6 +45670,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
44840
45670
|
addonId: null,
|
|
44841
45671
|
access: "view"
|
|
44842
45672
|
},
|
|
45673
|
+
"recording.getStatus": {
|
|
45674
|
+
capName: "recording",
|
|
45675
|
+
capScope: "system",
|
|
45676
|
+
addonId: null,
|
|
45677
|
+
access: "view"
|
|
45678
|
+
},
|
|
44843
45679
|
"recording.getStorageMigrationMoveStatus": {
|
|
44844
45680
|
capName: "recording",
|
|
44845
45681
|
capScope: "system",
|
|
@@ -45044,6 +45880,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45044
45880
|
addonId: null,
|
|
45045
45881
|
access: "delete"
|
|
45046
45882
|
},
|
|
45883
|
+
"sceneMonitor.getStatus": {
|
|
45884
|
+
capName: "scene-monitor",
|
|
45885
|
+
capScope: "device",
|
|
45886
|
+
addonId: null,
|
|
45887
|
+
access: "view"
|
|
45888
|
+
},
|
|
45047
45889
|
"sceneMonitor.listScenes": {
|
|
45048
45890
|
capName: "scene-monitor",
|
|
45049
45891
|
capScope: "device",
|
|
@@ -45074,6 +45916,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45074
45916
|
addonId: null,
|
|
45075
45917
|
access: "create"
|
|
45076
45918
|
},
|
|
45919
|
+
"scriptRunner.getStatus": {
|
|
45920
|
+
capName: "script-runner",
|
|
45921
|
+
capScope: "device",
|
|
45922
|
+
addonId: null,
|
|
45923
|
+
access: "view"
|
|
45924
|
+
},
|
|
45077
45925
|
"scriptRunner.run": {
|
|
45078
45926
|
capName: "script-runner",
|
|
45079
45927
|
capScope: "device",
|
|
@@ -45206,6 +46054,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45206
46054
|
addonId: null,
|
|
45207
46055
|
access: "create"
|
|
45208
46056
|
},
|
|
46057
|
+
"smoke.getStatus": {
|
|
46058
|
+
capName: "smoke",
|
|
46059
|
+
capScope: "device",
|
|
46060
|
+
addonId: null,
|
|
46061
|
+
access: "view"
|
|
46062
|
+
},
|
|
45209
46063
|
"smtpProvider.getStatus": {
|
|
45210
46064
|
capName: "smtp-provider",
|
|
45211
46065
|
capScope: "system",
|
|
@@ -45224,12 +46078,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45224
46078
|
addonId: null,
|
|
45225
46079
|
access: "view"
|
|
45226
46080
|
},
|
|
46081
|
+
"snapshot.applyDeviceSettingsPatch": {
|
|
46082
|
+
capName: "snapshot",
|
|
46083
|
+
capScope: "device",
|
|
46084
|
+
addonId: null,
|
|
46085
|
+
access: "create"
|
|
46086
|
+
},
|
|
45227
46087
|
"snapshot.getDebugState": {
|
|
45228
46088
|
capName: "snapshot",
|
|
45229
46089
|
capScope: "device",
|
|
45230
46090
|
addonId: null,
|
|
45231
46091
|
access: "view"
|
|
45232
46092
|
},
|
|
46093
|
+
"snapshot.getDeviceLiveContribution": {
|
|
46094
|
+
capName: "snapshot",
|
|
46095
|
+
capScope: "device",
|
|
46096
|
+
addonId: null,
|
|
46097
|
+
access: "view"
|
|
46098
|
+
},
|
|
46099
|
+
"snapshot.getDeviceSettingsContribution": {
|
|
46100
|
+
capName: "snapshot",
|
|
46101
|
+
capScope: "device",
|
|
46102
|
+
addonId: null,
|
|
46103
|
+
access: "view"
|
|
46104
|
+
},
|
|
45233
46105
|
"snapshot.getSnapshot": {
|
|
45234
46106
|
capName: "snapshot",
|
|
45235
46107
|
capScope: "device",
|
|
@@ -45248,6 +46120,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45248
46120
|
addonId: null,
|
|
45249
46121
|
access: "view"
|
|
45250
46122
|
},
|
|
46123
|
+
"snapshot.getStatus": {
|
|
46124
|
+
capName: "snapshot",
|
|
46125
|
+
capScope: "device",
|
|
46126
|
+
addonId: null,
|
|
46127
|
+
access: "view"
|
|
46128
|
+
},
|
|
45251
46129
|
"snapshot.invalidateCache": {
|
|
45252
46130
|
capName: "snapshot",
|
|
45253
46131
|
capScope: "device",
|
|
@@ -45584,6 +46462,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45584
46462
|
addonId: null,
|
|
45585
46463
|
access: "create"
|
|
45586
46464
|
},
|
|
46465
|
+
"streamBroker.applyDeviceSettingsPatch": {
|
|
46466
|
+
capName: "stream-broker",
|
|
46467
|
+
capScope: "system",
|
|
46468
|
+
addonId: null,
|
|
46469
|
+
access: "create"
|
|
46470
|
+
},
|
|
45587
46471
|
"streamBroker.assignProfile": {
|
|
45588
46472
|
capName: "stream-broker",
|
|
45589
46473
|
capScope: "system",
|
|
@@ -45620,6 +46504,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45620
46504
|
addonId: null,
|
|
45621
46505
|
access: "view"
|
|
45622
46506
|
},
|
|
46507
|
+
"streamBroker.getDeviceLiveContribution": {
|
|
46508
|
+
capName: "stream-broker",
|
|
46509
|
+
capScope: "system",
|
|
46510
|
+
addonId: null,
|
|
46511
|
+
access: "view"
|
|
46512
|
+
},
|
|
46513
|
+
"streamBroker.getDeviceSettingsContribution": {
|
|
46514
|
+
capName: "stream-broker",
|
|
46515
|
+
capScope: "system",
|
|
46516
|
+
addonId: null,
|
|
46517
|
+
access: "view"
|
|
46518
|
+
},
|
|
45623
46519
|
"streamBroker.getPreBufferInfo": {
|
|
45624
46520
|
capName: "stream-broker",
|
|
45625
46521
|
capScope: "system",
|
|
@@ -45818,6 +46714,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45818
46714
|
addonId: null,
|
|
45819
46715
|
access: "view"
|
|
45820
46716
|
},
|
|
46717
|
+
"streamParams.getStatus": {
|
|
46718
|
+
capName: "stream-params",
|
|
46719
|
+
capScope: "device",
|
|
46720
|
+
addonId: null,
|
|
46721
|
+
access: "view"
|
|
46722
|
+
},
|
|
45821
46723
|
"streamParams.setProfile": {
|
|
45822
46724
|
capName: "stream-params",
|
|
45823
46725
|
capScope: "device",
|
|
@@ -45830,6 +46732,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45830
46732
|
addonId: null,
|
|
45831
46733
|
access: "view"
|
|
45832
46734
|
},
|
|
46735
|
+
"switch.getStatus": {
|
|
46736
|
+
capName: "switch",
|
|
46737
|
+
capScope: "device",
|
|
46738
|
+
addonId: null,
|
|
46739
|
+
access: "view"
|
|
46740
|
+
},
|
|
45833
46741
|
"switch.setState": {
|
|
45834
46742
|
capName: "switch",
|
|
45835
46743
|
capScope: "device",
|
|
@@ -45926,6 +46834,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45926
46834
|
addonId: null,
|
|
45927
46835
|
access: "create"
|
|
45928
46836
|
},
|
|
46837
|
+
"tamper.getStatus": {
|
|
46838
|
+
capName: "tamper",
|
|
46839
|
+
capScope: "device",
|
|
46840
|
+
addonId: null,
|
|
46841
|
+
access: "view"
|
|
46842
|
+
},
|
|
46843
|
+
"temperatureSensor.getStatus": {
|
|
46844
|
+
capName: "temperature-sensor",
|
|
46845
|
+
capScope: "device",
|
|
46846
|
+
addonId: null,
|
|
46847
|
+
access: "view"
|
|
46848
|
+
},
|
|
45929
46849
|
"terminalSession.adoptLegacyMonitor": {
|
|
45930
46850
|
capName: "terminal-session",
|
|
45931
46851
|
capScope: "system",
|
|
@@ -46022,6 +46942,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46022
46942
|
addonId: null,
|
|
46023
46943
|
access: "view"
|
|
46024
46944
|
},
|
|
46945
|
+
"update.getStatus": {
|
|
46946
|
+
capName: "update",
|
|
46947
|
+
capScope: "device",
|
|
46948
|
+
addonId: null,
|
|
46949
|
+
access: "view"
|
|
46950
|
+
},
|
|
46025
46951
|
"update.installUpdate": {
|
|
46026
46952
|
capName: "update",
|
|
46027
46953
|
capScope: "device",
|
|
@@ -46244,6 +47170,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46244
47170
|
addonId: null,
|
|
46245
47171
|
access: "create"
|
|
46246
47172
|
},
|
|
47173
|
+
"vacuumControl.getStatus": {
|
|
47174
|
+
capName: "vacuum-control",
|
|
47175
|
+
capScope: "device",
|
|
47176
|
+
addonId: null,
|
|
47177
|
+
access: "view"
|
|
47178
|
+
},
|
|
46247
47179
|
"vacuumControl.locate": {
|
|
46248
47180
|
capName: "vacuum-control",
|
|
46249
47181
|
capScope: "device",
|
|
@@ -46286,6 +47218,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46286
47218
|
addonId: null,
|
|
46287
47219
|
access: "create"
|
|
46288
47220
|
},
|
|
47221
|
+
"valve.getStatus": {
|
|
47222
|
+
capName: "valve",
|
|
47223
|
+
capScope: "device",
|
|
47224
|
+
addonId: null,
|
|
47225
|
+
access: "view"
|
|
47226
|
+
},
|
|
46289
47227
|
"valve.open": {
|
|
46290
47228
|
capName: "valve",
|
|
46291
47229
|
capScope: "device",
|
|
@@ -46358,6 +47296,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46358
47296
|
addonId: null,
|
|
46359
47297
|
access: "create"
|
|
46360
47298
|
},
|
|
47299
|
+
"vibration.getStatus": {
|
|
47300
|
+
capName: "vibration",
|
|
47301
|
+
capScope: "device",
|
|
47302
|
+
addonId: null,
|
|
47303
|
+
access: "view"
|
|
47304
|
+
},
|
|
46361
47305
|
"videoclips.getClipPlayback": {
|
|
46362
47306
|
capName: "videoclips",
|
|
46363
47307
|
capScope: "device",
|
|
@@ -46376,6 +47320,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46376
47320
|
addonId: null,
|
|
46377
47321
|
access: "view"
|
|
46378
47322
|
},
|
|
47323
|
+
"videoclips.readClipBytes": {
|
|
47324
|
+
capName: "videoclips",
|
|
47325
|
+
capScope: "device",
|
|
47326
|
+
addonId: null,
|
|
47327
|
+
access: "view"
|
|
47328
|
+
},
|
|
46379
47329
|
"viewerUi.getStaticDir": {
|
|
46380
47330
|
capName: "viewer-ui",
|
|
46381
47331
|
capScope: "system",
|
|
@@ -46388,6 +47338,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46388
47338
|
addonId: null,
|
|
46389
47339
|
access: "view"
|
|
46390
47340
|
},
|
|
47341
|
+
"waterHeater.getStatus": {
|
|
47342
|
+
capName: "water-heater",
|
|
47343
|
+
capScope: "device",
|
|
47344
|
+
addonId: null,
|
|
47345
|
+
access: "view"
|
|
47346
|
+
},
|
|
46391
47347
|
"waterHeater.setAway": {
|
|
46392
47348
|
capName: "water-heater",
|
|
46393
47349
|
capScope: "device",
|
|
@@ -46406,6 +47362,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46406
47362
|
addonId: null,
|
|
46407
47363
|
access: "create"
|
|
46408
47364
|
},
|
|
47365
|
+
"weather.getStatus": {
|
|
47366
|
+
capName: "weather",
|
|
47367
|
+
capScope: "device",
|
|
47368
|
+
addonId: null,
|
|
47369
|
+
access: "view"
|
|
47370
|
+
},
|
|
46409
47371
|
"webrtcSession.addIceCandidate": {
|
|
46410
47372
|
capName: "webrtc-session",
|
|
46411
47373
|
capScope: "device",
|
|
@@ -48394,6 +49356,11 @@ Object.freeze({
|
|
|
48394
49356
|
form: "single",
|
|
48395
49357
|
optional: false
|
|
48396
49358
|
}],
|
|
49359
|
+
"videoclips.readClipBytes": [{
|
|
49360
|
+
name: "deviceId",
|
|
49361
|
+
form: "single",
|
|
49362
|
+
optional: false
|
|
49363
|
+
}],
|
|
48397
49364
|
"waterHeater.setAway": [{
|
|
48398
49365
|
name: "deviceId",
|
|
48399
49366
|
form: "single",
|