@camstack/types 1.2.369 → 1.2.371

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,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-CXlc9YJ5.js");
2
+ const require_sleep = require("./sleep-DnQ5WsMI.js");
3
3
  const require_event_category = require("./event-category-T43rdQWR.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as viewerUiCapability, At as createSecretsAccess, Bt as PEER_BYTES_STALL_MS, C as isZodSecret, Cn as isSecretClear, Dn as makeSecretMarker, E as HF_REPO, En as isSecretMarkerLike, Ft as registerKnownSecret, Gt as DisposerChain, I as adminUiCapability, It as scrubKnownSecrets, Kt as BaseAddon, Lt as shortSecretRefHash, Mt as clearKnownSecrets, Nt as forgetKnownSecret, On as toSecretFieldView, Ot as resolveSecretViewsIn, P as describeCustomActions, Pt as knownSecretCount, Q as readNodePin, Rt as PEER_BYTES_CHUNK_BYTES, S as collectZodSecretPaths, Sn as classifySecretWrite, Tn as isSecretMarker, Ut as DATAPLANE_SECRET_HEADER, Vt as PEER_BYTES_TICKET_TTL_MS, W as expandCapMethods, Z as nodePin, _ as createEventBusSliceSource, an as formatSecretScope, at as scopeKey, c as asString, cn as normalizeSecretOwner, d as parseJsonUnknown, et as MODEL_FORMATS, f as hfModelUrl, fn as createEvent, g as createDeviceProxy, h as isDeviceScopedCap, in as buildSecretRef, j as DEVICE_CHILDREN_BATCH_MAX, jt as MIN_SCRUBBED_LENGTH, k as deviceOpsCapability, kt as REVALIDATE_AFTER_MS, ln as parseSecretRef, m as DEVICE_SCOPED_CAPS, nn as SECRET_REF_SCHEME, nt as ReadinessTimeoutError, o as asJsonObject, on as globalSecretScope, p as BOOT_RECOVERY_BACKOFF_MS, pn as emitReadiness, qt as normalizeAddonInitResult, r as maskUrlCredentials, rn as arrayItemFieldPath, sn as isSecretRef, t as sleep, tt as ReadinessRegistry, wn as isSecretFieldView, xn as SECRET_CLEAR, zt as PEER_BYTES_MAX_OUTSTANDING } from "./sleep--g-h2_c_.mjs";
1
+ import { A as viewerUiCapability, At as createSecretsAccess, Bt as PEER_BYTES_STALL_MS, C as isZodSecret, Cn as isSecretClear, Dn as makeSecretMarker, E as HF_REPO, En as isSecretMarkerLike, Ft as registerKnownSecret, Gt as DisposerChain, I as adminUiCapability, It as scrubKnownSecrets, Kt as BaseAddon, Lt as shortSecretRefHash, Mt as clearKnownSecrets, Nt as forgetKnownSecret, On as toSecretFieldView, Ot as resolveSecretViewsIn, P as describeCustomActions, Pt as knownSecretCount, Q as readNodePin, Rt as PEER_BYTES_CHUNK_BYTES, S as collectZodSecretPaths, Sn as classifySecretWrite, Tn as isSecretMarker, Ut as DATAPLANE_SECRET_HEADER, Vt as PEER_BYTES_TICKET_TTL_MS, W as expandCapMethods, Z as nodePin, _ as createEventBusSliceSource, an as formatSecretScope, at as scopeKey, c as asString, cn as normalizeSecretOwner, d as parseJsonUnknown, et as MODEL_FORMATS, f as hfModelUrl, fn as createEvent, g as createDeviceProxy, h as isDeviceScopedCap, in as buildSecretRef, j as DEVICE_CHILDREN_BATCH_MAX, jt as MIN_SCRUBBED_LENGTH, k as deviceOpsCapability, kt as REVALIDATE_AFTER_MS, ln as parseSecretRef, m as DEVICE_SCOPED_CAPS, nn as SECRET_REF_SCHEME, nt as ReadinessTimeoutError, o as asJsonObject, on as globalSecretScope, p as BOOT_RECOVERY_BACKOFF_MS, pn as emitReadiness, qt as normalizeAddonInitResult, r as maskUrlCredentials, rn as arrayItemFieldPath, sn as isSecretRef, t as sleep, tt as ReadinessRegistry, wn as isSecretFieldView, xn as SECRET_CLEAR, zt as PEER_BYTES_MAX_OUTSTANDING } from "./sleep-DAX0-2v9.mjs";
2
2
  import { t as EventCategory } from "./event-category-C4hVnRo8.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The native-app browser sign-in flows the hub serves itself (D858).
3
+ *
4
+ * The viewer app opens the system browser at a hub START route (OIDC
5
+ * `/addon/auth-oidc/<id>/start`, the passkey page `/auth/app/passkey`) and gets
6
+ * a one-shot handoff code back at its custom scheme. These helpers are the one
7
+ * reading of the request every leg shares - the OIDC addon, the finish leg and
8
+ * the passkey page - so a rule tightened for one is tightened for all:
9
+ *
10
+ * - PKCE is mandatory and S256 only (`code_challenge` = base64url of a SHA-256);
11
+ * - `state` is echoed back exactly;
12
+ * - the return URL is one of {@link APP_AUTH_CALLBACK_URLS}, never a free URL;
13
+ * - the purpose is `new-session` or `step-up` (the legacy `renew` has no browser flow).
14
+ *
15
+ * Pure and dependency-free (zod only) so an addon, the backend and a spec read
16
+ * the same code.
17
+ */
18
+ import { z } from 'zod';
19
+ /** What the app redeems the code for. `step-up` yields a proof, never a session. */
20
+ export declare const AppFlowPurposeSchema: z.ZodEnum<{
21
+ "new-session": "new-session";
22
+ "step-up": "step-up";
23
+ }>;
24
+ export type AppFlowPurpose = z.infer<typeof AppFlowPurposeSchema>;
25
+ /** Where the app is sent when the request names no `redirect`. */
26
+ export declare const APP_FLOW_DEFAULT_REDIRECT = "camstack://auth-callback";
27
+ /**
28
+ * A browser OIDC flow started for an app carries this prefix on the IdP
29
+ * `state` it generates, so a callback whose pending state is gone (expired,
30
+ * replayed) can still be answered at the app and not on a hub error page. The
31
+ * destination of that answer is the fixed default callback - the prefix
32
+ * selects nothing the requester controls.
33
+ */
34
+ export declare const APP_FLOW_STATE_PREFIX = "a.";
35
+ /** A validated app flow request. */
36
+ export interface AppFlowRequest {
37
+ readonly codeChallenge: string;
38
+ readonly state: string;
39
+ readonly purpose: AppFlowPurpose;
40
+ /** The canonical allow-listed callback URL. */
41
+ readonly redirect: string;
42
+ }
43
+ export type AppFlowRefusal = 'bad-challenge' | 'bad-challenge-method' | 'bad-state' | 'bad-purpose' | 'bad-redirect';
44
+ export type AppFlowParse = {
45
+ readonly ok: true;
46
+ readonly request: AppFlowRequest;
47
+ } | {
48
+ readonly ok: false;
49
+ readonly reason: AppFlowRefusal;
50
+ };
51
+ /** Operator-facing words for a refusal (the "clear page", D858). */
52
+ export declare const APP_FLOW_REFUSAL_MESSAGES: Record<AppFlowRefusal, string>;
53
+ /**
54
+ * Read the app parameters off a start query: `code_challenge`,
55
+ * `code_challenge_method`, `state`, `purpose`, `redirect`. Anything missing or
56
+ * malformed is refused - there is no lenient default for PKCE or state.
57
+ */
58
+ export declare function parseAppFlowRequest(query: Readonly<Record<string, string | undefined>>): AppFlowParse;
59
+ /** The app's callback with `code` (success) or `error` (refusal), and the echoed `state` when known. */
60
+ export declare function appFlowLocation(redirect: string, result: {
61
+ readonly code: string;
62
+ } | {
63
+ readonly error: string;
64
+ }, state?: string): string;
65
+ /** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
66
+ export declare const AppLoginPathSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
67
+ kind: z.ZodLiteral<"native">;
68
+ }, z.core.$strip>, z.ZodObject<{
69
+ kind: z.ZodLiteral<"browser">;
70
+ startPath: z.ZodString;
71
+ }, z.core.$strip>], "kind">;
72
+ export type AppLoginPath = z.infer<typeof AppLoginPathSchema>;
@@ -368,5 +368,11 @@ export declare const DeviceCertificateLoginMethodSchema: z.ZodObject<{
368
368
  native: "native";
369
369
  web: "web";
370
370
  }>>;
371
+ app: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
372
+ kind: z.ZodLiteral<"native">;
373
+ }, z.core.$strip>, z.ZodObject<{
374
+ kind: z.ZodLiteral<"browser">;
375
+ startPath: z.ZodString;
376
+ }, z.core.$strip>], "kind">>;
371
377
  }, z.core.$strip>;
372
378
  export type DeviceCertificateLoginMethod = z.infer<typeof DeviceCertificateLoginMethodSchema>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The Addons catalog filtered to the packages that declare `capability` — the
3
+ * ONE spelling of that link (D860). It lives in `@camstack/types` so an addon's
4
+ * own page (which may not import the admin UI) and the admin pages build it the
5
+ * same way. `scripts/check-addon-install-links.ts` pins this file as the only
6
+ * place the URL is written.
7
+ */
8
+ export declare function addonCatalogHref(capability: string): string;
@@ -112,6 +112,7 @@ declare const SearchResultSchema: z.ZodObject<{
112
112
  author: z.ZodString;
113
113
  installed: z.ZodBoolean;
114
114
  installedVersion: z.ZodOptional<z.ZodString>;
115
+ capabilities: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
115
116
  }, z.core.$strip>;
116
117
  declare const AutoUpdateSettingsSchema: z.ZodObject<{
117
118
  channel: z.ZodEnum<{
@@ -223,6 +224,7 @@ declare const PackageInstallationsSchema: z.ZodObject<{
223
224
  export type UninstallNodeOutcome = z.infer<typeof UninstallNodeOutcomeSchema>;
224
225
  export type UninstallNodeResult = z.infer<typeof UninstallNodeResultSchema>;
225
226
  export type UninstallPackageResult = z.infer<typeof UninstallPackageResultSchema>;
227
+ export type AddonSearchResult = z.infer<typeof SearchResultSchema>;
226
228
  export type PackageInstallation = z.infer<typeof PackageInstallationSchema>;
227
229
  export type PackageInstallations = z.infer<typeof PackageInstallationsSchema>;
228
230
  declare const BulkUpdateItemStatusSchema: z.ZodEnum<{
@@ -478,6 +480,7 @@ export declare const addonsCapability: {
478
480
  readonly reloadPackages: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodUnknown, "mutation">;
479
481
  readonly searchAvailable: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
480
482
  query: z.ZodOptional<z.ZodString>;
483
+ capability: z.ZodOptional<z.ZodString>;
481
484
  }, z.core.$strip>, z.ZodArray<z.ZodObject<{
482
485
  name: z.ZodString;
483
486
  version: z.ZodString;
@@ -487,6 +490,7 @@ export declare const addonsCapability: {
487
490
  author: z.ZodString;
488
491
  installed: z.ZodBoolean;
489
492
  installedVersion: z.ZodOptional<z.ZodString>;
493
+ capabilities: z.ZodNullable<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
490
494
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
491
495
  /**
492
496
  * Available package updates for a node. `nodeId` omitted (or
@@ -14,14 +14,16 @@
14
14
  * carries role flags, the same way for both:
15
15
  *
16
16
  * - `appConnections` (many) — what the CamStack apps try when connecting.
17
- * Automatic: every LAN IPv4 address plus the public tunnel.
17
+ * Automatic: every LAN IPv4 address plus the public tunnel — unless the
18
+ * tunnel's address is not stable (a Quick tunnel, D860).
18
19
  * - `notificationTaps` (one) — ONLY where tapping a notification opens.
19
20
  * Automatic: the CamStack app link (D709); a hub address may be flagged.
20
21
  * - `publicEndpoint` (one) — every URL that must work from OUTSIDE the home
21
22
  * network: sign-in links, OIDC / OAuth2 callbacks, the passkey relying
22
23
  * party, account linking, and the notification centre's action buttons,
23
24
  * attachment / media links and admin links. Automatic: the public tunnel,
24
- * then the mesh, then the LAN. Never the app link.
25
+ * then the mesh, then the LAN. Never the app link, and never an address
26
+ * that is re-issued on its own (`stable: false`, a Quick tunnel — D860).
25
27
  * - `internal` (one) — what agents and LAN devices download from (addon
26
28
  * bundles, models, a camera relay's broker host, Home Assistant media).
27
29
  * Automatic: a LAN IPv4 literal, then any plausible LAN address, then the
@@ -70,6 +70,7 @@ export type { FailureContribution, IFailureContributionProvider, } from './failu
70
70
  export { FailureContributionSchema, FailureReasonCountSchema, failureContributionCapability, } from './failure-contribution.cap.js';
71
71
  export { filesystemBrowseCapability, type IFilesystemBrowseProvider, } from './filesystem-browse.cap.js';
72
72
  export { AUTOMATIC_HUB_ADDRESS_FLAGS, checkRoleAddress, HUB_ADDRESS_ROLES, type HubAddressCheck, type HubAddressFlags, type HubAddressRole, type HubAddressRoleResolution, type HubAddressRoles, type HubAddressSource, type HubAppConnectionsResolution, HUB_MDNS_QUERY_NAME, HUB_MDNS_ROLE, HUB_MDNS_SERVICE_TYPE, HUB_MDNS_TXT_KEYS, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, hubAddressHostname, isDefaultAppConnectionEndpoint, isSingleHubAddressRole, PUBLIC_ENDPOINT_HTTP_REASON, resolveAppConnections, resolveHubAddressRoles, resolveInternalAddress, resolveNotificationTapAddress, resolvePublicEndpoint, SINGLE_HUB_ADDRESS_ROLES, type SingleHubAddressRole, selectAppConnectionEndpoints, validateCustomAddress, } from './hub-address.js';
73
+ export { addonCatalogHref } from './addon-catalog-href.js';
73
74
  export { type HfModelResolution, HfModelResolutionSchema, type ILlmProvider, type LlmDefault, LlmDefaultSchema, type LlmDefaultSelector, LlmDefaultSelectorSchema, type LlmProfile, type LlmProfileKind, type LlmProfileKindDescriptor, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, type LlmRuntimeNode, LlmRuntimeNodeSchema, type LlmUsageRollup, LlmUsageRollupSchema, llmCapability, type ManagedModelCatalogEntry, ManagedModelCatalogEntrySchema, } from './llm.cap.js';
74
75
  export { type AppleFmAvailability, AppleFmAvailabilitySchema, type AppleFmUnavailableReason, AppleFmUnavailableReasonSchema, type ILlmRuntimeProvider, type LlmDownloadProgress, LlmDownloadProgressSchema, type LlmNodeModel, LlmNodeModelSchema, type LlmRuntimeAppleCompleteInput, LlmRuntimeAppleCompleteInputSchema, type LlmRuntimeCancelInput, LlmRuntimeCancelInputSchema, type LlmRuntimeCompleteInput, LlmRuntimeCompleteInputSchema, type LlmRuntimeDiskUsage, LlmRuntimeDiskUsageSchema, type LlmRuntimeStatus, LlmRuntimeStatusSchema, llmRuntimeCapability, type ManagedModelExtraFile, ManagedModelExtraFileSchema, type ManagedModelRef, ManagedModelRefSchema, type ManagedRuntimeConfig, ManagedRuntimeConfigSchema, } from './llm-runtime.cap.js';
75
76
  export { type LlmErrorCode, LlmErrorCodeSchema, type LlmGenerateBaseInput, LlmGenerateBaseInputSchema, type LlmGenerateErr, LlmGenerateErrSchema, type LlmGenerateOk, LlmGenerateOkSchema, type LlmGenerateResult, LlmGenerateResultSchema, type LlmImage, LlmImageSchema, type LlmRefusalSource, LlmRefusalSourceSchema, type LlmRetryPolicy, LlmRetryPolicySchema, LlmTimeoutDefaults, type LlmUsage, LlmUsageSchema, } from './llm-shared.js';
@@ -89,8 +90,8 @@ export type { IMotionDetectionProvider, MotionAnalysisResult, MotionRegion, } fr
89
90
  export { MotionAnalysisResultSchema, MotionRegionSchema, motionDetectionCapability, } from './motion-detection.cap.js';
90
91
  export type { BrokerConnectionDetails, BrokerInfo as MqttBrokerInfo, BrokerStatus as MqttBrokerLiveStatus, IMqttBrokerProvider, } from './mqtt-broker.cap.js';
91
92
  export { AddBrokerInputSchema, BrokerConnectionDetailsSchema, BrokerInfoSchema as MqttBrokerInfoSchema, MqttBrokerStatusSchema, mqttBrokerCapability, StartEmbeddedInputSchema, } from './mqtt-broker.cap.js';
92
- export type { NetworkAccessStatus, NetworkEndpoint } from './network-access.cap.js';
93
- export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapability, } from './network-access.cap.js';
93
+ export type { NetworkAccessStatus, NetworkEndpoint, NetworkTunnelStartedData, } from './network-access.cap.js';
94
+ export { NetworkAccessStatusSchema, NetworkEndpointSchema, NetworkTunnelStartedDataSchema, networkAccessCapability, } from './network-access.cap.js';
94
95
  export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type ProbeTargetConfigResult, ProbeTargetConfigResultSchema, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
95
96
  export { consumableLowPercentOf, type INotificationRulesProvider, isRetiredClearKey, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_NONBLOCKING_MAX, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CLIP_POST_ROLL_DEFAULT_SEC, NC_CLIP_PRE_ROLL_DEFAULT_SEC, NC_CLIP_RETENTION_MAX_SEC, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_DEFAULT_SNOOZE_MINUTES, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_RULE_CLEARABLE_KEYS, NC_RULE_RETIRED_CLEAR_KEYS, NC_SNOOZE_MAX_MINUTES, NC_TANK_SYSTEM_EVENT_KINDS, type NcActionBinding, NcActionBindingSchema, type NcAlarmBlocking, type NcAlarmBlockingEdit, NcAlarmBlockingEditSchema, NcAlarmBlockingSchema, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmCreateProfileInput, NcAlarmCreateProfileInputSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmModeDelays, type NcAlarmModeDelaysEdit, NcAlarmModeDelaysEditSchema, NcAlarmModeDelaysSchema, type NcAlarmModeDeviceList, NcAlarmModeDeviceListSchema, type NcAlarmNonBlocking, type NcAlarmNonBlockingEdit, NcAlarmNonBlockingEditSchema, NcAlarmNonBlockingSchema, type NcAlarmPostTriggeredAction, NcAlarmPostTriggeredActionSchema, type NcAlarmProfileIdInput, NcAlarmProfileIdInputSchema, type NcAlarmProfileMeta, NcAlarmProfileMetaSchema, type NcAlarmProfilesView, NcAlarmProfilesViewSchema, type NcAlarmRenameProfileInput, NcAlarmRenameProfileInputSchema, type NcAlarmSecureOnArmEdit, NcAlarmSecureOnArmEditSchema, type NcAlarmSecureOnArmOff, NcAlarmSecureOnArmOffSchema, type NcAlarmSensorReading, NcAlarmSensorReadingSchema, type NcAlarmSensorState, NcAlarmSensorStateSchema, type NcAlarmSensors, type NcAlarmSensorsInput, NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcClipRetentionAsk, NcClipRetentionAskSchema, type NcClipRetentionPlan, NcClipRetentionPlanSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcHookBindings, NcHookBindingsSchema, type NcLegacyRuleActionSequence, NcLegacyRuleActionSequenceSchema, type NcLinkedCameraMode, NcLinkedCameraModeSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleClearableKey, NcRuleClearableKeySchema, type NcRuleInput, NcRuleInputSchema, NcRuleKindSchema, type NcRuleLastRun, NcRuleLastRunSchema, type NcRuleLastRuns, NcRuleLastRunsSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcRuleUpdateInput, NcRuleUpdateInputSchema, type NcSceneCondition, NcSceneConditionSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSensorTransition, NcSensorTransitionSchema, type NcSharedSequence, type NcSharedSequenceInput, NcSharedSequenceInputSchema, NcSharedSequenceSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcStateSummaryPreview, type NcStateSummaryPreviewRow, NcStateSummaryPreviewRowSchema, NcStateSummaryPreviewSchema, type NcStateSummaryPreviewSection, NcStateSummaryPreviewSectionSchema, type NcStateSummarySectionId, NcStateSummarySectionIdSchema, type NcStateSummarySplit, NcStateSummarySplitSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventDelivery, type NcSystemEventDeliveryMode, NcSystemEventDeliveryModeSchema, NcSystemEventDeliverySchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTemplateFamily, NcTemplateFamilySchema, type NcTemplateField, NcTemplateFieldSchema, type NcTemplatePreview, type NcTemplatePreviewInput, NcTemplatePreviewInputSchema, NcTemplatePreviewSchema, type NcTemplateVarContext, NcTemplateVarContextSchema, type NcTemplateVarDescriptor, NcTemplateVarDescriptorSchema, type NcTemplateVarGroup, NcTemplateVarGroupSchema, type NcTemplateVarKind, NcTemplateVarKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
96
97
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
@@ -137,7 +138,7 @@ export type { IViewerUiProvider } from './viewer-ui.cap.js';
137
138
  export { viewerUiCapability } from './viewer-ui.cap.js';
138
139
  export { type IWebrtcSessionProvider, WEBRTC_CLIMB_HOLD_CODES, WEBRTC_TRY_BLOCKERS, type WebrtcClientHints, type WebrtcClimbHold, type WebrtcClimbHoldCode, WebrtcClimbHoldSchema, type WebrtcLadderDecision, WebrtcLadderDecisionSchema, type WebrtcSessionDebug, WebrtcSessionDebugSchema, type WebrtcStreamChoice, WebrtcStreamChoiceSchema, type WebrtcStreamTarget, WebrtcStreamTargetSchema, type WebrtcTierFailure, WebrtcTierFailureSchema, type WebrtcTryBlocker, webrtcClientHintsSchema, webrtcSessionCapability, } from './webrtc-session.cap.js';
139
140
  export { type AccessoriesStatus, AccessoriesStatusSchema, accessoriesCapability, type IAccessoriesProvider, } from './accessories.cap.js';
140
- export { AddonAutoUpdateSchema, AddonListItemSchema, AutoUpdateSettingsSchema, addonsCapability, type BulkUpdateItem, type BulkUpdateItemStatus, type BulkUpdatePhase, type BulkUpdateState, CustomActionInputSchema, type IAddonsProvider, InstalledPackageSchema, LogStreamEntrySchema, type PackageInstallation, PackageInstallationSchema, type PackageInstallations, PackageInstallationsSchema, PackageUpdateSchema, PackageVersionInfoSchema, SearchResultSchema, type UninstallNodeOutcome, UninstallNodeOutcomeSchema, type UninstallNodeResult, UninstallNodeResultSchema, type UninstallPackageResult, UninstallPackageResultSchema, } from './addons.cap.js';
141
+ export { AddonAutoUpdateSchema, AddonListItemSchema, AutoUpdateSettingsSchema, addonsCapability, type BulkUpdateItem, type BulkUpdateItemStatus, type BulkUpdatePhase, type BulkUpdateState, CustomActionInputSchema, type IAddonsProvider, InstalledPackageSchema, LogStreamEntrySchema, type AddonSearchResult, type PackageInstallation, PackageInstallationSchema, type PackageInstallations, PackageInstallationsSchema, PackageUpdateSchema, PackageVersionInfoSchema, SearchResultSchema, type UninstallNodeOutcome, UninstallNodeOutcomeSchema, type UninstallNodeResult, UninstallNodeResultSchema, type UninstallPackageResult, UninstallPackageResultSchema, } from './addons.cap.js';
141
142
  export { type AirQualitySensorStatus, AirQualitySensorStatusSchema, airQualitySensorCapability, type IAirQualitySensorProvider, } from './air-quality-sensor.cap.js';
142
143
  export { type AlarmArmMode, AlarmArmModeSchema, type AlarmPanelStatus, AlarmPanelStatusSchema, type AlarmState, AlarmStateSchema, alarmPanelCapability, type IAlarmPanelProvider, } from './alarm-panel.cap.js';
143
144
  export { type AmbientLightSensorStatus, AmbientLightSensorStatusSchema, ambientLightSensorCapability, type IAmbientLightSensorProvider, } from './ambient-light-sensor.cap.js';
@@ -75,6 +75,7 @@ declare const ConnectionEndpointSchema: z.ZodObject<{
75
75
  plausible: z.ZodBoolean;
76
76
  plausibleReason: z.ZodString;
77
77
  priority: z.ZodNumber;
78
+ stable: z.ZodOptional<z.ZodBoolean>;
78
79
  }, z.core.$strip>;
79
80
  /** The port every LAN/loopback `baseUrl` in the same result was built with. */
80
81
  declare const AdvertisedLocalPortSchema: z.ZodObject<{
@@ -183,6 +184,7 @@ declare const HubAddressRowSchema: z.ZodObject<{
183
184
  plausible: z.ZodBoolean;
184
185
  plausibleReason: z.ZodString;
185
186
  priority: z.ZodNumber;
187
+ stable: z.ZodOptional<z.ZodBoolean>;
186
188
  detected: z.ZodBoolean;
187
189
  custom: z.ZodBoolean;
188
190
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -229,6 +231,7 @@ declare const HubAddressBookSchema: z.ZodObject<{
229
231
  plausible: z.ZodBoolean;
230
232
  plausibleReason: z.ZodString;
231
233
  priority: z.ZodNumber;
234
+ stable: z.ZodOptional<z.ZodBoolean>;
232
235
  detected: z.ZodBoolean;
233
236
  custom: z.ZodBoolean;
234
237
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -419,6 +422,7 @@ export declare const localNetworkCapability: {
419
422
  plausible: z.ZodBoolean;
420
423
  plausibleReason: z.ZodString;
421
424
  priority: z.ZodNumber;
425
+ stable: z.ZodOptional<z.ZodBoolean>;
422
426
  }, z.core.$strip>>>;
423
427
  localPort: z.ZodObject<{
424
428
  port: z.ZodNumber;
@@ -525,6 +529,7 @@ export declare const localNetworkCapability: {
525
529
  plausible: z.ZodBoolean;
526
530
  plausibleReason: z.ZodString;
527
531
  priority: z.ZodNumber;
532
+ stable: z.ZodOptional<z.ZodBoolean>;
528
533
  detected: z.ZodBoolean;
529
534
  custom: z.ZodBoolean;
530
535
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -620,6 +625,7 @@ export declare const localNetworkCapability: {
620
625
  plausible: z.ZodBoolean;
621
626
  plausibleReason: z.ZodString;
622
627
  priority: z.ZodNumber;
628
+ stable: z.ZodOptional<z.ZodBoolean>;
623
629
  detected: z.ZodBoolean;
624
630
  custom: z.ZodBoolean;
625
631
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -709,6 +715,7 @@ export declare const localNetworkCapability: {
709
715
  plausible: z.ZodBoolean;
710
716
  plausibleReason: z.ZodString;
711
717
  priority: z.ZodNumber;
718
+ stable: z.ZodOptional<z.ZodBoolean>;
712
719
  detected: z.ZodBoolean;
713
720
  custom: z.ZodBoolean;
714
721
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -813,6 +820,7 @@ export declare const localNetworkCapability: {
813
820
  plausible: z.ZodBoolean;
814
821
  plausibleReason: z.ZodString;
815
822
  priority: z.ZodNumber;
823
+ stable: z.ZodOptional<z.ZodBoolean>;
816
824
  detected: z.ZodBoolean;
817
825
  custom: z.ZodBoolean;
818
826
  flags: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
@@ -60,6 +60,12 @@ export declare const RedirectLoginMethodSchema: z.ZodObject<{
60
60
  "second-factor": "second-factor";
61
61
  }>;
62
62
  linkable: z.ZodOptional<z.ZodBoolean>;
63
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
64
+ kind: z.ZodLiteral<"native">;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ kind: z.ZodLiteral<"browser">;
67
+ startPath: z.ZodString;
68
+ }, z.core.$strip>], "kind">>>;
63
69
  }, z.core.$strip>;
64
70
  /**
65
71
  * A Module-Federation widget the login page mounts for an in-page
@@ -82,6 +88,12 @@ export declare const WidgetLoginMethodSchema: z.ZodObject<{
82
88
  primary: "primary";
83
89
  "second-factor": "second-factor";
84
90
  }>;
91
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
92
+ kind: z.ZodLiteral<"native">;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ kind: z.ZodLiteral<"browser">;
95
+ startPath: z.ZodString;
96
+ }, z.core.$strip>], "kind">>>;
85
97
  }, z.core.$strip>;
86
98
  /**
87
99
  * A declarative WebAuthn ceremony the shell renders natively (no remote
@@ -99,6 +111,12 @@ export declare const PasskeyLoginMethodSchema: z.ZodObject<{
99
111
  }>;
100
112
  rpId: z.ZodString;
101
113
  origin: z.ZodNullable<z.ZodString>;
114
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
115
+ kind: z.ZodLiteral<"native">;
116
+ }, z.core.$strip>, z.ZodObject<{
117
+ kind: z.ZodLiteral<"browser">;
118
+ startPath: z.ZodString;
119
+ }, z.core.$strip>], "kind">>>;
102
120
  }, z.core.$strip>;
103
121
  /** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
104
122
  export declare const LoginMethodContributionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -112,6 +130,12 @@ export declare const LoginMethodContributionSchema: z.ZodDiscriminatedUnion<[z.Z
112
130
  "second-factor": "second-factor";
113
131
  }>;
114
132
  linkable: z.ZodOptional<z.ZodBoolean>;
133
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
134
+ kind: z.ZodLiteral<"native">;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ kind: z.ZodLiteral<"browser">;
137
+ startPath: z.ZodString;
138
+ }, z.core.$strip>], "kind">>>;
115
139
  }, z.core.$strip>, z.ZodObject<{
116
140
  kind: z.ZodLiteral<"widget">;
117
141
  id: z.ZodString;
@@ -126,6 +150,12 @@ export declare const LoginMethodContributionSchema: z.ZodDiscriminatedUnion<[z.Z
126
150
  primary: "primary";
127
151
  "second-factor": "second-factor";
128
152
  }>;
153
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
154
+ kind: z.ZodLiteral<"native">;
155
+ }, z.core.$strip>, z.ZodObject<{
156
+ kind: z.ZodLiteral<"browser">;
157
+ startPath: z.ZodString;
158
+ }, z.core.$strip>], "kind">>>;
129
159
  }, z.core.$strip>, z.ZodObject<{
130
160
  kind: z.ZodLiteral<"passkey">;
131
161
  id: z.ZodString;
@@ -136,6 +166,12 @@ export declare const LoginMethodContributionSchema: z.ZodDiscriminatedUnion<[z.Z
136
166
  }>;
137
167
  rpId: z.ZodString;
138
168
  origin: z.ZodNullable<z.ZodString>;
169
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
170
+ kind: z.ZodLiteral<"native">;
171
+ }, z.core.$strip>, z.ZodObject<{
172
+ kind: z.ZodLiteral<"browser">;
173
+ startPath: z.ZodString;
174
+ }, z.core.$strip>], "kind">>>;
139
175
  }, z.core.$strip>], "kind">;
140
176
  export declare const loginMethodCapability: {
141
177
  readonly name: 'login-method';
@@ -154,6 +190,12 @@ export declare const loginMethodCapability: {
154
190
  "second-factor": "second-factor";
155
191
  }>;
156
192
  linkable: z.ZodOptional<z.ZodBoolean>;
193
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
194
+ kind: z.ZodLiteral<"native">;
195
+ }, z.core.$strip>, z.ZodObject<{
196
+ kind: z.ZodLiteral<"browser">;
197
+ startPath: z.ZodString;
198
+ }, z.core.$strip>], "kind">>>;
157
199
  }, z.core.$strip>, z.ZodObject<{
158
200
  kind: z.ZodLiteral<"widget">;
159
201
  id: z.ZodString;
@@ -168,6 +210,12 @@ export declare const loginMethodCapability: {
168
210
  primary: "primary";
169
211
  "second-factor": "second-factor";
170
212
  }>;
213
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
214
+ kind: z.ZodLiteral<"native">;
215
+ }, z.core.$strip>, z.ZodObject<{
216
+ kind: z.ZodLiteral<"browser">;
217
+ startPath: z.ZodString;
218
+ }, z.core.$strip>], "kind">>>;
171
219
  }, z.core.$strip>, z.ZodObject<{
172
220
  kind: z.ZodLiteral<"passkey">;
173
221
  id: z.ZodString;
@@ -178,6 +226,12 @@ export declare const loginMethodCapability: {
178
226
  }>;
179
227
  rpId: z.ZodString;
180
228
  origin: z.ZodNullable<z.ZodString>;
229
+ app: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
230
+ kind: z.ZodLiteral<"native">;
231
+ }, z.core.$strip>, z.ZodObject<{
232
+ kind: z.ZodLiteral<"browser">;
233
+ startPath: z.ZodString;
234
+ }, z.core.$strip>], "kind">>>;
181
235
  }, z.core.$strip>], "kind">>>, import("./capability-definition.js").CapabilityMethodKind>;
182
236
  };
183
237
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
@@ -8,6 +8,16 @@ declare const NetworkEndpointSchema: z.ZodObject<{
8
8
  http: "http";
9
9
  https: "https";
10
10
  }>;
11
+ stable: z.ZodOptional<z.ZodBoolean>;
12
+ }, z.core.$strip>;
13
+ /**
14
+ * `data` of a `network.tunnel.started` event — what `local-network` (which
15
+ * tails the bus and cannot import a provider) learns about the new address.
16
+ */
17
+ declare const NetworkTunnelStartedDataSchema: z.ZodObject<{
18
+ url: z.ZodString;
19
+ stable: z.ZodOptional<z.ZodBoolean>;
20
+ updated: z.ZodOptional<z.ZodBoolean>;
11
21
  }, z.core.$strip>;
12
22
  declare const NetworkAccessStatusSchema: z.ZodObject<{
13
23
  connected: z.ZodBoolean;
@@ -19,11 +29,13 @@ declare const NetworkAccessStatusSchema: z.ZodObject<{
19
29
  http: "http";
20
30
  https: "https";
21
31
  }>;
32
+ stable: z.ZodOptional<z.ZodBoolean>;
22
33
  }, z.core.$strip>>;
23
34
  error: z.ZodOptional<z.ZodString>;
24
35
  }, z.core.$strip>;
25
36
  export type NetworkAccessStatus = z.infer<typeof NetworkAccessStatusSchema>;
26
37
  export type NetworkEndpoint = z.infer<typeof NetworkEndpointSchema>;
38
+ export type NetworkTunnelStartedData = z.infer<typeof NetworkTunnelStartedDataSchema>;
27
39
  /**
28
40
  * Optional, richer endpoint shape returned by providers that expose
29
41
  * MORE than one ingress concurrently (Tailscale Ingress with mixed
@@ -40,6 +52,7 @@ declare const NetworkEndpointEntrySchema: z.ZodObject<{
40
52
  http: "http";
41
53
  https: "https";
42
54
  }>;
55
+ stable: z.ZodOptional<z.ZodBoolean>;
43
56
  id: z.ZodString;
44
57
  label: z.ZodString;
45
58
  mode: z.ZodOptional<z.ZodString>;
@@ -59,6 +72,7 @@ export declare const networkAccessCapability: {
59
72
  http: "http";
60
73
  https: "https";
61
74
  }>;
75
+ stable: z.ZodOptional<z.ZodBoolean>;
62
76
  }, z.core.$strip>, "mutation">;
63
77
  readonly stop: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodVoid, "mutation">;
64
78
  readonly getEndpoint: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodNullable<z.ZodObject<{
@@ -69,6 +83,7 @@ export declare const networkAccessCapability: {
69
83
  http: "http";
70
84
  https: "https";
71
85
  }>;
86
+ stable: z.ZodOptional<z.ZodBoolean>;
72
87
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
73
88
  readonly getStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
74
89
  connected: z.ZodBoolean;
@@ -80,6 +95,7 @@ export declare const networkAccessCapability: {
80
95
  http: "http";
81
96
  https: "https";
82
97
  }>;
98
+ stable: z.ZodOptional<z.ZodBoolean>;
83
99
  }, z.core.$strip>>;
84
100
  error: z.ZodOptional<z.ZodString>;
85
101
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -96,6 +112,7 @@ export declare const networkAccessCapability: {
96
112
  http: "http";
97
113
  https: "https";
98
114
  }>;
115
+ stable: z.ZodOptional<z.ZodBoolean>;
99
116
  id: z.ZodString;
100
117
  label: z.ZodString;
101
118
  mode: z.ZodOptional<z.ZodString>;
@@ -104,4 +121,4 @@ export declare const networkAccessCapability: {
104
121
  };
105
122
  };
106
123
  export type INetworkAccessProvider = InferProvider<typeof networkAccessCapability>;
107
- export { NetworkEndpointSchema, NetworkAccessStatusSchema, NetworkEndpointEntrySchema };
124
+ export { NetworkEndpointSchema, NetworkTunnelStartedDataSchema, NetworkAccessStatusSchema, NetworkEndpointEntrySchema, };
@@ -79,6 +79,15 @@ declare const SsoBridgeClaimsSchema: z.ZodObject<{
79
79
  linkIntent: z.ZodOptional<z.ZodString>;
80
80
  issuer: z.ZodOptional<z.ZodString>;
81
81
  browserBinding: z.ZodOptional<z.ZodString>;
82
+ app: z.ZodOptional<z.ZodObject<{
83
+ codeChallenge: z.ZodString;
84
+ state: z.ZodString;
85
+ purpose: z.ZodEnum<{
86
+ "new-session": "new-session";
87
+ "step-up": "step-up";
88
+ }>;
89
+ redirect: z.ZodString;
90
+ }, z.core.$strip>>;
82
91
  }, z.core.$strip>;
83
92
  export declare const ssoBridgeCapability: {
84
93
  readonly name: 'sso-bridge';
@@ -166,6 +175,15 @@ export declare const ssoBridgeCapability: {
166
175
  linkIntent: z.ZodOptional<z.ZodString>;
167
176
  issuer: z.ZodOptional<z.ZodString>;
168
177
  browserBinding: z.ZodOptional<z.ZodString>;
178
+ app: z.ZodOptional<z.ZodObject<{
179
+ codeChallenge: z.ZodString;
180
+ state: z.ZodString;
181
+ purpose: z.ZodEnum<{
182
+ "new-session": "new-session";
183
+ "step-up": "step-up";
184
+ }>;
185
+ redirect: z.ZodString;
186
+ }, z.core.$strip>>;
169
187
  }, z.core.$strip>;
170
188
  ttlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
171
189
  }, z.core.$strip>, z.ZodObject<{
@@ -238,6 +256,15 @@ export declare const ssoBridgeCapability: {
238
256
  linkIntent: z.ZodOptional<z.ZodString>;
239
257
  issuer: z.ZodOptional<z.ZodString>;
240
258
  browserBinding: z.ZodOptional<z.ZodString>;
259
+ app: z.ZodOptional<z.ZodObject<{
260
+ codeChallenge: z.ZodString;
261
+ state: z.ZodString;
262
+ purpose: z.ZodEnum<{
263
+ "new-session": "new-session";
264
+ "step-up": "step-up";
265
+ }>;
266
+ redirect: z.ZodString;
267
+ }, z.core.$strip>>;
241
268
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
242
269
  };
243
270
  };
package/dist/client.js CHANGED
@@ -558,6 +558,12 @@ zod.z.object({
558
558
  codec: zod.z.string().optional(),
559
559
  resolution: CamStreamResolutionSchema.optional()
560
560
  });
561
+ zod.z.enum(["new-session", "step-up"]);
562
+ /** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
563
+ var AppLoginPathSchema = zod.z.discriminatedUnion("kind", [zod.z.object({ kind: zod.z.literal("native") }), zod.z.object({
564
+ kind: zod.z.literal("browser"),
565
+ startPath: zod.z.string().startsWith("/")
566
+ })]);
561
567
  //#endregion
562
568
  //#region src/auth/device-certificate.ts
563
569
  /**
@@ -790,7 +796,9 @@ zod.z.object({
790
796
  signature: zod.z.literal(DEVICE_CERT_SIGNATURE),
791
797
  messageVersion: zod.z.literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
792
798
  /** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
793
- clients: zod.z.array(zod.z.enum(["native", "web"]))
799
+ clients: zod.z.array(zod.z.enum(["native", "web"])),
800
+ /** The app executes it itself, silently (D858). */
801
+ app: AppLoginPathSchema.nullable()
794
802
  });
795
803
  //#endregion
796
804
  //#region src/catalogs/sensor-active-state.ts
package/dist/client.mjs CHANGED
@@ -557,6 +557,12 @@ z.object({
557
557
  codec: z.string().optional(),
558
558
  resolution: CamStreamResolutionSchema.optional()
559
559
  });
560
+ z.enum(["new-session", "step-up"]);
561
+ /** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
562
+ var AppLoginPathSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("native") }), z.object({
563
+ kind: z.literal("browser"),
564
+ startPath: z.string().startsWith("/")
565
+ })]);
560
566
  //#endregion
561
567
  //#region src/auth/device-certificate.ts
562
568
  /**
@@ -789,7 +795,9 @@ z.object({
789
795
  signature: z.literal(DEVICE_CERT_SIGNATURE),
790
796
  messageVersion: z.literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
791
797
  /** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
792
- clients: z.array(z.enum(["native", "web"]))
798
+ clients: z.array(z.enum(["native", "web"])),
799
+ /** The app executes it itself, silently (D858). */
800
+ app: AppLoginPathSchema.nullable()
793
801
  });
794
802
  //#endregion
795
803
  //#region src/catalogs/sensor-active-state.ts