@camstack/addon-provider-wyze 0.2.129 → 0.2.131
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 +268 -12
- package/dist/addon.mjs +268 -12
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5402,7 +5402,7 @@ var ZodIssueCode = {
|
|
|
5402
5402
|
var ZodFirstPartyTypeKind;
|
|
5403
5403
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5404
5404
|
//#endregion
|
|
5405
|
-
//#region ../types/dist/sleep-
|
|
5405
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
5406
5406
|
/**
|
|
5407
5407
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5408
5408
|
* window to float samples (D455).
|
|
@@ -15148,6 +15148,10 @@ var DeviceInfoSchema = object({
|
|
|
15148
15148
|
isCamera: boolean(),
|
|
15149
15149
|
/** Current config values — serializable snapshot */
|
|
15150
15150
|
config: record(string(), unknown()),
|
|
15151
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
15152
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
15153
|
+
* when the owning runner has not reported them. */
|
|
15154
|
+
secretConfigPaths: array(string()).optional(),
|
|
15151
15155
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
15152
15156
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
15153
15157
|
metadata: record(string(), unknown()).nullable().optional(),
|
|
@@ -15353,7 +15357,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
15353
15357
|
* call (workers re-register on init), so probe-driven updates
|
|
15354
15358
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
15355
15359
|
features: array(string()).optional(),
|
|
15356
|
-
config: record(string(), unknown())
|
|
15360
|
+
config: record(string(), unknown()),
|
|
15361
|
+
/** Config paths the device's own schema DECLARES secret
|
|
15362
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
15363
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
15364
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
15365
|
+
* omits it and the keyword backstop applies. */
|
|
15366
|
+
secretConfigPaths: array(string()).optional()
|
|
15357
15367
|
});
|
|
15358
15368
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
15359
15369
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -17012,7 +17022,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
17012
17022
|
icon: string().optional(),
|
|
17013
17023
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
17014
17024
|
startUrl: string(),
|
|
17015
|
-
stage: LoginStageEnum
|
|
17025
|
+
stage: LoginStageEnum,
|
|
17026
|
+
/**
|
|
17027
|
+
* The provider names an external identity a signed-in user can link to
|
|
17028
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
17029
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
17030
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
17031
|
+
*/
|
|
17032
|
+
linkable: boolean().optional()
|
|
17016
17033
|
}),
|
|
17017
17034
|
object({
|
|
17018
17035
|
kind: literal("widget"),
|
|
@@ -22447,7 +22464,13 @@ var RetrainFrameSchema = object({
|
|
|
22447
22464
|
sizeBytes: number().int(),
|
|
22448
22465
|
width: number().int(),
|
|
22449
22466
|
height: number().int(),
|
|
22450
|
-
copiedAt: number()
|
|
22467
|
+
copiedAt: number(),
|
|
22468
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
22469
|
+
capturedAt: number().optional(),
|
|
22470
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
22471
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
22472
|
+
* a false positive. */
|
|
22473
|
+
complete: boolean()
|
|
22451
22474
|
});
|
|
22452
22475
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
22453
22476
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -22468,6 +22491,51 @@ var RetrainFrameListSchema = object({
|
|
|
22468
22491
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22469
22492
|
autoPickMediaId: number().int().optional()
|
|
22470
22493
|
});
|
|
22494
|
+
/**
|
|
22495
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
22496
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
22497
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
22498
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
22499
|
+
* export carried (`exportedInBatch`).
|
|
22500
|
+
*/
|
|
22501
|
+
var RetrainExportFilterSchema = object({
|
|
22502
|
+
deviceIds: array(number()).optional(),
|
|
22503
|
+
frameIds: array(string()).max(2e4).optional(),
|
|
22504
|
+
batchId: string().optional(),
|
|
22505
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
22506
|
+
completeOnly: boolean().optional()
|
|
22507
|
+
});
|
|
22508
|
+
/**
|
|
22509
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
22510
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
22511
|
+
* convention — the classifier layout.
|
|
22512
|
+
*/
|
|
22513
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
22514
|
+
/**
|
|
22515
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
22516
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
22517
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
22518
|
+
* logged.
|
|
22519
|
+
*/
|
|
22520
|
+
var RetrainArchiveTargetSchema = object({
|
|
22521
|
+
kind: literal("http"),
|
|
22522
|
+
method: _enum(["PUT", "POST"]),
|
|
22523
|
+
url: string().url(),
|
|
22524
|
+
headers: record(string(), string()).optional()
|
|
22525
|
+
});
|
|
22526
|
+
var RetrainArchiveResultSchema = object({
|
|
22527
|
+
batchId: string(),
|
|
22528
|
+
frames: number().int(),
|
|
22529
|
+
crops: number().int(),
|
|
22530
|
+
annotations: number().int(),
|
|
22531
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
22532
|
+
missing: number().int(),
|
|
22533
|
+
bytes: number().int(),
|
|
22534
|
+
/** sha256 of the exact bytes sent. */
|
|
22535
|
+
sha256: string(),
|
|
22536
|
+
/** The target's HTTP status. */
|
|
22537
|
+
status: number().int()
|
|
22538
|
+
});
|
|
22471
22539
|
/** What the operator asked the assist to look for. */
|
|
22472
22540
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
22473
22541
|
kind: literal("package"),
|
|
@@ -23262,9 +23330,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23262
23330
|
}), RetrainTransitionResultSchema, {
|
|
23263
23331
|
kind: "mutation",
|
|
23264
23332
|
auth: "admin"
|
|
23265
|
-
}), method(
|
|
23333
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
|
|
23266
23334
|
kind: "query",
|
|
23267
23335
|
auth: "admin"
|
|
23336
|
+
}), method(object({
|
|
23337
|
+
deviceId: number(),
|
|
23338
|
+
trackId: string(),
|
|
23339
|
+
frameId: string(),
|
|
23340
|
+
complete: boolean()
|
|
23341
|
+
}), RetrainFrameSchema, {
|
|
23342
|
+
kind: "mutation",
|
|
23343
|
+
auth: "admin"
|
|
23344
|
+
}), method(object({
|
|
23345
|
+
filter: RetrainExportFilterSchema,
|
|
23346
|
+
layout: RetrainExportLayoutSchema,
|
|
23347
|
+
target: RetrainArchiveTargetSchema
|
|
23348
|
+
}), RetrainArchiveResultSchema, {
|
|
23349
|
+
kind: "mutation",
|
|
23350
|
+
auth: "admin",
|
|
23351
|
+
timeoutMs: 60 * 6e4
|
|
23268
23352
|
}), method(object({
|
|
23269
23353
|
/** Which of the three event tables owns the row. */
|
|
23270
23354
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -26698,7 +26782,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
26698
26782
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
26699
26783
|
* operator already consented to.
|
|
26700
26784
|
*/
|
|
26701
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
26785
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
26786
|
+
/**
|
|
26787
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
26788
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
26789
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
26790
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
26791
|
+
*/
|
|
26792
|
+
linkIntent: string().optional(),
|
|
26793
|
+
/**
|
|
26794
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
26795
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
26796
|
+
*/
|
|
26797
|
+
issuer: string().optional()
|
|
26702
26798
|
});
|
|
26703
26799
|
method(object({
|
|
26704
26800
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -28633,7 +28729,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
28633
28729
|
* field their hints were silently stripped by the schema and the
|
|
28634
28730
|
* adaptive ladder started blind on the client's display size.
|
|
28635
28731
|
*/
|
|
28636
|
-
hints: webrtcClientHintsSchema.optional()
|
|
28732
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
28733
|
+
/**
|
|
28734
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
28735
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
28736
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
28737
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
28738
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
28739
|
+
*
|
|
28740
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
28741
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
28742
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
28743
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
28744
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
28745
|
+
* flag must not become a second door to the camera's speaker.
|
|
28746
|
+
*/
|
|
28747
|
+
talkback: boolean().optional()
|
|
28637
28748
|
}), object({
|
|
28638
28749
|
sessionId: string(),
|
|
28639
28750
|
sdpAnswer: string()
|
|
@@ -28935,6 +29046,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
28935
29046
|
var RestartAddonResultSchema = unknown();
|
|
28936
29047
|
var InstallPackageResultSchema = unknown();
|
|
28937
29048
|
var ReloadPackagesResultSchema = unknown();
|
|
29049
|
+
/**
|
|
29050
|
+
* What an uninstall did on ONE node.
|
|
29051
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
29052
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
29053
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
29054
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
29055
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
29056
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
29057
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
29058
|
+
*/
|
|
29059
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
29060
|
+
"uninstalled",
|
|
29061
|
+
"not-installed",
|
|
29062
|
+
"refused",
|
|
29063
|
+
"failed",
|
|
29064
|
+
"pending-reconnect"
|
|
29065
|
+
]);
|
|
29066
|
+
var UninstallNodeResultSchema = object({
|
|
29067
|
+
nodeId: string(),
|
|
29068
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
29069
|
+
error: string().optional(),
|
|
29070
|
+
addonIds: array(string()).readonly(),
|
|
29071
|
+
runnersStopped: array(string()).readonly(),
|
|
29072
|
+
warnings: array(string()).readonly()
|
|
29073
|
+
});
|
|
29074
|
+
var UninstallPackageResultSchema = object({
|
|
29075
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
29076
|
+
success: boolean(),
|
|
29077
|
+
packageName: string(),
|
|
29078
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
29079
|
+
});
|
|
29080
|
+
/**
|
|
29081
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
29082
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
29083
|
+
*/
|
|
29084
|
+
var PackageInstallationsSchema = object({
|
|
29085
|
+
installations: array(object({
|
|
29086
|
+
packageName: string(),
|
|
29087
|
+
nodeId: string(),
|
|
29088
|
+
nodeName: string(),
|
|
29089
|
+
isHub: boolean(),
|
|
29090
|
+
isOnline: boolean(),
|
|
29091
|
+
version: string().nullable(),
|
|
29092
|
+
addonIds: array(string()).readonly(),
|
|
29093
|
+
source: _enum(["live", "recorded"]),
|
|
29094
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
29095
|
+
onHub: boolean()
|
|
29096
|
+
})).readonly(),
|
|
29097
|
+
unreachable: array(object({
|
|
29098
|
+
nodeId: string(),
|
|
29099
|
+
error: string()
|
|
29100
|
+
})).readonly()
|
|
29101
|
+
});
|
|
28938
29102
|
var BulkUpdateItemStatusSchema = _enum([
|
|
28939
29103
|
"queued",
|
|
28940
29104
|
"updating",
|
|
@@ -29017,10 +29181,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
29017
29181
|
}), method(object({ packageName: string() }), InstallPackageResultSchema, {
|
|
29018
29182
|
kind: "mutation",
|
|
29019
29183
|
auth: "admin"
|
|
29020
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29184
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29185
|
+
packageName: string().min(1),
|
|
29186
|
+
nodeId: string().optional(),
|
|
29187
|
+
everywhere: boolean().optional()
|
|
29188
|
+
}), UninstallPackageResultSchema, {
|
|
29021
29189
|
kind: "mutation",
|
|
29022
29190
|
auth: "admin"
|
|
29023
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
29191
|
+
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
29024
29192
|
kind: "mutation",
|
|
29025
29193
|
auth: "admin"
|
|
29026
29194
|
}), method(object({ query: string().optional() }), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -38938,6 +39106,32 @@ var TotpStatusSchema = object({
|
|
|
38938
39106
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
38939
39107
|
confirmedAt: number().nullable()
|
|
38940
39108
|
});
|
|
39109
|
+
/**
|
|
39110
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
39111
|
+
* and scoped tokens.
|
|
39112
|
+
*
|
|
39113
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
39114
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
39115
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
39116
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
39117
|
+
* provider.
|
|
39118
|
+
*/
|
|
39119
|
+
var ExternalIdentitySchema = object({
|
|
39120
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
39121
|
+
provider: string(),
|
|
39122
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
39123
|
+
subject: string(),
|
|
39124
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
39125
|
+
issuer: string(),
|
|
39126
|
+
userId: string(),
|
|
39127
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
39128
|
+
label: string().optional(),
|
|
39129
|
+
linkedAt: number()
|
|
39130
|
+
});
|
|
39131
|
+
var ExternalIdentityKeySchema = object({
|
|
39132
|
+
provider: string().min(1),
|
|
39133
|
+
subject: string().min(1)
|
|
39134
|
+
});
|
|
38941
39135
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
38942
39136
|
kind: "mutation",
|
|
38943
39137
|
auth: "admin",
|
|
@@ -39051,7 +39245,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
39051
39245
|
userId: string(),
|
|
39052
39246
|
username: string(),
|
|
39053
39247
|
scopes: array(TokenScopeSchema)
|
|
39054
|
-
}).nullable(), { access: "view" }), method(
|
|
39248
|
+
}).nullable(), { access: "view" }), method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
39249
|
+
userId: string(),
|
|
39250
|
+
issuer: string()
|
|
39251
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
39252
|
+
userId: string(),
|
|
39253
|
+
issuer: string().min(1),
|
|
39254
|
+
label: string().optional()
|
|
39255
|
+
}), object({ success: literal(true) }), {
|
|
39256
|
+
kind: "mutation",
|
|
39257
|
+
auth: "admin",
|
|
39258
|
+
access: "create"
|
|
39259
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
|
|
39260
|
+
kind: "mutation",
|
|
39261
|
+
auth: "admin",
|
|
39262
|
+
access: "delete"
|
|
39263
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
39055
39264
|
kind: "mutation",
|
|
39056
39265
|
auth: "admin",
|
|
39057
39266
|
access: "delete"
|
|
@@ -41461,6 +41670,12 @@ Object.freeze({
|
|
|
41461
41670
|
addonId: null,
|
|
41462
41671
|
access: "view"
|
|
41463
41672
|
},
|
|
41673
|
+
"addons.listInstallations": {
|
|
41674
|
+
capName: "addons",
|
|
41675
|
+
capScope: "system",
|
|
41676
|
+
addonId: null,
|
|
41677
|
+
access: "view"
|
|
41678
|
+
},
|
|
41464
41679
|
"addons.listJobs": {
|
|
41465
41680
|
capName: "addons",
|
|
41466
41681
|
capScope: "system",
|
|
@@ -45685,6 +45900,12 @@ Object.freeze({
|
|
|
45685
45900
|
addonId: null,
|
|
45686
45901
|
access: "create"
|
|
45687
45902
|
},
|
|
45903
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
45904
|
+
capName: "pipeline-analytics",
|
|
45905
|
+
capScope: "device",
|
|
45906
|
+
addonId: null,
|
|
45907
|
+
access: "create"
|
|
45908
|
+
},
|
|
45688
45909
|
"pipelineAnalytics.setTrackFlags": {
|
|
45689
45910
|
capName: "pipeline-analytics",
|
|
45690
45911
|
capScope: "device",
|
|
@@ -45721,6 +45942,12 @@ Object.freeze({
|
|
|
45721
45942
|
addonId: null,
|
|
45722
45943
|
access: "delete"
|
|
45723
45944
|
},
|
|
45945
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
45946
|
+
capName: "pipeline-analytics",
|
|
45947
|
+
capScope: "device",
|
|
45948
|
+
addonId: null,
|
|
45949
|
+
access: "create"
|
|
45950
|
+
},
|
|
45724
45951
|
"pipelineExecutor.cacheFrameInPool": {
|
|
45725
45952
|
capName: "pipeline-executor",
|
|
45726
45953
|
capScope: "system",
|
|
@@ -48073,18 +48300,36 @@ Object.freeze({
|
|
|
48073
48300
|
addonId: null,
|
|
48074
48301
|
access: "delete"
|
|
48075
48302
|
},
|
|
48303
|
+
"userManagement.findUserByExternalIdentity": {
|
|
48304
|
+
capName: "user-management",
|
|
48305
|
+
capScope: "system",
|
|
48306
|
+
addonId: null,
|
|
48307
|
+
access: "view"
|
|
48308
|
+
},
|
|
48076
48309
|
"userManagement.getTotpStatus": {
|
|
48077
48310
|
capName: "user-management",
|
|
48078
48311
|
capScope: "system",
|
|
48079
48312
|
addonId: null,
|
|
48080
48313
|
access: "view"
|
|
48081
48314
|
},
|
|
48315
|
+
"userManagement.linkExternalIdentity": {
|
|
48316
|
+
capName: "user-management",
|
|
48317
|
+
capScope: "system",
|
|
48318
|
+
addonId: null,
|
|
48319
|
+
access: "create"
|
|
48320
|
+
},
|
|
48082
48321
|
"userManagement.listApiKeys": {
|
|
48083
48322
|
capName: "user-management",
|
|
48084
48323
|
capScope: "system",
|
|
48085
48324
|
addonId: null,
|
|
48086
48325
|
access: "view"
|
|
48087
48326
|
},
|
|
48327
|
+
"userManagement.listExternalIdentities": {
|
|
48328
|
+
capName: "user-management",
|
|
48329
|
+
capScope: "system",
|
|
48330
|
+
addonId: null,
|
|
48331
|
+
access: "view"
|
|
48332
|
+
},
|
|
48088
48333
|
"userManagement.listOauthSessions": {
|
|
48089
48334
|
capName: "user-management",
|
|
48090
48335
|
capScope: "system",
|
|
@@ -48163,6 +48408,12 @@ Object.freeze({
|
|
|
48163
48408
|
addonId: null,
|
|
48164
48409
|
access: "create"
|
|
48165
48410
|
},
|
|
48411
|
+
"userManagement.unlinkExternalIdentity": {
|
|
48412
|
+
capName: "user-management",
|
|
48413
|
+
capScope: "system",
|
|
48414
|
+
addonId: null,
|
|
48415
|
+
access: "delete"
|
|
48416
|
+
},
|
|
48166
48417
|
"userManagement.updateUser": {
|
|
48167
48418
|
capName: "user-management",
|
|
48168
48419
|
capScope: "system",
|
|
@@ -51502,6 +51753,11 @@ Object.freeze({
|
|
|
51502
51753
|
form: "single",
|
|
51503
51754
|
optional: false
|
|
51504
51755
|
}],
|
|
51756
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
51757
|
+
name: "deviceId",
|
|
51758
|
+
form: "single",
|
|
51759
|
+
optional: false
|
|
51760
|
+
}],
|
|
51505
51761
|
"pipelineAnalytics.setTrackFlags": [{
|
|
51506
51762
|
name: "deviceId",
|
|
51507
51763
|
form: "single",
|
|
@@ -58184,8 +58440,8 @@ function defaultWyzeCloudFacadeFactory(credentials) {
|
|
|
58184
58440
|
}
|
|
58185
58441
|
var wyzeCredentialsSchema = object({
|
|
58186
58442
|
email: string().min(1).describe("Wyze account email"),
|
|
58187
|
-
password: string().min(1).describe("Wyze account password"),
|
|
58188
|
-
apiKey: string().min(1).describe("Wyze developer API key"),
|
|
58443
|
+
password: string().min(1).describe("Wyze account password").meta({ secret: true }),
|
|
58444
|
+
apiKey: string().min(1).describe("Wyze developer API key").meta({ secret: true }),
|
|
58189
58445
|
apiId: string().min(1).describe("Wyze developer Key ID")
|
|
58190
58446
|
});
|
|
58191
58447
|
var TEST_LABEL = "Signs in to the Wyze cloud with these account credentials";
|
package/dist/addon.mjs
CHANGED
|
@@ -5381,7 +5381,7 @@ var ZodIssueCode = {
|
|
|
5381
5381
|
var ZodFirstPartyTypeKind;
|
|
5382
5382
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5383
5383
|
//#endregion
|
|
5384
|
-
//#region ../types/dist/sleep-
|
|
5384
|
+
//#region ../types/dist/sleep-B0JG7-_F.mjs
|
|
5385
5385
|
/**
|
|
5386
5386
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5387
5387
|
* window to float samples (D455).
|
|
@@ -15127,6 +15127,10 @@ var DeviceInfoSchema = object({
|
|
|
15127
15127
|
isCamera: boolean(),
|
|
15128
15128
|
/** Current config values — serializable snapshot */
|
|
15129
15129
|
config: record(string(), unknown()),
|
|
15130
|
+
/** Paths inside `config` the device's schema declares secret (D783) —
|
|
15131
|
+
* what the non-admin redaction withholds. Paths, never values. Absent
|
|
15132
|
+
* when the owning runner has not reported them. */
|
|
15133
|
+
secretConfigPaths: array(string()).optional(),
|
|
15130
15134
|
/** Hardware + identity blob (manufacturer / model / firmware / sn /
|
|
15131
15135
|
* uid / mac / …). Populated by drivers; editable via setMetadata. */
|
|
15132
15136
|
metadata: record(string(), unknown()).nullable().optional(),
|
|
@@ -15332,7 +15336,13 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
15332
15336
|
* call (workers re-register on init), so probe-driven updates
|
|
15333
15337
|
* (e.g. PTZ flag flipping after the abilities probe) propagate. */
|
|
15334
15338
|
features: array(string()).optional(),
|
|
15335
|
-
config: record(string(), unknown())
|
|
15339
|
+
config: record(string(), unknown()),
|
|
15340
|
+
/** Config paths the device's own schema DECLARES secret
|
|
15341
|
+
* (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
|
|
15342
|
+
* `connection.password`). Re-published on every register; the non-admin
|
|
15343
|
+
* redaction withholds them at any depth (D783). Optional: an older runner
|
|
15344
|
+
* omits it and the keyword backstop applies. */
|
|
15345
|
+
secretConfigPaths: array(string()).optional()
|
|
15336
15346
|
});
|
|
15337
15347
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
15338
15348
|
var DevicePersistConfigPayloadSchema = object({
|
|
@@ -16991,7 +17001,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
|
16991
17001
|
icon: string().optional(),
|
|
16992
17002
|
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
16993
17003
|
startUrl: string(),
|
|
16994
|
-
stage: LoginStageEnum
|
|
17004
|
+
stage: LoginStageEnum,
|
|
17005
|
+
/**
|
|
17006
|
+
* The provider names an external identity a signed-in user can link to
|
|
17007
|
+
* their own account (D782): `auth.listLinkableProviders` /
|
|
17008
|
+
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
17009
|
+
* whatever their id. Absent / false — a login button only (magic-link).
|
|
17010
|
+
*/
|
|
17011
|
+
linkable: boolean().optional()
|
|
16995
17012
|
}),
|
|
16996
17013
|
object({
|
|
16997
17014
|
kind: literal("widget"),
|
|
@@ -22426,7 +22443,13 @@ var RetrainFrameSchema = object({
|
|
|
22426
22443
|
sizeBytes: number().int(),
|
|
22427
22444
|
width: number().int(),
|
|
22428
22445
|
height: number().int(),
|
|
22429
|
-
copiedAt: number()
|
|
22446
|
+
copiedAt: number(),
|
|
22447
|
+
/** When the CAMERA captured the frame. Absent on a copy taken before D785. */
|
|
22448
|
+
capturedAt: number().optional(),
|
|
22449
|
+
/** The operator's "every subject in this frame is boxed". Detector
|
|
22450
|
+
* evaluation keeps only complete frames: an unboxed subject would count as
|
|
22451
|
+
* a false positive. */
|
|
22452
|
+
complete: boolean()
|
|
22430
22453
|
});
|
|
22431
22454
|
/** Why a copy-on-select could not be honoured — named, never a silent skip. */
|
|
22432
22455
|
var RetrainCopyRefusalSchema = _enum([
|
|
@@ -22447,6 +22470,51 @@ var RetrainFrameListSchema = object({
|
|
|
22447
22470
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
22448
22471
|
autoPickMediaId: number().int().optional()
|
|
22449
22472
|
});
|
|
22473
|
+
/**
|
|
22474
|
+
* Which frames an annotated export carries. Every field narrows; an empty
|
|
22475
|
+
* filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
|
|
22476
|
+
* list owned by whoever trains (the training orchestrator), so `frameIds` is
|
|
22477
|
+
* the primitive a version export uses; `batchId` re-selects what an earlier
|
|
22478
|
+
* export carried (`exportedInBatch`).
|
|
22479
|
+
*/
|
|
22480
|
+
var RetrainExportFilterSchema = object({
|
|
22481
|
+
deviceIds: array(number()).optional(),
|
|
22482
|
+
frameIds: array(string()).max(2e4).optional(),
|
|
22483
|
+
batchId: string().optional(),
|
|
22484
|
+
/** Only frames the operator marked complete (all subjects boxed). */
|
|
22485
|
+
completeOnly: boolean().optional()
|
|
22486
|
+
});
|
|
22487
|
+
/**
|
|
22488
|
+
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
22489
|
+
* `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
|
|
22490
|
+
* convention — the classifier layout.
|
|
22491
|
+
*/
|
|
22492
|
+
var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
|
|
22493
|
+
/**
|
|
22494
|
+
* Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
|
|
22495
|
+
* the archive, sent chunk by chunk. Covers a presigned PUT and a provider
|
|
22496
|
+
* addon's data-plane upload route alike. Headers are sent verbatim and never
|
|
22497
|
+
* logged.
|
|
22498
|
+
*/
|
|
22499
|
+
var RetrainArchiveTargetSchema = object({
|
|
22500
|
+
kind: literal("http"),
|
|
22501
|
+
method: _enum(["PUT", "POST"]),
|
|
22502
|
+
url: string().url(),
|
|
22503
|
+
headers: record(string(), string()).optional()
|
|
22504
|
+
});
|
|
22505
|
+
var RetrainArchiveResultSchema = object({
|
|
22506
|
+
batchId: string(),
|
|
22507
|
+
frames: number().int(),
|
|
22508
|
+
crops: number().int(),
|
|
22509
|
+
annotations: number().int(),
|
|
22510
|
+
/** Frames planned but not shipped (unreadable copy, path too long). */
|
|
22511
|
+
missing: number().int(),
|
|
22512
|
+
bytes: number().int(),
|
|
22513
|
+
/** sha256 of the exact bytes sent. */
|
|
22514
|
+
sha256: string(),
|
|
22515
|
+
/** The target's HTTP status. */
|
|
22516
|
+
status: number().int()
|
|
22517
|
+
});
|
|
22450
22518
|
/** What the operator asked the assist to look for. */
|
|
22451
22519
|
var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
|
|
22452
22520
|
kind: literal("package"),
|
|
@@ -23241,9 +23309,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
23241
23309
|
}), RetrainTransitionResultSchema, {
|
|
23242
23310
|
kind: "mutation",
|
|
23243
23311
|
auth: "admin"
|
|
23244
|
-
}), method(
|
|
23312
|
+
}), method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
|
|
23245
23313
|
kind: "query",
|
|
23246
23314
|
auth: "admin"
|
|
23315
|
+
}), method(object({
|
|
23316
|
+
deviceId: number(),
|
|
23317
|
+
trackId: string(),
|
|
23318
|
+
frameId: string(),
|
|
23319
|
+
complete: boolean()
|
|
23320
|
+
}), RetrainFrameSchema, {
|
|
23321
|
+
kind: "mutation",
|
|
23322
|
+
auth: "admin"
|
|
23323
|
+
}), method(object({
|
|
23324
|
+
filter: RetrainExportFilterSchema,
|
|
23325
|
+
layout: RetrainExportLayoutSchema,
|
|
23326
|
+
target: RetrainArchiveTargetSchema
|
|
23327
|
+
}), RetrainArchiveResultSchema, {
|
|
23328
|
+
kind: "mutation",
|
|
23329
|
+
auth: "admin",
|
|
23330
|
+
timeoutMs: 60 * 6e4
|
|
23247
23331
|
}), method(object({
|
|
23248
23332
|
/** Which of the three event tables owns the row. */
|
|
23249
23333
|
ownerType: EventOwnerTypeSchema,
|
|
@@ -26677,7 +26761,19 @@ var SsoBridgeClaimsSchema = object({
|
|
|
26677
26761
|
* editing a descriptor must not retroactively extend or shorten a link the
|
|
26678
26762
|
* operator already consented to.
|
|
26679
26763
|
*/
|
|
26680
|
-
refreshTtl: union([number().int().positive(), literal("never")]).optional()
|
|
26764
|
+
refreshTtl: union([number().int().positive(), literal("never")]).optional(),
|
|
26765
|
+
/**
|
|
26766
|
+
* Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
|
|
26767
|
+
* that was started from a signed-in user's "Link" button: the finish then
|
|
26768
|
+
* links this identity to the intent's user instead of signing anyone in.
|
|
26769
|
+
* The handle carries no user id — the hub resolves it, single-use.
|
|
26770
|
+
*/
|
|
26771
|
+
linkIntent: string().optional(),
|
|
26772
|
+
/**
|
|
26773
|
+
* Verified `iss` of the id_token behind an OIDC login bridge (D782). A
|
|
26774
|
+
* subject is unique only per issuer, so a link is bound to it.
|
|
26775
|
+
*/
|
|
26776
|
+
issuer: string().optional()
|
|
26681
26777
|
});
|
|
26682
26778
|
method(object({
|
|
26683
26779
|
claims: SsoBridgeClaimsSchema,
|
|
@@ -28612,7 +28708,22 @@ DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), ar
|
|
|
28612
28708
|
* field their hints were silently stripped by the schema and the
|
|
28613
28709
|
* adaptive ladder started blind on the client's display size.
|
|
28614
28710
|
*/
|
|
28615
|
-
hints: webrtcClientHintsSchema.optional()
|
|
28711
|
+
hints: webrtcClientHintsSchema.optional(),
|
|
28712
|
+
/**
|
|
28713
|
+
* Talk-back (D771): relay the PEER's audio to the device's speaker
|
|
28714
|
+
* through the `intercom` cap's push-talk triple. When `true` and the
|
|
28715
|
+
* offer lets the peer send audio, the answer's audio is `sendrecv`
|
|
28716
|
+
* and every inbound frame goes to `intercom.pushTalkAudio` for this
|
|
28717
|
+
* `deviceId`; absent/false answers `sendonly`, as for every viewer.
|
|
28718
|
+
*
|
|
28719
|
+
* TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
|
|
28720
|
+
* with `intercom`, when the linked user may control that camera. The
|
|
28721
|
+
* hub STRIPS it from every request-bound call (a browser), exactly as
|
|
28722
|
+
* it overwrites `relayOnly` — a viewer's talk permission is the
|
|
28723
|
+
* intercom cap's own surface (share tokens gate it there), and this
|
|
28724
|
+
* flag must not become a second door to the camera's speaker.
|
|
28725
|
+
*/
|
|
28726
|
+
talkback: boolean().optional()
|
|
28616
28727
|
}), object({
|
|
28617
28728
|
sessionId: string(),
|
|
28618
28729
|
sdpAnswer: string()
|
|
@@ -28914,6 +29025,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
|
|
|
28914
29025
|
var RestartAddonResultSchema = unknown();
|
|
28915
29026
|
var InstallPackageResultSchema = unknown();
|
|
28916
29027
|
var ReloadPackagesResultSchema = unknown();
|
|
29028
|
+
/**
|
|
29029
|
+
* What an uninstall did on ONE node.
|
|
29030
|
+
* - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
|
|
29031
|
+
* - `not-installed` — the node did not have it (nothing to do).
|
|
29032
|
+
* - `refused` — protected / bootstrap package; nothing touched.
|
|
29033
|
+
* - `failed` — attempted and did not complete; `error` says why.
|
|
29034
|
+
* - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
|
|
29035
|
+
* back-fill never returns the package, and the stale-addon sweep removes the
|
|
29036
|
+
* copy when the node registers again (only once the hub no longer has it).
|
|
29037
|
+
*/
|
|
29038
|
+
var UninstallNodeOutcomeSchema = _enum([
|
|
29039
|
+
"uninstalled",
|
|
29040
|
+
"not-installed",
|
|
29041
|
+
"refused",
|
|
29042
|
+
"failed",
|
|
29043
|
+
"pending-reconnect"
|
|
29044
|
+
]);
|
|
29045
|
+
var UninstallNodeResultSchema = object({
|
|
29046
|
+
nodeId: string(),
|
|
29047
|
+
outcome: UninstallNodeOutcomeSchema,
|
|
29048
|
+
error: string().optional(),
|
|
29049
|
+
addonIds: array(string()).readonly(),
|
|
29050
|
+
runnersStopped: array(string()).readonly(),
|
|
29051
|
+
warnings: array(string()).readonly()
|
|
29052
|
+
});
|
|
29053
|
+
var UninstallPackageResultSchema = object({
|
|
29054
|
+
/** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
|
|
29055
|
+
success: boolean(),
|
|
29056
|
+
packageName: string(),
|
|
29057
|
+
results: array(UninstallNodeResultSchema).readonly()
|
|
29058
|
+
});
|
|
29059
|
+
/**
|
|
29060
|
+
* `unreachable` lists online agents whose status read FAILED — absence from
|
|
29061
|
+
* `installations` is only "not installed" for a node that answered (D315).
|
|
29062
|
+
*/
|
|
29063
|
+
var PackageInstallationsSchema = object({
|
|
29064
|
+
installations: array(object({
|
|
29065
|
+
packageName: string(),
|
|
29066
|
+
nodeId: string(),
|
|
29067
|
+
nodeName: string(),
|
|
29068
|
+
isHub: boolean(),
|
|
29069
|
+
isOnline: boolean(),
|
|
29070
|
+
version: string().nullable(),
|
|
29071
|
+
addonIds: array(string()).readonly(),
|
|
29072
|
+
source: _enum(["live", "recorded"]),
|
|
29073
|
+
/** The hub installs this package too. `false` on an agent row = an orphan. */
|
|
29074
|
+
onHub: boolean()
|
|
29075
|
+
})).readonly(),
|
|
29076
|
+
unreachable: array(object({
|
|
29077
|
+
nodeId: string(),
|
|
29078
|
+
error: string()
|
|
29079
|
+
})).readonly()
|
|
29080
|
+
});
|
|
28917
29081
|
var BulkUpdateItemStatusSchema = _enum([
|
|
28918
29082
|
"queued",
|
|
28919
29083
|
"updating",
|
|
@@ -28996,10 +29160,14 @@ method(_void(), array(AddonListItemSchema).readonly()), method(object({
|
|
|
28996
29160
|
}), method(object({ packageName: string() }), InstallPackageResultSchema, {
|
|
28997
29161
|
kind: "mutation",
|
|
28998
29162
|
auth: "admin"
|
|
28999
|
-
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29163
|
+
}), method(_void(), boolean()), method(_void(), array(unknown()).readonly()), method(object({
|
|
29164
|
+
packageName: string().min(1),
|
|
29165
|
+
nodeId: string().optional(),
|
|
29166
|
+
everywhere: boolean().optional()
|
|
29167
|
+
}), UninstallPackageResultSchema, {
|
|
29000
29168
|
kind: "mutation",
|
|
29001
29169
|
auth: "admin"
|
|
29002
|
-
}), method(_void(), ReloadPackagesResultSchema, {
|
|
29170
|
+
}), method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }), method(_void(), ReloadPackagesResultSchema, {
|
|
29003
29171
|
kind: "mutation",
|
|
29004
29172
|
auth: "admin"
|
|
29005
29173
|
}), method(object({ query: string().optional() }), array(SearchResultSchema)), method(object({ nodeId: string().optional() }), array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -38917,6 +39085,32 @@ var TotpStatusSchema = object({
|
|
|
38917
39085
|
/** Null when no row exists OR the row is still pending confirmation. */
|
|
38918
39086
|
confirmedAt: number().nullable()
|
|
38919
39087
|
});
|
|
39088
|
+
/**
|
|
39089
|
+
* user-management — singleton capability for user accounts, API keys,
|
|
39090
|
+
* and scoped tokens.
|
|
39091
|
+
*
|
|
39092
|
+
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
39093
|
+
* — the subset check on `setUserScopes` / `createScopedToken` is moot
|
|
39094
|
+
* because non-admins never reach these. If/when we open non-admin
|
|
39095
|
+
* delegation, structural caller-scope subset check goes inside the
|
|
39096
|
+
* provider.
|
|
39097
|
+
*/
|
|
39098
|
+
var ExternalIdentitySchema = object({
|
|
39099
|
+
/** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
|
|
39100
|
+
provider: string(),
|
|
39101
|
+
/** The IdP's stable subject (`sub`) for this account. */
|
|
39102
|
+
subject: string(),
|
|
39103
|
+
/** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
|
|
39104
|
+
issuer: string(),
|
|
39105
|
+
userId: string(),
|
|
39106
|
+
/** What the IdP called the account at link time (username / email) — display only. */
|
|
39107
|
+
label: string().optional(),
|
|
39108
|
+
linkedAt: number()
|
|
39109
|
+
});
|
|
39110
|
+
var ExternalIdentityKeySchema = object({
|
|
39111
|
+
provider: string().min(1),
|
|
39112
|
+
subject: string().min(1)
|
|
39113
|
+
});
|
|
38920
39114
|
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
38921
39115
|
kind: "mutation",
|
|
38922
39116
|
auth: "admin",
|
|
@@ -39030,7 +39224,22 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
39030
39224
|
userId: string(),
|
|
39031
39225
|
username: string(),
|
|
39032
39226
|
scopes: array(TokenScopeSchema)
|
|
39033
|
-
}).nullable(), { access: "view" }), method(
|
|
39227
|
+
}).nullable(), { access: "view" }), method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }), method(ExternalIdentityKeySchema, object({
|
|
39228
|
+
userId: string(),
|
|
39229
|
+
issuer: string()
|
|
39230
|
+
}).nullable(), { auth: "admin" }), method(ExternalIdentityKeySchema.extend({
|
|
39231
|
+
userId: string(),
|
|
39232
|
+
issuer: string().min(1),
|
|
39233
|
+
label: string().optional()
|
|
39234
|
+
}), object({ success: literal(true) }), {
|
|
39235
|
+
kind: "mutation",
|
|
39236
|
+
auth: "admin",
|
|
39237
|
+
access: "create"
|
|
39238
|
+
}), method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
|
|
39239
|
+
kind: "mutation",
|
|
39240
|
+
auth: "admin",
|
|
39241
|
+
access: "delete"
|
|
39242
|
+
}), method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: boolean() }), {
|
|
39034
39243
|
kind: "mutation",
|
|
39035
39244
|
auth: "admin",
|
|
39036
39245
|
access: "delete"
|
|
@@ -41440,6 +41649,12 @@ Object.freeze({
|
|
|
41440
41649
|
addonId: null,
|
|
41441
41650
|
access: "view"
|
|
41442
41651
|
},
|
|
41652
|
+
"addons.listInstallations": {
|
|
41653
|
+
capName: "addons",
|
|
41654
|
+
capScope: "system",
|
|
41655
|
+
addonId: null,
|
|
41656
|
+
access: "view"
|
|
41657
|
+
},
|
|
41443
41658
|
"addons.listJobs": {
|
|
41444
41659
|
capName: "addons",
|
|
41445
41660
|
capScope: "system",
|
|
@@ -45664,6 +45879,12 @@ Object.freeze({
|
|
|
45664
45879
|
addonId: null,
|
|
45665
45880
|
access: "create"
|
|
45666
45881
|
},
|
|
45882
|
+
"pipelineAnalytics.setRetrainFrameComplete": {
|
|
45883
|
+
capName: "pipeline-analytics",
|
|
45884
|
+
capScope: "device",
|
|
45885
|
+
addonId: null,
|
|
45886
|
+
access: "create"
|
|
45887
|
+
},
|
|
45667
45888
|
"pipelineAnalytics.setTrackFlags": {
|
|
45668
45889
|
capName: "pipeline-analytics",
|
|
45669
45890
|
capScope: "device",
|
|
@@ -45700,6 +45921,12 @@ Object.freeze({
|
|
|
45700
45921
|
addonId: null,
|
|
45701
45922
|
access: "delete"
|
|
45702
45923
|
},
|
|
45924
|
+
"pipelineAnalytics.writeRetrainArchive": {
|
|
45925
|
+
capName: "pipeline-analytics",
|
|
45926
|
+
capScope: "device",
|
|
45927
|
+
addonId: null,
|
|
45928
|
+
access: "create"
|
|
45929
|
+
},
|
|
45703
45930
|
"pipelineExecutor.cacheFrameInPool": {
|
|
45704
45931
|
capName: "pipeline-executor",
|
|
45705
45932
|
capScope: "system",
|
|
@@ -48052,18 +48279,36 @@ Object.freeze({
|
|
|
48052
48279
|
addonId: null,
|
|
48053
48280
|
access: "delete"
|
|
48054
48281
|
},
|
|
48282
|
+
"userManagement.findUserByExternalIdentity": {
|
|
48283
|
+
capName: "user-management",
|
|
48284
|
+
capScope: "system",
|
|
48285
|
+
addonId: null,
|
|
48286
|
+
access: "view"
|
|
48287
|
+
},
|
|
48055
48288
|
"userManagement.getTotpStatus": {
|
|
48056
48289
|
capName: "user-management",
|
|
48057
48290
|
capScope: "system",
|
|
48058
48291
|
addonId: null,
|
|
48059
48292
|
access: "view"
|
|
48060
48293
|
},
|
|
48294
|
+
"userManagement.linkExternalIdentity": {
|
|
48295
|
+
capName: "user-management",
|
|
48296
|
+
capScope: "system",
|
|
48297
|
+
addonId: null,
|
|
48298
|
+
access: "create"
|
|
48299
|
+
},
|
|
48061
48300
|
"userManagement.listApiKeys": {
|
|
48062
48301
|
capName: "user-management",
|
|
48063
48302
|
capScope: "system",
|
|
48064
48303
|
addonId: null,
|
|
48065
48304
|
access: "view"
|
|
48066
48305
|
},
|
|
48306
|
+
"userManagement.listExternalIdentities": {
|
|
48307
|
+
capName: "user-management",
|
|
48308
|
+
capScope: "system",
|
|
48309
|
+
addonId: null,
|
|
48310
|
+
access: "view"
|
|
48311
|
+
},
|
|
48067
48312
|
"userManagement.listOauthSessions": {
|
|
48068
48313
|
capName: "user-management",
|
|
48069
48314
|
capScope: "system",
|
|
@@ -48142,6 +48387,12 @@ Object.freeze({
|
|
|
48142
48387
|
addonId: null,
|
|
48143
48388
|
access: "create"
|
|
48144
48389
|
},
|
|
48390
|
+
"userManagement.unlinkExternalIdentity": {
|
|
48391
|
+
capName: "user-management",
|
|
48392
|
+
capScope: "system",
|
|
48393
|
+
addonId: null,
|
|
48394
|
+
access: "delete"
|
|
48395
|
+
},
|
|
48145
48396
|
"userManagement.updateUser": {
|
|
48146
48397
|
capName: "user-management",
|
|
48147
48398
|
capScope: "system",
|
|
@@ -51481,6 +51732,11 @@ Object.freeze({
|
|
|
51481
51732
|
form: "single",
|
|
51482
51733
|
optional: false
|
|
51483
51734
|
}],
|
|
51735
|
+
"pipelineAnalytics.setRetrainFrameComplete": [{
|
|
51736
|
+
name: "deviceId",
|
|
51737
|
+
form: "single",
|
|
51738
|
+
optional: false
|
|
51739
|
+
}],
|
|
51484
51740
|
"pipelineAnalytics.setTrackFlags": [{
|
|
51485
51741
|
name: "deviceId",
|
|
51486
51742
|
form: "single",
|
|
@@ -58163,8 +58419,8 @@ function defaultWyzeCloudFacadeFactory(credentials) {
|
|
|
58163
58419
|
}
|
|
58164
58420
|
var wyzeCredentialsSchema = object({
|
|
58165
58421
|
email: string().min(1).describe("Wyze account email"),
|
|
58166
|
-
password: string().min(1).describe("Wyze account password"),
|
|
58167
|
-
apiKey: string().min(1).describe("Wyze developer API key"),
|
|
58422
|
+
password: string().min(1).describe("Wyze account password").meta({ secret: true }),
|
|
58423
|
+
apiKey: string().min(1).describe("Wyze developer API key").meta({ secret: true }),
|
|
58168
58424
|
apiId: string().min(1).describe("Wyze developer Key ID")
|
|
58169
58425
|
});
|
|
58170
58426
|
var TEST_LABEL = "Signs in to the Wyze cloud with these account credentials";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-wyze",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.131",
|
|
4
4
|
"description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|