@camstack/addon-tailscale-ingress 0.1.5 → 0.1.6
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.
|
@@ -4617,7 +4617,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4617
4617
|
return inst;
|
|
4618
4618
|
}
|
|
4619
4619
|
//#endregion
|
|
4620
|
-
//#region ../types/dist/index-
|
|
4620
|
+
//#region ../types/dist/index-CgPd35k5.mjs
|
|
4621
4621
|
var MODEL_FORMATS = [
|
|
4622
4622
|
"onnx",
|
|
4623
4623
|
"coreml",
|
|
@@ -4692,6 +4692,12 @@ Object.fromEntries([
|
|
|
4692
4692
|
icon: "video",
|
|
4693
4693
|
order: 35
|
|
4694
4694
|
},
|
|
4695
|
+
{
|
|
4696
|
+
id: "ptz",
|
|
4697
|
+
label: "PTZ",
|
|
4698
|
+
icon: "move",
|
|
4699
|
+
order: 40
|
|
4700
|
+
},
|
|
4695
4701
|
{
|
|
4696
4702
|
id: "pipeline",
|
|
4697
4703
|
label: "Detection Pipeline",
|
|
@@ -4805,6 +4811,10 @@ function hydrateField(field, values) {
|
|
|
4805
4811
|
};
|
|
4806
4812
|
}
|
|
4807
4813
|
const rawValue = storedValue !== void 0 ? storedValue : defaultValue !== void 0 ? defaultValue : null;
|
|
4814
|
+
if (field.type === "password") return {
|
|
4815
|
+
...field,
|
|
4816
|
+
value: ""
|
|
4817
|
+
};
|
|
4808
4818
|
const value = field.type === "textarea" && field.isJson && rawValue !== null && typeof rawValue === "object" ? JSON.stringify(rawValue, null, 2) : rawValue;
|
|
4809
4819
|
return {
|
|
4810
4820
|
...field,
|
|
@@ -4883,7 +4893,19 @@ var DecoderSessionConfigSchema = object({
|
|
|
4883
4893
|
* on every line so `grep tag=broker:5/high` filters one camera
|
|
4884
4894
|
* profile cleanly.
|
|
4885
4895
|
*/
|
|
4886
|
-
tag: string().optional()
|
|
4896
|
+
tag: string().optional(),
|
|
4897
|
+
/**
|
|
4898
|
+
* Where the session delivers decoded frames (Phase 5 / D9):
|
|
4899
|
+
*
|
|
4900
|
+
* - `'callback'` (default) — the legacy pixel path: decoded frames are
|
|
4901
|
+
* buffered as `DecodedFrame`s and drained via `pullFrames`.
|
|
4902
|
+
* - `'shm'` — the shared-memory frame plane: decoded frames are written
|
|
4903
|
+
* into an OS shared-memory ring and drained as zero-pixel
|
|
4904
|
+
* `FrameHandle`s via `pullHandles`. A session is one mode or the
|
|
4905
|
+
* other — `pullFrames` returns nothing for an `'shm'` session and
|
|
4906
|
+
* `pullHandles` returns nothing for a `'callback'` session.
|
|
4907
|
+
*/
|
|
4908
|
+
frameSink: _enum(["callback", "shm"]).default("callback")
|
|
4887
4909
|
});
|
|
4888
4910
|
var YAMNET_TO_MACRO = {
|
|
4889
4911
|
mapping: {
|
|
@@ -5536,6 +5558,63 @@ var DecodedFrameSchema = object({
|
|
|
5536
5558
|
]),
|
|
5537
5559
|
timestamp: number()
|
|
5538
5560
|
});
|
|
5561
|
+
var FrameHandleSchema = object({
|
|
5562
|
+
shmId: string(),
|
|
5563
|
+
slot: number().int().nonnegative(),
|
|
5564
|
+
seq: number().int().nonnegative(),
|
|
5565
|
+
width: number().int().positive(),
|
|
5566
|
+
height: number().int().positive(),
|
|
5567
|
+
format: _enum([
|
|
5568
|
+
"jpeg",
|
|
5569
|
+
"rgb",
|
|
5570
|
+
"bgr",
|
|
5571
|
+
"yuv420",
|
|
5572
|
+
"gray"
|
|
5573
|
+
]),
|
|
5574
|
+
pts: number(),
|
|
5575
|
+
byteLength: number().int().nonnegative(),
|
|
5576
|
+
nodeId: string(),
|
|
5577
|
+
slotCount: number().int().positive()
|
|
5578
|
+
});
|
|
5579
|
+
var FrameHandleFormatSchema = _enum([
|
|
5580
|
+
"rgb",
|
|
5581
|
+
"bgr",
|
|
5582
|
+
"yuv420",
|
|
5583
|
+
"gray"
|
|
5584
|
+
]);
|
|
5585
|
+
var SubscribeFramesInputSchema = object({
|
|
5586
|
+
brokerId: string(),
|
|
5587
|
+
format: FrameHandleFormatSchema,
|
|
5588
|
+
/**
|
|
5589
|
+
* Optional reader-side cadence hint in frames per second. The broker does
|
|
5590
|
+
* NOT throttle — latest-wins ring reads drop frames implicitly for a slow
|
|
5591
|
+
* consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
|
|
5592
|
+
* the consumer can pace its own `pullFrameHandles` polling.
|
|
5593
|
+
*/
|
|
5594
|
+
maxFps: number().positive().optional(),
|
|
5595
|
+
/** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
|
|
5596
|
+
tag: string().optional()
|
|
5597
|
+
});
|
|
5598
|
+
var SubscribeFramesResultSchema = object({
|
|
5599
|
+
/** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
|
|
5600
|
+
subscriptionId: string(),
|
|
5601
|
+
/** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
|
|
5602
|
+
maxFps: number().nonnegative()
|
|
5603
|
+
});
|
|
5604
|
+
var DecodedAudioChunkSchema = object({
|
|
5605
|
+
data: _instanceof(Uint8Array),
|
|
5606
|
+
sampleRate: number().int().positive(),
|
|
5607
|
+
channels: number().int().positive(),
|
|
5608
|
+
timestamp: number()
|
|
5609
|
+
});
|
|
5610
|
+
var SubscribeAudioChunksInputSchema = object({
|
|
5611
|
+
brokerId: string(),
|
|
5612
|
+
/** Short caller-identity tag (`audio-analyzer`, …) for `listClients`. */
|
|
5613
|
+
tag: string().optional()
|
|
5614
|
+
});
|
|
5615
|
+
var SubscribeAudioChunksResultSchema = object({
|
|
5616
|
+
/** Opaque id passed to `pullAudioChunks` / `unsubscribeAudioChunks`. */
|
|
5617
|
+
subscriptionId: string() });
|
|
5539
5618
|
var BrokerStatsSchema = object({
|
|
5540
5619
|
status: _enum([
|
|
5541
5620
|
"idle",
|
|
@@ -5737,7 +5816,13 @@ method(object({
|
|
|
5737
5816
|
}), {
|
|
5738
5817
|
kind: "mutation",
|
|
5739
5818
|
auth: "admin"
|
|
5740
|
-
}), method(
|
|
5819
|
+
}), method(SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, { kind: "mutation" }), method(object({
|
|
5820
|
+
subscriptionId: string(),
|
|
5821
|
+
maxCount: number().int().positive().default(8)
|
|
5822
|
+
}), array(DecodedAudioChunkSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(SubscribeFramesInputSchema, SubscribeFramesResultSchema, { kind: "mutation" }), method(object({
|
|
5823
|
+
subscriptionId: string(),
|
|
5824
|
+
maxCount: number().int().positive().default(4)
|
|
5825
|
+
}), array(FrameHandleSchema).readonly()), method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }), method(object({
|
|
5741
5826
|
brokerId: string(),
|
|
5742
5827
|
seconds: number().min(0).max(30)
|
|
5743
5828
|
}), _void(), {
|
|
@@ -6429,6 +6514,34 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
6429
6514
|
enabled: boolean(),
|
|
6430
6515
|
lastChangedAt: number()
|
|
6431
6516
|
});
|
|
6517
|
+
object({
|
|
6518
|
+
enabled: boolean(),
|
|
6519
|
+
sensitivity: number(),
|
|
6520
|
+
/** Row-major active-cell grid. Length = gridWidth*gridHeight (see getOptions). */
|
|
6521
|
+
cells: array(boolean()),
|
|
6522
|
+
lastFetchedAt: number()
|
|
6523
|
+
});
|
|
6524
|
+
var MotionZoneOptionsSchema = object({
|
|
6525
|
+
gridWidth: number(),
|
|
6526
|
+
gridHeight: number(),
|
|
6527
|
+
sensitivity: object({
|
|
6528
|
+
min: number(),
|
|
6529
|
+
max: number(),
|
|
6530
|
+
step: number()
|
|
6531
|
+
})
|
|
6532
|
+
});
|
|
6533
|
+
var MotionZonePatchSchema = object({
|
|
6534
|
+
enabled: boolean().optional(),
|
|
6535
|
+
sensitivity: number().optional(),
|
|
6536
|
+
cells: array(boolean()).optional()
|
|
6537
|
+
});
|
|
6538
|
+
DeviceType.Camera, method(object({ deviceId: number() }), MotionZoneOptionsSchema), method(object({
|
|
6539
|
+
deviceId: number(),
|
|
6540
|
+
patch: MotionZonePatchSchema
|
|
6541
|
+
}), _void(), {
|
|
6542
|
+
kind: "mutation",
|
|
6543
|
+
auth: "admin"
|
|
6544
|
+
});
|
|
6432
6545
|
var PtzAutotrackSettingsSchema = object({
|
|
6433
6546
|
targetType: string().describe("Vendor target string (people/vehicle/pet); empty = camera default"),
|
|
6434
6547
|
stopDelaySeconds: number().int().min(0).max(300),
|
|
@@ -6470,6 +6583,85 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
6470
6583
|
deviceId: number(),
|
|
6471
6584
|
status: PtzAutotrackStatusSchema
|
|
6472
6585
|
});
|
|
6586
|
+
var StreamProfileSchema = _enum([
|
|
6587
|
+
"main",
|
|
6588
|
+
"sub",
|
|
6589
|
+
"ext"
|
|
6590
|
+
]);
|
|
6591
|
+
var StreamProfileConfigSchema = object({
|
|
6592
|
+
width: number(),
|
|
6593
|
+
height: number(),
|
|
6594
|
+
codec: _enum(["h264", "h265"]),
|
|
6595
|
+
framerate: number(),
|
|
6596
|
+
bitrate: number(),
|
|
6597
|
+
bitrateMode: _enum(["vbr", "cbr"]).optional(),
|
|
6598
|
+
encoderProfile: _enum([
|
|
6599
|
+
"high",
|
|
6600
|
+
"main",
|
|
6601
|
+
"baseline"
|
|
6602
|
+
]).optional(),
|
|
6603
|
+
gop: number().optional(),
|
|
6604
|
+
audio: boolean().optional()
|
|
6605
|
+
});
|
|
6606
|
+
object({
|
|
6607
|
+
/** Per-profile current config. A profile absent = the camera doesn't have it. */
|
|
6608
|
+
main: StreamProfileConfigSchema.optional(),
|
|
6609
|
+
sub: StreamProfileConfigSchema.optional(),
|
|
6610
|
+
ext: StreamProfileConfigSchema.optional(),
|
|
6611
|
+
lastFetchedAt: number()
|
|
6612
|
+
});
|
|
6613
|
+
var StreamProfileOptionsSchema = object({
|
|
6614
|
+
resolutions: array(object({
|
|
6615
|
+
width: number(),
|
|
6616
|
+
height: number()
|
|
6617
|
+
})),
|
|
6618
|
+
codecs: array(_enum(["h264", "h265"])),
|
|
6619
|
+
framerates: array(number()),
|
|
6620
|
+
/** Allowed bitrate values (kbps). Empty if the camera takes a free range. */
|
|
6621
|
+
bitrates: array(number()),
|
|
6622
|
+
/** Optional [min,max] kbps when the camera accepts a continuous range. */
|
|
6623
|
+
bitrateRange: tuple([number(), number()]).optional(),
|
|
6624
|
+
supportsBitrateMode: boolean(),
|
|
6625
|
+
supportsEncoderProfile: boolean(),
|
|
6626
|
+
supportsGop: boolean(),
|
|
6627
|
+
/** Allowed GOP / keyframe-interval range, in seconds — drives the
|
|
6628
|
+
* I-frame-interval selector. Absent when the camera advertises GOP
|
|
6629
|
+
* support but no concrete range (callers then fall back to a free
|
|
6630
|
+
* numeric input). `{ min, max, step }` per the getOptions convention. */
|
|
6631
|
+
gop: object({
|
|
6632
|
+
min: number(),
|
|
6633
|
+
max: number(),
|
|
6634
|
+
step: number()
|
|
6635
|
+
}).optional()
|
|
6636
|
+
});
|
|
6637
|
+
var StreamParamsOptionsSchema = object({
|
|
6638
|
+
main: StreamProfileOptionsSchema.optional(),
|
|
6639
|
+
sub: StreamProfileOptionsSchema.optional(),
|
|
6640
|
+
ext: StreamProfileOptionsSchema.optional()
|
|
6641
|
+
});
|
|
6642
|
+
var StreamProfilePatchSchema = object({
|
|
6643
|
+
width: number().optional(),
|
|
6644
|
+
height: number().optional(),
|
|
6645
|
+
codec: _enum(["h264", "h265"]).optional(),
|
|
6646
|
+
framerate: number().optional(),
|
|
6647
|
+
bitrate: number().optional(),
|
|
6648
|
+
bitrateMode: _enum(["vbr", "cbr"]).optional(),
|
|
6649
|
+
encoderProfile: _enum([
|
|
6650
|
+
"high",
|
|
6651
|
+
"main",
|
|
6652
|
+
"baseline"
|
|
6653
|
+
]).optional(),
|
|
6654
|
+
gop: number().optional(),
|
|
6655
|
+
audio: boolean().optional()
|
|
6656
|
+
});
|
|
6657
|
+
DeviceType.Camera, method(object({ deviceId: number() }), StreamParamsOptionsSchema), method(object({
|
|
6658
|
+
deviceId: number(),
|
|
6659
|
+
profile: StreamProfileSchema,
|
|
6660
|
+
patch: StreamProfilePatchSchema
|
|
6661
|
+
}), _void(), {
|
|
6662
|
+
kind: "mutation",
|
|
6663
|
+
auth: "admin"
|
|
6664
|
+
}), method(object({ deviceId: number() }), unknown().nullable());
|
|
6473
6665
|
object({
|
|
6474
6666
|
on: boolean(),
|
|
6475
6667
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
@@ -7109,6 +7301,85 @@ method(LogEntrySchema, _void(), { kind: "mutation" }), method(object({
|
|
|
7109
7301
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
7110
7302
|
var VersionOutputSchema = object({ version: string() });
|
|
7111
7303
|
method(_void(), StaticDirOutputSchema), method(_void(), VersionOutputSchema);
|
|
7304
|
+
var MethodAccessSchema = _enum([
|
|
7305
|
+
"view",
|
|
7306
|
+
"create",
|
|
7307
|
+
"delete"
|
|
7308
|
+
]);
|
|
7309
|
+
var AllowedProviderSchema = union([literal("*"), array(string())]);
|
|
7310
|
+
var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
|
|
7311
|
+
var CapScopeSchema = _enum(["device", "system"]);
|
|
7312
|
+
var TokenScopeSchema = discriminatedUnion("type", [
|
|
7313
|
+
object({
|
|
7314
|
+
type: literal("category"),
|
|
7315
|
+
target: CapScopeSchema,
|
|
7316
|
+
access: array(MethodAccessSchema).min(1)
|
|
7317
|
+
}),
|
|
7318
|
+
object({
|
|
7319
|
+
type: literal("capability"),
|
|
7320
|
+
target: string(),
|
|
7321
|
+
access: array(MethodAccessSchema).min(1)
|
|
7322
|
+
}),
|
|
7323
|
+
object({
|
|
7324
|
+
type: literal("addon"),
|
|
7325
|
+
target: string(),
|
|
7326
|
+
access: array(MethodAccessSchema).min(1)
|
|
7327
|
+
}),
|
|
7328
|
+
object({
|
|
7329
|
+
type: literal("device"),
|
|
7330
|
+
/**
|
|
7331
|
+
* One or more deviceIds (serialised as strings for wire-format
|
|
7332
|
+
* consistency with the rest of the union). Matcher accepts if
|
|
7333
|
+
* `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
|
|
7334
|
+
* of one scope-per-device when granting access to a set of cameras.
|
|
7335
|
+
*/
|
|
7336
|
+
targets: array(string()).min(1),
|
|
7337
|
+
access: array(MethodAccessSchema).min(1)
|
|
7338
|
+
})
|
|
7339
|
+
]);
|
|
7340
|
+
object({
|
|
7341
|
+
id: string(),
|
|
7342
|
+
username: string(),
|
|
7343
|
+
passwordHash: string(),
|
|
7344
|
+
/**
|
|
7345
|
+
* Admin bypass. When true, the middleware skips the scope-access
|
|
7346
|
+
* check entirely. There is no other axis of privilege; the legacy
|
|
7347
|
+
* role enum collapsed onto this boolean in v2.
|
|
7348
|
+
*/
|
|
7349
|
+
isAdmin: boolean().default(false),
|
|
7350
|
+
allowedProviders: AllowedProviderSchema,
|
|
7351
|
+
allowedDevices: AllowedDevicesSchema,
|
|
7352
|
+
/**
|
|
7353
|
+
* Scopes granted to this user. Admins bypass; their `scopes` is
|
|
7354
|
+
* ignored. Non-admins without scopes are locked out of every
|
|
7355
|
+
* protected call.
|
|
7356
|
+
*/
|
|
7357
|
+
scopes: array(TokenScopeSchema).default([]),
|
|
7358
|
+
createdAt: number(),
|
|
7359
|
+
updatedAt: number()
|
|
7360
|
+
});
|
|
7361
|
+
object({
|
|
7362
|
+
id: string(),
|
|
7363
|
+
label: string(),
|
|
7364
|
+
isAdmin: boolean().default(false),
|
|
7365
|
+
allowedProviders: AllowedProviderSchema,
|
|
7366
|
+
allowedDevices: AllowedDevicesSchema,
|
|
7367
|
+
tokenHash: string(),
|
|
7368
|
+
tokenPrefix: string(),
|
|
7369
|
+
createdAt: number(),
|
|
7370
|
+
lastUsedAt: number().optional()
|
|
7371
|
+
});
|
|
7372
|
+
object({
|
|
7373
|
+
id: string(),
|
|
7374
|
+
userId: string(),
|
|
7375
|
+
name: string(),
|
|
7376
|
+
tokenHash: string(),
|
|
7377
|
+
tokenPrefix: string(),
|
|
7378
|
+
scopes: array(TokenScopeSchema),
|
|
7379
|
+
expiresAt: number().nullish(),
|
|
7380
|
+
lastUsedAt: number().nullish(),
|
|
7381
|
+
createdAt: number()
|
|
7382
|
+
});
|
|
7112
7383
|
var SsoBridgeClaimsSchema = object({
|
|
7113
7384
|
userId: string(),
|
|
7114
7385
|
username: string(),
|
|
@@ -7124,12 +7395,36 @@ var SsoBridgeClaimsSchema = object({
|
|
|
7124
7395
|
* JWT WITHOUT verifying the signature — the hub re-verifies on every
|
|
7125
7396
|
* inbound call so trust still rests with the signing hub.
|
|
7126
7397
|
*/
|
|
7127
|
-
hubUrl: string().optional()
|
|
7398
|
+
hubUrl: string().optional(),
|
|
7399
|
+
/** Permission scopes baked into the token. Set by the OAuth
|
|
7400
|
+
* account-linking grant; absent on ordinary SSO-login tokens. */
|
|
7401
|
+
scopes: array(TokenScopeSchema).optional(),
|
|
7402
|
+
/** OAuth authorization-code binding — set only on `oauth-code` tokens. */
|
|
7403
|
+
redirectUri: string().optional(),
|
|
7404
|
+
integrationId: string().optional(),
|
|
7405
|
+
/** JWT ID — unique per issued code; consumed-set enforces single-use. */
|
|
7406
|
+
jti: string().optional(),
|
|
7407
|
+
/** OAuth session registry id — set on `oauth-access`/`oauth-refresh`
|
|
7408
|
+
* tokens so the verify path can check the session is not revoked. */
|
|
7409
|
+
sessionId: string().optional()
|
|
7128
7410
|
});
|
|
7129
7411
|
method(object({
|
|
7130
7412
|
claims: SsoBridgeClaimsSchema,
|
|
7131
7413
|
ttlSec: number().int().positive().optional()
|
|
7132
7414
|
}), object({ token: string() })), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable());
|
|
7415
|
+
var OauthIntegrationDescriptorSchema = object({
|
|
7416
|
+
/** Stable id used as the `integration=` query param, e.g. 'export-alexa'. */
|
|
7417
|
+
integrationId: string(),
|
|
7418
|
+
/** Human label rendered on the consent page. */
|
|
7419
|
+
displayName: string(),
|
|
7420
|
+
/** Scopes baked into every token issued for this integration. */
|
|
7421
|
+
requestedScopes: array(TokenScopeSchema),
|
|
7422
|
+
/** Allowed redirect_uri prefixes. /api/oauth2/authorize rejects any
|
|
7423
|
+
* redirect_uri that does not start with one of these. Required —
|
|
7424
|
+
* an empty list means the integration can never complete linking. */
|
|
7425
|
+
allowedRedirectPrefixes: array(string()).min(1)
|
|
7426
|
+
});
|
|
7427
|
+
method(_void(), OauthIntegrationDescriptorSchema);
|
|
7133
7428
|
var PasskeySummarySchema = object({
|
|
7134
7429
|
credentialId: string(),
|
|
7135
7430
|
label: string(),
|
|
@@ -7375,22 +7670,29 @@ var WidgetSizeEnum = _enum([
|
|
|
7375
7670
|
"lg",
|
|
7376
7671
|
"xl"
|
|
7377
7672
|
]);
|
|
7673
|
+
var WidgetRemoteSchema = object({
|
|
7674
|
+
remoteName: string(),
|
|
7675
|
+
exposedModule: string(),
|
|
7676
|
+
componentKey: string().optional()
|
|
7677
|
+
});
|
|
7378
7678
|
var WidgetMetadataSchema = object({
|
|
7379
|
-
/**
|
|
7380
|
-
|
|
7679
|
+
/** Primary host tab — `'dashboard'`, `'device-tab'`, or a device-detail tab id. */
|
|
7680
|
+
tab: string(),
|
|
7681
|
+
/** Optional sub-tab within `tab`. */
|
|
7682
|
+
subTab: string().optional(),
|
|
7381
7683
|
/** Operator-facing label. */
|
|
7382
7684
|
label: string(),
|
|
7685
|
+
/** Ordering within `(tab, subTab)`, ascending. */
|
|
7686
|
+
order: number().optional(),
|
|
7687
|
+
/** Always `'remote'` — a widget is a Module Federation remote. */
|
|
7688
|
+
kind: literal("remote"),
|
|
7689
|
+
/** MF remote descriptor. */
|
|
7690
|
+
remote: WidgetRemoteSchema,
|
|
7691
|
+
/** Stable id within the addon — kebab-case. Equals `remote.componentKey`. */
|
|
7692
|
+
stableId: string(),
|
|
7383
7693
|
description: string().optional(),
|
|
7384
7694
|
icon: string().optional(),
|
|
7385
7695
|
/**
|
|
7386
|
-
* Module Federation remote name — must match the `name` field on the
|
|
7387
|
-
* widget addon's `federation()` plugin config. Used by the host's
|
|
7388
|
-
* `<WidgetRegistryProvider>` to call `loadRemote('<remoteName>/widgets')`.
|
|
7389
|
-
* Conventionally `addon_<addonid>_widgets` (snake_case; MF names
|
|
7390
|
-
* cannot contain hyphens).
|
|
7391
|
-
*/
|
|
7392
|
-
remoteName: string(),
|
|
7393
|
-
/**
|
|
7394
7696
|
* Bundle filename inside the addon's `dist/` dir served at
|
|
7395
7697
|
* `/api/addon-widgets/<addonId>/<bundle>`. With Module Federation
|
|
7396
7698
|
* this is always `'remoteEntry.js'` — the value is kept on the
|
|
@@ -7398,9 +7700,9 @@ var WidgetMetadataSchema = object({
|
|
|
7398
7700
|
* cache-buster URL without a separate filesystem stat.
|
|
7399
7701
|
*/
|
|
7400
7702
|
bundle: string(),
|
|
7401
|
-
/**
|
|
7703
|
+
/** Every host the widget supports. The picker filters on this set. */
|
|
7402
7704
|
hosts: array(WidgetHostEnum).readonly(),
|
|
7403
|
-
/** Required props the host must supply. Validated at
|
|
7705
|
+
/** Required props the host must supply. Validated at `<WidgetSlot>` mount. */
|
|
7404
7706
|
requires: object({
|
|
7405
7707
|
deviceContext: boolean().default(false),
|
|
7406
7708
|
integrationContext: boolean().default(false)
|
|
@@ -7464,6 +7766,16 @@ var InvokeReplyEnvelopeSchema = object({
|
|
|
7464
7766
|
contentType: string().optional()
|
|
7465
7767
|
});
|
|
7466
7768
|
method(_void(), array(AddonHttpRouteSchema)), method(InvokeRequestSchema, InvokeReplyEnvelopeSchema, { kind: "mutation" });
|
|
7769
|
+
var ShmRingStatsSchema = object({
|
|
7770
|
+
sessionId: string(),
|
|
7771
|
+
slotCount: number().int(),
|
|
7772
|
+
slotByteLength: number().int(),
|
|
7773
|
+
segmentBytes: number().int(),
|
|
7774
|
+
budgetMb: number().int(),
|
|
7775
|
+
framesWritten: number().int(),
|
|
7776
|
+
getFrameHits: number().int(),
|
|
7777
|
+
getFrameMisses: number().int()
|
|
7778
|
+
});
|
|
7467
7779
|
method(object({ codec: string() }), boolean()), method(_void(), object({
|
|
7468
7780
|
id: string(),
|
|
7469
7781
|
name: string(),
|
|
@@ -7482,6 +7794,9 @@ method(object({ codec: string() }), boolean()), method(_void(), object({
|
|
|
7482
7794
|
sessionId: string(),
|
|
7483
7795
|
maxCount: number().default(1)
|
|
7484
7796
|
}), array(DecodedFrameSchema)), method(object({
|
|
7797
|
+
sessionId: string(),
|
|
7798
|
+
maxCount: number().default(1)
|
|
7799
|
+
}), array(FrameHandleSchema)), method(object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()), method(object({ sessionId: string() }), ShmRingStatsSchema.nullable()), method(object({
|
|
7485
7800
|
sessionId: string(),
|
|
7486
7801
|
config: DecoderSessionConfigSchema.partial()
|
|
7487
7802
|
}), _void()), method(object({ sessionId: string() }), DecoderStatsSchema), method(_void(), array(object({
|
|
@@ -8877,10 +9192,38 @@ var PtzMoveCommandSchema = object({
|
|
|
8877
9192
|
zoom: number().optional(),
|
|
8878
9193
|
speed: number().optional()
|
|
8879
9194
|
});
|
|
9195
|
+
PtzPositionSchema.extend({ autofocus: boolean() });
|
|
9196
|
+
var PtzOptionsSchema = object({
|
|
9197
|
+
hasPan: boolean(),
|
|
9198
|
+
hasTilt: boolean(),
|
|
9199
|
+
hasZoom: boolean(),
|
|
9200
|
+
supportsPresets: boolean(),
|
|
9201
|
+
/** Max number of named presets the camera supports, when known. */
|
|
9202
|
+
maxPresets: number().optional(),
|
|
9203
|
+
/** Whether the camera exposes a controllable autofocus toggle
|
|
9204
|
+
* (boolean `hasX` per the getOptions availability convention). */
|
|
9205
|
+
hasAutofocus: boolean()
|
|
9206
|
+
});
|
|
8880
9207
|
DeviceType.Camera, method(PtzMoveCommandSchema.extend({ deviceId: number() }), _void(), { kind: "mutation" }), method(PtzMoveCommandSchema.extend({ deviceId: number() }), _void(), { kind: "mutation" }), method(object({ deviceId: number() }), _void(), { kind: "mutation" }), method(object({ deviceId: number() }), array(PtzPresetSchema)), method(object({
|
|
8881
9208
|
deviceId: number(),
|
|
8882
9209
|
presetId: string()
|
|
8883
|
-
}), _void(), { kind: "mutation" }), method(object({
|
|
9210
|
+
}), _void(), { kind: "mutation" }), method(object({
|
|
9211
|
+
deviceId: number(),
|
|
9212
|
+
presetId: string(),
|
|
9213
|
+
name: string()
|
|
9214
|
+
}), _void(), {
|
|
9215
|
+
kind: "mutation",
|
|
9216
|
+
auth: "admin"
|
|
9217
|
+
}), method(object({
|
|
9218
|
+
deviceId: number(),
|
|
9219
|
+
presetId: string()
|
|
9220
|
+
}), _void(), {
|
|
9221
|
+
kind: "mutation",
|
|
9222
|
+
auth: "admin"
|
|
9223
|
+
}), method(object({ deviceId: number() }), PtzOptionsSchema), method(object({ deviceId: number() }), _void(), { kind: "mutation" }), method(object({ deviceId: number() }), PtzPositionSchema), method(object({
|
|
9224
|
+
deviceId: number(),
|
|
9225
|
+
enabled: boolean()
|
|
9226
|
+
}), _void(), { kind: "mutation" });
|
|
8884
9227
|
var EventItemSchema = object({
|
|
8885
9228
|
id: string(),
|
|
8886
9229
|
type: string(),
|
|
@@ -9520,85 +9863,6 @@ authKey: string().optional() }), object({
|
|
|
9520
9863
|
/** Human-readable error when `ok: false`. */
|
|
9521
9864
|
error: string().optional()
|
|
9522
9865
|
}), { kind: "mutation" });
|
|
9523
|
-
var MethodAccessSchema = _enum([
|
|
9524
|
-
"view",
|
|
9525
|
-
"create",
|
|
9526
|
-
"delete"
|
|
9527
|
-
]);
|
|
9528
|
-
var AllowedProviderSchema = union([literal("*"), array(string())]);
|
|
9529
|
-
var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
|
|
9530
|
-
var CapScopeSchema = _enum(["device", "system"]);
|
|
9531
|
-
var TokenScopeSchema = discriminatedUnion("type", [
|
|
9532
|
-
object({
|
|
9533
|
-
type: literal("category"),
|
|
9534
|
-
target: CapScopeSchema,
|
|
9535
|
-
access: array(MethodAccessSchema).min(1)
|
|
9536
|
-
}),
|
|
9537
|
-
object({
|
|
9538
|
-
type: literal("capability"),
|
|
9539
|
-
target: string(),
|
|
9540
|
-
access: array(MethodAccessSchema).min(1)
|
|
9541
|
-
}),
|
|
9542
|
-
object({
|
|
9543
|
-
type: literal("addon"),
|
|
9544
|
-
target: string(),
|
|
9545
|
-
access: array(MethodAccessSchema).min(1)
|
|
9546
|
-
}),
|
|
9547
|
-
object({
|
|
9548
|
-
type: literal("device"),
|
|
9549
|
-
/**
|
|
9550
|
-
* One or more deviceIds (serialised as strings for wire-format
|
|
9551
|
-
* consistency with the rest of the union). Matcher accepts if
|
|
9552
|
-
* `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
|
|
9553
|
-
* of one scope-per-device when granting access to a set of cameras.
|
|
9554
|
-
*/
|
|
9555
|
-
targets: array(string()).min(1),
|
|
9556
|
-
access: array(MethodAccessSchema).min(1)
|
|
9557
|
-
})
|
|
9558
|
-
]);
|
|
9559
|
-
object({
|
|
9560
|
-
id: string(),
|
|
9561
|
-
username: string(),
|
|
9562
|
-
passwordHash: string(),
|
|
9563
|
-
/**
|
|
9564
|
-
* Admin bypass. When true, the middleware skips the scope-access
|
|
9565
|
-
* check entirely. There is no other axis of privilege; the legacy
|
|
9566
|
-
* role enum collapsed onto this boolean in v2.
|
|
9567
|
-
*/
|
|
9568
|
-
isAdmin: boolean().default(false),
|
|
9569
|
-
allowedProviders: AllowedProviderSchema,
|
|
9570
|
-
allowedDevices: AllowedDevicesSchema,
|
|
9571
|
-
/**
|
|
9572
|
-
* Scopes granted to this user. Admins bypass; their `scopes` is
|
|
9573
|
-
* ignored. Non-admins without scopes are locked out of every
|
|
9574
|
-
* protected call.
|
|
9575
|
-
*/
|
|
9576
|
-
scopes: array(TokenScopeSchema).default([]),
|
|
9577
|
-
createdAt: number(),
|
|
9578
|
-
updatedAt: number()
|
|
9579
|
-
});
|
|
9580
|
-
object({
|
|
9581
|
-
id: string(),
|
|
9582
|
-
label: string(),
|
|
9583
|
-
isAdmin: boolean().default(false),
|
|
9584
|
-
allowedProviders: AllowedProviderSchema,
|
|
9585
|
-
allowedDevices: AllowedDevicesSchema,
|
|
9586
|
-
tokenHash: string(),
|
|
9587
|
-
tokenPrefix: string(),
|
|
9588
|
-
createdAt: number(),
|
|
9589
|
-
lastUsedAt: number().optional()
|
|
9590
|
-
});
|
|
9591
|
-
object({
|
|
9592
|
-
id: string(),
|
|
9593
|
-
userId: string(),
|
|
9594
|
-
name: string(),
|
|
9595
|
-
tokenHash: string(),
|
|
9596
|
-
tokenPrefix: string(),
|
|
9597
|
-
scopes: array(TokenScopeSchema),
|
|
9598
|
-
expiresAt: number().nullish(),
|
|
9599
|
-
lastUsedAt: number().nullish(),
|
|
9600
|
-
createdAt: number()
|
|
9601
|
-
});
|
|
9602
9866
|
var UserSummarySchema = object({
|
|
9603
9867
|
id: string(),
|
|
9604
9868
|
username: string(),
|
|
@@ -9671,6 +9935,16 @@ var CreateScopedTokenResultSchema = object({
|
|
|
9671
9935
|
token: string(),
|
|
9672
9936
|
record: ScopedTokenSummarySchema
|
|
9673
9937
|
});
|
|
9938
|
+
var OauthSessionSummarySchema = object({
|
|
9939
|
+
id: string(),
|
|
9940
|
+
userId: string(),
|
|
9941
|
+
username: string(),
|
|
9942
|
+
integrationId: string(),
|
|
9943
|
+
scopes: array(TokenScopeSchema),
|
|
9944
|
+
createdAt: number(),
|
|
9945
|
+
lastUsedAt: number(),
|
|
9946
|
+
revokedAt: number().nullable()
|
|
9947
|
+
});
|
|
9674
9948
|
var TotpSetupResultSchema = object({
|
|
9675
9949
|
secret: string(),
|
|
9676
9950
|
otpauthUrl: string()
|
|
@@ -9753,6 +10027,41 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
9753
10027
|
}), object({ valid: boolean() }), {
|
|
9754
10028
|
kind: "mutation",
|
|
9755
10029
|
access: "view"
|
|
10030
|
+
}), method(object({
|
|
10031
|
+
integrationId: string(),
|
|
10032
|
+
userId: string(),
|
|
10033
|
+
username: string(),
|
|
10034
|
+
scopes: array(TokenScopeSchema),
|
|
10035
|
+
redirectUri: string(),
|
|
10036
|
+
hubUrl: string()
|
|
10037
|
+
}), object({ code: string() }), {
|
|
10038
|
+
kind: "mutation",
|
|
10039
|
+
access: "create"
|
|
10040
|
+
}), method(object({
|
|
10041
|
+
code: string(),
|
|
10042
|
+
redirectUri: string()
|
|
10043
|
+
}), object({
|
|
10044
|
+
accessToken: string(),
|
|
10045
|
+
refreshToken: string(),
|
|
10046
|
+
expiresIn: number()
|
|
10047
|
+
}).nullable(), {
|
|
10048
|
+
kind: "mutation",
|
|
10049
|
+
access: "view"
|
|
10050
|
+
}), method(object({ refreshToken: string() }), object({
|
|
10051
|
+
accessToken: string(),
|
|
10052
|
+
refreshToken: string(),
|
|
10053
|
+
expiresIn: number()
|
|
10054
|
+
}).nullable(), {
|
|
10055
|
+
kind: "mutation",
|
|
10056
|
+
access: "view"
|
|
10057
|
+
}), method(object({ token: string() }), object({
|
|
10058
|
+
userId: string(),
|
|
10059
|
+
username: string(),
|
|
10060
|
+
scopes: array(TokenScopeSchema)
|
|
10061
|
+
}).nullable(), { access: "view" }), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
10062
|
+
kind: "mutation",
|
|
10063
|
+
auth: "admin",
|
|
10064
|
+
access: "delete"
|
|
9756
10065
|
});
|
|
9757
10066
|
var FeatureManifestSchema = object({
|
|
9758
10067
|
streaming: boolean(),
|
|
@@ -9921,7 +10230,13 @@ method(_void(), array(TopologyNodeSchema).readonly(), { auth: "admin" }), method
|
|
|
9921
10230
|
}), RenameNodeResultSchema, {
|
|
9922
10231
|
kind: "mutation",
|
|
9923
10232
|
auth: "admin"
|
|
9924
|
-
}), method(_void(), record(string(), ClusterAddonStatusEntrySchema), { auth: "admin" }), method(object({
|
|
10233
|
+
}), method(_void(), record(string(), ClusterAddonStatusEntrySchema), { auth: "admin" }), method(object({ windowSeconds: number().int().positive().max(300).default(60) }), array(object({
|
|
10234
|
+
callerAddonId: string(),
|
|
10235
|
+
providerAddonId: string(),
|
|
10236
|
+
capName: string(),
|
|
10237
|
+
callsPerMin: number(),
|
|
10238
|
+
lastCallAtMs: number()
|
|
10239
|
+
})).readonly(), { auth: "admin" }), method(object({ nodeId: string() }), array(NodeAddonEntrySchema).readonly(), { auth: "admin" }), method(object({
|
|
9925
10240
|
nodeId: string(),
|
|
9926
10241
|
level: string()
|
|
9927
10242
|
}), SuccessSchema, {
|
|
@@ -11285,12 +11600,24 @@ Object.freeze({
|
|
|
11285
11600
|
addonId: null,
|
|
11286
11601
|
access: "delete"
|
|
11287
11602
|
},
|
|
11603
|
+
"decoder.getFrame": {
|
|
11604
|
+
capName: "decoder",
|
|
11605
|
+
capScope: "system",
|
|
11606
|
+
addonId: null,
|
|
11607
|
+
access: "view"
|
|
11608
|
+
},
|
|
11288
11609
|
"decoder.getInfo": {
|
|
11289
11610
|
capName: "decoder",
|
|
11290
11611
|
capScope: "system",
|
|
11291
11612
|
addonId: null,
|
|
11292
11613
|
access: "view"
|
|
11293
11614
|
},
|
|
11615
|
+
"decoder.getShmStats": {
|
|
11616
|
+
capName: "decoder",
|
|
11617
|
+
capScope: "system",
|
|
11618
|
+
addonId: null,
|
|
11619
|
+
access: "view"
|
|
11620
|
+
},
|
|
11294
11621
|
"decoder.getStats": {
|
|
11295
11622
|
capName: "decoder",
|
|
11296
11623
|
capScope: "system",
|
|
@@ -11315,6 +11642,12 @@ Object.freeze({
|
|
|
11315
11642
|
addonId: null,
|
|
11316
11643
|
access: "view"
|
|
11317
11644
|
},
|
|
11645
|
+
"decoder.pullHandles": {
|
|
11646
|
+
capName: "decoder",
|
|
11647
|
+
capScope: "system",
|
|
11648
|
+
addonId: null,
|
|
11649
|
+
access: "view"
|
|
11650
|
+
},
|
|
11318
11651
|
"decoder.pushPacket": {
|
|
11319
11652
|
capName: "decoder",
|
|
11320
11653
|
capScope: "system",
|
|
@@ -12101,6 +12434,18 @@ Object.freeze({
|
|
|
12101
12434
|
addonId: null,
|
|
12102
12435
|
access: "create"
|
|
12103
12436
|
},
|
|
12437
|
+
"motionZones.getOptions": {
|
|
12438
|
+
capName: "motion-zones",
|
|
12439
|
+
capScope: "device",
|
|
12440
|
+
addonId: null,
|
|
12441
|
+
access: "view"
|
|
12442
|
+
},
|
|
12443
|
+
"motionZones.setZone": {
|
|
12444
|
+
capName: "motion-zones",
|
|
12445
|
+
capScope: "device",
|
|
12446
|
+
addonId: null,
|
|
12447
|
+
access: "create"
|
|
12448
|
+
},
|
|
12104
12449
|
"mqttBroker.addBroker": {
|
|
12105
12450
|
capName: "mqtt-broker",
|
|
12106
12451
|
capScope: "system",
|
|
@@ -12215,6 +12560,12 @@ Object.freeze({
|
|
|
12215
12560
|
addonId: null,
|
|
12216
12561
|
access: "create"
|
|
12217
12562
|
},
|
|
12563
|
+
"nodes.getCapUsageGraph": {
|
|
12564
|
+
capName: "nodes",
|
|
12565
|
+
capScope: "system",
|
|
12566
|
+
addonId: null,
|
|
12567
|
+
access: "view"
|
|
12568
|
+
},
|
|
12218
12569
|
"nodes.getNodeAddons": {
|
|
12219
12570
|
capName: "nodes",
|
|
12220
12571
|
capScope: "system",
|
|
@@ -12281,6 +12632,12 @@ Object.freeze({
|
|
|
12281
12632
|
addonId: null,
|
|
12282
12633
|
access: "create"
|
|
12283
12634
|
},
|
|
12635
|
+
"oauthIntegration.getDescriptor": {
|
|
12636
|
+
capName: "oauth-integration",
|
|
12637
|
+
capScope: "system",
|
|
12638
|
+
addonId: null,
|
|
12639
|
+
access: "view"
|
|
12640
|
+
},
|
|
12284
12641
|
"osd.setOverlay": {
|
|
12285
12642
|
capName: "osd",
|
|
12286
12643
|
capScope: "device",
|
|
@@ -12839,6 +13196,18 @@ Object.freeze({
|
|
|
12839
13196
|
addonId: null,
|
|
12840
13197
|
access: "create"
|
|
12841
13198
|
},
|
|
13199
|
+
"ptz.deletePreset": {
|
|
13200
|
+
capName: "ptz",
|
|
13201
|
+
capScope: "device",
|
|
13202
|
+
addonId: null,
|
|
13203
|
+
access: "delete"
|
|
13204
|
+
},
|
|
13205
|
+
"ptz.getOptions": {
|
|
13206
|
+
capName: "ptz",
|
|
13207
|
+
capScope: "device",
|
|
13208
|
+
addonId: null,
|
|
13209
|
+
access: "view"
|
|
13210
|
+
},
|
|
12842
13211
|
"ptz.getPosition": {
|
|
12843
13212
|
capName: "ptz",
|
|
12844
13213
|
capScope: "device",
|
|
@@ -12869,6 +13238,18 @@ Object.freeze({
|
|
|
12869
13238
|
addonId: null,
|
|
12870
13239
|
access: "create"
|
|
12871
13240
|
},
|
|
13241
|
+
"ptz.savePreset": {
|
|
13242
|
+
capName: "ptz",
|
|
13243
|
+
capScope: "device",
|
|
13244
|
+
addonId: null,
|
|
13245
|
+
access: "create"
|
|
13246
|
+
},
|
|
13247
|
+
"ptz.setAutofocus": {
|
|
13248
|
+
capName: "ptz",
|
|
13249
|
+
capScope: "device",
|
|
13250
|
+
addonId: null,
|
|
13251
|
+
access: "create"
|
|
13252
|
+
},
|
|
12872
13253
|
"ptz.stop": {
|
|
12873
13254
|
capName: "ptz",
|
|
12874
13255
|
capScope: "device",
|
|
@@ -13391,12 +13772,6 @@ Object.freeze({
|
|
|
13391
13772
|
addonId: null,
|
|
13392
13773
|
access: "view"
|
|
13393
13774
|
},
|
|
13394
|
-
"streamBroker.getBroker": {
|
|
13395
|
-
capName: "stream-broker",
|
|
13396
|
-
capScope: "system",
|
|
13397
|
-
addonId: null,
|
|
13398
|
-
access: "view"
|
|
13399
|
-
},
|
|
13400
13775
|
"streamBroker.getBrokerStats": {
|
|
13401
13776
|
capName: "stream-broker",
|
|
13402
13777
|
capScope: "system",
|
|
@@ -13469,6 +13844,18 @@ Object.freeze({
|
|
|
13469
13844
|
addonId: null,
|
|
13470
13845
|
access: "create"
|
|
13471
13846
|
},
|
|
13847
|
+
"streamBroker.pullAudioChunks": {
|
|
13848
|
+
capName: "stream-broker",
|
|
13849
|
+
capScope: "system",
|
|
13850
|
+
addonId: null,
|
|
13851
|
+
access: "view"
|
|
13852
|
+
},
|
|
13853
|
+
"streamBroker.pullFrameHandles": {
|
|
13854
|
+
capName: "stream-broker",
|
|
13855
|
+
capScope: "system",
|
|
13856
|
+
addonId: null,
|
|
13857
|
+
access: "view"
|
|
13858
|
+
},
|
|
13472
13859
|
"streamBroker.regenerateRtspToken": {
|
|
13473
13860
|
capName: "stream-broker",
|
|
13474
13861
|
capScope: "system",
|
|
@@ -13505,12 +13892,36 @@ Object.freeze({
|
|
|
13505
13892
|
addonId: null,
|
|
13506
13893
|
access: "create"
|
|
13507
13894
|
},
|
|
13895
|
+
"streamBroker.subscribeAudioChunks": {
|
|
13896
|
+
capName: "stream-broker",
|
|
13897
|
+
capScope: "system",
|
|
13898
|
+
addonId: null,
|
|
13899
|
+
access: "create"
|
|
13900
|
+
},
|
|
13901
|
+
"streamBroker.subscribeFrames": {
|
|
13902
|
+
capName: "stream-broker",
|
|
13903
|
+
capScope: "system",
|
|
13904
|
+
addonId: null,
|
|
13905
|
+
access: "create"
|
|
13906
|
+
},
|
|
13508
13907
|
"streamBroker.unassignProfile": {
|
|
13509
13908
|
capName: "stream-broker",
|
|
13510
13909
|
capScope: "system",
|
|
13511
13910
|
addonId: null,
|
|
13512
13911
|
access: "create"
|
|
13513
13912
|
},
|
|
13913
|
+
"streamBroker.unsubscribeAudioChunks": {
|
|
13914
|
+
capName: "stream-broker",
|
|
13915
|
+
capScope: "system",
|
|
13916
|
+
addonId: null,
|
|
13917
|
+
access: "create"
|
|
13918
|
+
},
|
|
13919
|
+
"streamBroker.unsubscribeFrames": {
|
|
13920
|
+
capName: "stream-broker",
|
|
13921
|
+
capScope: "system",
|
|
13922
|
+
addonId: null,
|
|
13923
|
+
access: "create"
|
|
13924
|
+
},
|
|
13514
13925
|
"streamingEngine.getStreamUrl": {
|
|
13515
13926
|
capName: "streaming-engine",
|
|
13516
13927
|
capScope: "system",
|
|
@@ -13535,6 +13946,24 @@ Object.freeze({
|
|
|
13535
13946
|
addonId: null,
|
|
13536
13947
|
access: "delete"
|
|
13537
13948
|
},
|
|
13949
|
+
"streamParams.getConfigSchema": {
|
|
13950
|
+
capName: "stream-params",
|
|
13951
|
+
capScope: "device",
|
|
13952
|
+
addonId: null,
|
|
13953
|
+
access: "view"
|
|
13954
|
+
},
|
|
13955
|
+
"streamParams.getOptions": {
|
|
13956
|
+
capName: "stream-params",
|
|
13957
|
+
capScope: "device",
|
|
13958
|
+
addonId: null,
|
|
13959
|
+
access: "view"
|
|
13960
|
+
},
|
|
13961
|
+
"streamParams.setProfile": {
|
|
13962
|
+
capName: "stream-params",
|
|
13963
|
+
capScope: "device",
|
|
13964
|
+
addonId: null,
|
|
13965
|
+
access: "create"
|
|
13966
|
+
},
|
|
13538
13967
|
"switch.setState": {
|
|
13539
13968
|
capName: "switch",
|
|
13540
13969
|
capScope: "device",
|
|
@@ -13643,6 +14072,12 @@ Object.freeze({
|
|
|
13643
14072
|
addonId: null,
|
|
13644
14073
|
access: "view"
|
|
13645
14074
|
},
|
|
14075
|
+
"userManagement.listOauthSessions": {
|
|
14076
|
+
capName: "user-management",
|
|
14077
|
+
capScope: "system",
|
|
14078
|
+
addonId: null,
|
|
14079
|
+
access: "view"
|
|
14080
|
+
},
|
|
13646
14081
|
"userManagement.listScopedTokens": {
|
|
13647
14082
|
capName: "user-management",
|
|
13648
14083
|
capScope: "system",
|
|
@@ -13655,6 +14090,30 @@ Object.freeze({
|
|
|
13655
14090
|
addonId: null,
|
|
13656
14091
|
access: "view"
|
|
13657
14092
|
},
|
|
14093
|
+
"userManagement.oauthExchangeCode": {
|
|
14094
|
+
capName: "user-management",
|
|
14095
|
+
capScope: "system",
|
|
14096
|
+
addonId: null,
|
|
14097
|
+
access: "view"
|
|
14098
|
+
},
|
|
14099
|
+
"userManagement.oauthIssueCode": {
|
|
14100
|
+
capName: "user-management",
|
|
14101
|
+
capScope: "system",
|
|
14102
|
+
addonId: null,
|
|
14103
|
+
access: "create"
|
|
14104
|
+
},
|
|
14105
|
+
"userManagement.oauthRefresh": {
|
|
14106
|
+
capName: "user-management",
|
|
14107
|
+
capScope: "system",
|
|
14108
|
+
addonId: null,
|
|
14109
|
+
access: "view"
|
|
14110
|
+
},
|
|
14111
|
+
"userManagement.oauthVerifyAccessToken": {
|
|
14112
|
+
capName: "user-management",
|
|
14113
|
+
capScope: "system",
|
|
14114
|
+
addonId: null,
|
|
14115
|
+
access: "view"
|
|
14116
|
+
},
|
|
13658
14117
|
"userManagement.resetPassword": {
|
|
13659
14118
|
capName: "user-management",
|
|
13660
14119
|
capScope: "system",
|
|
@@ -13667,6 +14126,12 @@ Object.freeze({
|
|
|
13667
14126
|
addonId: null,
|
|
13668
14127
|
access: "delete"
|
|
13669
14128
|
},
|
|
14129
|
+
"userManagement.revokeOauthSession": {
|
|
14130
|
+
capName: "user-management",
|
|
14131
|
+
capScope: "system",
|
|
14132
|
+
addonId: null,
|
|
14133
|
+
access: "delete"
|
|
14134
|
+
},
|
|
13670
14135
|
"userManagement.revokeScopedToken": {
|
|
13671
14136
|
capName: "user-management",
|
|
13672
14137
|
capScope: "system",
|