@camstack/addon-training 0.1.43 → 0.1.45
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-YpCetvNg.mjs → MotionZonesSettings-XzsKyqsB.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-DJ34xZMc.mjs → PrivacyMaskSettings-BIVtbhpL.mjs} +2 -2
- package/dist/{SceneMonitorEditor-ChyCoZy6.mjs → SceneMonitorEditor-BdXyBsiC.mjs} +1 -1
- package/dist/_stub.js +3958 -3958
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-B5F2D49H.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-C96pI_Rk.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D6zlMXZo.mjs +26 -0
- package/dist/{dist-ZBXOtBdC.js → dist-BkEnS7-I.js} +363 -11
- package/dist/{dist-C7yODd9D.mjs → dist-CcO4XtoH.mjs} +363 -11
- package/dist/{hostInit-Ci39xaf6.mjs → hostInit-CbFhe3-_.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-CLkmW1-R.mjs → player-overlays-CbBz3FEH.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-DaJFlnYN.mjs → responsive-5vpaGGPe.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Cp9TxI8g.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CN6k5r8V.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BH6lTdjB.mjs +0 -26
|
@@ -5420,7 +5420,7 @@ var ZodIssueCode = {
|
|
|
5420
5420
|
var ZodFirstPartyTypeKind;
|
|
5421
5421
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5422
5422
|
//#endregion
|
|
5423
|
-
//#region ../types/dist/sleep-
|
|
5423
|
+
//#region ../types/dist/sleep-DAX0-2v9.mjs
|
|
5424
5424
|
/**
|
|
5425
5425
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5426
5426
|
* window to float samples (D455).
|
|
@@ -12203,6 +12203,12 @@ var ConvertResultSchema = object({
|
|
|
12203
12203
|
files: array(string()).readonly()
|
|
12204
12204
|
})).readonly()
|
|
12205
12205
|
});
|
|
12206
|
+
_enum(["new-session", "step-up"]);
|
|
12207
|
+
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
12208
|
+
var AppLoginPathSchema = discriminatedUnion("kind", [object({ kind: literal("native") }), object({
|
|
12209
|
+
kind: literal("browser"),
|
|
12210
|
+
startPath: string().startsWith("/")
|
|
12211
|
+
})]);
|
|
12206
12212
|
/**
|
|
12207
12213
|
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
12208
12214
|
* UI and the native viewer.
|
|
@@ -12362,7 +12368,9 @@ object({
|
|
|
12362
12368
|
signature: literal(DEVICE_CERT_SIGNATURE),
|
|
12363
12369
|
messageVersion: literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
12364
12370
|
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
12365
|
-
clients: array(_enum(["native", "web"]))
|
|
12371
|
+
clients: array(_enum(["native", "web"])),
|
|
12372
|
+
/** The app executes it itself, silently (D858). */
|
|
12373
|
+
app: AppLoginPathSchema.nullable()
|
|
12366
12374
|
});
|
|
12367
12375
|
var ExpressionBindingSourceSchema = union([
|
|
12368
12376
|
object({
|
|
@@ -15936,6 +15944,208 @@ method(object({
|
|
|
15936
15944
|
kind: "mutation",
|
|
15937
15945
|
auth: "admin"
|
|
15938
15946
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
15947
|
+
/**
|
|
15948
|
+
* device-history — the ONE mechanism for numeric history (D850).
|
|
15949
|
+
*
|
|
15950
|
+
* A device value is recorded because its capability says so (the `history`
|
|
15951
|
+
* block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
|
|
15952
|
+
* other series is DECLARED by the addon that produces it and fed with points
|
|
15953
|
+
* (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
|
|
15954
|
+
* 1d are computed here and nowhere else. Storage is `history.db` (D851).
|
|
15955
|
+
*
|
|
15956
|
+
* Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
|
|
15957
|
+
* checked against the `callerAddonId` the transport stamps into a call that
|
|
15958
|
+
* crossed a process (never in an input schema, so a session cannot supply it).
|
|
15959
|
+
* A call with no stamp is refused `not-owner`. The methods are `admin` so a
|
|
15960
|
+
* non-admin session never reaches them; an addon's `ctx.api` call bypasses the
|
|
15961
|
+
* tier by design.
|
|
15962
|
+
*/
|
|
15963
|
+
/** Whose history: a real device, or a cluster node (load, memory). */
|
|
15964
|
+
var DeviceHistorySubjectSchema = discriminatedUnion("kind", [object({
|
|
15965
|
+
kind: literal("device"),
|
|
15966
|
+
deviceId: number().int()
|
|
15967
|
+
}), object({
|
|
15968
|
+
kind: literal("node"),
|
|
15969
|
+
nodeId: string().min(1)
|
|
15970
|
+
})]);
|
|
15971
|
+
var DeviceHistoryKindSchema = _enum([
|
|
15972
|
+
"gauge",
|
|
15973
|
+
"counter",
|
|
15974
|
+
"boolean"
|
|
15975
|
+
]);
|
|
15976
|
+
var DeviceHistoryResolutionSchema = _enum([
|
|
15977
|
+
"raw",
|
|
15978
|
+
"5m",
|
|
15979
|
+
"1h",
|
|
15980
|
+
"1d"
|
|
15981
|
+
]);
|
|
15982
|
+
/** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
|
|
15983
|
+
var DeviceHistoryRefusalReasonSchema = _enum([
|
|
15984
|
+
"undeclared",
|
|
15985
|
+
"not-owner",
|
|
15986
|
+
"opted-out",
|
|
15987
|
+
"not-a-real-device",
|
|
15988
|
+
"rate",
|
|
15989
|
+
"ingest-mismatch",
|
|
15990
|
+
"out-of-range"
|
|
15991
|
+
]);
|
|
15992
|
+
var RefusalSchema = object({
|
|
15993
|
+
key: string(),
|
|
15994
|
+
reason: DeviceHistoryRefusalReasonSchema,
|
|
15995
|
+
count: number().int()
|
|
15996
|
+
});
|
|
15997
|
+
var IngestResultSchema = object({
|
|
15998
|
+
accepted: number().int(),
|
|
15999
|
+
refused: array(RefusalSchema).readonly()
|
|
16000
|
+
});
|
|
16001
|
+
var SeriesInfoSchema = object({
|
|
16002
|
+
key: string(),
|
|
16003
|
+
scope: string(),
|
|
16004
|
+
kind: DeviceHistoryKindSchema,
|
|
16005
|
+
/** `null` is unknown (a `unitFrom` series whose device does not state a unit right now), never a guess. */
|
|
16006
|
+
unit: string().nullable(),
|
|
16007
|
+
displayName: string(),
|
|
16008
|
+
source: _enum(["cap", "addon"]),
|
|
16009
|
+
firstTs: number(),
|
|
16010
|
+
lastTs: number()
|
|
16011
|
+
});
|
|
16012
|
+
var QueryPointSchema = object({
|
|
16013
|
+
/** Raw: the point's time. Rollup: the bucket start. */
|
|
16014
|
+
t: number(),
|
|
16015
|
+
samples: number().int(),
|
|
16016
|
+
/** `sum / samples`. */
|
|
16017
|
+
mean: number().nullable(),
|
|
16018
|
+
/** Time-weighted mean (`tw_sum / tw_ms`); `null` for bucket-ingested series. For a boolean: the fraction of time true. */
|
|
16019
|
+
twMean: number().nullable(),
|
|
16020
|
+
min: number(),
|
|
16021
|
+
max: number(),
|
|
16022
|
+
/** `null` is unknown, never zero (D393). */
|
|
16023
|
+
last: number().nullable()
|
|
16024
|
+
});
|
|
16025
|
+
var QuerySeriesSchema = object({
|
|
16026
|
+
scope: string(),
|
|
16027
|
+
/** The last point STRICTLY BEFORE `from` in the chosen tier, so a step chart can start at the held value. */
|
|
16028
|
+
before: object({
|
|
16029
|
+
t: number(),
|
|
16030
|
+
value: number().nullable()
|
|
16031
|
+
}).nullable(),
|
|
16032
|
+
points: array(QueryPointSchema).readonly()
|
|
16033
|
+
});
|
|
16034
|
+
/** The window part of a query, shared by the device and node forms. */
|
|
16035
|
+
var QueryWindowShape = {
|
|
16036
|
+
key: string(),
|
|
16037
|
+
scope: string().optional(),
|
|
16038
|
+
from: number(),
|
|
16039
|
+
to: number(),
|
|
16040
|
+
resolution: union([DeviceHistoryResolutionSchema, literal("auto")]).default("auto"),
|
|
16041
|
+
maxPoints: number().int().positive().max(5e3).default(1e3)
|
|
16042
|
+
};
|
|
16043
|
+
var QueryResultSchema = object({
|
|
16044
|
+
resolution: DeviceHistoryResolutionSchema,
|
|
16045
|
+
series: array(QuerySeriesSchema).readonly(),
|
|
16046
|
+
truncated: boolean()
|
|
16047
|
+
});
|
|
16048
|
+
var TierStatusSchema = object({
|
|
16049
|
+
tier: DeviceHistoryResolutionSchema,
|
|
16050
|
+
/** `null` until the first background count answered. */
|
|
16051
|
+
rows: number().int().nullable(),
|
|
16052
|
+
/** `rows` times a fixed per-row estimate — approximate, labelled so. */
|
|
16053
|
+
approxBytes: number().nullable(),
|
|
16054
|
+
countedAt: number().nullable()
|
|
16055
|
+
});
|
|
16056
|
+
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
16057
|
+
var DeviceHistoryStatusSchema = object({
|
|
16058
|
+
startedAt: number(),
|
|
16059
|
+
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
16060
|
+
ready: boolean(),
|
|
16061
|
+
series: number().int(),
|
|
16062
|
+
metrics: number().int(),
|
|
16063
|
+
optedOutDevices: number().int(),
|
|
16064
|
+
tiers: array(TierStatusSchema).readonly(),
|
|
16065
|
+
capture: object({
|
|
16066
|
+
eventsSeen: number().int(),
|
|
16067
|
+
pointsEmitted: number().int(),
|
|
16068
|
+
pointsWritten: number().int(),
|
|
16069
|
+
pointsDropped: number().int(),
|
|
16070
|
+
bufferDepth: number().int(),
|
|
16071
|
+
trailingEmitted: number().int(),
|
|
16072
|
+
reconciledPoints: number().int(),
|
|
16073
|
+
reconcileRuns: number().int(),
|
|
16074
|
+
reconcileFailures: number().int(),
|
|
16075
|
+
lastReconcileAt: number().nullable(),
|
|
16076
|
+
lastFlushAt: number().nullable(),
|
|
16077
|
+
flushFailures: number().int(),
|
|
16078
|
+
skipped: record(string(), number().int())
|
|
16079
|
+
}),
|
|
16080
|
+
ingest: object({
|
|
16081
|
+
accepted: number().int(),
|
|
16082
|
+
refused: record(string(), number().int())
|
|
16083
|
+
}),
|
|
16084
|
+
rollup: object({
|
|
16085
|
+
last5mAt: number().nullable(),
|
|
16086
|
+
last1hAt: number().nullable(),
|
|
16087
|
+
last1dAt: number().nullable(),
|
|
16088
|
+
errors: number().int(),
|
|
16089
|
+
dirty5m: number().int(),
|
|
16090
|
+
dirty1h: number().int(),
|
|
16091
|
+
dirty1d: number().int()
|
|
16092
|
+
}),
|
|
16093
|
+
retention: object({
|
|
16094
|
+
lastRunAt: number().nullable(),
|
|
16095
|
+
deleted: record(string(), number().int()),
|
|
16096
|
+
purgedSeries: number().int()
|
|
16097
|
+
}),
|
|
16098
|
+
directory: object({
|
|
16099
|
+
devices: number().int(),
|
|
16100
|
+
lastRefreshAt: number().nullable()
|
|
16101
|
+
})
|
|
16102
|
+
});
|
|
16103
|
+
method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly()), method(object({ nodeId: string().min(1) }), array(SeriesInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
16104
|
+
deviceId: number().int(),
|
|
16105
|
+
...QueryWindowShape
|
|
16106
|
+
}), QueryResultSchema), method(object({
|
|
16107
|
+
nodeId: string().min(1),
|
|
16108
|
+
...QueryWindowShape
|
|
16109
|
+
}), QueryResultSchema, { auth: "admin" }), method(object({
|
|
16110
|
+
name: string().regex(/^[a-z0-9-]+$/),
|
|
16111
|
+
subjectKind: _enum(["device", "node"]),
|
|
16112
|
+
kind: DeviceHistoryKindSchema,
|
|
16113
|
+
unit: string().optional(),
|
|
16114
|
+
displayName: string().min(1),
|
|
16115
|
+
ingest: _enum(["points", "buckets"])
|
|
16116
|
+
}), object({ key: string() }), {
|
|
16117
|
+
kind: "mutation",
|
|
16118
|
+
auth: "admin"
|
|
16119
|
+
}), method(object({ points: array(object({
|
|
16120
|
+
key: string(),
|
|
16121
|
+
subject: DeviceHistorySubjectSchema,
|
|
16122
|
+
scope: string().default(""),
|
|
16123
|
+
ts: number(),
|
|
16124
|
+
value: number()
|
|
16125
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16126
|
+
kind: "mutation",
|
|
16127
|
+
auth: "admin"
|
|
16128
|
+
}), method(object({ buckets: array(object({
|
|
16129
|
+
key: string(),
|
|
16130
|
+
subject: DeviceHistorySubjectSchema,
|
|
16131
|
+
scope: string().default(""),
|
|
16132
|
+
bucketStart: number(),
|
|
16133
|
+
samples: number().int().positive(),
|
|
16134
|
+
sum: number(),
|
|
16135
|
+
min: number(),
|
|
16136
|
+
max: number(),
|
|
16137
|
+
last: number().nullable(),
|
|
16138
|
+
lastTs: number().nullable()
|
|
16139
|
+
})).max(5e3) }), IngestResultSchema, {
|
|
16140
|
+
kind: "mutation",
|
|
16141
|
+
auth: "admin"
|
|
16142
|
+
}), method(object({ deviceId: number().int() }), object({ enabled: boolean() })), method(object({
|
|
16143
|
+
deviceId: number().int(),
|
|
16144
|
+
enabled: boolean()
|
|
16145
|
+
}), object({ enabled: boolean() }), {
|
|
16146
|
+
kind: "mutation",
|
|
16147
|
+
auth: "admin"
|
|
16148
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" });
|
|
15939
16149
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
15940
16150
|
object({ state: literal("absent") }),
|
|
15941
16151
|
object({
|
|
@@ -16053,6 +16263,9 @@ method(object({}), object({
|
|
|
16053
16263
|
}), {
|
|
16054
16264
|
kind: "mutation",
|
|
16055
16265
|
auth: "admin"
|
|
16266
|
+
}), method(object({}), object({ ok: literal(true) }), {
|
|
16267
|
+
kind: "mutation",
|
|
16268
|
+
auth: "admin"
|
|
16056
16269
|
}), method(object({
|
|
16057
16270
|
certPem: string().min(1),
|
|
16058
16271
|
caCertPem: string().min(1),
|
|
@@ -38800,7 +39013,13 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
38800
39013
|
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
38801
39014
|
* whatever their id. Absent / false — a login button only.
|
|
38802
39015
|
*/
|
|
38803
|
-
linkable: boolean().optional()
|
|
39016
|
+
linkable: boolean().optional(),
|
|
39017
|
+
/**
|
|
39018
|
+
* How a NATIVE app starts this method (D858): `{ kind: 'browser', startPath }`
|
|
39019
|
+
* when the route understands the app flow query (`app=1&code_challenge=…`),
|
|
39020
|
+
* `null`/absent when there is no app path - the app hides the method.
|
|
39021
|
+
*/
|
|
39022
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
38804
39023
|
}),
|
|
38805
39024
|
object({
|
|
38806
39025
|
kind: literal("widget"),
|
|
@@ -38812,7 +39031,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
38812
39031
|
bundle: string(),
|
|
38813
39032
|
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
38814
39033
|
remote: WidgetRemoteSchema,
|
|
38815
|
-
stage: LoginStageEnum
|
|
39034
|
+
stage: LoginStageEnum,
|
|
39035
|
+
/** Widgets are web ceremonies: no native app path (D858). Absent reads as `null`. */
|
|
39036
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
38816
39037
|
}),
|
|
38817
39038
|
object({
|
|
38818
39039
|
kind: literal("passkey"),
|
|
@@ -38824,7 +39045,9 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
38824
39045
|
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
38825
39046
|
rpId: string(),
|
|
38826
39047
|
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
38827
|
-
origin: string().nullable()
|
|
39048
|
+
origin: string().nullable(),
|
|
39049
|
+
/** Set by the hub for the primary arm; a second-factor passkey has no app path (D858). */
|
|
39050
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
38828
39051
|
})
|
|
38829
39052
|
]);
|
|
38830
39053
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
@@ -39334,7 +39557,21 @@ var NetworkEndpointSchema = object({
|
|
|
39334
39557
|
url: string(),
|
|
39335
39558
|
hostname: string(),
|
|
39336
39559
|
port: number(),
|
|
39337
|
-
protocol: _enum(["http", "https"])
|
|
39560
|
+
protocol: _enum(["http", "https"]),
|
|
39561
|
+
/**
|
|
39562
|
+
* Whether this address survives a restart of its provider. `false` = it is
|
|
39563
|
+
* re-issued every time (a Quick tunnel's random `*.trycloudflare.com`); the
|
|
39564
|
+
* hub never selects such an address AUTOMATICALLY for a role (D860), though
|
|
39565
|
+
* it stays visible and an operator may still flag it. Absent = stable: every
|
|
39566
|
+
* provider except a Quick tunnel owns a name that does not change.
|
|
39567
|
+
*/
|
|
39568
|
+
stable: boolean().optional()
|
|
39569
|
+
});
|
|
39570
|
+
object({
|
|
39571
|
+
url: string(),
|
|
39572
|
+
/** Mirrors {@link NetworkEndpointSchema} `stable`; absent = stable. */
|
|
39573
|
+
stable: boolean().optional(),
|
|
39574
|
+
updated: boolean().optional()
|
|
39338
39575
|
});
|
|
39339
39576
|
var NetworkAccessStatusSchema = object({
|
|
39340
39577
|
connected: boolean(),
|
|
@@ -49357,7 +49594,20 @@ var SsoBridgeClaimsSchema = object({
|
|
|
49357
49594
|
* request to present the matching cookie — a login bridge is useless in
|
|
49358
49595
|
* any other browser.
|
|
49359
49596
|
*/
|
|
49360
|
-
browserBinding: string().optional()
|
|
49597
|
+
browserBinding: string().optional(),
|
|
49598
|
+
/**
|
|
49599
|
+
* The native app that started this sign-in (D858): its PKCE challenge,
|
|
49600
|
+
* `state`, purpose and allow-listed return URL, copied from the server-side
|
|
49601
|
+
* pending OIDC state. A bridge carrying it is finished ONLY at
|
|
49602
|
+
* `/api/auth/sso/finish-app` (which mints a handoff code, never a web
|
|
49603
|
+
* session); `/api/auth/sso/finish` refuses it.
|
|
49604
|
+
*/
|
|
49605
|
+
app: object({
|
|
49606
|
+
codeChallenge: string(),
|
|
49607
|
+
state: string(),
|
|
49608
|
+
purpose: _enum(["new-session", "step-up"]),
|
|
49609
|
+
redirect: string()
|
|
49610
|
+
}).optional()
|
|
49361
49611
|
});
|
|
49362
49612
|
method(object({
|
|
49363
49613
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -51563,7 +51813,12 @@ var SearchResultSchema = object({
|
|
|
51563
51813
|
publishedAt: string(),
|
|
51564
51814
|
author: string(),
|
|
51565
51815
|
installed: boolean(),
|
|
51566
|
-
installedVersion: string().optional()
|
|
51816
|
+
installedVersion: string().optional(),
|
|
51817
|
+
/**
|
|
51818
|
+
* Capability names the package's addons declare (from its published
|
|
51819
|
+
* manifest). `null` = the registry lookup failed — unknown, never `[]` (D393).
|
|
51820
|
+
*/
|
|
51821
|
+
capabilities: array(string()).readonly().nullable()
|
|
51567
51822
|
});
|
|
51568
51823
|
var AutoUpdateSettingsSchema = object({
|
|
51569
51824
|
channel: ChannelSchema,
|
|
@@ -51725,7 +51980,11 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
51725
51980
|
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
51726
51981
|
kind: "mutation",
|
|
51727
51982
|
auth: "admin"
|
|
51728
|
-
}), method(object({
|
|
51983
|
+
}), method(object({
|
|
51984
|
+
query: string().optional(),
|
|
51985
|
+
/** Only packages whose addons declare this capability (unknown ones excluded). */
|
|
51986
|
+
capability: string().optional()
|
|
51987
|
+
}), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
51729
51988
|
name: string().min(1),
|
|
51730
51989
|
version: string().optional(),
|
|
51731
51990
|
nodeId: string().optional()
|
|
@@ -54133,7 +54392,13 @@ var ConnectionEndpointSchema = object({
|
|
|
54133
54392
|
* calls so the client can sort even if the cap returns a new
|
|
54134
54393
|
* ordering between polls.
|
|
54135
54394
|
*/
|
|
54136
|
-
priority: number()
|
|
54395
|
+
priority: number(),
|
|
54396
|
+
/**
|
|
54397
|
+
* `false` = the address changes on its own (a Quick tunnel, re-issued on
|
|
54398
|
+
* every respawn). Automatic role resolution skips it (D860); an explicit
|
|
54399
|
+
* operator flag still honours it. Absent = stable.
|
|
54400
|
+
*/
|
|
54401
|
+
stable: boolean().optional()
|
|
54137
54402
|
});
|
|
54138
54403
|
/**
|
|
54139
54404
|
* Where the advertised local port came from. Ordered most → least
|
|
@@ -54762,7 +55027,7 @@ var MotionOnMotionChangedDataSchema = object({
|
|
|
54762
55027
|
/** Who started it (D672). Absent = the camera itself. Only `onboard` carries `sensor`. */
|
|
54763
55028
|
triggeredBy: MotionTriggeredBySchema.optional()
|
|
54764
55029
|
});
|
|
54765
|
-
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean());
|
|
55030
|
+
DeviceType.Camera, DeviceType.Sensor, method(object({ deviceId: number() }), boolean()), DeviceType.Camera;
|
|
54766
55031
|
object({
|
|
54767
55032
|
enabled: boolean(),
|
|
54768
55033
|
/** Ms epoch of the last operator-driven change. */
|
|
@@ -62219,6 +62484,66 @@ Object.freeze({
|
|
|
62219
62484
|
addonId: null,
|
|
62220
62485
|
access: "create"
|
|
62221
62486
|
},
|
|
62487
|
+
"deviceHistory.declareSeries": {
|
|
62488
|
+
capName: "device-history",
|
|
62489
|
+
capScope: "system",
|
|
62490
|
+
addonId: null,
|
|
62491
|
+
access: "create"
|
|
62492
|
+
},
|
|
62493
|
+
"deviceHistory.getDeviceEnabled": {
|
|
62494
|
+
capName: "device-history",
|
|
62495
|
+
capScope: "system",
|
|
62496
|
+
addonId: null,
|
|
62497
|
+
access: "view"
|
|
62498
|
+
},
|
|
62499
|
+
"deviceHistory.getStatus": {
|
|
62500
|
+
capName: "device-history",
|
|
62501
|
+
capScope: "system",
|
|
62502
|
+
addonId: null,
|
|
62503
|
+
access: "view"
|
|
62504
|
+
},
|
|
62505
|
+
"deviceHistory.listNodeSeries": {
|
|
62506
|
+
capName: "device-history",
|
|
62507
|
+
capScope: "system",
|
|
62508
|
+
addonId: null,
|
|
62509
|
+
access: "view"
|
|
62510
|
+
},
|
|
62511
|
+
"deviceHistory.listSeries": {
|
|
62512
|
+
capName: "device-history",
|
|
62513
|
+
capScope: "system",
|
|
62514
|
+
addonId: null,
|
|
62515
|
+
access: "view"
|
|
62516
|
+
},
|
|
62517
|
+
"deviceHistory.query": {
|
|
62518
|
+
capName: "device-history",
|
|
62519
|
+
capScope: "system",
|
|
62520
|
+
addonId: null,
|
|
62521
|
+
access: "view"
|
|
62522
|
+
},
|
|
62523
|
+
"deviceHistory.queryNode": {
|
|
62524
|
+
capName: "device-history",
|
|
62525
|
+
capScope: "system",
|
|
62526
|
+
addonId: null,
|
|
62527
|
+
access: "view"
|
|
62528
|
+
},
|
|
62529
|
+
"deviceHistory.record": {
|
|
62530
|
+
capName: "device-history",
|
|
62531
|
+
capScope: "system",
|
|
62532
|
+
addonId: null,
|
|
62533
|
+
access: "create"
|
|
62534
|
+
},
|
|
62535
|
+
"deviceHistory.recordBuckets": {
|
|
62536
|
+
capName: "device-history",
|
|
62537
|
+
capScope: "system",
|
|
62538
|
+
addonId: null,
|
|
62539
|
+
access: "create"
|
|
62540
|
+
},
|
|
62541
|
+
"deviceHistory.setDeviceEnabled": {
|
|
62542
|
+
capName: "device-history",
|
|
62543
|
+
capScope: "system",
|
|
62544
|
+
addonId: null,
|
|
62545
|
+
access: "create"
|
|
62546
|
+
},
|
|
62222
62547
|
"deviceManager.addLocation": {
|
|
62223
62548
|
capName: "device-manager",
|
|
62224
62549
|
capScope: "system",
|
|
@@ -64283,6 +64608,12 @@ Object.freeze({
|
|
|
64283
64608
|
addonId: null,
|
|
64284
64609
|
access: "create"
|
|
64285
64610
|
},
|
|
64611
|
+
"nodeCertificates.forgetHub": {
|
|
64612
|
+
capName: "node-certificates",
|
|
64613
|
+
capScope: "system",
|
|
64614
|
+
addonId: null,
|
|
64615
|
+
access: "delete"
|
|
64616
|
+
},
|
|
64286
64617
|
"nodeCertificates.getCertificates": {
|
|
64287
64618
|
capName: "node-certificates",
|
|
64288
64619
|
capScope: "system",
|
|
@@ -69010,6 +69341,26 @@ Object.freeze({
|
|
|
69010
69341
|
form: "single",
|
|
69011
69342
|
optional: false
|
|
69012
69343
|
}],
|
|
69344
|
+
"deviceHistory.getDeviceEnabled": [{
|
|
69345
|
+
name: "deviceId",
|
|
69346
|
+
form: "single",
|
|
69347
|
+
optional: false
|
|
69348
|
+
}],
|
|
69349
|
+
"deviceHistory.listSeries": [{
|
|
69350
|
+
name: "deviceId",
|
|
69351
|
+
form: "single",
|
|
69352
|
+
optional: false
|
|
69353
|
+
}],
|
|
69354
|
+
"deviceHistory.query": [{
|
|
69355
|
+
name: "deviceId",
|
|
69356
|
+
form: "single",
|
|
69357
|
+
optional: false
|
|
69358
|
+
}],
|
|
69359
|
+
"deviceHistory.setDeviceEnabled": [{
|
|
69360
|
+
name: "deviceId",
|
|
69361
|
+
form: "single",
|
|
69362
|
+
optional: false
|
|
69363
|
+
}],
|
|
69013
69364
|
"deviceManager.adoptionRelease": [{
|
|
69014
69365
|
name: "camDeviceId",
|
|
69015
69366
|
form: "single",
|
|
@@ -71188,6 +71539,7 @@ Object.freeze({
|
|
|
71188
71539
|
"network-access": "ingress",
|
|
71189
71540
|
"smtp-provider": "email"
|
|
71190
71541
|
});
|
|
71542
|
+
DeviceType.Camera;
|
|
71191
71543
|
var G711_SCALE_CORRECTION_DB = {
|
|
71192
71544
|
PCMU: 20 * Math.log10(4),
|
|
71193
71545
|
PCMA: 20 * Math.log10(8)
|