@truenas/api-client 9.0.6 → 11.0.0
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/README.md +16 -0
- package/dist/{chunk-UOTSHE2J.cjs → chunk-MQAS7GKB.cjs} +64 -8
- package/dist/chunk-MQAS7GKB.cjs.map +1 -0
- package/dist/{chunk-R4VP3HBB.js → chunk-ZH75OPDH.js} +64 -8
- package/dist/chunk-ZH75OPDH.js.map +1 -0
- package/dist/index.cjs +37 -37
- package/dist/index.d.cts +30 -7
- package/dist/index.d.ts +30 -7
- package/dist/index.js +1 -1
- package/dist/testing/index.cjs +13 -13
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +2 -2
- package/dist/{truenas-auth-mechanism.enum-CtU2b15s.d.cts → truenas-auth-mechanism.enum-B0j9EN8G.d.cts} +1429 -425
- package/dist/{truenas-auth-mechanism.enum-CtU2b15s.d.ts → truenas-auth-mechanism.enum-B0j9EN8G.d.ts} +1429 -425
- package/package.json +1 -1
- package/dist/chunk-R4VP3HBB.js.map +0 -1
- package/dist/chunk-UOTSHE2J.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,152 +1,152 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMQAS7GKB_cjs = require('./chunk-MQAS7GKB.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "AppState", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkMQAS7GKB_cjs.AppState; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "AuthError", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkMQAS7GKB_cjs.AuthError; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "AuthErrorCode", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkMQAS7GKB_cjs.AuthErrorCode; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "AuthResponseType", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkMQAS7GKB_cjs.AuthResponseType; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "InvalidVersionResponseError", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkMQAS7GKB_cjs.InvalidVersionResponseError; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "JobState", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkMQAS7GKB_cjs.JobState; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "NoCompatibleVersionsError", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkMQAS7GKB_cjs.NoCompatibleVersionsError; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "SUPPORTED_API_VERSIONS", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkMQAS7GKB_cjs.SUPPORTED_API_VERSIONS; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "TrueNasApiClient", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasApiClient; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "TrueNasApiClientV2510", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasApiClientV2510; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "TrueNasApiClientV27", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasApiClientV27; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "TrueNasApiClientV28", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasApiClientV28; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "TrueNasApiError", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasApiError; }
|
|
58
58
|
});
|
|
59
59
|
Object.defineProperty(exports, "TrueNasAuthMechanism", {
|
|
60
60
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkMQAS7GKB_cjs.TrueNasAuthMechanism; }
|
|
62
62
|
});
|
|
63
63
|
Object.defineProperty(exports, "UserRole", {
|
|
64
64
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkMQAS7GKB_cjs.UserRole; }
|
|
66
66
|
});
|
|
67
67
|
Object.defineProperty(exports, "VersionCompatibility", {
|
|
68
68
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionCompatibility; }
|
|
70
70
|
});
|
|
71
71
|
Object.defineProperty(exports, "VersionDiscovery", {
|
|
72
72
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionDiscovery; }
|
|
74
74
|
});
|
|
75
75
|
Object.defineProperty(exports, "VersionDiscoveryError", {
|
|
76
76
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionDiscoveryError; }
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "VersionDiscoveryNetworkError", {
|
|
80
80
|
enumerable: true,
|
|
81
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionDiscoveryNetworkError; }
|
|
82
82
|
});
|
|
83
83
|
Object.defineProperty(exports, "VersionDiscoveryTimeoutError", {
|
|
84
84
|
enumerable: true,
|
|
85
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionDiscoveryTimeoutError; }
|
|
86
86
|
});
|
|
87
87
|
Object.defineProperty(exports, "VersionEndpointNotFoundError", {
|
|
88
88
|
enumerable: true,
|
|
89
|
-
get: function () { return
|
|
89
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionEndpointNotFoundError; }
|
|
90
90
|
});
|
|
91
91
|
Object.defineProperty(exports, "VersionTooNewError", {
|
|
92
92
|
enumerable: true,
|
|
93
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionTooNewError; }
|
|
94
94
|
});
|
|
95
95
|
Object.defineProperty(exports, "VersionTooOldError", {
|
|
96
96
|
enumerable: true,
|
|
97
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkMQAS7GKB_cjs.VersionTooOldError; }
|
|
98
98
|
});
|
|
99
99
|
Object.defineProperty(exports, "consoleLogger", {
|
|
100
100
|
enumerable: true,
|
|
101
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkMQAS7GKB_cjs.consoleLogger; }
|
|
102
102
|
});
|
|
103
103
|
Object.defineProperty(exports, "createTrueNasClient", {
|
|
104
104
|
enumerable: true,
|
|
105
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkMQAS7GKB_cjs.createTrueNasClient; }
|
|
106
106
|
});
|
|
107
107
|
Object.defineProperty(exports, "getApiErrorMessage", {
|
|
108
108
|
enumerable: true,
|
|
109
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkMQAS7GKB_cjs.getApiErrorMessage; }
|
|
110
110
|
});
|
|
111
111
|
Object.defineProperty(exports, "isJobFinished", {
|
|
112
112
|
enumerable: true,
|
|
113
|
-
get: function () { return
|
|
113
|
+
get: function () { return chunkMQAS7GKB_cjs.isJobFinished; }
|
|
114
114
|
});
|
|
115
115
|
Object.defineProperty(exports, "noopLogger", {
|
|
116
116
|
enumerable: true,
|
|
117
|
-
get: function () { return
|
|
117
|
+
get: function () { return chunkMQAS7GKB_cjs.noopLogger; }
|
|
118
118
|
});
|
|
119
119
|
Object.defineProperty(exports, "v25_10_0", {
|
|
120
120
|
enumerable: true,
|
|
121
|
-
get: function () { return
|
|
121
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_0_exports; }
|
|
122
122
|
});
|
|
123
123
|
Object.defineProperty(exports, "v25_10_1", {
|
|
124
124
|
enumerable: true,
|
|
125
|
-
get: function () { return
|
|
125
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_1_exports; }
|
|
126
126
|
});
|
|
127
127
|
Object.defineProperty(exports, "v25_10_2", {
|
|
128
128
|
enumerable: true,
|
|
129
|
-
get: function () { return
|
|
129
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_2_exports; }
|
|
130
130
|
});
|
|
131
131
|
Object.defineProperty(exports, "v25_10_3", {
|
|
132
132
|
enumerable: true,
|
|
133
|
-
get: function () { return
|
|
133
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_3_exports; }
|
|
134
134
|
});
|
|
135
135
|
Object.defineProperty(exports, "v25_10_4", {
|
|
136
136
|
enumerable: true,
|
|
137
|
-
get: function () { return
|
|
137
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_4_exports; }
|
|
138
138
|
});
|
|
139
139
|
Object.defineProperty(exports, "v25_10_5", {
|
|
140
140
|
enumerable: true,
|
|
141
|
-
get: function () { return
|
|
141
|
+
get: function () { return chunkMQAS7GKB_cjs.v25_10_5_exports; }
|
|
142
142
|
});
|
|
143
143
|
Object.defineProperty(exports, "v27_0_0", {
|
|
144
144
|
enumerable: true,
|
|
145
|
-
get: function () { return
|
|
145
|
+
get: function () { return chunkMQAS7GKB_cjs.v27_0_0_exports; }
|
|
146
146
|
});
|
|
147
147
|
Object.defineProperty(exports, "v28_0_0", {
|
|
148
148
|
enumerable: true,
|
|
149
|
-
get: function () { return
|
|
149
|
+
get: function () { return chunkMQAS7GKB_cjs.v28_0_0_exports; }
|
|
150
150
|
});
|
|
151
151
|
//# sourceMappingURL=index.cjs.map
|
|
152
152
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as TrueNasApiClient, A as ApiDirectory, O as OperationMappings, a as ApiDirectory$1, b as ApiDirectory$2, L as Logger, c as ApplianceProtocol, d as ApiVersion, e as AuthResponse, f as TrueNasErrorFrame, g as TrueNasErrorData } from './truenas-auth-mechanism.enum-
|
|
2
|
-
export { h as ApiCallDirectoryV25_10_0, i as ApiCallDirectoryV25_10_1, j as ApiCallDirectoryV25_10_2, k as ApiCallDirectoryV25_10_3, l as ApiCallDirectoryV25_10_4, m as ApiCallDirectoryV25_10_5, n as ApiCallDirectoryV27_0_0, o as ApiCallDirectoryV28_0_0, p as ApiDirectoryByVersion, q as ApiDirectoryShape, r as ApiDirectoryV25_10_1, s as ApiDirectoryV25_10_2, t as ApiDirectoryV25_10_3, u as ApiDirectoryV25_10_4, v as ApiDirectoryV25_10_5, w as ApiError, x as ApiEventDirectoryV25_10_0, y as ApiEventDirectoryV25_10_1, z as ApiEventDirectoryV25_10_2, B as ApiEventDirectoryV25_10_3, C as ApiEventDirectoryV25_10_4, D as ApiEventDirectoryV25_10_5, E as ApiEventDirectoryV27_0_0, F as ApiEventDirectoryV28_0_0, G as ApiJobDirectoryV25_10_0, H as ApiJobDirectoryV25_10_1, I as ApiJobDirectoryV25_10_2, J as ApiJobDirectoryV25_10_3, K as ApiJobDirectoryV25_10_4, M as ApiJobDirectoryV25_10_5, N as ApiJobDirectoryV27_0_0, P as ApiJobDirectoryV28_0_0, Q as ApiKeyCreate, R as ApiVersionResponse, S as AppState, U as ArgsOf, V as AuthResponseType, W as BaseApiDirectory, X as CallMethod, Y as CallParams, Z as CallResponse, _ as ConnectionClose, $ as ConnectionEndpoint, a0 as ConnectionInterceptor, a1 as ConnectionOptions, a2 as Container, a3 as CreateClientOptions, a4 as DefaultApiDirectory, a5 as EventKind, a6 as EventName, a7 as EventSourceName, a8 as EventUnion, a9 as Job, aa as JobMethod, ab as JobParams, ac as JobProgress, ad as JobResult, ae as JobState, af as PasswordLoginOptions, ag as QueryDirectory, ah as QueryEntity, ai as QueryListOptions, aj as QueryMethod, ak as QuerySingleOptions, al as ReconnectOptions, am as SUPPORTED_API_VERSIONS, an as SmbStatusInfoLevel, ao as SmbStatusOptions, ap as SmbStatusRequest, aq as SmbStatusResponse, ar as SmbStatusRow, as as SubscribableEvent, at as SubscriptionArgs, au as SubscriptionParams, av as SupportedApiVersion, aw as TrueNasAuthMechanism, ax as TrueNasDate, ay as TrueNasMessage, az as UserRole, aA as UserRoleName, aB as VersionCompatibility, aC as consoleLogger, aD as createTrueNasClient, aE as getApiErrorMessage, aF as isJobFinished, aG as noopLogger, aH as v25_10_0, aI as v25_10_1, aJ as v25_10_2, aK as v25_10_3, aL as v25_10_4, aM as v25_10_5, aN as v27_0_0, aO as v28_0_0 } from './truenas-auth-mechanism.enum-
|
|
1
|
+
import { T as TrueNasApiClient, A as ApiDirectory, O as OperationMappings, a as ApiDirectory$1, b as ApiDirectory$2, L as Logger, c as ApplianceProtocol, d as ApiVersion, e as AuthResponse, f as TrueNasErrorFrame, g as TrueNasErrorData } from './truenas-auth-mechanism.enum-B0j9EN8G.cjs';
|
|
2
|
+
export { h as ApiCallDirectoryV25_10_0, i as ApiCallDirectoryV25_10_1, j as ApiCallDirectoryV25_10_2, k as ApiCallDirectoryV25_10_3, l as ApiCallDirectoryV25_10_4, m as ApiCallDirectoryV25_10_5, n as ApiCallDirectoryV27_0_0, o as ApiCallDirectoryV28_0_0, p as ApiDirectoryByVersion, q as ApiDirectoryShape, r as ApiDirectoryV25_10_1, s as ApiDirectoryV25_10_2, t as ApiDirectoryV25_10_3, u as ApiDirectoryV25_10_4, v as ApiDirectoryV25_10_5, w as ApiError, x as ApiEventDirectoryV25_10_0, y as ApiEventDirectoryV25_10_1, z as ApiEventDirectoryV25_10_2, B as ApiEventDirectoryV25_10_3, C as ApiEventDirectoryV25_10_4, D as ApiEventDirectoryV25_10_5, E as ApiEventDirectoryV27_0_0, F as ApiEventDirectoryV28_0_0, G as ApiJobDirectoryV25_10_0, H as ApiJobDirectoryV25_10_1, I as ApiJobDirectoryV25_10_2, J as ApiJobDirectoryV25_10_3, K as ApiJobDirectoryV25_10_4, M as ApiJobDirectoryV25_10_5, N as ApiJobDirectoryV27_0_0, P as ApiJobDirectoryV28_0_0, Q as ApiKeyCreate, R as ApiVersionResponse, S as AppState, U as ArgsOf, V as AuthResponseType, W as BaseApiDirectory, X as CallMethod, Y as CallParams, Z as CallResponse, _ as ConnectionClose, $ as ConnectionEndpoint, a0 as ConnectionInterceptor, a1 as ConnectionOptions, a2 as Container, a3 as CreateClientOptions, a4 as DefaultApiDirectory, a5 as EventKind, a6 as EventName, a7 as EventSourceName, a8 as EventUnion, a9 as Job, aa as JobMethod, ab as JobParams, ac as JobProgress, ad as JobResult, ae as JobState, af as PasswordLoginOptions, ag as QueryDirectory, ah as QueryEntity, ai as QueryListOptions, aj as QueryMethod, ak as QuerySingleOptions, al as ReconnectOptions, am as SUPPORTED_API_VERSIONS, an as SmbStatusInfoLevel, ao as SmbStatusOptions, ap as SmbStatusRequest, aq as SmbStatusResponse, ar as SmbStatusRow, as as SubscribableEvent, at as SubscriptionArgs, au as SubscriptionParams, av as SupportedApiVersion, aw as TrueNasAuthMechanism, ax as TrueNasDate, ay as TrueNasMessage, az as UserRole, aA as UserRoleName, aB as VersionCompatibility, aC as consoleLogger, aD as createTrueNasClient, aE as getApiErrorMessage, aF as isJobFinished, aG as noopLogger, aH as v25_10_0, aI as v25_10_1, aJ as v25_10_2, aK as v25_10_3, aL as v25_10_4, aM as v25_10_5, aN as v27_0_0, aO as v28_0_0 } from './truenas-auth-mechanism.enum-B0j9EN8G.cjs';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import 'rxjs/webSocket';
|
|
5
5
|
|
|
@@ -90,10 +90,9 @@ declare class TrueNasApiClientV27 extends TrueNasApiClient<ApiDirectory$1> {
|
|
|
90
90
|
/**
|
|
91
91
|
* API client for TrueNAS API v28 (JSON-RPC 2.0 over /api/v28.{minor}.{patch}).
|
|
92
92
|
*
|
|
93
|
-
* Operations
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* still compile here. Duplicated rather than shared so the series can diverge.
|
|
93
|
+
* Operations no longer all match `TrueNasApiClientV27`'s: v28 made
|
|
94
|
+
* `ContainerEntry.status` nullable, so `toContainer` here handles a null and
|
|
95
|
+
* v27's does not. The rest is still the same work on the same shapes.
|
|
97
96
|
*/
|
|
98
97
|
declare class TrueNasApiClientV28 extends TrueNasApiClient<ApiDirectory$2> {
|
|
99
98
|
/**
|
|
@@ -272,7 +271,18 @@ declare class InvalidVersionResponseError extends VersionDiscoveryError {
|
|
|
272
271
|
|
|
273
272
|
declare enum AuthErrorCode {
|
|
274
273
|
PasswordAuthFailed = "PASSWORD_AUTH_FAILED",
|
|
274
|
+
/**
|
|
275
|
+
* The appliance refused the one-time code. `loginPending` says what comes
|
|
276
|
+
* next: `true`, the same login takes another code; `false`, it is gone and
|
|
277
|
+
* the login starts over with the password.
|
|
278
|
+
*/
|
|
275
279
|
OtpAuthFailed = "OTP_AUTH_FAILED",
|
|
280
|
+
/**
|
|
281
|
+
* A one-time code was sent with no login waiting for one: the appliance
|
|
282
|
+
* dropped it after an earlier refusal, or it never asked. Start over with the
|
|
283
|
+
* password. `loginPending` is always `false`.
|
|
284
|
+
*/
|
|
285
|
+
OtpLoginNotPending = "OTP_LOGIN_NOT_PENDING",
|
|
276
286
|
ApiKeyAuthFailed = "API_KEY_AUTH_FAILED",
|
|
277
287
|
TokenAuthFailed = "TOKEN_AUTH_FAILED",
|
|
278
288
|
/**
|
|
@@ -292,13 +302,26 @@ declare enum AuthErrorCode {
|
|
|
292
302
|
declare class AuthError extends Error {
|
|
293
303
|
readonly code: AuthErrorCode;
|
|
294
304
|
readonly response?: AuthResponse | undefined;
|
|
305
|
+
/**
|
|
306
|
+
* Whether the appliance still holds this login open for another attempt, so
|
|
307
|
+
* the caller can ask for a new one-time code instead of the password.
|
|
308
|
+
*
|
|
309
|
+
* Only a refused code can leave it `true`, and only on releases that keep a
|
|
310
|
+
* two-factor login after a wrong code (25.10, up to three tries); 27 and
|
|
311
|
+
* later drop it on the first. It is read from the appliance's answer, never
|
|
312
|
+
* from the API version, which does not tell the two apart. Every other
|
|
313
|
+
* failure is `false`: the next attempt is a fresh login.
|
|
314
|
+
*/
|
|
315
|
+
readonly loginPending: boolean;
|
|
295
316
|
/**
|
|
296
317
|
* @param response - the answer middleware refused the login with, when there was one.
|
|
297
318
|
* Its `response_type` is what tells `EXPIRED`, `DENIED` and `REDIRECT` apart from
|
|
298
319
|
* `AUTH_ERR`; the code alone says only which mechanism failed. Absent when the login
|
|
299
320
|
* never got an answer of that kind (an error frame, or a superseded login).
|
|
300
321
|
*/
|
|
301
|
-
constructor(code: AuthErrorCode, message: string, response?: AuthResponse | undefined
|
|
322
|
+
constructor(code: AuthErrorCode, message: string, response?: AuthResponse | undefined, options?: {
|
|
323
|
+
loginPending?: boolean;
|
|
324
|
+
});
|
|
302
325
|
}
|
|
303
326
|
|
|
304
327
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as TrueNasApiClient, A as ApiDirectory, O as OperationMappings, a as ApiDirectory$1, b as ApiDirectory$2, L as Logger, c as ApplianceProtocol, d as ApiVersion, e as AuthResponse, f as TrueNasErrorFrame, g as TrueNasErrorData } from './truenas-auth-mechanism.enum-
|
|
2
|
-
export { h as ApiCallDirectoryV25_10_0, i as ApiCallDirectoryV25_10_1, j as ApiCallDirectoryV25_10_2, k as ApiCallDirectoryV25_10_3, l as ApiCallDirectoryV25_10_4, m as ApiCallDirectoryV25_10_5, n as ApiCallDirectoryV27_0_0, o as ApiCallDirectoryV28_0_0, p as ApiDirectoryByVersion, q as ApiDirectoryShape, r as ApiDirectoryV25_10_1, s as ApiDirectoryV25_10_2, t as ApiDirectoryV25_10_3, u as ApiDirectoryV25_10_4, v as ApiDirectoryV25_10_5, w as ApiError, x as ApiEventDirectoryV25_10_0, y as ApiEventDirectoryV25_10_1, z as ApiEventDirectoryV25_10_2, B as ApiEventDirectoryV25_10_3, C as ApiEventDirectoryV25_10_4, D as ApiEventDirectoryV25_10_5, E as ApiEventDirectoryV27_0_0, F as ApiEventDirectoryV28_0_0, G as ApiJobDirectoryV25_10_0, H as ApiJobDirectoryV25_10_1, I as ApiJobDirectoryV25_10_2, J as ApiJobDirectoryV25_10_3, K as ApiJobDirectoryV25_10_4, M as ApiJobDirectoryV25_10_5, N as ApiJobDirectoryV27_0_0, P as ApiJobDirectoryV28_0_0, Q as ApiKeyCreate, R as ApiVersionResponse, S as AppState, U as ArgsOf, V as AuthResponseType, W as BaseApiDirectory, X as CallMethod, Y as CallParams, Z as CallResponse, _ as ConnectionClose, $ as ConnectionEndpoint, a0 as ConnectionInterceptor, a1 as ConnectionOptions, a2 as Container, a3 as CreateClientOptions, a4 as DefaultApiDirectory, a5 as EventKind, a6 as EventName, a7 as EventSourceName, a8 as EventUnion, a9 as Job, aa as JobMethod, ab as JobParams, ac as JobProgress, ad as JobResult, ae as JobState, af as PasswordLoginOptions, ag as QueryDirectory, ah as QueryEntity, ai as QueryListOptions, aj as QueryMethod, ak as QuerySingleOptions, al as ReconnectOptions, am as SUPPORTED_API_VERSIONS, an as SmbStatusInfoLevel, ao as SmbStatusOptions, ap as SmbStatusRequest, aq as SmbStatusResponse, ar as SmbStatusRow, as as SubscribableEvent, at as SubscriptionArgs, au as SubscriptionParams, av as SupportedApiVersion, aw as TrueNasAuthMechanism, ax as TrueNasDate, ay as TrueNasMessage, az as UserRole, aA as UserRoleName, aB as VersionCompatibility, aC as consoleLogger, aD as createTrueNasClient, aE as getApiErrorMessage, aF as isJobFinished, aG as noopLogger, aH as v25_10_0, aI as v25_10_1, aJ as v25_10_2, aK as v25_10_3, aL as v25_10_4, aM as v25_10_5, aN as v27_0_0, aO as v28_0_0 } from './truenas-auth-mechanism.enum-
|
|
1
|
+
import { T as TrueNasApiClient, A as ApiDirectory, O as OperationMappings, a as ApiDirectory$1, b as ApiDirectory$2, L as Logger, c as ApplianceProtocol, d as ApiVersion, e as AuthResponse, f as TrueNasErrorFrame, g as TrueNasErrorData } from './truenas-auth-mechanism.enum-B0j9EN8G.js';
|
|
2
|
+
export { h as ApiCallDirectoryV25_10_0, i as ApiCallDirectoryV25_10_1, j as ApiCallDirectoryV25_10_2, k as ApiCallDirectoryV25_10_3, l as ApiCallDirectoryV25_10_4, m as ApiCallDirectoryV25_10_5, n as ApiCallDirectoryV27_0_0, o as ApiCallDirectoryV28_0_0, p as ApiDirectoryByVersion, q as ApiDirectoryShape, r as ApiDirectoryV25_10_1, s as ApiDirectoryV25_10_2, t as ApiDirectoryV25_10_3, u as ApiDirectoryV25_10_4, v as ApiDirectoryV25_10_5, w as ApiError, x as ApiEventDirectoryV25_10_0, y as ApiEventDirectoryV25_10_1, z as ApiEventDirectoryV25_10_2, B as ApiEventDirectoryV25_10_3, C as ApiEventDirectoryV25_10_4, D as ApiEventDirectoryV25_10_5, E as ApiEventDirectoryV27_0_0, F as ApiEventDirectoryV28_0_0, G as ApiJobDirectoryV25_10_0, H as ApiJobDirectoryV25_10_1, I as ApiJobDirectoryV25_10_2, J as ApiJobDirectoryV25_10_3, K as ApiJobDirectoryV25_10_4, M as ApiJobDirectoryV25_10_5, N as ApiJobDirectoryV27_0_0, P as ApiJobDirectoryV28_0_0, Q as ApiKeyCreate, R as ApiVersionResponse, S as AppState, U as ArgsOf, V as AuthResponseType, W as BaseApiDirectory, X as CallMethod, Y as CallParams, Z as CallResponse, _ as ConnectionClose, $ as ConnectionEndpoint, a0 as ConnectionInterceptor, a1 as ConnectionOptions, a2 as Container, a3 as CreateClientOptions, a4 as DefaultApiDirectory, a5 as EventKind, a6 as EventName, a7 as EventSourceName, a8 as EventUnion, a9 as Job, aa as JobMethod, ab as JobParams, ac as JobProgress, ad as JobResult, ae as JobState, af as PasswordLoginOptions, ag as QueryDirectory, ah as QueryEntity, ai as QueryListOptions, aj as QueryMethod, ak as QuerySingleOptions, al as ReconnectOptions, am as SUPPORTED_API_VERSIONS, an as SmbStatusInfoLevel, ao as SmbStatusOptions, ap as SmbStatusRequest, aq as SmbStatusResponse, ar as SmbStatusRow, as as SubscribableEvent, at as SubscriptionArgs, au as SubscriptionParams, av as SupportedApiVersion, aw as TrueNasAuthMechanism, ax as TrueNasDate, ay as TrueNasMessage, az as UserRole, aA as UserRoleName, aB as VersionCompatibility, aC as consoleLogger, aD as createTrueNasClient, aE as getApiErrorMessage, aF as isJobFinished, aG as noopLogger, aH as v25_10_0, aI as v25_10_1, aJ as v25_10_2, aK as v25_10_3, aL as v25_10_4, aM as v25_10_5, aN as v27_0_0, aO as v28_0_0 } from './truenas-auth-mechanism.enum-B0j9EN8G.js';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import 'rxjs/webSocket';
|
|
5
5
|
|
|
@@ -90,10 +90,9 @@ declare class TrueNasApiClientV27 extends TrueNasApiClient<ApiDirectory$1> {
|
|
|
90
90
|
/**
|
|
91
91
|
* API client for TrueNAS API v28 (JSON-RPC 2.0 over /api/v28.{minor}.{patch}).
|
|
92
92
|
*
|
|
93
|
-
* Operations
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* still compile here. Duplicated rather than shared so the series can diverge.
|
|
93
|
+
* Operations no longer all match `TrueNasApiClientV27`'s: v28 made
|
|
94
|
+
* `ContainerEntry.status` nullable, so `toContainer` here handles a null and
|
|
95
|
+
* v27's does not. The rest is still the same work on the same shapes.
|
|
97
96
|
*/
|
|
98
97
|
declare class TrueNasApiClientV28 extends TrueNasApiClient<ApiDirectory$2> {
|
|
99
98
|
/**
|
|
@@ -272,7 +271,18 @@ declare class InvalidVersionResponseError extends VersionDiscoveryError {
|
|
|
272
271
|
|
|
273
272
|
declare enum AuthErrorCode {
|
|
274
273
|
PasswordAuthFailed = "PASSWORD_AUTH_FAILED",
|
|
274
|
+
/**
|
|
275
|
+
* The appliance refused the one-time code. `loginPending` says what comes
|
|
276
|
+
* next: `true`, the same login takes another code; `false`, it is gone and
|
|
277
|
+
* the login starts over with the password.
|
|
278
|
+
*/
|
|
275
279
|
OtpAuthFailed = "OTP_AUTH_FAILED",
|
|
280
|
+
/**
|
|
281
|
+
* A one-time code was sent with no login waiting for one: the appliance
|
|
282
|
+
* dropped it after an earlier refusal, or it never asked. Start over with the
|
|
283
|
+
* password. `loginPending` is always `false`.
|
|
284
|
+
*/
|
|
285
|
+
OtpLoginNotPending = "OTP_LOGIN_NOT_PENDING",
|
|
276
286
|
ApiKeyAuthFailed = "API_KEY_AUTH_FAILED",
|
|
277
287
|
TokenAuthFailed = "TOKEN_AUTH_FAILED",
|
|
278
288
|
/**
|
|
@@ -292,13 +302,26 @@ declare enum AuthErrorCode {
|
|
|
292
302
|
declare class AuthError extends Error {
|
|
293
303
|
readonly code: AuthErrorCode;
|
|
294
304
|
readonly response?: AuthResponse | undefined;
|
|
305
|
+
/**
|
|
306
|
+
* Whether the appliance still holds this login open for another attempt, so
|
|
307
|
+
* the caller can ask for a new one-time code instead of the password.
|
|
308
|
+
*
|
|
309
|
+
* Only a refused code can leave it `true`, and only on releases that keep a
|
|
310
|
+
* two-factor login after a wrong code (25.10, up to three tries); 27 and
|
|
311
|
+
* later drop it on the first. It is read from the appliance's answer, never
|
|
312
|
+
* from the API version, which does not tell the two apart. Every other
|
|
313
|
+
* failure is `false`: the next attempt is a fresh login.
|
|
314
|
+
*/
|
|
315
|
+
readonly loginPending: boolean;
|
|
295
316
|
/**
|
|
296
317
|
* @param response - the answer middleware refused the login with, when there was one.
|
|
297
318
|
* Its `response_type` is what tells `EXPIRED`, `DENIED` and `REDIRECT` apart from
|
|
298
319
|
* `AUTH_ERR`; the code alone says only which mechanism failed. Absent when the login
|
|
299
320
|
* never got an answer of that kind (an error frame, or a superseded login).
|
|
300
321
|
*/
|
|
301
|
-
constructor(code: AuthErrorCode, message: string, response?: AuthResponse | undefined
|
|
322
|
+
constructor(code: AuthErrorCode, message: string, response?: AuthResponse | undefined, options?: {
|
|
323
|
+
loginPending?: boolean;
|
|
324
|
+
});
|
|
302
325
|
}
|
|
303
326
|
|
|
304
327
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { AppState, AuthError, AuthErrorCode, AuthResponseType, InvalidVersionResponseError, JobState, NoCompatibleVersionsError, SUPPORTED_API_VERSIONS, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV27, TrueNasApiClientV28, TrueNasApiError, TrueNasAuthMechanism, UserRole, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, v25_10_0_exports as v25_10_0, v25_10_1_exports as v25_10_1, v25_10_2_exports as v25_10_2, v25_10_3_exports as v25_10_3, v25_10_4_exports as v25_10_4, v25_10_5_exports as v25_10_5, v27_0_0_exports as v27_0_0, v28_0_0_exports as v28_0_0 } from './chunk-
|
|
1
|
+
export { AppState, AuthError, AuthErrorCode, AuthResponseType, InvalidVersionResponseError, JobState, NoCompatibleVersionsError, SUPPORTED_API_VERSIONS, TrueNasApiClient, TrueNasApiClientV2510, TrueNasApiClientV27, TrueNasApiClientV28, TrueNasApiError, TrueNasAuthMechanism, UserRole, VersionCompatibility, VersionDiscovery, VersionDiscoveryError, VersionDiscoveryNetworkError, VersionDiscoveryTimeoutError, VersionEndpointNotFoundError, VersionTooNewError, VersionTooOldError, consoleLogger, createTrueNasClient, getApiErrorMessage, isJobFinished, noopLogger, v25_10_0_exports as v25_10_0, v25_10_1_exports as v25_10_1, v25_10_2_exports as v25_10_2, v25_10_3_exports as v25_10_3, v25_10_4_exports as v25_10_4, v25_10_5_exports as v25_10_5, v27_0_0_exports as v27_0_0, v28_0_0_exports as v28_0_0 } from './chunk-ZH75OPDH.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/testing/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMQAS7GKB_cjs = require('../chunk-MQAS7GKB.cjs');
|
|
4
4
|
var rxjs = require('rxjs');
|
|
5
5
|
|
|
6
6
|
// src/testing/unmocked-call-error.ts
|
|
@@ -17,7 +17,7 @@ var UnmockedCallError = class extends Error {
|
|
|
17
17
|
|
|
18
18
|
// src/testing/fake-connection.ts
|
|
19
19
|
var CLIENT_HOUSEKEEPING = /* @__PURE__ */ new Set(["core.subscribe", "core.unsubscribe"]);
|
|
20
|
-
var FakeConnection = class extends
|
|
20
|
+
var FakeConnection = class extends chunkMQAS7GKB_cjs.TrueNasConnection {
|
|
21
21
|
constructor(options = {}) {
|
|
22
22
|
super(
|
|
23
23
|
// Disabled: `connection$` derives from this, so no socket is ever built
|
|
@@ -29,7 +29,7 @@ var FakeConnection = class extends chunkUOTSHE2J_cjs.TrueNasConnection {
|
|
|
29
29
|
void 0,
|
|
30
30
|
0,
|
|
31
31
|
0,
|
|
32
|
-
|
|
32
|
+
chunkMQAS7GKB_cjs.noopLogger
|
|
33
33
|
);
|
|
34
34
|
this.incoming = new rxjs.Subject();
|
|
35
35
|
this.frames = [];
|
|
@@ -192,10 +192,10 @@ var FakeConnection = class extends chunkUOTSHE2J_cjs.TrueNasConnection {
|
|
|
192
192
|
this.closesSubject.next({
|
|
193
193
|
code,
|
|
194
194
|
reason,
|
|
195
|
-
message:
|
|
195
|
+
message: chunkMQAS7GKB_cjs.getCloseMessage(code, reason),
|
|
196
196
|
hostname: this.endpoint.hostnames[0] ?? "",
|
|
197
197
|
wasOpen: true,
|
|
198
|
-
refused: code ===
|
|
198
|
+
refused: code === chunkMQAS7GKB_cjs.policyViolationCloseCode
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
/**
|
|
@@ -224,7 +224,7 @@ var FakeConnection = class extends chunkUOTSHE2J_cjs.TrueNasConnection {
|
|
|
224
224
|
};
|
|
225
225
|
|
|
226
226
|
// src/testing/fake-authenticator.ts
|
|
227
|
-
var FakeAuthenticator = class extends
|
|
227
|
+
var FakeAuthenticator = class extends chunkMQAS7GKB_cjs.TrueNasAuthenticator {
|
|
228
228
|
constructor(fakeConnection, version) {
|
|
229
229
|
super(fakeConnection, version);
|
|
230
230
|
this.fakeConnection = fakeConnection;
|
|
@@ -551,7 +551,7 @@ function createMockAnswers(connection) {
|
|
|
551
551
|
connection.receive({
|
|
552
552
|
jsonrpc: "2.0",
|
|
553
553
|
method: "collection_update",
|
|
554
|
-
params: { collection:
|
|
554
|
+
params: { collection: chunkMQAS7GKB_cjs.subscriptionName(event, params), ...change }
|
|
555
555
|
});
|
|
556
556
|
}
|
|
557
557
|
};
|
|
@@ -574,12 +574,12 @@ function withFakeCollaborators(Base, options) {
|
|
|
574
574
|
};
|
|
575
575
|
}
|
|
576
576
|
function createFakeClient(options = {}) {
|
|
577
|
-
const versionString = options.version ??
|
|
578
|
-
const version =
|
|
577
|
+
const versionString = options.version ?? chunkMQAS7GKB_cjs.SUPPORTED_API_VERSIONS[0];
|
|
578
|
+
const version = chunkMQAS7GKB_cjs.parseApiVersion(versionString);
|
|
579
579
|
if (!version) {
|
|
580
580
|
throw new Error(`'${versionString}' is not a version this package parses.`);
|
|
581
581
|
}
|
|
582
|
-
const Base =
|
|
582
|
+
const Base = chunkMQAS7GKB_cjs.clientClassFor(version);
|
|
583
583
|
if (!Base) {
|
|
584
584
|
throw new Error(
|
|
585
585
|
`No client implementation for '${versionString}'. The real factory would have refused it too.`
|
|
@@ -665,8 +665,8 @@ function withSpies(client, spy) {
|
|
|
665
665
|
}
|
|
666
666
|
|
|
667
667
|
// src/testing/fake-api-version.ts
|
|
668
|
-
function fakeApiVersion(version =
|
|
669
|
-
const parsed =
|
|
668
|
+
function fakeApiVersion(version = chunkMQAS7GKB_cjs.SUPPORTED_API_VERSIONS[0], overrides = {}) {
|
|
669
|
+
const parsed = chunkMQAS7GKB_cjs.parseApiVersion(version);
|
|
670
670
|
if (!parsed) {
|
|
671
671
|
throw new Error(
|
|
672
672
|
`fakeApiVersion('${version}'): not a version this package parses. Expected vYY.MINOR.PATCH \u2014 v25.10.0, v27.0.0. For a version the parser rejects, pass one it accepts and override its fields.`
|
|
@@ -735,7 +735,7 @@ function fakeAuthResponse(overrides = {}) {
|
|
|
735
735
|
|
|
736
736
|
Object.defineProperty(exports, "AuthResponseType", {
|
|
737
737
|
enumerable: true,
|
|
738
|
-
get: function () { return
|
|
738
|
+
get: function () { return chunkMQAS7GKB_cjs.AuthResponseType; }
|
|
739
739
|
});
|
|
740
740
|
exports.FakeAuthenticator = FakeAuthenticator;
|
|
741
741
|
exports.FakeConnection = FakeConnection;
|
package/dist/testing/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as rxjs from 'rxjs';
|
|
2
2
|
import { Subscription, Observable } from 'rxjs';
|
|
3
|
-
import { aP as TrueNasConnection, ay as TrueNasMessage, f as TrueNasErrorFrame, aQ as TrueNasAuthenticator, d as ApiVersion, aw as TrueNasAuthMechanism, e as AuthResponse, V as AuthResponseType, af as PasswordLoginOptions, a9 as Job, ac as JobProgress, q as ApiDirectoryShape, X as CallMethod, aj as QueryMethod, Z as CallResponse, Y as CallParams, ah as QueryEntity, aa as JobMethod, ad as JobResult, a6 as EventName, a8 as EventUnion, a7 as EventSourceName, at as SubscriptionArgs, av as SupportedApiVersion, T as TrueNasApiClient, aR as DerivedDirectory, g as TrueNasErrorData } from '../truenas-auth-mechanism.enum-
|
|
3
|
+
import { aP as TrueNasConnection, ay as TrueNasMessage, f as TrueNasErrorFrame, aQ as TrueNasAuthenticator, d as ApiVersion, aw as TrueNasAuthMechanism, e as AuthResponse, V as AuthResponseType, af as PasswordLoginOptions, a9 as Job, ac as JobProgress, q as ApiDirectoryShape, X as CallMethod, aj as QueryMethod, Z as CallResponse, Y as CallParams, ah as QueryEntity, aa as JobMethod, ad as JobResult, a6 as EventName, a8 as EventUnion, a7 as EventSourceName, at as SubscriptionArgs, av as SupportedApiVersion, T as TrueNasApiClient, aR as DerivedDirectory, g as TrueNasErrorData } from '../truenas-auth-mechanism.enum-B0j9EN8G.cjs';
|
|
4
4
|
import 'rxjs/webSocket';
|
|
5
5
|
|
|
6
6
|
/** How a fake connection is set up. Every field has a usable default. */
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as rxjs from 'rxjs';
|
|
2
2
|
import { Subscription, Observable } from 'rxjs';
|
|
3
|
-
import { aP as TrueNasConnection, ay as TrueNasMessage, f as TrueNasErrorFrame, aQ as TrueNasAuthenticator, d as ApiVersion, aw as TrueNasAuthMechanism, e as AuthResponse, V as AuthResponseType, af as PasswordLoginOptions, a9 as Job, ac as JobProgress, q as ApiDirectoryShape, X as CallMethod, aj as QueryMethod, Z as CallResponse, Y as CallParams, ah as QueryEntity, aa as JobMethod, ad as JobResult, a6 as EventName, a8 as EventUnion, a7 as EventSourceName, at as SubscriptionArgs, av as SupportedApiVersion, T as TrueNasApiClient, aR as DerivedDirectory, g as TrueNasErrorData } from '../truenas-auth-mechanism.enum-
|
|
3
|
+
import { aP as TrueNasConnection, ay as TrueNasMessage, f as TrueNasErrorFrame, aQ as TrueNasAuthenticator, d as ApiVersion, aw as TrueNasAuthMechanism, e as AuthResponse, V as AuthResponseType, af as PasswordLoginOptions, a9 as Job, ac as JobProgress, q as ApiDirectoryShape, X as CallMethod, aj as QueryMethod, Z as CallResponse, Y as CallParams, ah as QueryEntity, aa as JobMethod, ad as JobResult, a6 as EventName, a8 as EventUnion, a7 as EventSourceName, at as SubscriptionArgs, av as SupportedApiVersion, T as TrueNasApiClient, aR as DerivedDirectory, g as TrueNasErrorData } from '../truenas-auth-mechanism.enum-B0j9EN8G.js';
|
|
4
4
|
import 'rxjs/webSocket';
|
|
5
5
|
|
|
6
6
|
/** How a fake connection is set up. Every field has a usable default. */
|
package/dist/testing/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SUPPORTED_API_VERSIONS, TrueNasConnection, noopLogger, policyViolationCloseCode, getCloseMessage, TrueNasAuthenticator, parseApiVersion, clientClassFor, subscriptionName } from '../chunk-
|
|
2
|
-
export { AuthResponseType } from '../chunk-
|
|
1
|
+
import { SUPPORTED_API_VERSIONS, TrueNasConnection, noopLogger, policyViolationCloseCode, getCloseMessage, TrueNasAuthenticator, parseApiVersion, clientClassFor, subscriptionName } from '../chunk-ZH75OPDH.js';
|
|
2
|
+
export { AuthResponseType } from '../chunk-ZH75OPDH.js';
|
|
3
3
|
import { Subject, distinctUntilChanged, takeUntil, filter, map, Subscription } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
// src/testing/unmocked-call-error.ts
|