@camstack/types 1.2.237 → 1.2.239
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/addon.js +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/capability-definition.d.ts +41 -1
- package/dist/capabilities/index.d.ts +4 -4
- package/dist/capabilities/recording-export.cap.d.ts +437 -20
- package/dist/capabilities/recording.cap.d.ts +12 -0
- package/dist/capabilities/videoclips.cap.d.ts +122 -0
- package/dist/generated/addon-api.d.ts +7 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/index.js +1144 -12
- package/dist/index.mjs +1148 -22
- package/dist/{sleep-CaB_hL5g.mjs → sleep-BVhJDJka.mjs} +15 -2
- package/dist/{sleep-Cqxm5OIN.js → sleep-C0n7gucP.js} +20 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-C0n7gucP.js");
|
|
3
3
|
const require_event_category = require("./event-category-BVfsrBYA.js");
|
|
4
4
|
const require_canonical_hash = require("./canonical-hash-CSE4ioRi.js");
|
|
5
5
|
const require_enums = require("./enums.js");
|
|
@@ -27462,6 +27462,77 @@ var ClipPlaybackSchema = zod.z.object({
|
|
|
27462
27462
|
* which days it asked for and got nothing — "no clips" would be a lie about a
|
|
27463
27463
|
* card that is full of them.
|
|
27464
27464
|
*/
|
|
27465
|
+
/**
|
|
27466
|
+
* The operator's authorisation to WAKE a sleeping camera for one clip read.
|
|
27467
|
+
*
|
|
27468
|
+
* ONE value, absent by default, and it is a `force`-shaped operator signal in
|
|
27469
|
+
* exactly the sense `snapshot-wake-gate.ts` uses the word: *"`snapshot.getSnapshot`'s
|
|
27470
|
+
* `force` flag, and nothing else… a background caller must never set it…
|
|
27471
|
+
* Stale but honest beats woken"*. A scheduler, a retry, a reconcile and a
|
|
27472
|
+
* prefetch never set it; a surface sets it only behind the same confirm the
|
|
27473
|
+
* "Wake and refresh" gesture uses, and it is refused below 15 % battery
|
|
27474
|
+
* exactly as that gesture is.
|
|
27475
|
+
*
|
|
27476
|
+
* The gate is decided BEFORE `getApi()`, because on UDP the login IS the wake
|
|
27477
|
+
* (D549) — a read that opened a session and then checked would have woken the
|
|
27478
|
+
* camera to find out it was not allowed to.
|
|
27479
|
+
*
|
|
27480
|
+
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
27481
|
+
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
27482
|
+
* it was proposed, it is free on the battery, and the operator declined it on
|
|
27483
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."*,
|
|
27484
|
+
* D558 "Considered and not taken").
|
|
27485
|
+
*/
|
|
27486
|
+
var ClipWakeSchema = zod.z.enum(["authorised"]);
|
|
27487
|
+
/**
|
|
27488
|
+
* Hard ceiling on ONE {@link videoclipsCapability.methods.readClipBytes} — the
|
|
27489
|
+
* same 50 MiB `RECORDING_EXPORT_MAX_READ_BYTES` uses, and for the same second
|
|
27490
|
+
* reason: the envelope is unary, so a base64 payload is held whole (~1.33× its
|
|
27491
|
+
* size) in the provider AND in the caller, on a hub this repo has already
|
|
27492
|
+
* OOM'd once (D9/D18).
|
|
27493
|
+
*
|
|
27494
|
+
* Measured clips sit far below it — 92 KB–2.29 MB for a sub twin, 455 KB for a
|
|
27495
|
+
* 16 s main clip — so the bound bites rarely. "Rarely" is not "never": a long
|
|
27496
|
+
* 4K main twin can exceed it, and above the bound the provider REFUSES with
|
|
27497
|
+
* the size in the message, never truncates. Half a video is worse than an
|
|
27498
|
+
* honest refusal.
|
|
27499
|
+
*
|
|
27500
|
+
* The clean follow-on is a CHUNKED read so a `high` twin of a long clip stops
|
|
27501
|
+
* being refusable at all. That is a later slice, named here so the bound is
|
|
27502
|
+
* not mistaken for a design ceiling.
|
|
27503
|
+
*/
|
|
27504
|
+
var VIDEOCLIPS_MAX_READ_BYTES = 50 * 1024 * 1024;
|
|
27505
|
+
/**
|
|
27506
|
+
* A clip's finished bytes, inline — the twin of `recordingExport.readExportBytes`.
|
|
27507
|
+
*
|
|
27508
|
+
* `bytes` is the DECODED length, so nobody infers it from the base64 length,
|
|
27509
|
+
* and `served` says which twin the caller actually got.
|
|
27510
|
+
*/
|
|
27511
|
+
var ClipBytesSchema = zod.z.object({
|
|
27512
|
+
base64: zod.z.string(),
|
|
27513
|
+
contentType: zod.z.string(),
|
|
27514
|
+
/** Suggested filename, extension included. */
|
|
27515
|
+
name: zod.z.string(),
|
|
27516
|
+
bytes: zod.z.number().int().nonnegative(),
|
|
27517
|
+
/**
|
|
27518
|
+
* Which twin was actually served — the same contract
|
|
27519
|
+
* {@link ClipPlaybackSchema.served} carries, and REQUIRED here because the
|
|
27520
|
+
* export record persists it: a row read a week later must say the same thing
|
|
27521
|
+
* the panel said at the moment of the tap. A missing main twin is never
|
|
27522
|
+
* served silently as if it were the asked-for quality (D549 15).
|
|
27523
|
+
*/
|
|
27524
|
+
served: require_sleep.CamProfileSchema,
|
|
27525
|
+
/**
|
|
27526
|
+
* The DECODED duration of the delivered file, when the fetch measured one.
|
|
27527
|
+
*
|
|
27528
|
+
* A clip fetch verifies its own completion against the catalog row and
|
|
27529
|
+
* retries a materially short pass (D568); this is that measurement, carried
|
|
27530
|
+
* so a consumer can say the same thing rather than re-deriving it. Absent
|
|
27531
|
+
* when the producer did not measure — never zero, which would say the file
|
|
27532
|
+
* is empty.
|
|
27533
|
+
*/
|
|
27534
|
+
durationMs: zod.z.number().positive().optional()
|
|
27535
|
+
});
|
|
27465
27536
|
var ClipSourceAvailabilitySchema = zod.z.object({
|
|
27466
27537
|
state: zod.z.enum([
|
|
27467
27538
|
"ok",
|
|
@@ -27633,6 +27704,68 @@ var videoclipsCapability = {
|
|
|
27633
27704
|
}), ClipPlaybackSchema, {
|
|
27634
27705
|
kind: "query",
|
|
27635
27706
|
auth: "protected"
|
|
27707
|
+
}),
|
|
27708
|
+
/**
|
|
27709
|
+
* This clip's BYTES, base64, bounded — the by-handle read a clip EXPORT
|
|
27710
|
+
* pulls once (D558).
|
|
27711
|
+
*
|
|
27712
|
+
* `getClipPlayback` is the right answer for a player: it hands back a URL
|
|
27713
|
+
* on a plane the hub serves `access:'authenticated'`, which a browser and a
|
|
27714
|
+
* viewer session satisfy. It is the wrong answer for another ADDON. There
|
|
27715
|
+
* is no addon→addon byte transport in this framework — `AddonDataPlane`
|
|
27716
|
+
* only lets an addon SERVE, on `127.0.0.1` behind a per-listener secret
|
|
27717
|
+
* only the hub may present — so a recorder that wants a camera's clip
|
|
27718
|
+
* cannot fetch that URL. This method is the one seam that exists for it,
|
|
27719
|
+
* and it is deliberately the same shape (and the same bound) as
|
|
27720
|
+
* `recordingExport.readExportBytes`, which exists for the mirror-image
|
|
27721
|
+
* reason.
|
|
27722
|
+
*
|
|
27723
|
+
* Routing needs no `provider` pin: the id is source-prefixed and
|
|
27724
|
+
* self-contained, so `device-collection-dispatch.ts` rule 3 hands the call
|
|
27725
|
+
* to the source that claims it — and an id nobody claims is REFUSED rather
|
|
27726
|
+
* than answered by another source.
|
|
27727
|
+
*
|
|
27728
|
+
* The producer reuses the fetch path it already has, completion rules
|
|
27729
|
+
* included: a clip is taken by cmd 5 and finished on a short idle window
|
|
27730
|
+
* whose result is PROVED against the catalog row's own span, retried once
|
|
27731
|
+
* when it comes up materially short, and served-and-named when it is still
|
|
27732
|
+
* short (D568). A second fetch with different completion rules is exactly
|
|
27733
|
+
* the second authority D558 refuses to create.
|
|
27734
|
+
*
|
|
27735
|
+
* Every refusal THROWS with its reason and none of them is silent — the
|
|
27736
|
+
* sleep gate (decided before `getApi()`, liftable only by
|
|
27737
|
+
* {@link ClipWakeSchema}), a catalog row nobody claims, a clip with no
|
|
27738
|
+
* bytes behind it, a mux that failed, and the size bound. The caller turns
|
|
27739
|
+
* that reason into an operator-facing one; a truncated file is never an
|
|
27740
|
+
* answer.
|
|
27741
|
+
*/
|
|
27742
|
+
readClipBytes: require_sleep.optionalMethod(zod.z.object({
|
|
27743
|
+
deviceId: zod.z.number(),
|
|
27744
|
+
clipId: zod.z.string().min(1),
|
|
27745
|
+
/**
|
|
27746
|
+
* Which twin to fetch, on the mapping D549 15 already fixed:
|
|
27747
|
+
* `low | mid` → the sub file, `high` → the main twin. `auto` is not
|
|
27748
|
+
* accepted here for the same reason it is not accepted by
|
|
27749
|
+
* `getClipPlayback` — a stored file has no broker session, so the
|
|
27750
|
+
* adaptive tier cannot be resolved for it.
|
|
27751
|
+
*/
|
|
27752
|
+
profile: require_sleep.CamProfileSchema.optional(),
|
|
27753
|
+
/**
|
|
27754
|
+
* The CALLER's byte bound, so an over-size clip is refused before it is
|
|
27755
|
+
* read and encoded rather than after. Capped by
|
|
27756
|
+
* {@link VIDEOCLIPS_MAX_READ_BYTES} whatever is passed; absent means
|
|
27757
|
+
* that ceiling.
|
|
27758
|
+
*/
|
|
27759
|
+
maxBytes: zod.z.number().int().positive().optional(),
|
|
27760
|
+
/**
|
|
27761
|
+
* The operator's authorisation to wake a sleeping camera for this
|
|
27762
|
+
* read. Absent — the default — means a sleeping standalone battery
|
|
27763
|
+
* camera is REFUSED by name, before any session is opened.
|
|
27764
|
+
*/
|
|
27765
|
+
wake: ClipWakeSchema.optional()
|
|
27766
|
+
}), ClipBytesSchema, {
|
|
27767
|
+
kind: "query",
|
|
27768
|
+
auth: "protected"
|
|
27636
27769
|
})
|
|
27637
27770
|
}
|
|
27638
27771
|
};
|
|
@@ -36787,9 +36920,21 @@ var recordingCapability = {
|
|
|
36787
36920
|
kind: "query",
|
|
36788
36921
|
auth: "admin"
|
|
36789
36922
|
}),
|
|
36923
|
+
/**
|
|
36924
|
+
* READ the camera's recording intent.
|
|
36925
|
+
*
|
|
36926
|
+
* `protected`, not `admin`, since 2026-09-21. It is the only per-camera
|
|
36927
|
+
* source of the recording mode the viewer has, and the camera status dot
|
|
36928
|
+
* asks for it on a screen every read-only user sees. As `admin` it answered
|
|
36929
|
+
* FORBIDDEN, the viewer collapsed that to `null` and `null` to `'off'`, and
|
|
36930
|
+
* a recording camera was drawn GREEN — a failed measurement rendered as a
|
|
36931
|
+
* value (D315, D393, D590). It carries schedules and retention, no secret,
|
|
36932
|
+
* and the per-device gate in `scope-access.ts` still applies; `setDeviceConfig`
|
|
36933
|
+
* stays `admin`.
|
|
36934
|
+
*/
|
|
36790
36935
|
getDeviceConfig: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), RecordingConfigSchema, {
|
|
36791
36936
|
kind: "query",
|
|
36792
|
-
auth: "
|
|
36937
|
+
auth: "protected"
|
|
36793
36938
|
}),
|
|
36794
36939
|
/** Locate footage at a wall-clock instant: the covering segment's window,
|
|
36795
36940
|
* or a gap with the forward nearest covered edge. Used by a feeder running
|
|
@@ -37153,13 +37298,135 @@ var ExportStateSchema = zod.z.enum([
|
|
|
37153
37298
|
"expired",
|
|
37154
37299
|
"deleted"
|
|
37155
37300
|
]);
|
|
37156
|
-
/**
|
|
37301
|
+
/**
|
|
37302
|
+
* A stretch of footage THIS system recorded — the only thing `createExport`
|
|
37303
|
+
* could export before D558, and still the shape every legacy caller sends.
|
|
37304
|
+
*/
|
|
37305
|
+
var ExportFootageSubjectSchema = zod.z.object({
|
|
37306
|
+
kind: zod.z.literal("footage"),
|
|
37307
|
+
deviceId: zod.z.number(),
|
|
37308
|
+
profiles: zod.z.array(zod.z.string()).min(1),
|
|
37309
|
+
fromMs: zod.z.number(),
|
|
37310
|
+
toMs: zod.z.number()
|
|
37311
|
+
});
|
|
37312
|
+
/**
|
|
37313
|
+
* A CLIP — a finished file with boundaries the camera chose, listed by one of
|
|
37314
|
+
* the device's `videoclips` sources.
|
|
37315
|
+
*
|
|
37316
|
+
* There is deliberately **no `fromMs`/`toMs` here**. The camera chose them,
|
|
37317
|
+
* no surface on this path asks for them (there is no drag and no
|
|
37318
|
+
* `datetime-local` pair — D558 § 5.4.3), and they reach the record only as the
|
|
37319
|
+
* projection. A range in the subject would be a second place the boundaries
|
|
37320
|
+
* live and the one a caller could get wrong.
|
|
37321
|
+
*
|
|
37322
|
+
* `provider` is the **addonId** of the source's serving addon — the `provider`
|
|
37323
|
+
* pin `videoclips.listClips` REQUIRES since D554 was amended on 2026-09-20.
|
|
37324
|
+
* There was never a default: a bare call fanned out and returned the union of
|
|
37325
|
+
* every source with `limit` meaning `limit × sources`. The catalog check that
|
|
37326
|
+
* validates this subject names it, so it asks exactly the source the operator
|
|
37327
|
+
* picked.
|
|
37328
|
+
*
|
|
37329
|
+
* `source` is that source's id (the namespace `clipId` is prefixed with), and
|
|
37330
|
+
* `sourceLabel` is its operator-facing name FROZEN at creation — a history row
|
|
37331
|
+
* still reads "SD card" after the source is unbound.
|
|
37332
|
+
*
|
|
37333
|
+
* `profile` is exactly ONE, and it is what was ASKED. What was SERVED lands on
|
|
37334
|
+
* the record's top-level `profile`, so a clip with no main twin renders the
|
|
37335
|
+
* divergence instead of hiding it (D549 15; measured on 592, 17 of 546 clips
|
|
37336
|
+
* had no main twin, so a silent fallback would be right 96.9 % of the time).
|
|
37337
|
+
* `auto` is not a member: a stored file has no broker session, so the adaptive
|
|
37338
|
+
* tier cannot be resolved for it.
|
|
37339
|
+
*/
|
|
37340
|
+
var ExportClipSubjectSchema = zod.z.object({
|
|
37341
|
+
kind: zod.z.literal("clip"),
|
|
37342
|
+
deviceId: zod.z.number(),
|
|
37343
|
+
provider: zod.z.string().min(1),
|
|
37344
|
+
source: zod.z.string().min(1),
|
|
37345
|
+
sourceLabel: zod.z.string().min(1),
|
|
37346
|
+
clipId: zod.z.string().min(1),
|
|
37347
|
+
/**
|
|
37348
|
+
* WHERE IN THE CATALOG to confirm this clip — the day window the surface was
|
|
37349
|
+
* already listing when the operator picked the segment.
|
|
37350
|
+
*
|
|
37351
|
+
* It is **not** a time range control and it never becomes one: the record's
|
|
37352
|
+
* `fromMs`/`toMs` come from the catalog ROW and from nothing a caller
|
|
37353
|
+
* supplied (D558 § 5.4.3), and a window that does not contain the clip is a
|
|
37354
|
+
* `catalog-miss`, not a silently wider search. It exists because
|
|
37355
|
+
* `videoclips.listClips` takes `since`/`until` and has no by-handle twin:
|
|
37356
|
+
* the catalog check D558 asks for is literally that call, and a call needs a
|
|
37357
|
+
* window. The surface has one — `ClipsBrowser`'s `dayWindow`, one local
|
|
37358
|
+
* wall-clock day, which is also the only width measured to be cheap (one
|
|
37359
|
+
* day on 592 lists 171 clips in 712 ms, a busy day 546 in 2.0 s; twenty days
|
|
37360
|
+
* of one child's events took 3.6–5.4 s).
|
|
37361
|
+
*/
|
|
37362
|
+
catalogWindow: zod.z.object({
|
|
37363
|
+
sinceMs: zod.z.number(),
|
|
37364
|
+
untilMs: zod.z.number()
|
|
37365
|
+
}),
|
|
37366
|
+
profile: zod.z.enum([
|
|
37367
|
+
"high",
|
|
37368
|
+
"mid",
|
|
37369
|
+
"low"
|
|
37370
|
+
]),
|
|
37371
|
+
/**
|
|
37372
|
+
* The operator's authorisation to wake a sleeping camera for this export.
|
|
37373
|
+
* ONE definition, in the cap that owns the clip read ({@link ClipWakeSchema}),
|
|
37374
|
+
* because the gate that honours it is the clip provider's sleep gate — a
|
|
37375
|
+
* second enum here would be a second contract. Absent by default; never
|
|
37376
|
+
* settable by a scheduler or a retry.
|
|
37377
|
+
*
|
|
37378
|
+
* **One authorised yes is ONE wake.** A failed clip export is retried only by
|
|
37379
|
+
* an operator act that asks again; a queued job that outlived its wake fails
|
|
37380
|
+
* with a reason rather than waking on its turn; and this subject carries
|
|
37381
|
+
* exactly one profile precisely so one tap is never two fetches (D558 § 5.2).
|
|
37382
|
+
*/
|
|
37383
|
+
wake: ClipWakeSchema.optional()
|
|
37384
|
+
});
|
|
37385
|
+
/**
|
|
37386
|
+
* WHAT an export is — the authority, as opposed to the four top-level fields
|
|
37387
|
+
* the Library sorts and labels on (D558 § 2.2).
|
|
37388
|
+
*
|
|
37389
|
+
* Read it through {@link exportSubjectOf}, never off the record directly: the
|
|
37390
|
+
* field is optional for the history rows written before it existed, and that
|
|
37391
|
+
* absence has exactly one interpreter.
|
|
37392
|
+
*/
|
|
37393
|
+
var ExportSubjectSchema = zod.z.discriminatedUnion("kind", [ExportFootageSubjectSchema, ExportClipSubjectSchema]);
|
|
37394
|
+
/**
|
|
37395
|
+
* One export job / history row.
|
|
37396
|
+
*
|
|
37397
|
+
* **`subject` is the AUTHORITY on what was exported. `deviceId`, `profile`,
|
|
37398
|
+
* `fromMs` and `toMs` are its PROJECTION** — kept top-level because the whole
|
|
37399
|
+
* Library sorts and labels on them (`library-items.ts` orders an export by
|
|
37400
|
+
* `fromMs`; `export-format.ts` draws `rangeLabel` from the pair), and a row
|
|
37401
|
+
* that did not fill them would sort under the epoch and render a blank range.
|
|
37402
|
+
* Write to the subject and read from the projection and the two will disagree;
|
|
37403
|
+
* the projection is derived at creation and never edited afterwards.
|
|
37404
|
+
*
|
|
37405
|
+
* And they mean DIFFERENT FACTS for the two kinds, which is the part a reader
|
|
37406
|
+
* who knows only the recording export will get wrong:
|
|
37407
|
+
*
|
|
37408
|
+
* | field | `kind:'footage'` | `kind:'clip'` |
|
|
37409
|
+
* | --- | --- | --- |
|
|
37410
|
+
* | `fromMs`/`toMs` | the stretch the operator ASKED for | the camera's own boundaries, always `clip.timeRange`, never anything a caller supplied |
|
|
37411
|
+
* | `profile` | the stream rendered | the twin actually SERVED (`subject.profile` is the one asked for) |
|
|
37412
|
+
*
|
|
37413
|
+
* Same type, different fact — the shape this repo keeps getting wrong (D385's
|
|
37414
|
+
* two authorities, D224's second copy).
|
|
37415
|
+
*/
|
|
37157
37416
|
var ExportRecordSchema = zod.z.object({
|
|
37158
37417
|
id: zod.z.string(),
|
|
37159
37418
|
deviceId: zod.z.number(),
|
|
37160
37419
|
profile: zod.z.string(),
|
|
37161
37420
|
fromMs: zod.z.number(),
|
|
37162
37421
|
toMs: zod.z.number(),
|
|
37422
|
+
/**
|
|
37423
|
+
* What this export IS. Optional ONLY for the rows written before D558: the
|
|
37424
|
+
* store parses every row through this schema on every read, so a required
|
|
37425
|
+
* field would make the export AUDIT — which is the whole reason rows survive
|
|
37426
|
+
* file deletion — unreadable in one release. Absence means `footage`, and
|
|
37427
|
+
* {@link exportSubjectOf} is the one place that says so.
|
|
37428
|
+
*/
|
|
37429
|
+
subject: ExportSubjectSchema.optional(),
|
|
37163
37430
|
options: ExportOptionsSchema,
|
|
37164
37431
|
state: ExportStateSchema,
|
|
37165
37432
|
/** 0–100 while rendering; null otherwise. */
|
|
@@ -37176,6 +37443,49 @@ var ExportRecordSchema = zod.z.object({
|
|
|
37176
37443
|
/** Failure reason when state is 'failed'; null otherwise. */
|
|
37177
37444
|
error: zod.z.string().nullable()
|
|
37178
37445
|
});
|
|
37446
|
+
/**
|
|
37447
|
+
* Every way a clip export can fail, as a TOKEN — never prose.
|
|
37448
|
+
*
|
|
37449
|
+
* A branch that accepts work and produces nothing is the branch this repo
|
|
37450
|
+
* keeps losing work in (D391), and a clip export has five places to lose it
|
|
37451
|
+
* that a recording export does not have. The token is what a surface may key
|
|
37452
|
+
* a table on; the PROSE — the camera's own words, the source's verbatim
|
|
37453
|
+
* refusal — travels with it, in the same `ExportRecord.error` string, after a
|
|
37454
|
+
* `: `. Two separate things in one field because the field is one field:
|
|
37455
|
+
* `ClipStillRefusalCodeSchema` split them across two HTTP headers for the same
|
|
37456
|
+
* reason, and the surface that keyed on the whole header rendered every
|
|
37457
|
+
* refusal on this fleet as `Refused: <prose>`.
|
|
37458
|
+
*
|
|
37459
|
+
* Compose with {@link clipExportFailure}, read back with
|
|
37460
|
+
* {@link clipExportFailureOf}. Never hand-spell the separator.
|
|
37461
|
+
*/
|
|
37462
|
+
var ClipExportFailureSchema = zod.z.enum([
|
|
37463
|
+
"catalog-miss",
|
|
37464
|
+
"catalog-unreachable",
|
|
37465
|
+
"no-file-for-window",
|
|
37466
|
+
"clip-in-progress",
|
|
37467
|
+
"unsupported-option",
|
|
37468
|
+
"sleeping",
|
|
37469
|
+
"camera-refused",
|
|
37470
|
+
"fetch-failed",
|
|
37471
|
+
"too-large-to-transfer",
|
|
37472
|
+
"wake-expired"
|
|
37473
|
+
]);
|
|
37474
|
+
/** `<token>: <prose>` — the ONE composition of a clip export's failure string. */
|
|
37475
|
+
function clipExportFailure(code, detail) {
|
|
37476
|
+
return detail.length > 0 ? `${code}: ${detail}` : code;
|
|
37477
|
+
}
|
|
37478
|
+
/**
|
|
37479
|
+
* The token out of an {@link ExportRecord.error}, or null when the string did
|
|
37480
|
+
* not come from {@link clipExportFailure} (every footage failure, and every
|
|
37481
|
+
* error thrown by something that never heard of this vocabulary).
|
|
37482
|
+
*/
|
|
37483
|
+
function clipExportFailureOf(error) {
|
|
37484
|
+
if (error === null) return null;
|
|
37485
|
+
const head = error.split(":", 1)[0] ?? "";
|
|
37486
|
+
const parsed = ClipExportFailureSchema.safeParse(head.trim());
|
|
37487
|
+
return parsed.success ? parsed.data : null;
|
|
37488
|
+
}
|
|
37179
37489
|
/** Candidate download URLs (LAN first, then operator extra hosts). */
|
|
37180
37490
|
var ExportDownloadSchema = zod.z.object({
|
|
37181
37491
|
url: zod.z.string(),
|
|
@@ -37213,35 +37523,149 @@ var ExportBytesSchema = zod.z.object({
|
|
|
37213
37523
|
name: zod.z.string(),
|
|
37214
37524
|
bytes: zod.z.number().int().nonnegative()
|
|
37215
37525
|
});
|
|
37526
|
+
/** Canonical `profiles[]`, falling back to the legacy singular `profile`. */
|
|
37527
|
+
function resolveExportProfiles(input) {
|
|
37528
|
+
if (input.profiles !== void 0 && input.profiles.length > 0) return [...input.profiles];
|
|
37529
|
+
if (typeof input.profile === "string" && input.profile.length > 0) return [input.profile];
|
|
37530
|
+
return [];
|
|
37531
|
+
}
|
|
37216
37532
|
/**
|
|
37217
|
-
* `createExport` input
|
|
37218
|
-
*
|
|
37533
|
+
* `createExport` input — ONE object carrying an optional {@link ExportSubject},
|
|
37534
|
+
* never a union of two inputs.
|
|
37219
37535
|
*
|
|
37220
|
-
*
|
|
37536
|
+
* It has to be a ZodObject: generated routers call `.input.loose()` so the
|
|
37537
|
+
* out-of-band `nodeId` selector survives the wire parse, and `.loose()` is a
|
|
37538
|
+
* ZodObject method a `z.discriminatedUnion` does not have. That is why the
|
|
37539
|
+
* discriminant sits one level down, in `subject`, and why
|
|
37540
|
+
* {@link resolveCreateExportSubject} — not a `z.preprocess` wrapper, which
|
|
37541
|
+
* would have produced a schema with no `.loose()` — is the one reading of a
|
|
37542
|
+
* legacy flat input as a subject.
|
|
37543
|
+
*
|
|
37544
|
+
* **`deviceId` stays REQUIRED at the top level**, for both kinds, and a clip
|
|
37545
|
+
* subject naming a different one is REFUSED. Not symmetry: `METHOD_DEVICE_SELECTORS`
|
|
37546
|
+
* (generated) maps top-level fields and one-level object arrays, so per-device
|
|
37547
|
+
* scope enforcement in `scope-access.ts` reads THIS field and cannot see
|
|
37548
|
+
* `subject.deviceId`. A deviceId that lived only in the subject would let a
|
|
37549
|
+
* principal scoped to one camera create an export — and, on the clip path, a
|
|
37550
|
+
* WAKE — for another.
|
|
37551
|
+
*
|
|
37552
|
+
* **A clip carries no time range**, and one supplied alongside a clip subject
|
|
37553
|
+
* is refused rather than ignored: there is no drag on this path and nothing to
|
|
37554
|
+
* normalise (D558 § 5.4.3). The record's `fromMs`/`toMs` come from the clip's
|
|
37555
|
+
* own `timeRange` and from nowhere else.
|
|
37221
37556
|
*/
|
|
37222
37557
|
var CreateExportInputSchema = zod.z.object({
|
|
37223
37558
|
deviceId: zod.z.number(),
|
|
37224
37559
|
/** @deprecated Prefer `profiles`. Kept so timelapse/notifiers keep working. */
|
|
37225
37560
|
profile: zod.z.string().optional(),
|
|
37226
37561
|
profiles: zod.z.array(zod.z.string()).min(1).optional(),
|
|
37227
|
-
|
|
37228
|
-
|
|
37562
|
+
/** Footage only — a clip's boundaries are the camera's. */
|
|
37563
|
+
fromMs: zod.z.number().optional(),
|
|
37564
|
+
toMs: zod.z.number().optional(),
|
|
37565
|
+
/** What to export. Absent means the legacy flat footage request. */
|
|
37566
|
+
subject: ExportSubjectSchema.optional(),
|
|
37229
37567
|
options: ExportOptionsSchema
|
|
37230
37568
|
}).superRefine((v, ctx) => {
|
|
37231
|
-
if (
|
|
37569
|
+
if (v.subject?.kind === "clip") {
|
|
37570
|
+
if (v.subject.deviceId !== v.deviceId) ctx.addIssue({
|
|
37571
|
+
code: zod.z.ZodIssueCode.custom,
|
|
37572
|
+
message: `subject.deviceId (${v.subject.deviceId}) must equal deviceId (${v.deviceId}) — the top-level field is what per-device scope enforcement reads`,
|
|
37573
|
+
path: ["subject", "deviceId"]
|
|
37574
|
+
});
|
|
37575
|
+
if (v.fromMs !== void 0 || v.toMs !== void 0) ctx.addIssue({
|
|
37576
|
+
code: zod.z.ZodIssueCode.custom,
|
|
37577
|
+
message: "a clip export asks for no time range: the camera chose the boundaries and they are read from the catalog row",
|
|
37578
|
+
path: ["fromMs"]
|
|
37579
|
+
});
|
|
37580
|
+
return;
|
|
37581
|
+
}
|
|
37582
|
+
if (v.subject?.kind === "footage" && v.subject.deviceId !== v.deviceId) ctx.addIssue({
|
|
37583
|
+
code: zod.z.ZodIssueCode.custom,
|
|
37584
|
+
message: `subject.deviceId (${v.subject.deviceId}) must equal deviceId (${v.deviceId})`,
|
|
37585
|
+
path: ["subject", "deviceId"]
|
|
37586
|
+
});
|
|
37587
|
+
const fromMs = v.subject?.kind === "footage" ? v.subject.fromMs : v.fromMs;
|
|
37588
|
+
const toMs = v.subject?.kind === "footage" ? v.subject.toMs : v.toMs;
|
|
37589
|
+
if (typeof fromMs !== "number" || typeof toMs !== "number") ctx.addIssue({
|
|
37590
|
+
code: zod.z.ZodIssueCode.custom,
|
|
37591
|
+
message: "a footage export needs fromMs and toMs",
|
|
37592
|
+
path: ["fromMs"]
|
|
37593
|
+
});
|
|
37594
|
+
if ((v.subject?.kind === "footage" ? [...v.subject.profiles] : resolveExportProfiles(v)).length < 1) ctx.addIssue({
|
|
37232
37595
|
code: zod.z.ZodIssueCode.custom,
|
|
37233
37596
|
message: "pass profiles[] (min 1) or legacy profile",
|
|
37234
37597
|
path: ["profiles"]
|
|
37235
37598
|
});
|
|
37236
37599
|
});
|
|
37600
|
+
/**
|
|
37601
|
+
* The ONE reading of a `createExport` input as a {@link ExportSubject}.
|
|
37602
|
+
*
|
|
37603
|
+
* Every consumer goes through this: a provider that branched on
|
|
37604
|
+
* `input.subject !== undefined` in one place and on `input.fromMs` in another
|
|
37605
|
+
* would be two authorities on what was asked for, which is how the flat fields
|
|
37606
|
+
* and the subject drift apart.
|
|
37607
|
+
*
|
|
37608
|
+
* Throws on a footage input with no range — an input that parsed cannot reach
|
|
37609
|
+
* that, and a caller that skipped the parse gets a named refusal rather than
|
|
37610
|
+
* `NaN` boundaries on a durable row.
|
|
37611
|
+
*/
|
|
37612
|
+
function resolveCreateExportSubject(input) {
|
|
37613
|
+
if (input.subject !== void 0) return input.subject;
|
|
37614
|
+
const profiles = resolveExportProfiles(input);
|
|
37615
|
+
if (typeof input.fromMs !== "number" || typeof input.toMs !== "number") throw new Error("recording-export: a footage export needs fromMs and toMs");
|
|
37616
|
+
return {
|
|
37617
|
+
kind: "footage",
|
|
37618
|
+
deviceId: input.deviceId,
|
|
37619
|
+
profiles,
|
|
37620
|
+
fromMs: input.fromMs,
|
|
37621
|
+
toMs: input.toMs
|
|
37622
|
+
};
|
|
37623
|
+
}
|
|
37624
|
+
/**
|
|
37625
|
+
* The ONE interpreter of a stored row's subject.
|
|
37626
|
+
*
|
|
37627
|
+
* `ExportRecord.subject` is optional for exactly one reason — the history rows
|
|
37628
|
+
* written before D558 — and "absent means footage, built from the projection"
|
|
37629
|
+
* is a statement that must live in one place. Anything that reads
|
|
37630
|
+
* `rec.subject` directly and falls back inline is the second authority.
|
|
37631
|
+
*/
|
|
37632
|
+
function exportSubjectOf(rec) {
|
|
37633
|
+
if (rec.subject !== void 0) return rec.subject;
|
|
37634
|
+
return {
|
|
37635
|
+
kind: "footage",
|
|
37636
|
+
deviceId: rec.deviceId,
|
|
37637
|
+
profiles: [rec.profile],
|
|
37638
|
+
fromMs: rec.fromMs,
|
|
37639
|
+
toMs: rec.toMs
|
|
37640
|
+
};
|
|
37641
|
+
}
|
|
37237
37642
|
var recordingExportCapability = {
|
|
37238
37643
|
name: "recording-export",
|
|
37239
37644
|
scope: "system",
|
|
37240
37645
|
mode: "singleton",
|
|
37241
37646
|
methods: {
|
|
37242
|
-
/**
|
|
37243
|
-
*
|
|
37244
|
-
*
|
|
37647
|
+
/**
|
|
37648
|
+
* Queue an export of {@link ExportSubjectSchema}.
|
|
37649
|
+
*
|
|
37650
|
+
* `kind:'footage'` — a render of `[fromMs,toMs)` for `deviceId`/`profiles`
|
|
37651
|
+
* (legacy flat input, singular `profile` included, still accepted and
|
|
37652
|
+
* rewritten). Fails fast when no footage covers the range. One job per
|
|
37653
|
+
* profile; **returns the first queued record and the others are reachable
|
|
37654
|
+
* only through `listExports`** — a defect named in D558 § 6.3 and the
|
|
37655
|
+
* reason a clip subject carries exactly ONE profile.
|
|
37656
|
+
*
|
|
37657
|
+
* `kind:'clip'` — a finished file the camera holds, validated against the
|
|
37658
|
+
* device's clip CATALOG (`videoclips.listClips`, at the subject's
|
|
37659
|
+
* `provider`) instead of the recording index, and fetched once by handle
|
|
37660
|
+
* under a bound. Its `fromMs`/`toMs` come from the catalog row and from
|
|
37661
|
+
* nowhere else; a caller supplying a range is refused.
|
|
37662
|
+
*
|
|
37663
|
+
* A clip export reuses the six {@link ExportStateSchema} members and adds
|
|
37664
|
+
* none: the viewer maps an unknown state string to `failed`, so a seventh
|
|
37665
|
+
* member renders every live export — of both kinds — as FAILED on every
|
|
37666
|
+
* installed app (D558 § 6.1, pinned by `export-state-members.spec.ts`).
|
|
37667
|
+
* `subject.kind` is what tells a surface what `rendering` means.
|
|
37668
|
+
*/
|
|
37245
37669
|
createExport: require_sleep.method(CreateExportInputSchema, ExportRecordSchema, {
|
|
37246
37670
|
kind: "mutation",
|
|
37247
37671
|
auth: "protected"
|
|
@@ -44931,6 +45355,12 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
44931
45355
|
//#endregion
|
|
44932
45356
|
//#region src/generated/method-access-map.ts
|
|
44933
45357
|
var METHOD_ACCESS_MAP = Object.freeze({
|
|
45358
|
+
"accessories.getStatus": {
|
|
45359
|
+
capName: "accessories",
|
|
45360
|
+
capScope: "device",
|
|
45361
|
+
addonId: null,
|
|
45362
|
+
access: "view"
|
|
45363
|
+
},
|
|
44934
45364
|
"accessories.setChildHidden": {
|
|
44935
45365
|
capName: "accessories",
|
|
44936
45366
|
capScope: "device",
|
|
@@ -45213,6 +45643,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45213
45643
|
addonId: null,
|
|
45214
45644
|
access: "view"
|
|
45215
45645
|
},
|
|
45646
|
+
"airQualitySensor.getStatus": {
|
|
45647
|
+
capName: "air-quality-sensor",
|
|
45648
|
+
capScope: "device",
|
|
45649
|
+
addonId: null,
|
|
45650
|
+
access: "view"
|
|
45651
|
+
},
|
|
45216
45652
|
"alarmPanel.arm": {
|
|
45217
45653
|
capName: "alarm-panel",
|
|
45218
45654
|
capScope: "device",
|
|
@@ -45225,6 +45661,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45225
45661
|
addonId: null,
|
|
45226
45662
|
access: "create"
|
|
45227
45663
|
},
|
|
45664
|
+
"alarmPanel.getStatus": {
|
|
45665
|
+
capName: "alarm-panel",
|
|
45666
|
+
capScope: "device",
|
|
45667
|
+
addonId: null,
|
|
45668
|
+
access: "view"
|
|
45669
|
+
},
|
|
45228
45670
|
"alarmPanel.trigger": {
|
|
45229
45671
|
capName: "alarm-panel",
|
|
45230
45672
|
capScope: "device",
|
|
@@ -45273,6 +45715,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45273
45715
|
addonId: null,
|
|
45274
45716
|
access: "create"
|
|
45275
45717
|
},
|
|
45718
|
+
"ambientLightSensor.getStatus": {
|
|
45719
|
+
capName: "ambient-light-sensor",
|
|
45720
|
+
capScope: "device",
|
|
45721
|
+
addonId: null,
|
|
45722
|
+
access: "view"
|
|
45723
|
+
},
|
|
45724
|
+
"audioAnalysis.applyDeviceSettingsPatch": {
|
|
45725
|
+
capName: "audio-analysis",
|
|
45726
|
+
capScope: "device",
|
|
45727
|
+
addonId: null,
|
|
45728
|
+
access: "create"
|
|
45729
|
+
},
|
|
45730
|
+
"audioAnalysis.getDeviceLiveContribution": {
|
|
45731
|
+
capName: "audio-analysis",
|
|
45732
|
+
capScope: "device",
|
|
45733
|
+
addonId: null,
|
|
45734
|
+
access: "view"
|
|
45735
|
+
},
|
|
45736
|
+
"audioAnalysis.getDeviceSettingsContribution": {
|
|
45737
|
+
capName: "audio-analysis",
|
|
45738
|
+
capScope: "device",
|
|
45739
|
+
addonId: null,
|
|
45740
|
+
access: "view"
|
|
45741
|
+
},
|
|
45276
45742
|
"audioAnalysis.resolveDeviceSettings": {
|
|
45277
45743
|
capName: "audio-analysis",
|
|
45278
45744
|
capScope: "device",
|
|
@@ -45435,6 +45901,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45435
45901
|
addonId: null,
|
|
45436
45902
|
access: "create"
|
|
45437
45903
|
},
|
|
45904
|
+
"automationControl.getStatus": {
|
|
45905
|
+
capName: "automation-control",
|
|
45906
|
+
capScope: "device",
|
|
45907
|
+
addonId: null,
|
|
45908
|
+
access: "view"
|
|
45909
|
+
},
|
|
45438
45910
|
"automationControl.trigger": {
|
|
45439
45911
|
capName: "automation-control",
|
|
45440
45912
|
capScope: "device",
|
|
@@ -45531,12 +46003,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45531
46003
|
addonId: null,
|
|
45532
46004
|
access: "create"
|
|
45533
46005
|
},
|
|
46006
|
+
"battery.getStatus": {
|
|
46007
|
+
capName: "battery",
|
|
46008
|
+
capScope: "device",
|
|
46009
|
+
addonId: null,
|
|
46010
|
+
access: "view"
|
|
46011
|
+
},
|
|
45534
46012
|
"battery.wakeForStream": {
|
|
45535
46013
|
capName: "battery",
|
|
45536
46014
|
capScope: "device",
|
|
45537
46015
|
addonId: null,
|
|
45538
46016
|
access: "create"
|
|
45539
46017
|
},
|
|
46018
|
+
"binary.getStatus": {
|
|
46019
|
+
capName: "binary",
|
|
46020
|
+
capScope: "device",
|
|
46021
|
+
addonId: null,
|
|
46022
|
+
access: "view"
|
|
46023
|
+
},
|
|
46024
|
+
"brightness.getStatus": {
|
|
46025
|
+
capName: "brightness",
|
|
46026
|
+
capScope: "device",
|
|
46027
|
+
addonId: null,
|
|
46028
|
+
access: "view"
|
|
46029
|
+
},
|
|
45540
46030
|
"brightness.setBrightness": {
|
|
45541
46031
|
capName: "brightness",
|
|
45542
46032
|
capScope: "device",
|
|
@@ -45651,6 +46141,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45651
46141
|
addonId: null,
|
|
45652
46142
|
access: "view"
|
|
45653
46143
|
},
|
|
46144
|
+
"cameraCredentials.getStatus": {
|
|
46145
|
+
capName: "camera-credentials",
|
|
46146
|
+
capScope: "device",
|
|
46147
|
+
addonId: null,
|
|
46148
|
+
access: "view"
|
|
46149
|
+
},
|
|
46150
|
+
"cameraGridLayout.applyDeviceSettingsPatch": {
|
|
46151
|
+
capName: "camera-grid-layout",
|
|
46152
|
+
capScope: "device",
|
|
46153
|
+
addonId: null,
|
|
46154
|
+
access: "create"
|
|
46155
|
+
},
|
|
46156
|
+
"cameraGridLayout.getDeviceLiveContribution": {
|
|
46157
|
+
capName: "camera-grid-layout",
|
|
46158
|
+
capScope: "device",
|
|
46159
|
+
addonId: null,
|
|
46160
|
+
access: "view"
|
|
46161
|
+
},
|
|
46162
|
+
"cameraGridLayout.getDeviceSettingsContribution": {
|
|
46163
|
+
capName: "camera-grid-layout",
|
|
46164
|
+
capScope: "device",
|
|
46165
|
+
addonId: null,
|
|
46166
|
+
access: "view"
|
|
46167
|
+
},
|
|
45654
46168
|
"cameraGridLayout.getLayout": {
|
|
45655
46169
|
capName: "camera-grid-layout",
|
|
45656
46170
|
capScope: "device",
|
|
@@ -45663,6 +46177,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45663
46177
|
addonId: null,
|
|
45664
46178
|
access: "create"
|
|
45665
46179
|
},
|
|
46180
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": {
|
|
46181
|
+
capName: "camera-pipeline-config",
|
|
46182
|
+
capScope: "device",
|
|
46183
|
+
addonId: null,
|
|
46184
|
+
access: "create"
|
|
46185
|
+
},
|
|
46186
|
+
"cameraPipelineConfig.getDeviceLiveContribution": {
|
|
46187
|
+
capName: "camera-pipeline-config",
|
|
46188
|
+
capScope: "device",
|
|
46189
|
+
addonId: null,
|
|
46190
|
+
access: "view"
|
|
46191
|
+
},
|
|
46192
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": {
|
|
46193
|
+
capName: "camera-pipeline-config",
|
|
46194
|
+
capScope: "device",
|
|
46195
|
+
addonId: null,
|
|
46196
|
+
access: "view"
|
|
46197
|
+
},
|
|
45666
46198
|
"cameraStreams.getBrokerStreams": {
|
|
45667
46199
|
capName: "camera-streams",
|
|
45668
46200
|
capScope: "device",
|
|
@@ -45693,6 +46225,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45693
46225
|
addonId: null,
|
|
45694
46226
|
access: "view"
|
|
45695
46227
|
},
|
|
46228
|
+
"carbonMonoxide.getStatus": {
|
|
46229
|
+
capName: "carbon-monoxide",
|
|
46230
|
+
capScope: "device",
|
|
46231
|
+
addonId: null,
|
|
46232
|
+
access: "view"
|
|
46233
|
+
},
|
|
46234
|
+
"climateControl.getStatus": {
|
|
46235
|
+
capName: "climate-control",
|
|
46236
|
+
capScope: "device",
|
|
46237
|
+
addonId: null,
|
|
46238
|
+
access: "view"
|
|
46239
|
+
},
|
|
45696
46240
|
"climateControl.setFanMode": {
|
|
45697
46241
|
capName: "climate-control",
|
|
45698
46242
|
capScope: "device",
|
|
@@ -45741,6 +46285,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45741
46285
|
addonId: null,
|
|
45742
46286
|
access: "create"
|
|
45743
46287
|
},
|
|
46288
|
+
"color.getStatus": {
|
|
46289
|
+
capName: "color",
|
|
46290
|
+
capScope: "device",
|
|
46291
|
+
addonId: null,
|
|
46292
|
+
access: "view"
|
|
46293
|
+
},
|
|
45744
46294
|
"color.setColor": {
|
|
45745
46295
|
capName: "color",
|
|
45746
46296
|
capScope: "device",
|
|
@@ -45759,12 +46309,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45759
46309
|
addonId: null,
|
|
45760
46310
|
access: "create"
|
|
45761
46311
|
},
|
|
46312
|
+
"connectivity.getStatus": {
|
|
46313
|
+
capName: "connectivity",
|
|
46314
|
+
capScope: "device",
|
|
46315
|
+
addonId: null,
|
|
46316
|
+
access: "view"
|
|
46317
|
+
},
|
|
46318
|
+
"consumables.getStatus": {
|
|
46319
|
+
capName: "consumables",
|
|
46320
|
+
capScope: "device",
|
|
46321
|
+
addonId: null,
|
|
46322
|
+
access: "view"
|
|
46323
|
+
},
|
|
45762
46324
|
"consumables.reset": {
|
|
45763
46325
|
capName: "consumables",
|
|
45764
46326
|
capScope: "device",
|
|
45765
46327
|
addonId: null,
|
|
45766
46328
|
access: "delete"
|
|
45767
46329
|
},
|
|
46330
|
+
"contact.getStatus": {
|
|
46331
|
+
capName: "contact",
|
|
46332
|
+
capScope: "device",
|
|
46333
|
+
addonId: null,
|
|
46334
|
+
access: "view"
|
|
46335
|
+
},
|
|
46336
|
+
"control.getStatus": {
|
|
46337
|
+
capName: "control",
|
|
46338
|
+
capScope: "device",
|
|
46339
|
+
addonId: null,
|
|
46340
|
+
access: "view"
|
|
46341
|
+
},
|
|
45768
46342
|
"control.setValue": {
|
|
45769
46343
|
capName: "control",
|
|
45770
46344
|
capScope: "device",
|
|
@@ -45831,6 +46405,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45831
46405
|
addonId: null,
|
|
45832
46406
|
access: "create"
|
|
45833
46407
|
},
|
|
46408
|
+
"cover.getStatus": {
|
|
46409
|
+
capName: "cover",
|
|
46410
|
+
capScope: "device",
|
|
46411
|
+
addonId: null,
|
|
46412
|
+
access: "view"
|
|
46413
|
+
},
|
|
45834
46414
|
"cover.open": {
|
|
45835
46415
|
capName: "cover",
|
|
45836
46416
|
capScope: "device",
|
|
@@ -45963,6 +46543,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
45963
46543
|
addonId: null,
|
|
45964
46544
|
access: "view"
|
|
45965
46545
|
},
|
|
46546
|
+
"dayNight.getStatus": {
|
|
46547
|
+
capName: "day-night",
|
|
46548
|
+
capScope: "device",
|
|
46549
|
+
addonId: null,
|
|
46550
|
+
access: "view"
|
|
46551
|
+
},
|
|
45966
46552
|
"dayNight.setSettings": {
|
|
45967
46553
|
capName: "day-night",
|
|
45968
46554
|
capScope: "device",
|
|
@@ -46053,6 +46639,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46053
46639
|
addonId: null,
|
|
46054
46640
|
access: "view"
|
|
46055
46641
|
},
|
|
46642
|
+
"detectionPipeline.applyDeviceSettingsPatch": {
|
|
46643
|
+
capName: "detection-pipeline",
|
|
46644
|
+
capScope: "device",
|
|
46645
|
+
addonId: null,
|
|
46646
|
+
access: "create"
|
|
46647
|
+
},
|
|
46648
|
+
"detectionPipeline.getDeviceLiveContribution": {
|
|
46649
|
+
capName: "detection-pipeline",
|
|
46650
|
+
capScope: "device",
|
|
46651
|
+
addonId: null,
|
|
46652
|
+
access: "view"
|
|
46653
|
+
},
|
|
46654
|
+
"detectionPipeline.getDeviceSettingsContribution": {
|
|
46655
|
+
capName: "detection-pipeline",
|
|
46656
|
+
capScope: "device",
|
|
46657
|
+
addonId: null,
|
|
46658
|
+
access: "view"
|
|
46659
|
+
},
|
|
46056
46660
|
"deviceAdoption.adopt": {
|
|
46057
46661
|
capName: "device-adoption",
|
|
46058
46662
|
capScope: "system",
|
|
@@ -46065,6 +46669,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46065
46669
|
addonId: null,
|
|
46066
46670
|
access: "view"
|
|
46067
46671
|
},
|
|
46672
|
+
"deviceAdoption.getStatus": {
|
|
46673
|
+
capName: "device-adoption",
|
|
46674
|
+
capScope: "system",
|
|
46675
|
+
addonId: null,
|
|
46676
|
+
access: "view"
|
|
46677
|
+
},
|
|
46068
46678
|
"deviceAdoption.listCandidateFilters": {
|
|
46069
46679
|
capName: "device-adoption",
|
|
46070
46680
|
capScope: "system",
|
|
@@ -46101,6 +46711,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46101
46711
|
addonId: null,
|
|
46102
46712
|
access: "create"
|
|
46103
46713
|
},
|
|
46714
|
+
"deviceDiscovery.getStatus": {
|
|
46715
|
+
capName: "device-discovery",
|
|
46716
|
+
capScope: "device",
|
|
46717
|
+
addonId: null,
|
|
46718
|
+
access: "view"
|
|
46719
|
+
},
|
|
46104
46720
|
"deviceDiscovery.listDiscovered": {
|
|
46105
46721
|
capName: "device-discovery",
|
|
46106
46722
|
capScope: "device",
|
|
@@ -46119,12 +46735,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46119
46735
|
addonId: null,
|
|
46120
46736
|
access: "create"
|
|
46121
46737
|
},
|
|
46738
|
+
"deviceExport.applyDeviceSettingsPatch": {
|
|
46739
|
+
capName: "device-export",
|
|
46740
|
+
capScope: "system",
|
|
46741
|
+
addonId: null,
|
|
46742
|
+
access: "create"
|
|
46743
|
+
},
|
|
46122
46744
|
"deviceExport.exposeDevice": {
|
|
46123
46745
|
capName: "device-export",
|
|
46124
46746
|
capScope: "system",
|
|
46125
46747
|
addonId: null,
|
|
46126
46748
|
access: "create"
|
|
46127
46749
|
},
|
|
46750
|
+
"deviceExport.getDeviceLiveContribution": {
|
|
46751
|
+
capName: "device-export",
|
|
46752
|
+
capScope: "system",
|
|
46753
|
+
addonId: null,
|
|
46754
|
+
access: "view"
|
|
46755
|
+
},
|
|
46756
|
+
"deviceExport.getDeviceSettingsContribution": {
|
|
46757
|
+
capName: "device-export",
|
|
46758
|
+
capScope: "system",
|
|
46759
|
+
addonId: null,
|
|
46760
|
+
access: "view"
|
|
46761
|
+
},
|
|
46128
46762
|
"deviceExport.getStatus": {
|
|
46129
46763
|
capName: "device-export",
|
|
46130
46764
|
capScope: "system",
|
|
@@ -46221,6 +46855,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46221
46855
|
addonId: null,
|
|
46222
46856
|
access: "create"
|
|
46223
46857
|
},
|
|
46858
|
+
"deviceManager.applyDeviceSettingsPatch": {
|
|
46859
|
+
capName: "device-manager",
|
|
46860
|
+
capScope: "system",
|
|
46861
|
+
addonId: null,
|
|
46862
|
+
access: "create"
|
|
46863
|
+
},
|
|
46224
46864
|
"deviceManager.applyInitialMeta": {
|
|
46225
46865
|
capName: "device-manager",
|
|
46226
46866
|
capScope: "system",
|
|
@@ -46323,6 +46963,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46323
46963
|
addonId: null,
|
|
46324
46964
|
access: "view"
|
|
46325
46965
|
},
|
|
46966
|
+
"deviceManager.getDeviceLiveContribution": {
|
|
46967
|
+
capName: "device-manager",
|
|
46968
|
+
capScope: "system",
|
|
46969
|
+
addonId: null,
|
|
46970
|
+
access: "view"
|
|
46971
|
+
},
|
|
46326
46972
|
"deviceManager.getDeviceLiveInfoAggregate": {
|
|
46327
46973
|
capName: "device-manager",
|
|
46328
46974
|
capScope: "system",
|
|
@@ -46335,6 +46981,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46335
46981
|
addonId: null,
|
|
46336
46982
|
access: "view"
|
|
46337
46983
|
},
|
|
46984
|
+
"deviceManager.getDeviceSettingsContribution": {
|
|
46985
|
+
capName: "device-manager",
|
|
46986
|
+
capScope: "system",
|
|
46987
|
+
addonId: null,
|
|
46988
|
+
access: "view"
|
|
46989
|
+
},
|
|
46338
46990
|
"deviceManager.getDeviceStatusAggregate": {
|
|
46339
46991
|
capName: "device-manager",
|
|
46340
46992
|
capScope: "system",
|
|
@@ -46827,6 +47479,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46827
47479
|
addonId: null,
|
|
46828
47480
|
access: "create"
|
|
46829
47481
|
},
|
|
47482
|
+
"deviceStatus.getStatus": {
|
|
47483
|
+
capName: "device-status",
|
|
47484
|
+
capScope: "device",
|
|
47485
|
+
addonId: null,
|
|
47486
|
+
access: "view"
|
|
47487
|
+
},
|
|
47488
|
+
"doorbell.applyDeviceSettingsPatch": {
|
|
47489
|
+
capName: "doorbell",
|
|
47490
|
+
capScope: "device",
|
|
47491
|
+
addonId: null,
|
|
47492
|
+
access: "create"
|
|
47493
|
+
},
|
|
47494
|
+
"doorbell.getDeviceLiveContribution": {
|
|
47495
|
+
capName: "doorbell",
|
|
47496
|
+
capScope: "device",
|
|
47497
|
+
addonId: null,
|
|
47498
|
+
access: "view"
|
|
47499
|
+
},
|
|
47500
|
+
"doorbell.getDeviceSettingsContribution": {
|
|
47501
|
+
capName: "doorbell",
|
|
47502
|
+
capScope: "device",
|
|
47503
|
+
addonId: null,
|
|
47504
|
+
access: "view"
|
|
47505
|
+
},
|
|
47506
|
+
"doorbell.getStatus": {
|
|
47507
|
+
capName: "doorbell",
|
|
47508
|
+
capScope: "device",
|
|
47509
|
+
addonId: null,
|
|
47510
|
+
access: "view"
|
|
47511
|
+
},
|
|
46830
47512
|
"embeddingEncoder.encode": {
|
|
46831
47513
|
capName: "embedding-encoder",
|
|
46832
47514
|
capScope: "system",
|
|
@@ -46845,6 +47527,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46845
47527
|
addonId: null,
|
|
46846
47528
|
access: "view"
|
|
46847
47529
|
},
|
|
47530
|
+
"enumSensor.getStatus": {
|
|
47531
|
+
capName: "enum-sensor",
|
|
47532
|
+
capScope: "device",
|
|
47533
|
+
addonId: null,
|
|
47534
|
+
access: "view"
|
|
47535
|
+
},
|
|
47536
|
+
"eventEmitter.getStatus": {
|
|
47537
|
+
capName: "event-emitter",
|
|
47538
|
+
capScope: "device",
|
|
47539
|
+
addonId: null,
|
|
47540
|
+
access: "view"
|
|
47541
|
+
},
|
|
46848
47542
|
"events.getEventClipUrl": {
|
|
46849
47543
|
capName: "events",
|
|
46850
47544
|
capScope: "device",
|
|
@@ -46965,6 +47659,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46965
47659
|
addonId: null,
|
|
46966
47660
|
access: "view"
|
|
46967
47661
|
},
|
|
47662
|
+
"fanControl.getStatus": {
|
|
47663
|
+
capName: "fan-control",
|
|
47664
|
+
capScope: "device",
|
|
47665
|
+
addonId: null,
|
|
47666
|
+
access: "view"
|
|
47667
|
+
},
|
|
46968
47668
|
"fanControl.setDirection": {
|
|
46969
47669
|
capName: "fan-control",
|
|
46970
47670
|
capScope: "device",
|
|
@@ -46989,6 +47689,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
46989
47689
|
addonId: null,
|
|
46990
47690
|
access: "create"
|
|
46991
47691
|
},
|
|
47692
|
+
"featureProbe.getStatus": {
|
|
47693
|
+
capName: "feature-probe",
|
|
47694
|
+
capScope: "device",
|
|
47695
|
+
addonId: null,
|
|
47696
|
+
access: "view"
|
|
47697
|
+
},
|
|
46992
47698
|
"filesystemBrowse.browse": {
|
|
46993
47699
|
capName: "filesystem-browse",
|
|
46994
47700
|
capScope: "system",
|
|
@@ -47007,6 +47713,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47007
47713
|
addonId: null,
|
|
47008
47714
|
access: "view"
|
|
47009
47715
|
},
|
|
47716
|
+
"flood.getStatus": {
|
|
47717
|
+
capName: "flood",
|
|
47718
|
+
capScope: "device",
|
|
47719
|
+
addonId: null,
|
|
47720
|
+
access: "view"
|
|
47721
|
+
},
|
|
47722
|
+
"gas.getStatus": {
|
|
47723
|
+
capName: "gas",
|
|
47724
|
+
capScope: "device",
|
|
47725
|
+
addonId: null,
|
|
47726
|
+
access: "view"
|
|
47727
|
+
},
|
|
47728
|
+
"humidifier.getStatus": {
|
|
47729
|
+
capName: "humidifier",
|
|
47730
|
+
capScope: "device",
|
|
47731
|
+
addonId: null,
|
|
47732
|
+
access: "view"
|
|
47733
|
+
},
|
|
47010
47734
|
"humidifier.setMode": {
|
|
47011
47735
|
capName: "humidifier",
|
|
47012
47736
|
capScope: "device",
|
|
@@ -47025,12 +47749,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47025
47749
|
addonId: null,
|
|
47026
47750
|
access: "create"
|
|
47027
47751
|
},
|
|
47752
|
+
"humiditySensor.getStatus": {
|
|
47753
|
+
capName: "humidity-sensor",
|
|
47754
|
+
capScope: "device",
|
|
47755
|
+
addonId: null,
|
|
47756
|
+
access: "view"
|
|
47757
|
+
},
|
|
47758
|
+
"image.getStatus": {
|
|
47759
|
+
capName: "image",
|
|
47760
|
+
capScope: "device",
|
|
47761
|
+
addonId: null,
|
|
47762
|
+
access: "view"
|
|
47763
|
+
},
|
|
47028
47764
|
"imageSettings.getOptions": {
|
|
47029
47765
|
capName: "image-settings",
|
|
47030
47766
|
capScope: "device",
|
|
47031
47767
|
addonId: null,
|
|
47032
47768
|
access: "view"
|
|
47033
47769
|
},
|
|
47770
|
+
"imageSettings.getStatus": {
|
|
47771
|
+
capName: "image-settings",
|
|
47772
|
+
capScope: "device",
|
|
47773
|
+
addonId: null,
|
|
47774
|
+
access: "view"
|
|
47775
|
+
},
|
|
47034
47776
|
"imageSettings.setSettings": {
|
|
47035
47777
|
capName: "image-settings",
|
|
47036
47778
|
capScope: "device",
|
|
@@ -47103,6 +47845,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47103
47845
|
addonId: null,
|
|
47104
47846
|
access: "create"
|
|
47105
47847
|
},
|
|
47848
|
+
"intercom.getStatus": {
|
|
47849
|
+
capName: "intercom",
|
|
47850
|
+
capScope: "device",
|
|
47851
|
+
addonId: null,
|
|
47852
|
+
access: "view"
|
|
47853
|
+
},
|
|
47106
47854
|
"intercom.handleAnswer": {
|
|
47107
47855
|
capName: "intercom",
|
|
47108
47856
|
capScope: "device",
|
|
@@ -47139,6 +47887,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47139
47887
|
addonId: null,
|
|
47140
47888
|
access: "create"
|
|
47141
47889
|
},
|
|
47890
|
+
"lawnMowerControl.getStatus": {
|
|
47891
|
+
capName: "lawn-mower-control",
|
|
47892
|
+
capScope: "device",
|
|
47893
|
+
addonId: null,
|
|
47894
|
+
access: "view"
|
|
47895
|
+
},
|
|
47142
47896
|
"lawnMowerControl.pause": {
|
|
47143
47897
|
capName: "lawn-mower-control",
|
|
47144
47898
|
capScope: "device",
|
|
@@ -47421,6 +48175,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47421
48175
|
addonId: null,
|
|
47422
48176
|
access: "create"
|
|
47423
48177
|
},
|
|
48178
|
+
"lockControl.getStatus": {
|
|
48179
|
+
capName: "lock-control",
|
|
48180
|
+
capScope: "device",
|
|
48181
|
+
addonId: null,
|
|
48182
|
+
access: "view"
|
|
48183
|
+
},
|
|
47424
48184
|
"lockControl.lock": {
|
|
47425
48185
|
capName: "lock-control",
|
|
47426
48186
|
capScope: "device",
|
|
@@ -47469,6 +48229,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47469
48229
|
addonId: null,
|
|
47470
48230
|
access: "view"
|
|
47471
48231
|
},
|
|
48232
|
+
"mediaPlayer.getStatus": {
|
|
48233
|
+
capName: "media-player",
|
|
48234
|
+
capScope: "device",
|
|
48235
|
+
addonId: null,
|
|
48236
|
+
access: "view"
|
|
48237
|
+
},
|
|
47472
48238
|
"mediaPlayer.next": {
|
|
47473
48239
|
capName: "media-player",
|
|
47474
48240
|
capScope: "device",
|
|
@@ -47661,6 +48427,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47661
48427
|
addonId: null,
|
|
47662
48428
|
access: "create"
|
|
47663
48429
|
},
|
|
48430
|
+
"motion.getStatus": {
|
|
48431
|
+
capName: "motion",
|
|
48432
|
+
capScope: "device",
|
|
48433
|
+
addonId: null,
|
|
48434
|
+
access: "view"
|
|
48435
|
+
},
|
|
47664
48436
|
"motion.isDetected": {
|
|
47665
48437
|
capName: "motion",
|
|
47666
48438
|
capScope: "device",
|
|
@@ -47673,6 +48445,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47673
48445
|
addonId: null,
|
|
47674
48446
|
access: "create"
|
|
47675
48447
|
},
|
|
48448
|
+
"motionDetection.applyDeviceSettingsPatch": {
|
|
48449
|
+
capName: "motion-detection",
|
|
48450
|
+
capScope: "device",
|
|
48451
|
+
addonId: null,
|
|
48452
|
+
access: "create"
|
|
48453
|
+
},
|
|
48454
|
+
"motionDetection.getDeviceLiveContribution": {
|
|
48455
|
+
capName: "motion-detection",
|
|
48456
|
+
capScope: "device",
|
|
48457
|
+
addonId: null,
|
|
48458
|
+
access: "view"
|
|
48459
|
+
},
|
|
48460
|
+
"motionDetection.getDeviceSettingsContribution": {
|
|
48461
|
+
capName: "motion-detection",
|
|
48462
|
+
capScope: "device",
|
|
48463
|
+
addonId: null,
|
|
48464
|
+
access: "view"
|
|
48465
|
+
},
|
|
47676
48466
|
"motionDetection.removeCamera": {
|
|
47677
48467
|
capName: "motion-detection",
|
|
47678
48468
|
capScope: "device",
|
|
@@ -47685,6 +48475,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47685
48475
|
addonId: null,
|
|
47686
48476
|
access: "delete"
|
|
47687
48477
|
},
|
|
48478
|
+
"motionTrigger.getStatus": {
|
|
48479
|
+
capName: "motion-trigger",
|
|
48480
|
+
capScope: "device",
|
|
48481
|
+
addonId: null,
|
|
48482
|
+
access: "view"
|
|
48483
|
+
},
|
|
47688
48484
|
"motionTrigger.setMotionTrigger": {
|
|
47689
48485
|
capName: "motion-trigger",
|
|
47690
48486
|
capScope: "device",
|
|
@@ -47697,6 +48493,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47697
48493
|
addonId: null,
|
|
47698
48494
|
access: "view"
|
|
47699
48495
|
},
|
|
48496
|
+
"motionZones.getStatus": {
|
|
48497
|
+
capName: "motion-zones",
|
|
48498
|
+
capScope: "device",
|
|
48499
|
+
addonId: null,
|
|
48500
|
+
access: "view"
|
|
48501
|
+
},
|
|
47700
48502
|
"motionZones.setZone": {
|
|
47701
48503
|
capName: "motion-zones",
|
|
47702
48504
|
capScope: "device",
|
|
@@ -47757,6 +48559,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47757
48559
|
addonId: null,
|
|
47758
48560
|
access: "view"
|
|
47759
48561
|
},
|
|
48562
|
+
"nativeObjectDetection.getStatus": {
|
|
48563
|
+
capName: "native-object-detection",
|
|
48564
|
+
capScope: "device",
|
|
48565
|
+
addonId: null,
|
|
48566
|
+
access: "view"
|
|
48567
|
+
},
|
|
47760
48568
|
"nativeObjectDetection.setEnabled": {
|
|
47761
48569
|
capName: "native-object-detection",
|
|
47762
48570
|
capScope: "device",
|
|
@@ -47775,6 +48583,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47775
48583
|
addonId: null,
|
|
47776
48584
|
access: "view"
|
|
47777
48585
|
},
|
|
48586
|
+
"navigation.getStatus": {
|
|
48587
|
+
capName: "navigation",
|
|
48588
|
+
capScope: "device",
|
|
48589
|
+
addonId: null,
|
|
48590
|
+
access: "view"
|
|
48591
|
+
},
|
|
47778
48592
|
"navigation.goToPoint": {
|
|
47779
48593
|
capName: "navigation",
|
|
47780
48594
|
capScope: "device",
|
|
@@ -47859,6 +48673,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
47859
48673
|
addonId: null,
|
|
47860
48674
|
access: "create"
|
|
47861
48675
|
},
|
|
48676
|
+
"networkLink.getStatus": {
|
|
48677
|
+
capName: "network-link",
|
|
48678
|
+
capScope: "device",
|
|
48679
|
+
addonId: null,
|
|
48680
|
+
access: "view"
|
|
48681
|
+
},
|
|
47862
48682
|
"networkQuality.getAllStats": {
|
|
47863
48683
|
capName: "network-quality",
|
|
47864
48684
|
capScope: "system",
|
|
@@ -48117,18 +48937,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48117
48937
|
addonId: null,
|
|
48118
48938
|
access: "create"
|
|
48119
48939
|
},
|
|
48940
|
+
"notifier.getStatus": {
|
|
48941
|
+
capName: "notifier",
|
|
48942
|
+
capScope: "device",
|
|
48943
|
+
addonId: null,
|
|
48944
|
+
access: "view"
|
|
48945
|
+
},
|
|
48120
48946
|
"notifier.send": {
|
|
48121
48947
|
capName: "notifier",
|
|
48122
48948
|
capScope: "device",
|
|
48123
48949
|
addonId: null,
|
|
48124
48950
|
access: "create"
|
|
48125
48951
|
},
|
|
48952
|
+
"numericSensor.getStatus": {
|
|
48953
|
+
capName: "numeric-sensor",
|
|
48954
|
+
capScope: "device",
|
|
48955
|
+
addonId: null,
|
|
48956
|
+
access: "view"
|
|
48957
|
+
},
|
|
48126
48958
|
"oauthIntegration.getDescriptor": {
|
|
48127
48959
|
capName: "oauth-integration",
|
|
48128
48960
|
capScope: "system",
|
|
48129
48961
|
addonId: null,
|
|
48130
48962
|
access: "view"
|
|
48131
48963
|
},
|
|
48964
|
+
"osd.getStatus": {
|
|
48965
|
+
capName: "osd",
|
|
48966
|
+
capScope: "device",
|
|
48967
|
+
addonId: null,
|
|
48968
|
+
access: "view"
|
|
48969
|
+
},
|
|
48132
48970
|
"osd.setOverlay": {
|
|
48133
48971
|
capName: "osd",
|
|
48134
48972
|
capScope: "device",
|
|
@@ -48201,6 +49039,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48201
49039
|
addonId: null,
|
|
48202
49040
|
access: "create"
|
|
48203
49041
|
},
|
|
49042
|
+
"petFeeder.getStatus": {
|
|
49043
|
+
capName: "pet-feeder",
|
|
49044
|
+
capScope: "device",
|
|
49045
|
+
addonId: null,
|
|
49046
|
+
access: "view"
|
|
49047
|
+
},
|
|
48204
49048
|
"petFeeder.markFoodReplenished": {
|
|
48205
49049
|
capName: "pet-feeder",
|
|
48206
49050
|
capScope: "device",
|
|
@@ -48243,6 +49087,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48243
49087
|
addonId: null,
|
|
48244
49088
|
access: "create"
|
|
48245
49089
|
},
|
|
49090
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": {
|
|
49091
|
+
capName: "pipeline-analytics",
|
|
49092
|
+
capScope: "device",
|
|
49093
|
+
addonId: null,
|
|
49094
|
+
access: "create"
|
|
49095
|
+
},
|
|
48246
49096
|
"pipelineAnalytics.cancelRelocateMedia": {
|
|
48247
49097
|
capName: "pipeline-analytics",
|
|
48248
49098
|
capScope: "device",
|
|
@@ -48309,6 +49159,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48309
49159
|
addonId: null,
|
|
48310
49160
|
access: "view"
|
|
48311
49161
|
},
|
|
49162
|
+
"pipelineAnalytics.getDeviceLiveContribution": {
|
|
49163
|
+
capName: "pipeline-analytics",
|
|
49164
|
+
capScope: "device",
|
|
49165
|
+
addonId: null,
|
|
49166
|
+
access: "view"
|
|
49167
|
+
},
|
|
49168
|
+
"pipelineAnalytics.getDeviceSettingsContribution": {
|
|
49169
|
+
capName: "pipeline-analytics",
|
|
49170
|
+
capScope: "device",
|
|
49171
|
+
addonId: null,
|
|
49172
|
+
access: "view"
|
|
49173
|
+
},
|
|
48312
49174
|
"pipelineAnalytics.getEventDensity": {
|
|
48313
49175
|
capName: "pipeline-analytics",
|
|
48314
49176
|
capScope: "device",
|
|
@@ -48879,6 +49741,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48879
49741
|
addonId: null,
|
|
48880
49742
|
access: "view"
|
|
48881
49743
|
},
|
|
49744
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": {
|
|
49745
|
+
capName: "pipeline-orchestrator",
|
|
49746
|
+
capScope: "system",
|
|
49747
|
+
addonId: null,
|
|
49748
|
+
access: "create"
|
|
49749
|
+
},
|
|
48882
49750
|
"pipelineOrchestrator.assignAudio": {
|
|
48883
49751
|
capName: "pipeline-orchestrator",
|
|
48884
49752
|
capScope: "system",
|
|
@@ -48969,6 +49837,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
48969
49837
|
addonId: null,
|
|
48970
49838
|
access: "view"
|
|
48971
49839
|
},
|
|
49840
|
+
"pipelineOrchestrator.getDeviceLiveContribution": {
|
|
49841
|
+
capName: "pipeline-orchestrator",
|
|
49842
|
+
capScope: "system",
|
|
49843
|
+
addonId: null,
|
|
49844
|
+
access: "view"
|
|
49845
|
+
},
|
|
49846
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": {
|
|
49847
|
+
capName: "pipeline-orchestrator",
|
|
49848
|
+
capScope: "system",
|
|
49849
|
+
addonId: null,
|
|
49850
|
+
access: "view"
|
|
49851
|
+
},
|
|
48972
49852
|
"pipelineOrchestrator.getGlobalMetrics": {
|
|
48973
49853
|
capName: "pipeline-orchestrator",
|
|
48974
49854
|
capScope: "system",
|
|
@@ -49377,12 +50257,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49377
50257
|
addonId: null,
|
|
49378
50258
|
access: "view"
|
|
49379
50259
|
},
|
|
50260
|
+
"powerMeter.getStatus": {
|
|
50261
|
+
capName: "power-meter",
|
|
50262
|
+
capScope: "device",
|
|
50263
|
+
addonId: null,
|
|
50264
|
+
access: "view"
|
|
50265
|
+
},
|
|
50266
|
+
"presence.getStatus": {
|
|
50267
|
+
capName: "presence",
|
|
50268
|
+
capScope: "device",
|
|
50269
|
+
addonId: null,
|
|
50270
|
+
access: "view"
|
|
50271
|
+
},
|
|
50272
|
+
"pressureSensor.getStatus": {
|
|
50273
|
+
capName: "pressure-sensor",
|
|
50274
|
+
capScope: "device",
|
|
50275
|
+
addonId: null,
|
|
50276
|
+
access: "view"
|
|
50277
|
+
},
|
|
49380
50278
|
"privacyMask.getOptions": {
|
|
49381
50279
|
capName: "privacy-mask",
|
|
49382
50280
|
capScope: "device",
|
|
49383
50281
|
addonId: null,
|
|
49384
50282
|
access: "view"
|
|
49385
50283
|
},
|
|
50284
|
+
"privacyMask.getStatus": {
|
|
50285
|
+
capName: "privacy-mask",
|
|
50286
|
+
capScope: "device",
|
|
50287
|
+
addonId: null,
|
|
50288
|
+
access: "view"
|
|
50289
|
+
},
|
|
49386
50290
|
"privacyMask.setAudioEnabled": {
|
|
49387
50291
|
capName: "privacy-mask",
|
|
49388
50292
|
capScope: "device",
|
|
@@ -49443,6 +50347,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49443
50347
|
addonId: null,
|
|
49444
50348
|
access: "view"
|
|
49445
50349
|
},
|
|
50350
|
+
"ptz.getStatus": {
|
|
50351
|
+
capName: "ptz",
|
|
50352
|
+
capScope: "device",
|
|
50353
|
+
addonId: null,
|
|
50354
|
+
access: "view"
|
|
50355
|
+
},
|
|
49446
50356
|
"ptz.goHome": {
|
|
49447
50357
|
capName: "ptz",
|
|
49448
50358
|
capScope: "device",
|
|
@@ -49521,6 +50431,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49521
50431
|
addonId: null,
|
|
49522
50432
|
access: "create"
|
|
49523
50433
|
},
|
|
50434
|
+
"recording.applyDeviceSettingsPatch": {
|
|
50435
|
+
capName: "recording",
|
|
50436
|
+
capScope: "system",
|
|
50437
|
+
addonId: null,
|
|
50438
|
+
access: "create"
|
|
50439
|
+
},
|
|
49524
50440
|
"recording.cancelRelocateJob": {
|
|
49525
50441
|
capName: "recording",
|
|
49526
50442
|
capScope: "system",
|
|
@@ -49569,6 +50485,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49569
50485
|
addonId: null,
|
|
49570
50486
|
access: "view"
|
|
49571
50487
|
},
|
|
50488
|
+
"recording.getDeviceLiveContribution": {
|
|
50489
|
+
capName: "recording",
|
|
50490
|
+
capScope: "system",
|
|
50491
|
+
addonId: null,
|
|
50492
|
+
access: "view"
|
|
50493
|
+
},
|
|
50494
|
+
"recording.getDeviceSettingsContribution": {
|
|
50495
|
+
capName: "recording",
|
|
50496
|
+
capScope: "system",
|
|
50497
|
+
addonId: null,
|
|
50498
|
+
access: "view"
|
|
50499
|
+
},
|
|
49572
50500
|
"recording.getPlacement": {
|
|
49573
50501
|
capName: "recording",
|
|
49574
50502
|
capScope: "system",
|
|
@@ -49587,6 +50515,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49587
50515
|
addonId: null,
|
|
49588
50516
|
access: "view"
|
|
49589
50517
|
},
|
|
50518
|
+
"recording.getStatus": {
|
|
50519
|
+
capName: "recording",
|
|
50520
|
+
capScope: "system",
|
|
50521
|
+
addonId: null,
|
|
50522
|
+
access: "view"
|
|
50523
|
+
},
|
|
49590
50524
|
"recording.getStorageMigrationMoveStatus": {
|
|
49591
50525
|
capName: "recording",
|
|
49592
50526
|
capScope: "system",
|
|
@@ -49791,6 +50725,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49791
50725
|
addonId: null,
|
|
49792
50726
|
access: "delete"
|
|
49793
50727
|
},
|
|
50728
|
+
"sceneMonitor.getStatus": {
|
|
50729
|
+
capName: "scene-monitor",
|
|
50730
|
+
capScope: "device",
|
|
50731
|
+
addonId: null,
|
|
50732
|
+
access: "view"
|
|
50733
|
+
},
|
|
49794
50734
|
"sceneMonitor.listScenes": {
|
|
49795
50735
|
capName: "scene-monitor",
|
|
49796
50736
|
capScope: "device",
|
|
@@ -49821,6 +50761,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49821
50761
|
addonId: null,
|
|
49822
50762
|
access: "create"
|
|
49823
50763
|
},
|
|
50764
|
+
"scriptRunner.getStatus": {
|
|
50765
|
+
capName: "script-runner",
|
|
50766
|
+
capScope: "device",
|
|
50767
|
+
addonId: null,
|
|
50768
|
+
access: "view"
|
|
50769
|
+
},
|
|
49824
50770
|
"scriptRunner.run": {
|
|
49825
50771
|
capName: "script-runner",
|
|
49826
50772
|
capScope: "device",
|
|
@@ -49953,6 +50899,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49953
50899
|
addonId: null,
|
|
49954
50900
|
access: "create"
|
|
49955
50901
|
},
|
|
50902
|
+
"smoke.getStatus": {
|
|
50903
|
+
capName: "smoke",
|
|
50904
|
+
capScope: "device",
|
|
50905
|
+
addonId: null,
|
|
50906
|
+
access: "view"
|
|
50907
|
+
},
|
|
49956
50908
|
"smtpProvider.getStatus": {
|
|
49957
50909
|
capName: "smtp-provider",
|
|
49958
50910
|
capScope: "system",
|
|
@@ -49971,12 +50923,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49971
50923
|
addonId: null,
|
|
49972
50924
|
access: "view"
|
|
49973
50925
|
},
|
|
50926
|
+
"snapshot.applyDeviceSettingsPatch": {
|
|
50927
|
+
capName: "snapshot",
|
|
50928
|
+
capScope: "device",
|
|
50929
|
+
addonId: null,
|
|
50930
|
+
access: "create"
|
|
50931
|
+
},
|
|
49974
50932
|
"snapshot.getDebugState": {
|
|
49975
50933
|
capName: "snapshot",
|
|
49976
50934
|
capScope: "device",
|
|
49977
50935
|
addonId: null,
|
|
49978
50936
|
access: "view"
|
|
49979
50937
|
},
|
|
50938
|
+
"snapshot.getDeviceLiveContribution": {
|
|
50939
|
+
capName: "snapshot",
|
|
50940
|
+
capScope: "device",
|
|
50941
|
+
addonId: null,
|
|
50942
|
+
access: "view"
|
|
50943
|
+
},
|
|
50944
|
+
"snapshot.getDeviceSettingsContribution": {
|
|
50945
|
+
capName: "snapshot",
|
|
50946
|
+
capScope: "device",
|
|
50947
|
+
addonId: null,
|
|
50948
|
+
access: "view"
|
|
50949
|
+
},
|
|
49980
50950
|
"snapshot.getSnapshot": {
|
|
49981
50951
|
capName: "snapshot",
|
|
49982
50952
|
capScope: "device",
|
|
@@ -49995,6 +50965,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
49995
50965
|
addonId: null,
|
|
49996
50966
|
access: "view"
|
|
49997
50967
|
},
|
|
50968
|
+
"snapshot.getStatus": {
|
|
50969
|
+
capName: "snapshot",
|
|
50970
|
+
capScope: "device",
|
|
50971
|
+
addonId: null,
|
|
50972
|
+
access: "view"
|
|
50973
|
+
},
|
|
49998
50974
|
"snapshot.invalidateCache": {
|
|
49999
50975
|
capName: "snapshot",
|
|
50000
50976
|
capScope: "device",
|
|
@@ -50331,6 +51307,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50331
51307
|
addonId: null,
|
|
50332
51308
|
access: "create"
|
|
50333
51309
|
},
|
|
51310
|
+
"streamBroker.applyDeviceSettingsPatch": {
|
|
51311
|
+
capName: "stream-broker",
|
|
51312
|
+
capScope: "system",
|
|
51313
|
+
addonId: null,
|
|
51314
|
+
access: "create"
|
|
51315
|
+
},
|
|
50334
51316
|
"streamBroker.assignProfile": {
|
|
50335
51317
|
capName: "stream-broker",
|
|
50336
51318
|
capScope: "system",
|
|
@@ -50367,6 +51349,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50367
51349
|
addonId: null,
|
|
50368
51350
|
access: "view"
|
|
50369
51351
|
},
|
|
51352
|
+
"streamBroker.getDeviceLiveContribution": {
|
|
51353
|
+
capName: "stream-broker",
|
|
51354
|
+
capScope: "system",
|
|
51355
|
+
addonId: null,
|
|
51356
|
+
access: "view"
|
|
51357
|
+
},
|
|
51358
|
+
"streamBroker.getDeviceSettingsContribution": {
|
|
51359
|
+
capName: "stream-broker",
|
|
51360
|
+
capScope: "system",
|
|
51361
|
+
addonId: null,
|
|
51362
|
+
access: "view"
|
|
51363
|
+
},
|
|
50370
51364
|
"streamBroker.getPreBufferInfo": {
|
|
50371
51365
|
capName: "stream-broker",
|
|
50372
51366
|
capScope: "system",
|
|
@@ -50565,6 +51559,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50565
51559
|
addonId: null,
|
|
50566
51560
|
access: "view"
|
|
50567
51561
|
},
|
|
51562
|
+
"streamParams.getStatus": {
|
|
51563
|
+
capName: "stream-params",
|
|
51564
|
+
capScope: "device",
|
|
51565
|
+
addonId: null,
|
|
51566
|
+
access: "view"
|
|
51567
|
+
},
|
|
50568
51568
|
"streamParams.setProfile": {
|
|
50569
51569
|
capName: "stream-params",
|
|
50570
51570
|
capScope: "device",
|
|
@@ -50577,6 +51577,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50577
51577
|
addonId: null,
|
|
50578
51578
|
access: "view"
|
|
50579
51579
|
},
|
|
51580
|
+
"switch.getStatus": {
|
|
51581
|
+
capName: "switch",
|
|
51582
|
+
capScope: "device",
|
|
51583
|
+
addonId: null,
|
|
51584
|
+
access: "view"
|
|
51585
|
+
},
|
|
50580
51586
|
"switch.setState": {
|
|
50581
51587
|
capName: "switch",
|
|
50582
51588
|
capScope: "device",
|
|
@@ -50673,6 +51679,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50673
51679
|
addonId: null,
|
|
50674
51680
|
access: "create"
|
|
50675
51681
|
},
|
|
51682
|
+
"tamper.getStatus": {
|
|
51683
|
+
capName: "tamper",
|
|
51684
|
+
capScope: "device",
|
|
51685
|
+
addonId: null,
|
|
51686
|
+
access: "view"
|
|
51687
|
+
},
|
|
51688
|
+
"temperatureSensor.getStatus": {
|
|
51689
|
+
capName: "temperature-sensor",
|
|
51690
|
+
capScope: "device",
|
|
51691
|
+
addonId: null,
|
|
51692
|
+
access: "view"
|
|
51693
|
+
},
|
|
50676
51694
|
"terminalSession.adoptLegacyMonitor": {
|
|
50677
51695
|
capName: "terminal-session",
|
|
50678
51696
|
capScope: "system",
|
|
@@ -50769,6 +51787,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50769
51787
|
addonId: null,
|
|
50770
51788
|
access: "view"
|
|
50771
51789
|
},
|
|
51790
|
+
"update.getStatus": {
|
|
51791
|
+
capName: "update",
|
|
51792
|
+
capScope: "device",
|
|
51793
|
+
addonId: null,
|
|
51794
|
+
access: "view"
|
|
51795
|
+
},
|
|
50772
51796
|
"update.installUpdate": {
|
|
50773
51797
|
capName: "update",
|
|
50774
51798
|
capScope: "device",
|
|
@@ -50991,6 +52015,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
50991
52015
|
addonId: null,
|
|
50992
52016
|
access: "create"
|
|
50993
52017
|
},
|
|
52018
|
+
"vacuumControl.getStatus": {
|
|
52019
|
+
capName: "vacuum-control",
|
|
52020
|
+
capScope: "device",
|
|
52021
|
+
addonId: null,
|
|
52022
|
+
access: "view"
|
|
52023
|
+
},
|
|
50994
52024
|
"vacuumControl.locate": {
|
|
50995
52025
|
capName: "vacuum-control",
|
|
50996
52026
|
capScope: "device",
|
|
@@ -51033,6 +52063,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51033
52063
|
addonId: null,
|
|
51034
52064
|
access: "create"
|
|
51035
52065
|
},
|
|
52066
|
+
"valve.getStatus": {
|
|
52067
|
+
capName: "valve",
|
|
52068
|
+
capScope: "device",
|
|
52069
|
+
addonId: null,
|
|
52070
|
+
access: "view"
|
|
52071
|
+
},
|
|
51036
52072
|
"valve.open": {
|
|
51037
52073
|
capName: "valve",
|
|
51038
52074
|
capScope: "device",
|
|
@@ -51105,6 +52141,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51105
52141
|
addonId: null,
|
|
51106
52142
|
access: "create"
|
|
51107
52143
|
},
|
|
52144
|
+
"vibration.getStatus": {
|
|
52145
|
+
capName: "vibration",
|
|
52146
|
+
capScope: "device",
|
|
52147
|
+
addonId: null,
|
|
52148
|
+
access: "view"
|
|
52149
|
+
},
|
|
51108
52150
|
"videoclips.getClipPlayback": {
|
|
51109
52151
|
capName: "videoclips",
|
|
51110
52152
|
capScope: "device",
|
|
@@ -51123,6 +52165,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51123
52165
|
addonId: null,
|
|
51124
52166
|
access: "view"
|
|
51125
52167
|
},
|
|
52168
|
+
"videoclips.readClipBytes": {
|
|
52169
|
+
capName: "videoclips",
|
|
52170
|
+
capScope: "device",
|
|
52171
|
+
addonId: null,
|
|
52172
|
+
access: "view"
|
|
52173
|
+
},
|
|
51126
52174
|
"viewerUi.getStaticDir": {
|
|
51127
52175
|
capName: "viewer-ui",
|
|
51128
52176
|
capScope: "system",
|
|
@@ -51135,6 +52183,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51135
52183
|
addonId: null,
|
|
51136
52184
|
access: "view"
|
|
51137
52185
|
},
|
|
52186
|
+
"waterHeater.getStatus": {
|
|
52187
|
+
capName: "water-heater",
|
|
52188
|
+
capScope: "device",
|
|
52189
|
+
addonId: null,
|
|
52190
|
+
access: "view"
|
|
52191
|
+
},
|
|
51138
52192
|
"waterHeater.setAway": {
|
|
51139
52193
|
capName: "water-heater",
|
|
51140
52194
|
capScope: "device",
|
|
@@ -51153,6 +52207,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51153
52207
|
addonId: null,
|
|
51154
52208
|
access: "create"
|
|
51155
52209
|
},
|
|
52210
|
+
"weather.getStatus": {
|
|
52211
|
+
capName: "weather",
|
|
52212
|
+
capScope: "device",
|
|
52213
|
+
addonId: null,
|
|
52214
|
+
access: "view"
|
|
52215
|
+
},
|
|
51156
52216
|
"webrtcSession.addIceCandidate": {
|
|
51157
52217
|
capName: "webrtc-session",
|
|
51158
52218
|
capScope: "device",
|
|
@@ -51291,8 +52351,10 @@ var KNOWN_CAP_NAMES = [
|
|
|
51291
52351
|
"addon-widgets-source",
|
|
51292
52352
|
"addons",
|
|
51293
52353
|
"admin-ui",
|
|
52354
|
+
"air-quality-sensor",
|
|
51294
52355
|
"alarm-panel",
|
|
51295
52356
|
"alerts",
|
|
52357
|
+
"ambient-light-sensor",
|
|
51296
52358
|
"audio-analysis",
|
|
51297
52359
|
"audio-analyzer",
|
|
51298
52360
|
"audio-codec",
|
|
@@ -51301,16 +52363,21 @@ var KNOWN_CAP_NAMES = [
|
|
|
51301
52363
|
"automation-control",
|
|
51302
52364
|
"backup",
|
|
51303
52365
|
"battery",
|
|
52366
|
+
"binary",
|
|
51304
52367
|
"brightness",
|
|
51305
52368
|
"broker",
|
|
51306
52369
|
"button",
|
|
51307
52370
|
"camera-credentials",
|
|
51308
52371
|
"camera-grid-layout",
|
|
52372
|
+
"camera-pipeline-config",
|
|
51309
52373
|
"camera-streams",
|
|
52374
|
+
"carbon-monoxide",
|
|
51310
52375
|
"climate-control",
|
|
51311
52376
|
"color",
|
|
51312
52377
|
"connection-test",
|
|
52378
|
+
"connectivity",
|
|
51313
52379
|
"consumables",
|
|
52380
|
+
"contact",
|
|
51314
52381
|
"control",
|
|
51315
52382
|
"core-blocks",
|
|
51316
52383
|
"cover",
|
|
@@ -51318,6 +52385,7 @@ var KNOWN_CAP_NAMES = [
|
|
|
51318
52385
|
"data-store-provider",
|
|
51319
52386
|
"day-night",
|
|
51320
52387
|
"decoder",
|
|
52388
|
+
"detection-pipeline",
|
|
51321
52389
|
"device-adoption",
|
|
51322
52390
|
"device-discovery",
|
|
51323
52391
|
"device-export",
|
|
@@ -51325,13 +52393,22 @@ var KNOWN_CAP_NAMES = [
|
|
|
51325
52393
|
"device-ops",
|
|
51326
52394
|
"device-provider",
|
|
51327
52395
|
"device-state",
|
|
52396
|
+
"device-status",
|
|
52397
|
+
"doorbell",
|
|
51328
52398
|
"embedding-encoder",
|
|
52399
|
+
"enum-sensor",
|
|
52400
|
+
"event-emitter",
|
|
51329
52401
|
"events",
|
|
51330
52402
|
"face-gallery",
|
|
51331
52403
|
"failure-contribution",
|
|
51332
52404
|
"fan-control",
|
|
52405
|
+
"feature-probe",
|
|
51333
52406
|
"filesystem-browse",
|
|
52407
|
+
"flood",
|
|
52408
|
+
"gas",
|
|
51334
52409
|
"humidifier",
|
|
52410
|
+
"humidity-sensor",
|
|
52411
|
+
"image",
|
|
51335
52412
|
"image-settings",
|
|
51336
52413
|
"integrations",
|
|
51337
52414
|
"intercom",
|
|
@@ -51357,11 +52434,13 @@ var KNOWN_CAP_NAMES = [
|
|
|
51357
52434
|
"native-object-detection",
|
|
51358
52435
|
"navigation",
|
|
51359
52436
|
"network-access",
|
|
52437
|
+
"network-link",
|
|
51360
52438
|
"network-quality",
|
|
51361
52439
|
"nodes",
|
|
51362
52440
|
"notification-output",
|
|
51363
52441
|
"notification-rules",
|
|
51364
52442
|
"notifier",
|
|
52443
|
+
"numeric-sensor",
|
|
51365
52444
|
"oauth-integration",
|
|
51366
52445
|
"osd",
|
|
51367
52446
|
"osd-manager",
|
|
@@ -51372,6 +52451,9 @@ var KNOWN_CAP_NAMES = [
|
|
|
51372
52451
|
"pipeline-runner",
|
|
51373
52452
|
"plate-gallery",
|
|
51374
52453
|
"platform-probe",
|
|
52454
|
+
"power-meter",
|
|
52455
|
+
"presence",
|
|
52456
|
+
"pressure-sensor",
|
|
51375
52457
|
"privacy-mask",
|
|
51376
52458
|
"ptz",
|
|
51377
52459
|
"ptz-autotrack",
|
|
@@ -51383,6 +52465,7 @@ var KNOWN_CAP_NAMES = [
|
|
|
51383
52465
|
"script-runner",
|
|
51384
52466
|
"server-management",
|
|
51385
52467
|
"settings-store",
|
|
52468
|
+
"smoke",
|
|
51386
52469
|
"smtp-provider",
|
|
51387
52470
|
"snapshot",
|
|
51388
52471
|
"sso-bridge",
|
|
@@ -51397,6 +52480,8 @@ var KNOWN_CAP_NAMES = [
|
|
|
51397
52480
|
"stream-signals",
|
|
51398
52481
|
"switch",
|
|
51399
52482
|
"system",
|
|
52483
|
+
"tamper",
|
|
52484
|
+
"temperature-sensor",
|
|
51400
52485
|
"terminal-session",
|
|
51401
52486
|
"toast",
|
|
51402
52487
|
"turn-provider",
|
|
@@ -51406,9 +52491,11 @@ var KNOWN_CAP_NAMES = [
|
|
|
51406
52491
|
"vacuum-control",
|
|
51407
52492
|
"valve",
|
|
51408
52493
|
"vector-store",
|
|
52494
|
+
"vibration",
|
|
51409
52495
|
"videoclips",
|
|
51410
52496
|
"viewer-ui",
|
|
51411
52497
|
"water-heater",
|
|
52498
|
+
"weather",
|
|
51412
52499
|
"webrtc-session",
|
|
51413
52500
|
"zone-analytics",
|
|
51414
52501
|
"zone-rules",
|
|
@@ -51417,27 +52504,44 @@ var KNOWN_CAP_NAMES = [
|
|
|
51417
52504
|
/** Every cap declared as `scope: 'device'` — drives the `category:device` matcher. */
|
|
51418
52505
|
var DEVICE_CAP_NAMES = [
|
|
51419
52506
|
"accessories",
|
|
52507
|
+
"air-quality-sensor",
|
|
51420
52508
|
"alarm-panel",
|
|
52509
|
+
"ambient-light-sensor",
|
|
51421
52510
|
"audio-analysis",
|
|
51422
52511
|
"audio-metrics",
|
|
51423
52512
|
"automation-control",
|
|
51424
52513
|
"battery",
|
|
52514
|
+
"binary",
|
|
51425
52515
|
"brightness",
|
|
51426
52516
|
"button",
|
|
51427
52517
|
"camera-credentials",
|
|
51428
52518
|
"camera-grid-layout",
|
|
52519
|
+
"camera-pipeline-config",
|
|
51429
52520
|
"camera-streams",
|
|
52521
|
+
"carbon-monoxide",
|
|
51430
52522
|
"climate-control",
|
|
51431
52523
|
"color",
|
|
52524
|
+
"connectivity",
|
|
51432
52525
|
"consumables",
|
|
52526
|
+
"contact",
|
|
51433
52527
|
"control",
|
|
51434
52528
|
"cover",
|
|
51435
52529
|
"day-night",
|
|
52530
|
+
"detection-pipeline",
|
|
51436
52531
|
"device-discovery",
|
|
51437
52532
|
"device-ops",
|
|
52533
|
+
"device-status",
|
|
52534
|
+
"doorbell",
|
|
52535
|
+
"enum-sensor",
|
|
52536
|
+
"event-emitter",
|
|
51438
52537
|
"events",
|
|
51439
52538
|
"fan-control",
|
|
52539
|
+
"feature-probe",
|
|
52540
|
+
"flood",
|
|
52541
|
+
"gas",
|
|
51440
52542
|
"humidifier",
|
|
52543
|
+
"humidity-sensor",
|
|
52544
|
+
"image",
|
|
51441
52545
|
"image-settings",
|
|
51442
52546
|
"intercom",
|
|
51443
52547
|
"lawn-mower-control",
|
|
@@ -51449,10 +52553,15 @@ var DEVICE_CAP_NAMES = [
|
|
|
51449
52553
|
"motion-zones",
|
|
51450
52554
|
"native-object-detection",
|
|
51451
52555
|
"navigation",
|
|
52556
|
+
"network-link",
|
|
51452
52557
|
"notifier",
|
|
52558
|
+
"numeric-sensor",
|
|
51453
52559
|
"osd",
|
|
51454
52560
|
"pet-feeder",
|
|
51455
52561
|
"pipeline-analytics",
|
|
52562
|
+
"power-meter",
|
|
52563
|
+
"presence",
|
|
52564
|
+
"pressure-sensor",
|
|
51456
52565
|
"privacy-mask",
|
|
51457
52566
|
"ptz",
|
|
51458
52567
|
"ptz-autotrack",
|
|
@@ -51460,16 +52569,21 @@ var DEVICE_CAP_NAMES = [
|
|
|
51460
52569
|
"recording-signal",
|
|
51461
52570
|
"scene-monitor",
|
|
51462
52571
|
"script-runner",
|
|
52572
|
+
"smoke",
|
|
51463
52573
|
"snapshot",
|
|
51464
52574
|
"stream-catalog",
|
|
51465
52575
|
"stream-params",
|
|
51466
52576
|
"stream-signals",
|
|
51467
52577
|
"switch",
|
|
52578
|
+
"tamper",
|
|
52579
|
+
"temperature-sensor",
|
|
51468
52580
|
"update",
|
|
51469
52581
|
"vacuum-control",
|
|
51470
52582
|
"valve",
|
|
52583
|
+
"vibration",
|
|
51471
52584
|
"videoclips",
|
|
51472
52585
|
"water-heater",
|
|
52586
|
+
"weather",
|
|
51473
52587
|
"webrtc-session",
|
|
51474
52588
|
"zone-analytics",
|
|
51475
52589
|
"zone-rules",
|
|
@@ -53414,6 +54528,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
53414
54528
|
form: "single",
|
|
53415
54529
|
optional: false
|
|
53416
54530
|
}],
|
|
54531
|
+
"videoclips.readClipBytes": [{
|
|
54532
|
+
name: "deviceId",
|
|
54533
|
+
form: "single",
|
|
54534
|
+
optional: false
|
|
54535
|
+
}],
|
|
53417
54536
|
"waterHeater.setAway": [{
|
|
53418
54537
|
name: "deviceId",
|
|
53419
54538
|
form: "single",
|
|
@@ -59078,12 +60197,15 @@ exports.CarbonMonoxideStatusSchema = CarbonMonoxideStatusSchema;
|
|
|
59078
60197
|
exports.ChargingStatus = require_sleep.ChargingStatus;
|
|
59079
60198
|
exports.ClientNetworkStatsSchema = ClientNetworkStatsSchema;
|
|
59080
60199
|
exports.ClimateControlStatusSchema = ClimateControlStatusSchema;
|
|
60200
|
+
exports.ClipBytesSchema = ClipBytesSchema;
|
|
60201
|
+
exports.ClipExportFailureSchema = ClipExportFailureSchema;
|
|
59081
60202
|
exports.ClipPlaybackSchema = ClipPlaybackSchema;
|
|
59082
60203
|
exports.ClipSchema = ClipSchema;
|
|
59083
60204
|
exports.ClipSourceAvailabilitySchema = ClipSourceAvailabilitySchema;
|
|
59084
60205
|
exports.ClipSourceSchema = ClipSourceSchema;
|
|
59085
60206
|
exports.ClipStillDispositionSchema = ClipStillDispositionSchema;
|
|
59086
60207
|
exports.ClipStillRefusalCodeSchema = ClipStillRefusalCodeSchema;
|
|
60208
|
+
exports.ClipWakeSchema = ClipWakeSchema;
|
|
59087
60209
|
exports.ClusterAddonNodeDeploymentSchema = ClusterAddonNodeDeploymentSchema;
|
|
59088
60210
|
exports.ClusterAddonStatusEntrySchema = ClusterAddonStatusEntrySchema;
|
|
59089
60211
|
exports.CollectionColumnSchema = CollectionColumnSchema;
|
|
@@ -59243,15 +60365,18 @@ exports.EventMediaProductionSchema = EventMediaProductionSchema;
|
|
|
59243
60365
|
exports.EventOwnerTypeSchema = EventOwnerTypeSchema;
|
|
59244
60366
|
exports.EventSourceType = require_enums.EventSourceType$1;
|
|
59245
60367
|
exports.ExportBytesSchema = ExportBytesSchema;
|
|
60368
|
+
exports.ExportClipSubjectSchema = ExportClipSubjectSchema;
|
|
59246
60369
|
exports.ExportDenseRangeSchema = ExportDenseRangeSchema;
|
|
59247
60370
|
exports.ExportDenseSchema = ExportDenseSchema;
|
|
59248
60371
|
exports.ExportDownloadSchema = ExportDownloadSchema;
|
|
60372
|
+
exports.ExportFootageSubjectSchema = ExportFootageSubjectSchema;
|
|
59249
60373
|
exports.ExportOptionsSchema = ExportOptionsSchema;
|
|
59250
60374
|
exports.ExportRecordSchema = ExportRecordSchema;
|
|
59251
60375
|
exports.ExportSetupFieldSchema = ExportSetupFieldSchema;
|
|
59252
60376
|
exports.ExportSetupSchema = ExportSetupSchema;
|
|
59253
60377
|
exports.ExportSpeedSchema = ExportSpeedSchema;
|
|
59254
60378
|
exports.ExportStateSchema = ExportStateSchema;
|
|
60379
|
+
exports.ExportSubjectSchema = ExportSubjectSchema;
|
|
59255
60380
|
exports.ExportTimelapseSchema = ExportTimelapseSchema;
|
|
59256
60381
|
exports.ExposedDeviceSchema = ExposedDeviceSchema;
|
|
59257
60382
|
exports.ExposureModeSchema = ExposureModeSchema;
|
|
@@ -59978,6 +61103,7 @@ exports.UpdateStatusSchema = UpdateStatusSchema;
|
|
|
59978
61103
|
exports.UpdateUserInputSchema = UpdateUserInputSchema;
|
|
59979
61104
|
exports.UserRecordSchema = UserRecordSchema;
|
|
59980
61105
|
exports.UserSummarySchema = UserSummarySchema;
|
|
61106
|
+
exports.VIDEOCLIPS_MAX_READ_BYTES = VIDEOCLIPS_MAX_READ_BYTES;
|
|
59981
61107
|
exports.VISIT_MERGE_GAP_MS = VISIT_MERGE_GAP_MS;
|
|
59982
61108
|
exports.VacuumControlStatusSchema = VacuumControlStatusSchema;
|
|
59983
61109
|
exports.VacuumStateSchema = VacuumStateSchema;
|
|
@@ -60098,6 +61224,8 @@ exports.classifyBearerPrincipal = classifyBearerPrincipal;
|
|
|
60098
61224
|
exports.classifyStream = classifyStream;
|
|
60099
61225
|
exports.classifyStreams = classifyStreams;
|
|
60100
61226
|
exports.climateControlCapability = climateControlCapability;
|
|
61227
|
+
exports.clipExportFailure = clipExportFailure;
|
|
61228
|
+
exports.clipExportFailureOf = clipExportFailureOf;
|
|
60101
61229
|
exports.clusterModelSettingKey = clusterModelSettingKey;
|
|
60102
61230
|
exports.clusterStepSettingFieldsFor = clusterStepSettingFieldsFor;
|
|
60103
61231
|
exports.clusterStepSettingKey = clusterStepSettingKey;
|
|
@@ -60197,6 +61325,7 @@ exports.evictionPolicyForMode = evictionPolicyForMode;
|
|
|
60197
61325
|
exports.evictionPolicyOfLocation = evictionPolicyOfLocation;
|
|
60198
61326
|
exports.expandAudioChunkToF32le = require_sleep.expandAudioChunkToF32le;
|
|
60199
61327
|
exports.expandCapMethods = require_sleep.expandCapMethods;
|
|
61328
|
+
exports.exportSubjectOf = exportSubjectOf;
|
|
60200
61329
|
exports.extractNestedAddonId = extractNestedAddonId;
|
|
60201
61330
|
exports.extractSourceInfoFromMetadata = extractSourceInfoFromMetadata;
|
|
60202
61331
|
exports.faceGalleryCapability = faceGalleryCapability;
|
|
@@ -60331,6 +61460,7 @@ exports.oauthIntegrationCapability = oauthIntegrationCapability;
|
|
|
60331
61460
|
exports.objectInputDeclaresAddonId = objectInputDeclaresAddonId;
|
|
60332
61461
|
exports.objectInputDeclaresRequiredDeviceId = objectInputDeclaresRequiredDeviceId;
|
|
60333
61462
|
exports.occupancyScope = occupancyScope;
|
|
61463
|
+
exports.optionalMethod = require_sleep.optionalMethod;
|
|
60334
61464
|
exports.osdCapability = osdCapability;
|
|
60335
61465
|
exports.osdManagerCapability = osdManagerCapability;
|
|
60336
61466
|
exports.overlayClusterStepSettings = overlayClusterStepSettings;
|
|
@@ -60398,10 +61528,12 @@ exports.resolveBucketMs = resolveBucketMs;
|
|
|
60398
61528
|
exports.resolveCapMount = require_sleep.resolveCapMount;
|
|
60399
61529
|
exports.resolveClusterStepModelId = resolveClusterStepModelId;
|
|
60400
61530
|
exports.resolveContainerPrimaryChild = resolveContainerPrimaryChild;
|
|
61531
|
+
exports.resolveCreateExportSubject = resolveCreateExportSubject;
|
|
60401
61532
|
exports.resolveDetectionRuntime = resolveDetectionRuntime;
|
|
60402
61533
|
exports.resolveDeviceControlKind = resolveDeviceControlKind;
|
|
60403
61534
|
exports.resolveDeviceProfile = resolveDeviceProfile;
|
|
60404
61535
|
exports.resolveEgressDecodeHwAccel = resolveEgressDecodeHwAccel;
|
|
61536
|
+
exports.resolveExportProfiles = resolveExportProfiles;
|
|
60405
61537
|
exports.resolveFormat = resolveFormat;
|
|
60406
61538
|
exports.resolveHydratedFieldValue = require_sleep.resolveHydratedFieldValue;
|
|
60407
61539
|
exports.resolveLocationIcon = resolveLocationIcon;
|