@camstack/addon-model-studio 1.1.258 → 1.1.260
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MotionZonesSettings-CkV2aUvO.mjs → MotionZonesSettings-B1K0x6en.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-A04FmFki.mjs → PrivacyMaskSettings-DUSo9V9v.mjs} +4 -4
- package/dist/{SceneMonitorEditor-BGsdcHlo.mjs → SceneMonitorEditor-BIaR23TE.mjs} +3 -3
- package/dist/_stub.js +197 -197
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-C9097na_.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CkwkW2EP.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CPL5HlJL.mjs +26 -0
- package/dist/{hostInit-kJIPeeR8.mjs → hostInit-Dj9XbnRR.mjs} +2 -2
- package/dist/model-studio.addon.js +363 -11
- package/dist/model-studio.addon.mjs +363 -11
- package/dist/{player-overlays-CEo6fyPi.mjs → player-overlays-CeSyVA4A.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Pow15MKn.mjs → responsive-CZQqiIpv.mjs} +1 -1
- package/dist/{scene-monitor-copy-DtoPg3LV.mjs → scene-monitor-copy-B6BfcEdC.mjs} +1 -1
- package/dist/{square-CaF-sfeh.mjs → square-ScGuLQH_.mjs} +1 -1
- package/dist/{trash-2-DBoe6JLZ.mjs → trash-2-CQxFRUtz.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-EXT3i1_G.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BbU0PjTG.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D_ZqRreN.mjs +0 -26
|
@@ -5782,7 +5782,7 @@ var ZodIssueCode = {
|
|
|
5782
5782
|
var ZodFirstPartyTypeKind;
|
|
5783
5783
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5784
5784
|
//#endregion
|
|
5785
|
-
//#region ../types/dist/sleep-
|
|
5785
|
+
//#region ../types/dist/sleep-DAX0-2v9.mjs
|
|
5786
5786
|
/**
|
|
5787
5787
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5788
5788
|
* window to float samples (D455).
|
|
@@ -12767,6 +12767,12 @@ var ConvertResultSchema = object({
|
|
|
12767
12767
|
entry: ModelCatalogEntrySchema,
|
|
12768
12768
|
artifacts: array(ConvertArtifactSchema).readonly()
|
|
12769
12769
|
});
|
|
12770
|
+
_enum(["new-session", "step-up"]);
|
|
12771
|
+
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
12772
|
+
var AppLoginPathSchema = discriminatedUnion("kind", [object({ kind: literal("native") }), object({
|
|
12773
|
+
kind: literal("browser"),
|
|
12774
|
+
startPath: string().startsWith("/")
|
|
12775
|
+
})]);
|
|
12770
12776
|
/**
|
|
12771
12777
|
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
12772
12778
|
* UI and the native viewer.
|
|
@@ -12926,7 +12932,9 @@ object({
|
|
|
12926
12932
|
signature: literal(DEVICE_CERT_SIGNATURE),
|
|
12927
12933
|
messageVersion: literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
12928
12934
|
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
12929
|
-
clients: array(_enum(["native", "web"]))
|
|
12935
|
+
clients: array(_enum(["native", "web"])),
|
|
12936
|
+
/** The app executes it itself, silently (D858). */
|
|
12937
|
+
app: AppLoginPathSchema.nullable()
|
|
12930
12938
|
});
|
|
12931
12939
|
var ExpressionBindingSourceSchema = union([
|
|
12932
12940
|
object({
|
|
@@ -16528,6 +16536,208 @@ method(object({
|
|
|
16528
16536
|
kind: "mutation",
|
|
16529
16537
|
auth: "admin"
|
|
16530
16538
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
16539
|
+
/**
|
|
16540
|
+
* device-history — the ONE mechanism for numeric history (D850).
|
|
16541
|
+
*
|
|
16542
|
+
* A device value is recorded because its capability says so (the `history`
|
|
16543
|
+
* block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
|
|
16544
|
+
* other series is DECLARED by the addon that produces it and fed with points
|
|
16545
|
+
* (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
|
|
16546
|
+
* 1d are computed here and nowhere else. Storage is `history.db` (D851).
|
|
16547
|
+
*
|
|
16548
|
+
* Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
|
|
16549
|
+
* checked against the `callerAddonId` the transport stamps into a call that
|
|
16550
|
+
* crossed a process (never in an input schema, so a session cannot supply it).
|
|
16551
|
+
* A call with no stamp is refused `not-owner`. The methods are `admin` so a
|
|
16552
|
+
* non-admin session never reaches them; an addon's `ctx.api` call bypasses the
|
|
16553
|
+
* tier by design.
|
|
16554
|
+
*/
|
|
16555
|
+
/** Whose history: a real device, or a cluster node (load, memory). */
|
|
16556
|
+
var DeviceHistorySubjectSchema = discriminatedUnion("kind", [object({
|
|
16557
|
+
kind: literal("device"),
|
|
16558
|
+
deviceId: number().int()
|
|
16559
|
+
}), object({
|
|
16560
|
+
kind: literal("node"),
|
|
16561
|
+
nodeId: string().min(1)
|
|
16562
|
+
})]);
|
|
16563
|
+
var DeviceHistoryKindSchema = _enum([
|
|
16564
|
+
"gauge",
|
|
16565
|
+
"counter",
|
|
16566
|
+
"boolean"
|
|
16567
|
+
]);
|
|
16568
|
+
var DeviceHistoryResolutionSchema = _enum([
|
|
16569
|
+
"raw",
|
|
16570
|
+
"5m",
|
|
16571
|
+
"1h",
|
|
16572
|
+
"1d"
|
|
16573
|
+
]);
|
|
16574
|
+
/** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
|
|
16575
|
+
var DeviceHistoryRefusalReasonSchema = _enum([
|
|
16576
|
+
"undeclared",
|
|
16577
|
+
"not-owner",
|
|
16578
|
+
"opted-out",
|
|
16579
|
+
"not-a-real-device",
|
|
16580
|
+
"rate",
|
|
16581
|
+
"ingest-mismatch",
|
|
16582
|
+
"out-of-range"
|
|
16583
|
+
]);
|
|
16584
|
+
var RefusalSchema = object({
|
|
16585
|
+
key: string(),
|
|
16586
|
+
reason: DeviceHistoryRefusalReasonSchema,
|
|
16587
|
+
count: number().int()
|
|
16588
|
+
});
|
|
16589
|
+
var IngestResultSchema = object({
|
|
16590
|
+
accepted: number().int(),
|
|
16591
|
+
refused: array(RefusalSchema).readonly()
|
|
16592
|
+
});
|
|
16593
|
+
var SeriesInfoSchema = object({
|
|
16594
|
+
key: string(),
|
|
16595
|
+
scope: string(),
|
|
16596
|
+
kind: DeviceHistoryKindSchema,
|
|
16597
|
+
/** `null` is unknown (a `unitFrom` series whose device does not state a unit right now), never a guess. */
|
|
16598
|
+
unit: string().nullable(),
|
|
16599
|
+
displayName: string(),
|
|
16600
|
+
source: _enum(["cap", "addon"]),
|
|
16601
|
+
firstTs: number(),
|
|
16602
|
+
lastTs: number()
|
|
16603
|
+
});
|
|
16604
|
+
var QueryPointSchema = object({
|
|
16605
|
+
/** Raw: the point's time. Rollup: the bucket start. */
|
|
16606
|
+
t: number(),
|
|
16607
|
+
samples: number().int(),
|
|
16608
|
+
/** `sum / samples`. */
|
|
16609
|
+
mean: number().nullable(),
|
|
16610
|
+
/** Time-weighted mean (`tw_sum / tw_ms`); `null` for bucket-ingested series. For a boolean: the fraction of time true. */
|
|
16611
|
+
twMean: number().nullable(),
|
|
16612
|
+
min: number(),
|
|
16613
|
+
max: number(),
|
|
16614
|
+
/** `null` is unknown, never zero (D393). */
|
|
16615
|
+
last: number().nullable()
|
|
16616
|
+
});
|
|
16617
|
+
var QuerySeriesSchema = object({
|
|
16618
|
+
scope: string(),
|
|
16619
|
+
/** The last point STRICTLY BEFORE `from` in the chosen tier, so a step chart can start at the held value. */
|
|
16620
|
+
before: object({
|
|
16621
|
+
t: number(),
|
|
16622
|
+
value: number().nullable()
|
|
16623
|
+
}).nullable(),
|
|
16624
|
+
points: array(QueryPointSchema).readonly()
|
|
16625
|
+
});
|
|
16626
|
+
/** The window part of a query, shared by the device and node forms. */
|
|
16627
|
+
var QueryWindowShape = {
|
|
16628
|
+
key: string(),
|
|
16629
|
+
scope: string().optional(),
|
|
16630
|
+
from: number(),
|
|
16631
|
+
to: number(),
|
|
16632
|
+
resolution: union([DeviceHistoryResolutionSchema, literal("auto")]).default("auto"),
|
|
16633
|
+
maxPoints: number().int().positive().max(5e3).default(1e3)
|
|
16634
|
+
};
|
|
16635
|
+
var QueryResultSchema = object({
|
|
16636
|
+
resolution: DeviceHistoryResolutionSchema,
|
|
16637
|
+
series: array(QuerySeriesSchema).readonly(),
|
|
16638
|
+
truncated: boolean()
|
|
16639
|
+
});
|
|
16640
|
+
var TierStatusSchema = object({
|
|
16641
|
+
tier: DeviceHistoryResolutionSchema,
|
|
16642
|
+
/** `null` until the first background count answered. */
|
|
16643
|
+
rows: number().int().nullable(),
|
|
16644
|
+
/** `rows` times a fixed per-row estimate — approximate, labelled so. */
|
|
16645
|
+
approxBytes: number().nullable(),
|
|
16646
|
+
countedAt: number().nullable()
|
|
16647
|
+
});
|
|
16648
|
+
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
16649
|
+
var DeviceHistoryStatusSchema = object({
|
|
16650
|
+
startedAt: number(),
|
|
16651
|
+
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
16652
|
+
ready: boolean(),
|
|
16653
|
+
series: number().int(),
|
|
16654
|
+
metrics: number().int(),
|
|
16655
|
+
optedOutDevices: number().int(),
|
|
16656
|
+
tiers: array(TierStatusSchema).readonly(),
|
|
16657
|
+
capture: object({
|
|
16658
|
+
eventsSeen: number().int(),
|
|
16659
|
+
pointsEmitted: number().int(),
|
|
16660
|
+
pointsWritten: number().int(),
|
|
16661
|
+
pointsDropped: number().int(),
|
|
16662
|
+
bufferDepth: number().int(),
|
|
16663
|
+
trailingEmitted: number().int(),
|
|
16664
|
+
reconciledPoints: number().int(),
|
|
16665
|
+
reconcileRuns: number().int(),
|
|
16666
|
+
reconcileFailures: number().int(),
|
|
16667
|
+
lastReconcileAt: number().nullable(),
|
|
16668
|
+
lastFlushAt: number().nullable(),
|
|
16669
|
+
flushFailures: number().int(),
|
|
16670
|
+
skipped: record(string(), number().int())
|
|
16671
|
+
}),
|
|
16672
|
+
ingest: object({
|
|
16673
|
+
accepted: number().int(),
|
|
16674
|
+
refused: record(string(), number().int())
|
|
16675
|
+
}),
|
|
16676
|
+
rollup: object({
|
|
16677
|
+
last5mAt: number().nullable(),
|
|
16678
|
+
last1hAt: number().nullable(),
|
|
16679
|
+
last1dAt: number().nullable(),
|
|
16680
|
+
errors: number().int(),
|
|
16681
|
+
dirty5m: number().int(),
|
|
16682
|
+
dirty1h: number().int(),
|
|
16683
|
+
dirty1d: number().int()
|
|
16684
|
+
}),
|
|
16685
|
+
retention: object({
|
|
16686
|
+
lastRunAt: number().nullable(),
|
|
16687
|
+
deleted: record(string(), number().int()),
|
|
16688
|
+
purgedSeries: number().int()
|
|
16689
|
+
}),
|
|
16690
|
+
directory: object({
|
|
16691
|
+
devices: number().int(),
|
|
16692
|
+
lastRefreshAt: number().nullable()
|
|
16693
|
+
})
|
|
16694
|
+
});
|
|
16695
|
+
method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly()), method(object({ nodeId: string().min(1) }), array(SeriesInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
16696
|
+
deviceId: number().int(),
|
|
16697
|
+
...QueryWindowShape
|
|
16698
|
+
}), QueryResultSchema), method(object({
|
|
16699
|
+
nodeId: string().min(1),
|
|
16700
|
+
...QueryWindowShape
|
|
16701
|
+
}), QueryResultSchema, { auth: "admin" }), method(object({
|
|
16702
|
+
name: string().regex(/^[a-z0-9-]+$/),
|
|
16703
|
+
subjectKind: _enum(["device", "node"]),
|
|
16704
|
+
kind: DeviceHistoryKindSchema,
|
|
16705
|
+
unit: string().optional(),
|
|
16706
|
+
displayName: string().min(1),
|
|
16707
|
+
ingest: _enum(["points", "buckets"])
|
|
16708
|
+
}), object({ key: string() }), {
|
|
16709
|
+
kind: "mutation",
|
|
16710
|
+
auth: "admin"
|
|
16711
|
+
}), method(object({ points: array(object({
|
|
16712
|
+
key: string(),
|
|
16713
|
+
subject: DeviceHistorySubjectSchema,
|
|
16714
|
+
scope: string().default(""),
|
|
16715
|
+
ts: number(),
|
|
16716
|
+
value: number()
|
|
16717
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16718
|
+
kind: "mutation",
|
|
16719
|
+
auth: "admin"
|
|
16720
|
+
}), method(object({ buckets: array(object({
|
|
16721
|
+
key: string(),
|
|
16722
|
+
subject: DeviceHistorySubjectSchema,
|
|
16723
|
+
scope: string().default(""),
|
|
16724
|
+
bucketStart: number(),
|
|
16725
|
+
samples: number().int().positive(),
|
|
16726
|
+
sum: number(),
|
|
16727
|
+
min: number(),
|
|
16728
|
+
max: number(),
|
|
16729
|
+
last: number().nullable(),
|
|
16730
|
+
lastTs: number().nullable()
|
|
16731
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16732
|
+
kind: "mutation",
|
|
16733
|
+
auth: "admin"
|
|
16734
|
+
}), method(object({ deviceId: number().int() }), object({ enabled: boolean() })), method(object({
|
|
16735
|
+
deviceId: number().int(),
|
|
16736
|
+
enabled: boolean()
|
|
16737
|
+
}), object({ enabled: boolean() }), {
|
|
16738
|
+
kind: "mutation",
|
|
16739
|
+
auth: "admin"
|
|
16740
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
|
|
16531
16741
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
16532
16742
|
object({ state: literal("absent") }),
|
|
16533
16743
|
object({
|
|
@@ -16645,6 +16855,9 @@ method(object({}), object({
|
|
|
16645
16855
|
}), {
|
|
16646
16856
|
kind: "mutation",
|
|
16647
16857
|
auth: "admin"
|
|
16858
|
+
}), method(object({}), object({ ok: literal(true) }), {
|
|
16859
|
+
kind: "mutation",
|
|
16860
|
+
auth: "admin"
|
|
16648
16861
|
}), method(object({
|
|
16649
16862
|
certPem: string().min(1),
|
|
16650
16863
|
caCertPem: string().min(1),
|
|
@@ -39392,7 +39605,13 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
39392
39605
|
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
39393
39606
|
* whatever their id. Absent / false — a login button only.
|
|
39394
39607
|
*/
|
|
39395
|
-
linkable: boolean().optional()
|
|
39608
|
+
linkable: boolean().optional(),
|
|
39609
|
+
/**
|
|
39610
|
+
* How a NATIVE app starts this method (D858): `{ kind: 'browser', startPath }`
|
|
39611
|
+
* when the route understands the app flow query (`app=1&code_challenge=…`),
|
|
39612
|
+
* `null`/absent when there is no app path - the app hides the method.
|
|
39613
|
+
*/
|
|
39614
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
39396
39615
|
}),
|
|
39397
39616
|
object({
|
|
39398
39617
|
kind: literal("widget"),
|
|
@@ -39404,7 +39623,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
39404
39623
|
bundle: string(),
|
|
39405
39624
|
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
39406
39625
|
remote: WidgetRemoteSchema,
|
|
39407
|
-
stage: LoginStageEnum
|
|
39626
|
+
stage: LoginStageEnum,
|
|
39627
|
+
/** Widgets are web ceremonies: no native app path (D858). Absent reads as `null`. */
|
|
39628
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
39408
39629
|
}),
|
|
39409
39630
|
object({
|
|
39410
39631
|
kind: literal("passkey"),
|
|
@@ -39416,7 +39637,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
39416
39637
|
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
39417
39638
|
rpId: string(),
|
|
39418
39639
|
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
39419
|
-
origin: string().nullable()
|
|
39640
|
+
origin: string().nullable(),
|
|
39641
|
+
/** Set by the hub for the primary arm; a second-factor passkey has no app path (D858). */
|
|
39642
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
39420
39643
|
})
|
|
39421
39644
|
]);
|
|
39422
39645
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
@@ -39932,7 +40155,21 @@ var NetworkEndpointSchema = object({
|
|
|
39932
40155
|
url: string(),
|
|
39933
40156
|
hostname: string(),
|
|
39934
40157
|
port: number(),
|
|
39935
|
-
protocol: _enum(["http", "https"])
|
|
40158
|
+
protocol: _enum(["http", "https"]),
|
|
40159
|
+
/**
|
|
40160
|
+
* Whether this address survives a restart of its provider. `false` = it is
|
|
40161
|
+
* re-issued every time (a Quick tunnel's random `*.trycloudflare.com`); the
|
|
40162
|
+
* hub never selects such an address AUTOMATICALLY for a role (D860), though
|
|
40163
|
+
* it stays visible and an operator may still flag it. Absent = stable: every
|
|
40164
|
+
* provider except a Quick tunnel owns a name that does not change.
|
|
40165
|
+
*/
|
|
40166
|
+
stable: boolean().optional()
|
|
40167
|
+
});
|
|
40168
|
+
object({
|
|
40169
|
+
url: string(),
|
|
40170
|
+
/** Mirrors {@link NetworkEndpointSchema} `stable`; absent = stable. */
|
|
40171
|
+
stable: boolean().optional(),
|
|
40172
|
+
updated: boolean().optional()
|
|
39936
40173
|
});
|
|
39937
40174
|
var NetworkAccessStatusSchema = object({
|
|
39938
40175
|
connected: boolean(),
|
|
@@ -49955,7 +50192,20 @@ var SsoBridgeClaimsSchema = object({
|
|
|
49955
50192
|
* request to present the matching cookie — a login bridge is useless in
|
|
49956
50193
|
* any other browser.
|
|
49957
50194
|
*/
|
|
49958
|
-
browserBinding: string().optional()
|
|
50195
|
+
browserBinding: string().optional(),
|
|
50196
|
+
/**
|
|
50197
|
+
* The native app that started this sign-in (D858): its PKCE challenge,
|
|
50198
|
+
* `state`, purpose and allow-listed return URL, copied from the server-side
|
|
50199
|
+
* pending OIDC state. A bridge carrying it is finished ONLY at
|
|
50200
|
+
* `/api/auth/sso/finish-app` (which mints a handoff code, never a web
|
|
50201
|
+
* session); `/api/auth/sso/finish` refuses it.
|
|
50202
|
+
*/
|
|
50203
|
+
app: object({
|
|
50204
|
+
codeChallenge: string(),
|
|
50205
|
+
state: string(),
|
|
50206
|
+
purpose: _enum(["new-session", "step-up"]),
|
|
50207
|
+
redirect: string()
|
|
50208
|
+
}).optional()
|
|
49959
50209
|
});
|
|
49960
50210
|
method(object({
|
|
49961
50211
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -52161,7 +52411,12 @@ var SearchResultSchema = object({
|
|
|
52161
52411
|
publishedAt: string(),
|
|
52162
52412
|
author: string(),
|
|
52163
52413
|
installed: boolean(),
|
|
52164
|
-
installedVersion: string().optional()
|
|
52414
|
+
installedVersion: string().optional(),
|
|
52415
|
+
/**
|
|
52416
|
+
* Capability names the package's addons declare (from its published
|
|
52417
|
+
* manifest). `null` = the registry lookup failed — unknown, never `[]` (D393).
|
|
52418
|
+
*/
|
|
52419
|
+
capabilities: array(string()).readonly().nullable()
|
|
52165
52420
|
});
|
|
52166
52421
|
var AutoUpdateSettingsSchema = object({
|
|
52167
52422
|
channel: ChannelSchema,
|
|
@@ -52323,7 +52578,11 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
52323
52578
|
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
52324
52579
|
kind: "mutation",
|
|
52325
52580
|
auth: "admin"
|
|
52326
|
-
}), method(object({
|
|
52581
|
+
}), method(object({
|
|
52582
|
+
query: string().optional(),
|
|
52583
|
+
/** Only packages whose addons declare this capability (unknown ones excluded). */
|
|
52584
|
+
capability: string().optional()
|
|
52585
|
+
}), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
52327
52586
|
name: string().min(1),
|
|
52328
52587
|
version: string().optional(),
|
|
52329
52588
|
nodeId: string().optional()
|
|
@@ -54731,7 +54990,13 @@ var ConnectionEndpointSchema = object({
|
|
|
54731
54990
|
* calls so the client can sort even if the cap returns a new
|
|
54732
54991
|
* ordering between polls.
|
|
54733
54992
|
*/
|
|
54734
|
-
priority: number()
|
|
54993
|
+
priority: number(),
|
|
54994
|
+
/**
|
|
54995
|
+
* `false` = the address changes on its own (a Quick tunnel, re-issued on
|
|
54996
|
+
* every respawn). Automatic role resolution skips it (D860); an explicit
|
|
54997
|
+
* operator flag still honours it. Absent = stable.
|
|
54998
|
+
*/
|
|
54999
|
+
stable: boolean().optional()
|
|
54735
55000
|
});
|
|
54736
55001
|
/**
|
|
54737
55002
|
* Where the advertised local port came from. Ordered most → least
|
|
@@ -55360,7 +55625,7 @@ var MotionOnMotionChangedDataSchema = object({
|
|
|
55360
55625
|
/** Who started it (D672). Absent = the camera itself. Only `onboard` carries `sensor`. */
|
|
55361
55626
|
triggeredBy: MotionTriggeredBySchema.optional()
|
|
55362
55627
|
});
|
|
55363
|
-
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean());
|
|
55628
|
+
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean()), DeviceType.Camera;
|
|
55364
55629
|
object({
|
|
55365
55630
|
enabled: boolean(),
|
|
55366
55631
|
/** Ms epoch of the last operator-driven change. */
|
|
@@ -62815,6 +63080,66 @@ Object.freeze({
|
|
|
62815
63080
|
addonId: null,
|
|
62816
63081
|
access: "create"
|
|
62817
63082
|
},
|
|
63083
|
+
"deviceHistory.declareSeries": {
|
|
63084
|
+
capName: "device-history",
|
|
63085
|
+
capScope: "system",
|
|
63086
|
+
addonId: null,
|
|
63087
|
+
access: "create"
|
|
63088
|
+
},
|
|
63089
|
+
"deviceHistory.getDeviceEnabled": {
|
|
63090
|
+
capName: "device-history",
|
|
63091
|
+
capScope: "system",
|
|
63092
|
+
addonId: null,
|
|
63093
|
+
access: "view"
|
|
63094
|
+
},
|
|
63095
|
+
"deviceHistory.getStatus": {
|
|
63096
|
+
capName: "device-history",
|
|
63097
|
+
capScope: "system",
|
|
63098
|
+
addonId: null,
|
|
63099
|
+
access: "view"
|
|
63100
|
+
},
|
|
63101
|
+
"deviceHistory.listNodeSeries": {
|
|
63102
|
+
capName: "device-history",
|
|
63103
|
+
capScope: "system",
|
|
63104
|
+
addonId: null,
|
|
63105
|
+
access: "view"
|
|
63106
|
+
},
|
|
63107
|
+
"deviceHistory.listSeries": {
|
|
63108
|
+
capName: "device-history",
|
|
63109
|
+
capScope: "system",
|
|
63110
|
+
addonId: null,
|
|
63111
|
+
access: "view"
|
|
63112
|
+
},
|
|
63113
|
+
"deviceHistory.query": {
|
|
63114
|
+
capName: "device-history",
|
|
63115
|
+
capScope: "system",
|
|
63116
|
+
addonId: null,
|
|
63117
|
+
access: "view"
|
|
63118
|
+
},
|
|
63119
|
+
"deviceHistory.queryNode": {
|
|
63120
|
+
capName: "device-history",
|
|
63121
|
+
capScope: "system",
|
|
63122
|
+
addonId: null,
|
|
63123
|
+
access: "view"
|
|
63124
|
+
},
|
|
63125
|
+
"deviceHistory.record": {
|
|
63126
|
+
capName: "device-history",
|
|
63127
|
+
capScope: "system",
|
|
63128
|
+
addonId: null,
|
|
63129
|
+
access: "create"
|
|
63130
|
+
},
|
|
63131
|
+
"deviceHistory.recordBuckets": {
|
|
63132
|
+
capName: "device-history",
|
|
63133
|
+
capScope: "system",
|
|
63134
|
+
addonId: null,
|
|
63135
|
+
access: "create"
|
|
63136
|
+
},
|
|
63137
|
+
"deviceHistory.setDeviceEnabled": {
|
|
63138
|
+
capName: "device-history",
|
|
63139
|
+
capScope: "system",
|
|
63140
|
+
addonId: null,
|
|
63141
|
+
access: "create"
|
|
63142
|
+
},
|
|
62818
63143
|
"deviceManager.addLocation": {
|
|
62819
63144
|
capName: "device-manager",
|
|
62820
63145
|
capScope: "system",
|
|
@@ -64879,6 +65204,12 @@ Object.freeze({
|
|
|
64879
65204
|
addonId: null,
|
|
64880
65205
|
access: "create"
|
|
64881
65206
|
},
|
|
65207
|
+
"nodeCertificates.forgetHub": {
|
|
65208
|
+
capName: "node-certificates",
|
|
65209
|
+
capScope: "system",
|
|
65210
|
+
addonId: null,
|
|
65211
|
+
access: "delete"
|
|
65212
|
+
},
|
|
64882
65213
|
"nodeCertificates.getCertificates": {
|
|
64883
65214
|
capName: "node-certificates",
|
|
64884
65215
|
capScope: "system",
|
|
@@ -69606,6 +69937,26 @@ Object.freeze({
|
|
|
69606
69937
|
form: "single",
|
|
69607
69938
|
optional: false
|
|
69608
69939
|
}],
|
|
69940
|
+
"deviceHistory.getDeviceEnabled": [{
|
|
69941
|
+
name: "deviceId",
|
|
69942
|
+
form: "single",
|
|
69943
|
+
optional: false
|
|
69944
|
+
}],
|
|
69945
|
+
"deviceHistory.listSeries": [{
|
|
69946
|
+
name: "deviceId",
|
|
69947
|
+
form: "single",
|
|
69948
|
+
optional: false
|
|
69949
|
+
}],
|
|
69950
|
+
"deviceHistory.query": [{
|
|
69951
|
+
name: "deviceId",
|
|
69952
|
+
form: "single",
|
|
69953
|
+
optional: false
|
|
69954
|
+
}],
|
|
69955
|
+
"deviceHistory.setDeviceEnabled": [{
|
|
69956
|
+
name: "deviceId",
|
|
69957
|
+
form: "single",
|
|
69958
|
+
optional: false
|
|
69959
|
+
}],
|
|
69609
69960
|
"deviceManager.adoptionRelease": [{
|
|
69610
69961
|
name: "camDeviceId",
|
|
69611
69962
|
form: "single",
|
|
@@ -71784,6 +72135,7 @@ Object.freeze({
|
|
|
71784
72135
|
"network-access": "ingress",
|
|
71785
72136
|
"smtp-provider": "email"
|
|
71786
72137
|
});
|
|
72138
|
+
DeviceType.Camera;
|
|
71787
72139
|
var G711_SCALE_CORRECTION_DB = {
|
|
71788
72140
|
PCMU: 20 * Math.log10(4),
|
|
71789
72141
|
PCMA: 20 * Math.log10(8)
|