@truenas/api-client 3.0.5 → 3.0.7
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/index.cjs +167 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +88 -2
- package/dist/index.d.ts +88 -2
- package/dist/index.js +168 -48
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -12476,6 +12476,14 @@ interface ActiveConnection {
|
|
|
12476
12476
|
}
|
|
12477
12477
|
interface ConnectionError extends Error {
|
|
12478
12478
|
hostname?: string;
|
|
12479
|
+
/** The WebSocket close code, when the failure came from a close rather than a timeout. */
|
|
12480
|
+
closeCode?: number;
|
|
12481
|
+
/**
|
|
12482
|
+
* The server's own reason text, verbatim. `message` is this client's rendering
|
|
12483
|
+
* of the code and loses what the appliance actually said — for a policy close
|
|
12484
|
+
* that is the difference between "policy violation" and which policy.
|
|
12485
|
+
*/
|
|
12486
|
+
closeReason?: string;
|
|
12479
12487
|
}
|
|
12480
12488
|
type Connection = ActiveConnection & {
|
|
12481
12489
|
state: 'active';
|
|
@@ -12568,6 +12576,11 @@ declare class TrueNasConnection {
|
|
|
12568
12576
|
/**
|
|
12569
12577
|
* enables or disables the connection gate. the app calls this when its `SystemState`
|
|
12570
12578
|
* changes (mapping `SystemState.Active -> true`, everything else -> `false`).
|
|
12579
|
+
*
|
|
12580
|
+
* This is also how a caller asks for another attempt after the appliance has
|
|
12581
|
+
* refused the client — nothing reconnects on its own from there. The gate is
|
|
12582
|
+
* `distinctUntilChanged`, so re-asserting `true` while it is already `true`
|
|
12583
|
+
* does nothing: the round trip through `false` is what asks again.
|
|
12571
12584
|
*/
|
|
12572
12585
|
setEnabled(enabled: boolean): void;
|
|
12573
12586
|
/**
|
|
@@ -12851,6 +12864,20 @@ interface ApiKeyCreate {
|
|
|
12851
12864
|
declare enum UserRole {
|
|
12852
12865
|
FullAdmin = "FULL_ADMIN"
|
|
12853
12866
|
}
|
|
12867
|
+
/**
|
|
12868
|
+
* A role as middleware reports it.
|
|
12869
|
+
*
|
|
12870
|
+
* `UserRole` names only the role this client itself had a use for. Middleware
|
|
12871
|
+
* defines many more — `SHARING_ADMIN`, `READONLY_ADMIN` and so on — and this
|
|
12872
|
+
* client does not enumerate them, because it no longer makes any decision from
|
|
12873
|
+
* a role and would only be maintaining a second copy of someone else's list.
|
|
12874
|
+
*
|
|
12875
|
+
* Widened to `string` so a consumer can compare against the roles it cares
|
|
12876
|
+
* about without a cast, while `UserRole` still autocompletes. Consumers are
|
|
12877
|
+
* where role policy lives now, so the type they are handed has to admit the
|
|
12878
|
+
* roles they will actually test for.
|
|
12879
|
+
*/
|
|
12880
|
+
type UserRoleName = UserRole | (string & {});
|
|
12854
12881
|
|
|
12855
12882
|
interface UserPreferences {
|
|
12856
12883
|
language: string;
|
|
@@ -12896,7 +12923,7 @@ interface AuthResponse {
|
|
|
12896
12923
|
groups: number[];
|
|
12897
12924
|
privilege: {
|
|
12898
12925
|
roles: {
|
|
12899
|
-
$set:
|
|
12926
|
+
$set: UserRoleName[];
|
|
12900
12927
|
};
|
|
12901
12928
|
};
|
|
12902
12929
|
two_factor_auth_configured: boolean;
|
|
@@ -12935,6 +12962,13 @@ interface AuthResponse {
|
|
|
12935
12962
|
* TrueNAS authenticator using the JSON-RPC 2.0 protocol.
|
|
12936
12963
|
*
|
|
12937
12964
|
* It handles authentication using the JSON-RPC 2.0 message format.
|
|
12965
|
+
*
|
|
12966
|
+
* Authentication only: any credential middleware accepts logs in here, whatever
|
|
12967
|
+
* roles it carries. No path checks privilege, and that is the design — the
|
|
12968
|
+
* appliance authorizes every privileged call on its own, and which roles a given
|
|
12969
|
+
* product requires is that product's policy, not this client's. Consumers who
|
|
12970
|
+
* need one read `user_info.privilege.roles` off the response and enforce it
|
|
12971
|
+
* themselves; embedding a rule here would impose it on every consumer at once.
|
|
12938
12972
|
*/
|
|
12939
12973
|
declare class TrueNasAuthenticator {
|
|
12940
12974
|
private connection;
|
|
@@ -12958,6 +12992,38 @@ declare class TrueNasAuthenticator {
|
|
|
12958
12992
|
key: string;
|
|
12959
12993
|
};
|
|
12960
12994
|
sessionLifetime: number;
|
|
12995
|
+
/**
|
|
12996
|
+
* Claimed by each login when it sends and checked when its answer lands: a
|
|
12997
|
+
* difference means another login or a logout was issued in between, so this
|
|
12998
|
+
* answer is stale and must not write session state. Responses on one socket
|
|
12999
|
+
* are not ordered, which is why arrival is not enough to make an answer
|
|
13000
|
+
* current.
|
|
13001
|
+
*
|
|
13002
|
+
* `logout()` bumps it without claiming one. It has no answer to guard —
|
|
13003
|
+
* it settles its own state at the call — and bumping is what invalidates the
|
|
13004
|
+
* logins already on the wire that a logout is meant to override.
|
|
13005
|
+
*/
|
|
13006
|
+
private authEpoch;
|
|
13007
|
+
/**
|
|
13008
|
+
* Caller-issued logins still awaiting an answer, keyed by the epoch each
|
|
13009
|
+
* claimed. The value is whether its frame has been written to a socket yet.
|
|
13010
|
+
*
|
|
13011
|
+
* The auto-relogin below defers while any entry exists. It is this class
|
|
13012
|
+
* retrying a cached credential, not a request anyone made, so it must never
|
|
13013
|
+
* outrank an explicit login — and it would: `TrueNasConnection.send` holds a
|
|
13014
|
+
* frame through an outage rather than dropping it, so a login submitted while
|
|
13015
|
+
* the socket is down is still pending when `opened` fires, and a relogin
|
|
13016
|
+
* claiming the newer epoch has that login answered `LoginSuperseded` while the
|
|
13017
|
+
* client authenticates as the previously cached account.
|
|
13018
|
+
*
|
|
13019
|
+
* Keyed rather than counted, because a count cannot say *which* login a
|
|
13020
|
+
* removal belongs to: a login torn down by its caller would retire a slot
|
|
13021
|
+
* belonging to a different login that is still waiting, and the retry would
|
|
13022
|
+
* overtake it again. Identity also makes a double-subscribed login harmless.
|
|
13023
|
+
*/
|
|
13024
|
+
private liveCallerLogins;
|
|
13025
|
+
/** True only while the constructor's relogin is being constructed. */
|
|
13026
|
+
private reloginInProgress;
|
|
12961
13027
|
constructor(connection: TrueNasConnection, version?: ApiVersion | undefined);
|
|
12962
13028
|
/**
|
|
12963
13029
|
* `login_options` asking for a reconnect token, when the server understands it.
|
|
@@ -12979,6 +13045,14 @@ declare class TrueNasAuthenticator {
|
|
|
12979
13045
|
* reconnect case the feature is named for.
|
|
12980
13046
|
*/
|
|
12981
13047
|
private reconnectTokenOption;
|
|
13048
|
+
/**
|
|
13049
|
+
* Throws when another login or a logout was issued after this one was sent,
|
|
13050
|
+
* so a stale answer cannot be reported to its caller as a successful login.
|
|
13051
|
+
*/
|
|
13052
|
+
private assertNotSuperseded;
|
|
13053
|
+
/** Claim the next epoch for a login, and record it if a caller asked for it. */
|
|
13054
|
+
private beginLogin;
|
|
13055
|
+
private endLogin;
|
|
12982
13056
|
loginWithUserPass(username: string, password: string): rxjs.Observable<AuthResponse>;
|
|
12983
13057
|
loginWithOtp(code: string): rxjs.Observable<AuthResponse>;
|
|
12984
13058
|
/**
|
|
@@ -28108,6 +28182,18 @@ declare enum AuthErrorCode {
|
|
|
28108
28182
|
OtpAuthFailed = "OTP_AUTH_FAILED",
|
|
28109
28183
|
ApiKeyAuthFailed = "API_KEY_AUTH_FAILED",
|
|
28110
28184
|
TokenAuthFailed = "TOKEN_AUTH_FAILED",
|
|
28185
|
+
/**
|
|
28186
|
+
* A login was overtaken by a logout, or by a later login, while its response
|
|
28187
|
+
* was in flight. The server may well have accepted it; this client discarded
|
|
28188
|
+
* the result rather than authenticate a session the caller had moved on from.
|
|
28189
|
+
*/
|
|
28190
|
+
LoginSuperseded = "LOGIN_SUPERSEDED",
|
|
28191
|
+
/**
|
|
28192
|
+
* @deprecated Nothing throws this. The authenticator no longer refuses a
|
|
28193
|
+
* login for want of a role — see `TrueNasAuthenticator`. Kept so consumers
|
|
28194
|
+
* still narrowing on the code keep compiling; removing it would be a breaking
|
|
28195
|
+
* change for a member that can no longer occur.
|
|
28196
|
+
*/
|
|
28111
28197
|
FullAdminRequired = "FULL_ADMIN_REQUIRED"
|
|
28112
28198
|
}
|
|
28113
28199
|
declare class AuthError extends Error {
|
|
@@ -28168,4 +28254,4 @@ type ApiError = JsonRpcError | TrueNasError;
|
|
|
28168
28254
|
*/
|
|
28169
28255
|
declare function getApiErrorMessage(error: unknown, fallback?: string): string;
|
|
28170
28256
|
|
|
28171
|
-
export { type ApiCallDirectory$7 as ApiCallDirectoryV25_10_0, type ApiCallDirectory$6 as ApiCallDirectoryV25_10_1, type ApiCallDirectory$5 as ApiCallDirectoryV25_10_2, type ApiCallDirectory$4 as ApiCallDirectoryV25_10_3, type ApiCallDirectory$3 as ApiCallDirectoryV25_10_4, type ApiCallDirectory$2 as ApiCallDirectoryV25_10_5, type ApiCallDirectory$1 as ApiCallDirectoryV26_0_0, type ApiCallDirectory as ApiCallDirectoryV27_0_0, type ApiDirectoryByVersion, type ApiDirectoryShape, type ApiDirectory$7 as ApiDirectoryV25_10_0, type ApiDirectory$6 as ApiDirectoryV25_10_1, type ApiDirectory$5 as ApiDirectoryV25_10_2, type ApiDirectory$4 as ApiDirectoryV25_10_3, type ApiDirectory$3 as ApiDirectoryV25_10_4, type ApiDirectory$2 as ApiDirectoryV25_10_5, type ApiDirectory$1 as ApiDirectoryV26_0_0, type ApiDirectory as ApiDirectoryV27_0_0, type ApiError, type ApiEventDirectory$7 as ApiEventDirectoryV25_10_0, type ApiEventDirectory$6 as ApiEventDirectoryV25_10_1, type ApiEventDirectory$5 as ApiEventDirectoryV25_10_2, type ApiEventDirectory$4 as ApiEventDirectoryV25_10_3, type ApiEventDirectory$3 as ApiEventDirectoryV25_10_4, type ApiEventDirectory$2 as ApiEventDirectoryV25_10_5, type ApiEventDirectory$1 as ApiEventDirectoryV26_0_0, type ApiEventDirectory as ApiEventDirectoryV27_0_0, type ApiJobDirectory$7 as ApiJobDirectoryV25_10_0, type ApiJobDirectory$6 as ApiJobDirectoryV25_10_1, type ApiJobDirectory$5 as ApiJobDirectoryV25_10_2, type ApiJobDirectory$4 as ApiJobDirectoryV25_10_3, type ApiJobDirectory$3 as ApiJobDirectoryV25_10_4, type ApiJobDirectory$2 as ApiJobDirectoryV25_10_5, type ApiJobDirectory$1 as ApiJobDirectoryV26_0_0, type ApiJobDirectory as ApiJobDirectoryV27_0_0, type ApiKeyCreate, type ApiVersion, type ApiVersionResponse, AppState, type ApplianceProtocol, type ArgsOf, AuthError, AuthErrorCode, type AuthResponse, type BaseApiDirectory, type CallMethod, type CallParams, type CallResponse, type Container, type CreateClientOptions, type DefaultApiDirectory, type EventKind, type EventName, type EventUnion, InvalidVersionResponseError, type Job, type JobMethod, type JobParams, type JobProgress, type JobResult, JobState, type Logger, NoCompatibleVersionsError, type OperationMappings, type QueryDirectory, type QueryEntity, type QueryListOptions, type QueryMethod, type QuerySingleOptions, SUPPORTED_API_VERSIONS, type SupportedApiVersion, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV26, TrueNasApiClientV27, TrueNasAuthMechanism, type TrueNasDate, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, index$7 as v25_10_0, index$6 as v25_10_1, index$5 as v25_10_2, index$4 as v25_10_3, index$3 as v25_10_4, index$2 as v25_10_5, index$1 as v26_0_0, index as v27_0_0 };
|
|
28257
|
+
export { type ApiCallDirectory$7 as ApiCallDirectoryV25_10_0, type ApiCallDirectory$6 as ApiCallDirectoryV25_10_1, type ApiCallDirectory$5 as ApiCallDirectoryV25_10_2, type ApiCallDirectory$4 as ApiCallDirectoryV25_10_3, type ApiCallDirectory$3 as ApiCallDirectoryV25_10_4, type ApiCallDirectory$2 as ApiCallDirectoryV25_10_5, type ApiCallDirectory$1 as ApiCallDirectoryV26_0_0, type ApiCallDirectory as ApiCallDirectoryV27_0_0, type ApiDirectoryByVersion, type ApiDirectoryShape, type ApiDirectory$7 as ApiDirectoryV25_10_0, type ApiDirectory$6 as ApiDirectoryV25_10_1, type ApiDirectory$5 as ApiDirectoryV25_10_2, type ApiDirectory$4 as ApiDirectoryV25_10_3, type ApiDirectory$3 as ApiDirectoryV25_10_4, type ApiDirectory$2 as ApiDirectoryV25_10_5, type ApiDirectory$1 as ApiDirectoryV26_0_0, type ApiDirectory as ApiDirectoryV27_0_0, type ApiError, type ApiEventDirectory$7 as ApiEventDirectoryV25_10_0, type ApiEventDirectory$6 as ApiEventDirectoryV25_10_1, type ApiEventDirectory$5 as ApiEventDirectoryV25_10_2, type ApiEventDirectory$4 as ApiEventDirectoryV25_10_3, type ApiEventDirectory$3 as ApiEventDirectoryV25_10_4, type ApiEventDirectory$2 as ApiEventDirectoryV25_10_5, type ApiEventDirectory$1 as ApiEventDirectoryV26_0_0, type ApiEventDirectory as ApiEventDirectoryV27_0_0, type ApiJobDirectory$7 as ApiJobDirectoryV25_10_0, type ApiJobDirectory$6 as ApiJobDirectoryV25_10_1, type ApiJobDirectory$5 as ApiJobDirectoryV25_10_2, type ApiJobDirectory$4 as ApiJobDirectoryV25_10_3, type ApiJobDirectory$3 as ApiJobDirectoryV25_10_4, type ApiJobDirectory$2 as ApiJobDirectoryV25_10_5, type ApiJobDirectory$1 as ApiJobDirectoryV26_0_0, type ApiJobDirectory as ApiJobDirectoryV27_0_0, type ApiKeyCreate, type ApiVersion, type ApiVersionResponse, AppState, type ApplianceProtocol, type ArgsOf, AuthError, AuthErrorCode, type AuthResponse, type BaseApiDirectory, type CallMethod, type CallParams, type CallResponse, type Container, type CreateClientOptions, type DefaultApiDirectory, type EventKind, type EventName, type EventUnion, InvalidVersionResponseError, type Job, type JobMethod, type JobParams, type JobProgress, type JobResult, JobState, type Logger, NoCompatibleVersionsError, type OperationMappings, type QueryDirectory, type QueryEntity, type QueryListOptions, type QueryMethod, type QuerySingleOptions, SUPPORTED_API_VERSIONS, type SupportedApiVersion, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV26, TrueNasApiClientV27, TrueNasAuthMechanism, type TrueNasDate, UserRole, type UserRoleName, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, index$7 as v25_10_0, index$6 as v25_10_1, index$5 as v25_10_2, index$4 as v25_10_3, index$3 as v25_10_4, index$2 as v25_10_5, index$1 as v26_0_0, index as v27_0_0 };
|
package/dist/index.d.ts
CHANGED
|
@@ -12476,6 +12476,14 @@ interface ActiveConnection {
|
|
|
12476
12476
|
}
|
|
12477
12477
|
interface ConnectionError extends Error {
|
|
12478
12478
|
hostname?: string;
|
|
12479
|
+
/** The WebSocket close code, when the failure came from a close rather than a timeout. */
|
|
12480
|
+
closeCode?: number;
|
|
12481
|
+
/**
|
|
12482
|
+
* The server's own reason text, verbatim. `message` is this client's rendering
|
|
12483
|
+
* of the code and loses what the appliance actually said — for a policy close
|
|
12484
|
+
* that is the difference between "policy violation" and which policy.
|
|
12485
|
+
*/
|
|
12486
|
+
closeReason?: string;
|
|
12479
12487
|
}
|
|
12480
12488
|
type Connection = ActiveConnection & {
|
|
12481
12489
|
state: 'active';
|
|
@@ -12568,6 +12576,11 @@ declare class TrueNasConnection {
|
|
|
12568
12576
|
/**
|
|
12569
12577
|
* enables or disables the connection gate. the app calls this when its `SystemState`
|
|
12570
12578
|
* changes (mapping `SystemState.Active -> true`, everything else -> `false`).
|
|
12579
|
+
*
|
|
12580
|
+
* This is also how a caller asks for another attempt after the appliance has
|
|
12581
|
+
* refused the client — nothing reconnects on its own from there. The gate is
|
|
12582
|
+
* `distinctUntilChanged`, so re-asserting `true` while it is already `true`
|
|
12583
|
+
* does nothing: the round trip through `false` is what asks again.
|
|
12571
12584
|
*/
|
|
12572
12585
|
setEnabled(enabled: boolean): void;
|
|
12573
12586
|
/**
|
|
@@ -12851,6 +12864,20 @@ interface ApiKeyCreate {
|
|
|
12851
12864
|
declare enum UserRole {
|
|
12852
12865
|
FullAdmin = "FULL_ADMIN"
|
|
12853
12866
|
}
|
|
12867
|
+
/**
|
|
12868
|
+
* A role as middleware reports it.
|
|
12869
|
+
*
|
|
12870
|
+
* `UserRole` names only the role this client itself had a use for. Middleware
|
|
12871
|
+
* defines many more — `SHARING_ADMIN`, `READONLY_ADMIN` and so on — and this
|
|
12872
|
+
* client does not enumerate them, because it no longer makes any decision from
|
|
12873
|
+
* a role and would only be maintaining a second copy of someone else's list.
|
|
12874
|
+
*
|
|
12875
|
+
* Widened to `string` so a consumer can compare against the roles it cares
|
|
12876
|
+
* about without a cast, while `UserRole` still autocompletes. Consumers are
|
|
12877
|
+
* where role policy lives now, so the type they are handed has to admit the
|
|
12878
|
+
* roles they will actually test for.
|
|
12879
|
+
*/
|
|
12880
|
+
type UserRoleName = UserRole | (string & {});
|
|
12854
12881
|
|
|
12855
12882
|
interface UserPreferences {
|
|
12856
12883
|
language: string;
|
|
@@ -12896,7 +12923,7 @@ interface AuthResponse {
|
|
|
12896
12923
|
groups: number[];
|
|
12897
12924
|
privilege: {
|
|
12898
12925
|
roles: {
|
|
12899
|
-
$set:
|
|
12926
|
+
$set: UserRoleName[];
|
|
12900
12927
|
};
|
|
12901
12928
|
};
|
|
12902
12929
|
two_factor_auth_configured: boolean;
|
|
@@ -12935,6 +12962,13 @@ interface AuthResponse {
|
|
|
12935
12962
|
* TrueNAS authenticator using the JSON-RPC 2.0 protocol.
|
|
12936
12963
|
*
|
|
12937
12964
|
* It handles authentication using the JSON-RPC 2.0 message format.
|
|
12965
|
+
*
|
|
12966
|
+
* Authentication only: any credential middleware accepts logs in here, whatever
|
|
12967
|
+
* roles it carries. No path checks privilege, and that is the design — the
|
|
12968
|
+
* appliance authorizes every privileged call on its own, and which roles a given
|
|
12969
|
+
* product requires is that product's policy, not this client's. Consumers who
|
|
12970
|
+
* need one read `user_info.privilege.roles` off the response and enforce it
|
|
12971
|
+
* themselves; embedding a rule here would impose it on every consumer at once.
|
|
12938
12972
|
*/
|
|
12939
12973
|
declare class TrueNasAuthenticator {
|
|
12940
12974
|
private connection;
|
|
@@ -12958,6 +12992,38 @@ declare class TrueNasAuthenticator {
|
|
|
12958
12992
|
key: string;
|
|
12959
12993
|
};
|
|
12960
12994
|
sessionLifetime: number;
|
|
12995
|
+
/**
|
|
12996
|
+
* Claimed by each login when it sends and checked when its answer lands: a
|
|
12997
|
+
* difference means another login or a logout was issued in between, so this
|
|
12998
|
+
* answer is stale and must not write session state. Responses on one socket
|
|
12999
|
+
* are not ordered, which is why arrival is not enough to make an answer
|
|
13000
|
+
* current.
|
|
13001
|
+
*
|
|
13002
|
+
* `logout()` bumps it without claiming one. It has no answer to guard —
|
|
13003
|
+
* it settles its own state at the call — and bumping is what invalidates the
|
|
13004
|
+
* logins already on the wire that a logout is meant to override.
|
|
13005
|
+
*/
|
|
13006
|
+
private authEpoch;
|
|
13007
|
+
/**
|
|
13008
|
+
* Caller-issued logins still awaiting an answer, keyed by the epoch each
|
|
13009
|
+
* claimed. The value is whether its frame has been written to a socket yet.
|
|
13010
|
+
*
|
|
13011
|
+
* The auto-relogin below defers while any entry exists. It is this class
|
|
13012
|
+
* retrying a cached credential, not a request anyone made, so it must never
|
|
13013
|
+
* outrank an explicit login — and it would: `TrueNasConnection.send` holds a
|
|
13014
|
+
* frame through an outage rather than dropping it, so a login submitted while
|
|
13015
|
+
* the socket is down is still pending when `opened` fires, and a relogin
|
|
13016
|
+
* claiming the newer epoch has that login answered `LoginSuperseded` while the
|
|
13017
|
+
* client authenticates as the previously cached account.
|
|
13018
|
+
*
|
|
13019
|
+
* Keyed rather than counted, because a count cannot say *which* login a
|
|
13020
|
+
* removal belongs to: a login torn down by its caller would retire a slot
|
|
13021
|
+
* belonging to a different login that is still waiting, and the retry would
|
|
13022
|
+
* overtake it again. Identity also makes a double-subscribed login harmless.
|
|
13023
|
+
*/
|
|
13024
|
+
private liveCallerLogins;
|
|
13025
|
+
/** True only while the constructor's relogin is being constructed. */
|
|
13026
|
+
private reloginInProgress;
|
|
12961
13027
|
constructor(connection: TrueNasConnection, version?: ApiVersion | undefined);
|
|
12962
13028
|
/**
|
|
12963
13029
|
* `login_options` asking for a reconnect token, when the server understands it.
|
|
@@ -12979,6 +13045,14 @@ declare class TrueNasAuthenticator {
|
|
|
12979
13045
|
* reconnect case the feature is named for.
|
|
12980
13046
|
*/
|
|
12981
13047
|
private reconnectTokenOption;
|
|
13048
|
+
/**
|
|
13049
|
+
* Throws when another login or a logout was issued after this one was sent,
|
|
13050
|
+
* so a stale answer cannot be reported to its caller as a successful login.
|
|
13051
|
+
*/
|
|
13052
|
+
private assertNotSuperseded;
|
|
13053
|
+
/** Claim the next epoch for a login, and record it if a caller asked for it. */
|
|
13054
|
+
private beginLogin;
|
|
13055
|
+
private endLogin;
|
|
12982
13056
|
loginWithUserPass(username: string, password: string): rxjs.Observable<AuthResponse>;
|
|
12983
13057
|
loginWithOtp(code: string): rxjs.Observable<AuthResponse>;
|
|
12984
13058
|
/**
|
|
@@ -28108,6 +28182,18 @@ declare enum AuthErrorCode {
|
|
|
28108
28182
|
OtpAuthFailed = "OTP_AUTH_FAILED",
|
|
28109
28183
|
ApiKeyAuthFailed = "API_KEY_AUTH_FAILED",
|
|
28110
28184
|
TokenAuthFailed = "TOKEN_AUTH_FAILED",
|
|
28185
|
+
/**
|
|
28186
|
+
* A login was overtaken by a logout, or by a later login, while its response
|
|
28187
|
+
* was in flight. The server may well have accepted it; this client discarded
|
|
28188
|
+
* the result rather than authenticate a session the caller had moved on from.
|
|
28189
|
+
*/
|
|
28190
|
+
LoginSuperseded = "LOGIN_SUPERSEDED",
|
|
28191
|
+
/**
|
|
28192
|
+
* @deprecated Nothing throws this. The authenticator no longer refuses a
|
|
28193
|
+
* login for want of a role — see `TrueNasAuthenticator`. Kept so consumers
|
|
28194
|
+
* still narrowing on the code keep compiling; removing it would be a breaking
|
|
28195
|
+
* change for a member that can no longer occur.
|
|
28196
|
+
*/
|
|
28111
28197
|
FullAdminRequired = "FULL_ADMIN_REQUIRED"
|
|
28112
28198
|
}
|
|
28113
28199
|
declare class AuthError extends Error {
|
|
@@ -28168,4 +28254,4 @@ type ApiError = JsonRpcError | TrueNasError;
|
|
|
28168
28254
|
*/
|
|
28169
28255
|
declare function getApiErrorMessage(error: unknown, fallback?: string): string;
|
|
28170
28256
|
|
|
28171
|
-
export { type ApiCallDirectory$7 as ApiCallDirectoryV25_10_0, type ApiCallDirectory$6 as ApiCallDirectoryV25_10_1, type ApiCallDirectory$5 as ApiCallDirectoryV25_10_2, type ApiCallDirectory$4 as ApiCallDirectoryV25_10_3, type ApiCallDirectory$3 as ApiCallDirectoryV25_10_4, type ApiCallDirectory$2 as ApiCallDirectoryV25_10_5, type ApiCallDirectory$1 as ApiCallDirectoryV26_0_0, type ApiCallDirectory as ApiCallDirectoryV27_0_0, type ApiDirectoryByVersion, type ApiDirectoryShape, type ApiDirectory$7 as ApiDirectoryV25_10_0, type ApiDirectory$6 as ApiDirectoryV25_10_1, type ApiDirectory$5 as ApiDirectoryV25_10_2, type ApiDirectory$4 as ApiDirectoryV25_10_3, type ApiDirectory$3 as ApiDirectoryV25_10_4, type ApiDirectory$2 as ApiDirectoryV25_10_5, type ApiDirectory$1 as ApiDirectoryV26_0_0, type ApiDirectory as ApiDirectoryV27_0_0, type ApiError, type ApiEventDirectory$7 as ApiEventDirectoryV25_10_0, type ApiEventDirectory$6 as ApiEventDirectoryV25_10_1, type ApiEventDirectory$5 as ApiEventDirectoryV25_10_2, type ApiEventDirectory$4 as ApiEventDirectoryV25_10_3, type ApiEventDirectory$3 as ApiEventDirectoryV25_10_4, type ApiEventDirectory$2 as ApiEventDirectoryV25_10_5, type ApiEventDirectory$1 as ApiEventDirectoryV26_0_0, type ApiEventDirectory as ApiEventDirectoryV27_0_0, type ApiJobDirectory$7 as ApiJobDirectoryV25_10_0, type ApiJobDirectory$6 as ApiJobDirectoryV25_10_1, type ApiJobDirectory$5 as ApiJobDirectoryV25_10_2, type ApiJobDirectory$4 as ApiJobDirectoryV25_10_3, type ApiJobDirectory$3 as ApiJobDirectoryV25_10_4, type ApiJobDirectory$2 as ApiJobDirectoryV25_10_5, type ApiJobDirectory$1 as ApiJobDirectoryV26_0_0, type ApiJobDirectory as ApiJobDirectoryV27_0_0, type ApiKeyCreate, type ApiVersion, type ApiVersionResponse, AppState, type ApplianceProtocol, type ArgsOf, AuthError, AuthErrorCode, type AuthResponse, type BaseApiDirectory, type CallMethod, type CallParams, type CallResponse, type Container, type CreateClientOptions, type DefaultApiDirectory, type EventKind, type EventName, type EventUnion, InvalidVersionResponseError, type Job, type JobMethod, type JobParams, type JobProgress, type JobResult, JobState, type Logger, NoCompatibleVersionsError, type OperationMappings, type QueryDirectory, type QueryEntity, type QueryListOptions, type QueryMethod, type QuerySingleOptions, SUPPORTED_API_VERSIONS, type SupportedApiVersion, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV26, TrueNasApiClientV27, TrueNasAuthMechanism, type TrueNasDate, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, index$7 as v25_10_0, index$6 as v25_10_1, index$5 as v25_10_2, index$4 as v25_10_3, index$3 as v25_10_4, index$2 as v25_10_5, index$1 as v26_0_0, index as v27_0_0 };
|
|
28257
|
+
export { type ApiCallDirectory$7 as ApiCallDirectoryV25_10_0, type ApiCallDirectory$6 as ApiCallDirectoryV25_10_1, type ApiCallDirectory$5 as ApiCallDirectoryV25_10_2, type ApiCallDirectory$4 as ApiCallDirectoryV25_10_3, type ApiCallDirectory$3 as ApiCallDirectoryV25_10_4, type ApiCallDirectory$2 as ApiCallDirectoryV25_10_5, type ApiCallDirectory$1 as ApiCallDirectoryV26_0_0, type ApiCallDirectory as ApiCallDirectoryV27_0_0, type ApiDirectoryByVersion, type ApiDirectoryShape, type ApiDirectory$7 as ApiDirectoryV25_10_0, type ApiDirectory$6 as ApiDirectoryV25_10_1, type ApiDirectory$5 as ApiDirectoryV25_10_2, type ApiDirectory$4 as ApiDirectoryV25_10_3, type ApiDirectory$3 as ApiDirectoryV25_10_4, type ApiDirectory$2 as ApiDirectoryV25_10_5, type ApiDirectory$1 as ApiDirectoryV26_0_0, type ApiDirectory as ApiDirectoryV27_0_0, type ApiError, type ApiEventDirectory$7 as ApiEventDirectoryV25_10_0, type ApiEventDirectory$6 as ApiEventDirectoryV25_10_1, type ApiEventDirectory$5 as ApiEventDirectoryV25_10_2, type ApiEventDirectory$4 as ApiEventDirectoryV25_10_3, type ApiEventDirectory$3 as ApiEventDirectoryV25_10_4, type ApiEventDirectory$2 as ApiEventDirectoryV25_10_5, type ApiEventDirectory$1 as ApiEventDirectoryV26_0_0, type ApiEventDirectory as ApiEventDirectoryV27_0_0, type ApiJobDirectory$7 as ApiJobDirectoryV25_10_0, type ApiJobDirectory$6 as ApiJobDirectoryV25_10_1, type ApiJobDirectory$5 as ApiJobDirectoryV25_10_2, type ApiJobDirectory$4 as ApiJobDirectoryV25_10_3, type ApiJobDirectory$3 as ApiJobDirectoryV25_10_4, type ApiJobDirectory$2 as ApiJobDirectoryV25_10_5, type ApiJobDirectory$1 as ApiJobDirectoryV26_0_0, type ApiJobDirectory as ApiJobDirectoryV27_0_0, type ApiKeyCreate, type ApiVersion, type ApiVersionResponse, AppState, type ApplianceProtocol, type ArgsOf, AuthError, AuthErrorCode, type AuthResponse, type BaseApiDirectory, type CallMethod, type CallParams, type CallResponse, type Container, type CreateClientOptions, type DefaultApiDirectory, type EventKind, type EventName, type EventUnion, InvalidVersionResponseError, type Job, type JobMethod, type JobParams, type JobProgress, type JobResult, JobState, type Logger, NoCompatibleVersionsError, type OperationMappings, type QueryDirectory, type QueryEntity, type QueryListOptions, type QueryMethod, type QuerySingleOptions, SUPPORTED_API_VERSIONS, type SupportedApiVersion, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV26, TrueNasApiClientV27, TrueNasAuthMechanism, type TrueNasDate, UserRole, type UserRoleName, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, index$7 as v25_10_0, index$6 as v25_10_1, index$5 as v25_10_2, index$4 as v25_10_3, index$3 as v25_10_4, index$2 as v25_10_5, index$1 as v26_0_0, index as v27_0_0 };
|