@camstack/types 1.2.384 → 1.2.386

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-REHQvLV6.js");
3
- const require_event_category = require("./event-category-Hoe-mqbd.js");
2
+ const require_sleep = require("./sleep-BE7_6UnC.js");
3
+ const require_event_category = require("./event-category-eSqkye-K.js");
4
4
  const require_err_msg = require("./err-msg-BhVbr0NX.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
@@ -973,6 +973,15 @@ var CAP_STATE_LEAVES = Object.freeze({
973
973
  "valueType": "boolean"
974
974
  }],
975
975
  "dishwasher": [
976
+ {
977
+ "path": "availability",
978
+ "valueType": "enum",
979
+ "enumValues": [
980
+ "available",
981
+ "offline",
982
+ "description-missing"
983
+ ]
984
+ },
976
985
  {
977
986
  "path": "state",
978
987
  "valueType": "enum",
@@ -985,12 +994,35 @@ var CAP_STATE_LEAVES = Object.freeze({
985
994
  "unavailable"
986
995
  ]
987
996
  },
997
+ {
998
+ "path": "operationState",
999
+ "valueType": "enum",
1000
+ "enumValues": [
1001
+ "Inactive",
1002
+ "Ready",
1003
+ "DelayedStart",
1004
+ "Run",
1005
+ "Pause",
1006
+ "ActionRequired",
1007
+ "Finished",
1008
+ "Error",
1009
+ "Aborting"
1010
+ ]
1011
+ },
988
1012
  {
989
1013
  "path": "program",
990
1014
  "valueType": "string"
991
1015
  },
992
1016
  {
993
- "path": "remainingMinutes",
1017
+ "path": "selectedProgram",
1018
+ "valueType": "string"
1019
+ },
1020
+ {
1021
+ "path": "remainingSeconds",
1022
+ "valueType": "number"
1023
+ },
1024
+ {
1025
+ "path": "delayedStartSeconds",
994
1026
  "valueType": "number"
995
1027
  },
996
1028
  {
@@ -1001,14 +1033,30 @@ var CAP_STATE_LEAVES = Object.freeze({
1001
1033
  "path": "doorOpen",
1002
1034
  "valueType": "boolean"
1003
1035
  },
1036
+ {
1037
+ "path": "doorLocked",
1038
+ "valueType": "boolean"
1039
+ },
1004
1040
  {
1005
1041
  "path": "remoteStartAllowed",
1006
1042
  "valueType": "boolean"
1007
1043
  },
1044
+ {
1045
+ "path": "remoteControlActive",
1046
+ "valueType": "boolean"
1047
+ },
1048
+ {
1049
+ "path": "localControlActive",
1050
+ "valueType": "boolean"
1051
+ },
1008
1052
  {
1009
1053
  "path": "powerOn",
1010
1054
  "valueType": "boolean"
1011
1055
  },
1056
+ {
1057
+ "path": "powerState",
1058
+ "valueType": "string"
1059
+ },
1012
1060
  {
1013
1061
  "path": "saltLevel",
1014
1062
  "valueType": "enum",
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { $n as PEER_BYTES_CHUNK_BYTES, $t as REMOVE_LEAF, A as HF_REPO, An as RECORD_BATCH_MAX_BYTES, Ar as emitReadiness, B as describeCustomActions, Bn as RECORD_SECRET_COLLECTION_PREFIX, Br as SECRET_CLEAR, Bt as settingsBrokersAdoptsFrom, C as addonSliceHandleApi, Cn as RecordsError, Cr as globalSecretScope, Dn as asRecordsError, En as UnknownRecordKindError, Er as parseSecretRef, F as DEVICE_CHILDREN_BATCH_MAX, Fn as RECORD_ID_MAX_LENGTH, Ft as SETTINGS_ARRAY_ADOPTS_PREFIX, Gn as createSecretsAccess, Gr as isSecretMarkerLike, Gt as RecordFieldPathSchema, H as adminUiCapability, Hn as RECORD_SWEEP_INTERVAL_MS, Hr as isSecretClear, Ht as entryBody, I as CALLER_STAMPED_CAPABILITIES, In as RECORD_MAX_DATA_BYTES, It as parseSettingsArrayAdoptsFrom, Jn as forgetKnownSecret, Jt as RecordKindNameSchema, Kn as MIN_SCRUBBED_LENGTH, Kr as makeSecretMarker, Kt as RecordIndexSchema, L as withoutCallerStamp, Ln as RECORD_MAX_INDEXES, Lt as settingsArrayAdoptsFrom, Mn as RECORD_DATABASES, N as deviceOpsCapability, Nn as RECORD_DEFAULT_MAX_DATA_BYTES, On as recordsErrorFromMessage, P as viewerUiCapability, Pn as RECORD_DELETE_BATCH, Pt as makeInMemoryRecords, Qn as shortSecretRefHash, Qt as defineRecordKinds, Rn as RECORD_MAX_INDEX_FIELDS, Rt as SETTINGS_BROKERS_ADOPTS_PREFIX, Sn as RecordUniqueViolationError, Sr as formatSecretScope, Tn as UnindexedFilterError, Tr as normalizeSecretOwner, Un as resolveSecretViewsIn, Ur as isSecretFieldView, Ut as createRecordsAccess, Vn as RECORD_SETTINGS_MAX_ROWS, Vr as classifySecretWrite, Vt as defineEntryKind, Wn as REVALIDATE_AFTER_MS, Wr as isSecretMarker, Wt as EntryDescriptorSchema, X as expandCapMethods, Xn as registerKnownSecret, Xt as assertValidDeclaration, Yn as knownSecretCount, Yt as RecordRetentionSchema, Zn as scrubKnownSecrets, Zt as declarationsOf, _ as readErrorI18n, _n as PlaintextSecretError, an as recordSecretRef, b as isDeviceScopedCap, bn as RecordSecretUnavailableError, br as arrayItemFieldPath, c as asString, cn as collectZodSecretPaths, ct as ReadinessTimeoutError, d as parseJsonUnknown, dn as BatchTooLargeError, dt as scopeKey, en as collectSecretLeaves, er as PEER_BYTES_MAX_OUTSTANDING, f as hfModelUrl, fn as DeclarationRefusedError, g as ErrorI18nPayloadSchema, gn as NoCallerError, hn as InvalidRecordError, in as recordSecretCollection, ir as DATAPLANE_SECRET_HEADER, it as readNodePin, jn as RECORD_CLASSES, kn as RECORD_BATCH_MAX, kr as createEvent, ln as isZodSecret, lr as normalizeAddonInitResult, mn as ForeignSecretMarkerError, nn as parseSecretPath, nr as PEER_BYTES_TICKET_TTL_MS, o as asJsonObject, on as secretArrayPrefixes, or as DisposerChain, ot as MODEL_FORMATS, p as BOOT_RECOVERY_BACKOFF_MS, pn as FilterRequiredError, qn as clearKnownSecrets, qr as toSecretFieldView, qt as RecordKindDeclarationSchema, r as maskUrlCredentials, rn as recordArrayItemPath, rt as nodePin, sr as BaseAddon, st as ReadinessRegistry, t as sleep, tn as mapSecretLeaves, tr as PEER_BYTES_STALL_MS, un as AdoptionPendingError, vn as RECORDS_ERROR_CODES, w as createEventBusSliceSource, wn as RevConflictError, wr as isSecretRef, x as createDeviceProxy, xn as RecordTooLargeError, xr as buildSecretRef, y as DEVICE_SCOPED_CAPS, yn as RecordNotFoundError, yr as SECRET_REF_SCHEME, zn as RECORD_QUERY_MAX, zt as parseSettingsBrokersAdoptsFrom } from "./sleep-BegKjwUu.mjs";
2
- import { t as EventCategory } from "./event-category-BvOFi6PY.mjs";
1
+ import { $n as PEER_BYTES_CHUNK_BYTES, $t as REMOVE_LEAF, A as HF_REPO, An as RECORD_BATCH_MAX_BYTES, Ar as emitReadiness, B as describeCustomActions, Bn as RECORD_SECRET_COLLECTION_PREFIX, Br as SECRET_CLEAR, Bt as settingsBrokersAdoptsFrom, C as addonSliceHandleApi, Cn as RecordsError, Cr as globalSecretScope, Dn as asRecordsError, En as UnknownRecordKindError, Er as parseSecretRef, F as DEVICE_CHILDREN_BATCH_MAX, Fn as RECORD_ID_MAX_LENGTH, Ft as SETTINGS_ARRAY_ADOPTS_PREFIX, Gn as createSecretsAccess, Gr as isSecretMarkerLike, Gt as RecordFieldPathSchema, H as adminUiCapability, Hn as RECORD_SWEEP_INTERVAL_MS, Hr as isSecretClear, Ht as entryBody, I as CALLER_STAMPED_CAPABILITIES, In as RECORD_MAX_DATA_BYTES, It as parseSettingsArrayAdoptsFrom, Jn as forgetKnownSecret, Jt as RecordKindNameSchema, Kn as MIN_SCRUBBED_LENGTH, Kr as makeSecretMarker, Kt as RecordIndexSchema, L as withoutCallerStamp, Ln as RECORD_MAX_INDEXES, Lt as settingsArrayAdoptsFrom, Mn as RECORD_DATABASES, N as deviceOpsCapability, Nn as RECORD_DEFAULT_MAX_DATA_BYTES, On as recordsErrorFromMessage, P as viewerUiCapability, Pn as RECORD_DELETE_BATCH, Pt as makeInMemoryRecords, Qn as shortSecretRefHash, Qt as defineRecordKinds, Rn as RECORD_MAX_INDEX_FIELDS, Rt as SETTINGS_BROKERS_ADOPTS_PREFIX, Sn as RecordUniqueViolationError, Sr as formatSecretScope, Tn as UnindexedFilterError, Tr as normalizeSecretOwner, Un as resolveSecretViewsIn, Ur as isSecretFieldView, Ut as createRecordsAccess, Vn as RECORD_SETTINGS_MAX_ROWS, Vr as classifySecretWrite, Vt as defineEntryKind, Wn as REVALIDATE_AFTER_MS, Wr as isSecretMarker, Wt as EntryDescriptorSchema, X as expandCapMethods, Xn as registerKnownSecret, Xt as assertValidDeclaration, Yn as knownSecretCount, Yt as RecordRetentionSchema, Zn as scrubKnownSecrets, Zt as declarationsOf, _ as readErrorI18n, _n as PlaintextSecretError, an as recordSecretRef, b as isDeviceScopedCap, bn as RecordSecretUnavailableError, br as arrayItemFieldPath, c as asString, cn as collectZodSecretPaths, ct as ReadinessTimeoutError, d as parseJsonUnknown, dn as BatchTooLargeError, dt as scopeKey, en as collectSecretLeaves, er as PEER_BYTES_MAX_OUTSTANDING, f as hfModelUrl, fn as DeclarationRefusedError, g as ErrorI18nPayloadSchema, gn as NoCallerError, hn as InvalidRecordError, in as recordSecretCollection, ir as DATAPLANE_SECRET_HEADER, it as readNodePin, jn as RECORD_CLASSES, kn as RECORD_BATCH_MAX, kr as createEvent, ln as isZodSecret, lr as normalizeAddonInitResult, mn as ForeignSecretMarkerError, nn as parseSecretPath, nr as PEER_BYTES_TICKET_TTL_MS, o as asJsonObject, on as secretArrayPrefixes, or as DisposerChain, ot as MODEL_FORMATS, p as BOOT_RECOVERY_BACKOFF_MS, pn as FilterRequiredError, qn as clearKnownSecrets, qr as toSecretFieldView, qt as RecordKindDeclarationSchema, r as maskUrlCredentials, rn as recordArrayItemPath, rt as nodePin, sr as BaseAddon, st as ReadinessRegistry, t as sleep, tn as mapSecretLeaves, tr as PEER_BYTES_STALL_MS, un as AdoptionPendingError, vn as RECORDS_ERROR_CODES, w as createEventBusSliceSource, wn as RevConflictError, wr as isSecretRef, x as createDeviceProxy, xn as RecordTooLargeError, xr as buildSecretRef, y as DEVICE_SCOPED_CAPS, yn as RecordNotFoundError, yr as SECRET_REF_SCHEME, zn as RECORD_QUERY_MAX, zt as parseSettingsBrokersAdoptsFrom } from "./sleep-BxjU_fJM.mjs";
2
+ import { t as EventCategory } from "./event-category-DOl51-Ij.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-BXKzRBwg.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -972,6 +972,15 @@ var CAP_STATE_LEAVES = Object.freeze({
972
972
  "valueType": "boolean"
973
973
  }],
974
974
  "dishwasher": [
975
+ {
976
+ "path": "availability",
977
+ "valueType": "enum",
978
+ "enumValues": [
979
+ "available",
980
+ "offline",
981
+ "description-missing"
982
+ ]
983
+ },
975
984
  {
976
985
  "path": "state",
977
986
  "valueType": "enum",
@@ -984,12 +993,35 @@ var CAP_STATE_LEAVES = Object.freeze({
984
993
  "unavailable"
985
994
  ]
986
995
  },
996
+ {
997
+ "path": "operationState",
998
+ "valueType": "enum",
999
+ "enumValues": [
1000
+ "Inactive",
1001
+ "Ready",
1002
+ "DelayedStart",
1003
+ "Run",
1004
+ "Pause",
1005
+ "ActionRequired",
1006
+ "Finished",
1007
+ "Error",
1008
+ "Aborting"
1009
+ ]
1010
+ },
987
1011
  {
988
1012
  "path": "program",
989
1013
  "valueType": "string"
990
1014
  },
991
1015
  {
992
- "path": "remainingMinutes",
1016
+ "path": "selectedProgram",
1017
+ "valueType": "string"
1018
+ },
1019
+ {
1020
+ "path": "remainingSeconds",
1021
+ "valueType": "number"
1022
+ },
1023
+ {
1024
+ "path": "delayedStartSeconds",
993
1025
  "valueType": "number"
994
1026
  },
995
1027
  {
@@ -1000,14 +1032,30 @@ var CAP_STATE_LEAVES = Object.freeze({
1000
1032
  "path": "doorOpen",
1001
1033
  "valueType": "boolean"
1002
1034
  },
1035
+ {
1036
+ "path": "doorLocked",
1037
+ "valueType": "boolean"
1038
+ },
1003
1039
  {
1004
1040
  "path": "remoteStartAllowed",
1005
1041
  "valueType": "boolean"
1006
1042
  },
1043
+ {
1044
+ "path": "remoteControlActive",
1045
+ "valueType": "boolean"
1046
+ },
1047
+ {
1048
+ "path": "localControlActive",
1049
+ "valueType": "boolean"
1050
+ },
1007
1051
  {
1008
1052
  "path": "powerOn",
1009
1053
  "valueType": "boolean"
1010
1054
  },
1055
+ {
1056
+ "path": "powerState",
1057
+ "valueType": "string"
1058
+ },
1011
1059
  {
1012
1060
  "path": "saltLevel",
1013
1061
  "valueType": "enum",
@@ -0,0 +1,230 @@
1
+ /**
2
+ * The ONE permission vocabulary every credential is reduced to (D892).
3
+ *
4
+ * A credential — a login session, an account-link token, a legacy `csa_` /
5
+ * `cst_` / `csv_` token, or the unified token `auth.mintToken` issues — is
6
+ * verified into a principal whose permissions are a `CredentialScope[]`, and
7
+ * nothing else. What KIND of credential it was never decides what it may do:
8
+ *
9
+ * - `'*'` — everything (the admin bypass). Held by an admin's session, a
10
+ * legacy admin token, and a unified token minted with it.
11
+ * - a {@link TokenScope} — the v3 capability grants (`category`,
12
+ * `capability`, `addon`, `device`) the tRPC matcher has always applied.
13
+ * - `share-view` — one fail-closed embed perimeter (`grid-view` /
14
+ * `events-view`) over a few devices. A principal that holds one is
15
+ * RESTRICTED to it: the matcher honours nothing else it holds.
16
+ * - `addon-routes` — may reach any addon's own `authenticated` HTTP routes
17
+ * and data planes (never an `admin` one). A person's session has always
18
+ * had this; an integration token never had it and must hold
19
+ * `addon:<id>` instead.
20
+ *
21
+ * Pure: no I/O. It lives in `@camstack/types` so the hub, the kernel and any
22
+ * addon read the same vocabulary.
23
+ */
24
+ import { z } from 'zod';
25
+ import { MethodAccessSchema, type TokenScope } from '../schemas/auth-records.js';
26
+ /** The admin scope: every permission. */
27
+ export declare const ADMIN_SCOPE = "*";
28
+ /** At most this many devices in one share-view grant (the share-link bound). */
29
+ export declare const SHARE_VIEW_MAX_DEVICES = 64;
30
+ /** What a share-view grant lets its holder see. */
31
+ export declare const ShareViewGrantSchema: z.ZodObject<{
32
+ kind: z.ZodEnum<{
33
+ "events-view": "events-view";
34
+ "grid-view": "grid-view";
35
+ }>;
36
+ deviceIds: z.ZodArray<z.ZodNumber>;
37
+ talk: z.ZodOptional<z.ZodBoolean>;
38
+ }, z.core.$strip>;
39
+ export type ShareViewGrant = z.infer<typeof ShareViewGrantSchema>;
40
+ export declare const ShareViewScopeSchema: z.ZodObject<{
41
+ type: z.ZodLiteral<"share-view">;
42
+ grant: z.ZodObject<{
43
+ kind: z.ZodEnum<{
44
+ "events-view": "events-view";
45
+ "grid-view": "grid-view";
46
+ }>;
47
+ deviceIds: z.ZodArray<z.ZodNumber>;
48
+ talk: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strip>;
50
+ }, z.core.$strip>;
51
+ export type ShareViewScope = z.infer<typeof ShareViewScopeSchema>;
52
+ export declare const AddonRoutesScopeSchema: z.ZodObject<{
53
+ type: z.ZodLiteral<"addon-routes">;
54
+ access: z.ZodArray<z.ZodEnum<{
55
+ create: "create";
56
+ delete: "delete";
57
+ view: "view";
58
+ }>>;
59
+ }, z.core.$strip>;
60
+ export type AddonRoutesScope = z.infer<typeof AddonRoutesScopeSchema>;
61
+ export declare const CredentialScopeSchema: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodObject<{
62
+ type: z.ZodLiteral<"share-view">;
63
+ grant: z.ZodObject<{
64
+ kind: z.ZodEnum<{
65
+ "events-view": "events-view";
66
+ "grid-view": "grid-view";
67
+ }>;
68
+ deviceIds: z.ZodArray<z.ZodNumber>;
69
+ talk: z.ZodOptional<z.ZodBoolean>;
70
+ }, z.core.$strip>;
71
+ }, z.core.$strip>, z.ZodObject<{
72
+ type: z.ZodLiteral<"addon-routes">;
73
+ access: z.ZodArray<z.ZodEnum<{
74
+ create: "create";
75
+ delete: "delete";
76
+ view: "view";
77
+ }>>;
78
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
79
+ type: z.ZodLiteral<"category">;
80
+ target: z.ZodEnum<{
81
+ device: "device";
82
+ system: "system";
83
+ }>;
84
+ access: z.ZodArray<z.ZodEnum<{
85
+ create: "create";
86
+ delete: "delete";
87
+ view: "view";
88
+ }>>;
89
+ }, z.core.$strip>, z.ZodObject<{
90
+ type: z.ZodLiteral<"capability">;
91
+ target: z.ZodString;
92
+ access: z.ZodArray<z.ZodEnum<{
93
+ create: "create";
94
+ delete: "delete";
95
+ view: "view";
96
+ }>>;
97
+ }, z.core.$strip>, z.ZodObject<{
98
+ type: z.ZodLiteral<"addon">;
99
+ target: z.ZodString;
100
+ access: z.ZodArray<z.ZodEnum<{
101
+ create: "create";
102
+ delete: "delete";
103
+ view: "view";
104
+ }>>;
105
+ }, z.core.$strip>, z.ZodObject<{
106
+ type: z.ZodLiteral<"device">;
107
+ selector: z.ZodDiscriminatedUnion<[z.ZodObject<{
108
+ kind: z.ZodLiteral<"all">;
109
+ }, z.core.$strip>, z.ZodObject<{
110
+ kind: z.ZodLiteral<"ids">;
111
+ ids: z.ZodArray<z.ZodNumber>;
112
+ }, z.core.$strip>, z.ZodObject<{
113
+ kind: z.ZodLiteral<"types">;
114
+ types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
115
+ }, z.core.$strip>, z.ZodObject<{
116
+ kind: z.ZodLiteral<"locations">;
117
+ locations: z.ZodArray<z.ZodString>;
118
+ }, z.core.$strip>], "kind">;
119
+ access: z.ZodArray<z.ZodEnum<{
120
+ create: "create";
121
+ delete: "delete";
122
+ view: "view";
123
+ }>>;
124
+ includeLinked: z.ZodOptional<z.ZodBoolean>;
125
+ }, z.core.$strip>], "type">>]>;
126
+ export type CredentialScope = z.infer<typeof CredentialScopeSchema>;
127
+ /** Every access flavour — what a person's session holds on addon routes. */
128
+ export declare const ALL_METHOD_ACCESS: readonly ['view', 'create', 'delete'];
129
+ /** True iff the scope set holds `'*'`. */
130
+ export declare function scopesGrantAdmin(scopes: readonly CredentialScope[]): boolean;
131
+ /**
132
+ * The share-view grant that RESTRICTS this principal, or `null` when it holds
133
+ * none. Fail closed: a set that mixes a share-view grant with anything else
134
+ * is still restricted to its FIRST share-view grant, never widened by the rest.
135
+ */
136
+ export declare function shareViewGrantOf(scopes: readonly CredentialScope[]): ShareViewGrant | null;
137
+ /** The capability grants the tRPC scope matcher reads. */
138
+ export declare function capabilityScopesOf(scopes: readonly CredentialScope[]): readonly TokenScope[];
139
+ /** True iff the set reaches every addon's own routes at `access`. */
140
+ export declare function scopesAllowAddonRoutes(scopes: readonly CredentialScope[], access: z.infer<typeof MethodAccessSchema>): boolean;
141
+ /**
142
+ * Parse a scope array from an untrusted source (a JWT claim, a stored row).
143
+ * Any element that does not parse makes the WHOLE set unusable — `null` — so
144
+ * a corrupt grant can never degrade into a partial one.
145
+ */
146
+ export declare function parseCredentialScopes(raw: unknown): readonly CredentialScope[] | null;
147
+ /**
148
+ * The `kind` claim of a unified token. It names the TOKEN FAMILY (so every
149
+ * older gate that classifies a hub JWT refuses it — `classifyBearerPrincipal`
150
+ * treats any `kind` it does not know as not-a-credential), never what the
151
+ * token may do: that is its `scopes`, and only its `scopes`.
152
+ */
153
+ export declare const CREDENTIAL_TOKEN_KIND = "credential";
154
+ /**
155
+ * The claims of a unified token (`auth.mintToken`). It carries no `exp`: its
156
+ * row (looked up by `jti` on every verify, for revocation) holds the ONE
157
+ * expiry, so a share link can be extended and a JWT clock can never disagree
158
+ * with the row.
159
+ */
160
+ export declare const CredentialTokenClaimsSchema: z.ZodObject<{
161
+ kind: z.ZodLiteral<"credential">;
162
+ sub: z.ZodString;
163
+ jti: z.ZodString;
164
+ scopes: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodObject<{
165
+ type: z.ZodLiteral<"share-view">;
166
+ grant: z.ZodObject<{
167
+ kind: z.ZodEnum<{
168
+ "events-view": "events-view";
169
+ "grid-view": "grid-view";
170
+ }>;
171
+ deviceIds: z.ZodArray<z.ZodNumber>;
172
+ talk: z.ZodOptional<z.ZodBoolean>;
173
+ }, z.core.$strip>;
174
+ }, z.core.$strip>, z.ZodObject<{
175
+ type: z.ZodLiteral<"addon-routes">;
176
+ access: z.ZodArray<z.ZodEnum<{
177
+ create: "create";
178
+ delete: "delete";
179
+ view: "view";
180
+ }>>;
181
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
182
+ type: z.ZodLiteral<"category">;
183
+ target: z.ZodEnum<{
184
+ device: "device";
185
+ system: "system";
186
+ }>;
187
+ access: z.ZodArray<z.ZodEnum<{
188
+ create: "create";
189
+ delete: "delete";
190
+ view: "view";
191
+ }>>;
192
+ }, z.core.$strip>, z.ZodObject<{
193
+ type: z.ZodLiteral<"capability">;
194
+ target: z.ZodString;
195
+ access: z.ZodArray<z.ZodEnum<{
196
+ create: "create";
197
+ delete: "delete";
198
+ view: "view";
199
+ }>>;
200
+ }, z.core.$strip>, z.ZodObject<{
201
+ type: z.ZodLiteral<"addon">;
202
+ target: z.ZodString;
203
+ access: z.ZodArray<z.ZodEnum<{
204
+ create: "create";
205
+ delete: "delete";
206
+ view: "view";
207
+ }>>;
208
+ }, z.core.$strip>, z.ZodObject<{
209
+ type: z.ZodLiteral<"device">;
210
+ selector: z.ZodDiscriminatedUnion<[z.ZodObject<{
211
+ kind: z.ZodLiteral<"all">;
212
+ }, z.core.$strip>, z.ZodObject<{
213
+ kind: z.ZodLiteral<"ids">;
214
+ ids: z.ZodArray<z.ZodNumber>;
215
+ }, z.core.$strip>, z.ZodObject<{
216
+ kind: z.ZodLiteral<"types">;
217
+ types: z.ZodArray<z.ZodEnum<typeof import("../index.js").DeviceType>>;
218
+ }, z.core.$strip>, z.ZodObject<{
219
+ kind: z.ZodLiteral<"locations">;
220
+ locations: z.ZodArray<z.ZodString>;
221
+ }, z.core.$strip>], "kind">;
222
+ access: z.ZodArray<z.ZodEnum<{
223
+ create: "create";
224
+ delete: "delete";
225
+ view: "view";
226
+ }>>;
227
+ includeLinked: z.ZodOptional<z.ZodBoolean>;
228
+ }, z.core.$strip>], "type">>]>>;
229
+ }, z.core.$strip>;
230
+ export type CredentialTokenClaims = z.infer<typeof CredentialTokenClaimsSchema>;
@@ -17,6 +17,10 @@ export declare const AlertSeveritySchema: z.ZodEnum<{
17
17
  export declare const AlertActionSchema: z.ZodObject<{
18
18
  label: z.ZodString;
19
19
  href: z.ZodOptional<z.ZodString>;
20
+ navigation: z.ZodOptional<z.ZodEnum<{
21
+ app: "app";
22
+ server: "server";
23
+ }>>;
20
24
  }, z.core.$strip>;
21
25
  export declare const AlertStatusSchema: z.ZodEnum<{
22
26
  active: "active";
@@ -44,6 +48,10 @@ export declare const AlertSchema: z.ZodObject<{
44
48
  action: z.ZodOptional<z.ZodObject<{
45
49
  label: z.ZodString;
46
50
  href: z.ZodOptional<z.ZodString>;
51
+ navigation: z.ZodOptional<z.ZodEnum<{
52
+ app: "app";
53
+ server: "server";
54
+ }>>;
47
55
  }, z.core.$strip>>;
48
56
  status: z.ZodEnum<{
49
57
  active: "active";
@@ -85,6 +93,10 @@ export declare const alertsCapability: {
85
93
  action: z.ZodOptional<z.ZodObject<{
86
94
  label: z.ZodString;
87
95
  href: z.ZodOptional<z.ZodString>;
96
+ navigation: z.ZodOptional<z.ZodEnum<{
97
+ app: "app";
98
+ server: "server";
99
+ }>>;
88
100
  }, z.core.$strip>>;
89
101
  status: z.ZodEnum<{
90
102
  active: "active";
@@ -120,6 +132,10 @@ export declare const alertsCapability: {
120
132
  action: z.ZodOptional<z.ZodOptional<z.ZodObject<{
121
133
  label: z.ZodString;
122
134
  href: z.ZodOptional<z.ZodString>;
135
+ navigation: z.ZodOptional<z.ZodEnum<{
136
+ app: "app";
137
+ server: "server";
138
+ }>>;
123
139
  }, z.core.$strip>>>;
124
140
  status: z.ZodOptional<z.ZodEnum<{
125
141
  active: "active";
@@ -157,6 +173,10 @@ export declare const alertsCapability: {
157
173
  action: z.ZodOptional<z.ZodObject<{
158
174
  label: z.ZodString;
159
175
  href: z.ZodOptional<z.ZodString>;
176
+ navigation: z.ZodOptional<z.ZodEnum<{
177
+ app: "app";
178
+ server: "server";
179
+ }>>;
160
180
  }, z.core.$strip>>;
161
181
  status: z.ZodEnum<{
162
182
  active: "active";