@openzeppelin/guardian-operator-client 0.14.3 → 0.14.6

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 CHANGED
@@ -42,19 +42,122 @@ const verified = await client.verify({
42
42
  console.log(verified.operatorId);
43
43
  ```
44
44
 
45
- ### List Accounts
45
+ ### List Accounts (Paginated)
46
46
 
47
47
  ```typescript
48
- const response = await client.listAccounts();
49
- console.log(response.totalCount);
50
- console.log(response.accounts[0]?.accountId);
48
+ // Default page size is 50; max is 500.
49
+ const page = await client.listAccounts({ limit: 50 });
50
+ console.log(page.items[0]?.accountId);
51
+
52
+ // Resume the next page with the cursor from the previous response.
53
+ if (page.nextCursor !== null) {
54
+ const next = await client.listAccounts({
55
+ limit: 50,
56
+ cursor: page.nextCursor,
57
+ });
58
+ console.log(next.items.length);
59
+ }
51
60
  ```
52
61
 
53
62
  ### Fetch One Account
54
63
 
64
+ `getAccount()` returns the bare `DashboardAccountDetail` — there is no
65
+ `{ success, account }` wrapper. Read fields directly on the response.
66
+
67
+ ```typescript
68
+ const detail = await client.getAccount('0x...');
69
+ console.log(detail.authorizedSignerIds);
70
+ console.log(detail.currentCommitment, detail.stateUpdatedAt);
71
+ ```
72
+
73
+ ### Decoded Account Snapshot
74
+
75
+ Returns the decoded state (vault contents, pending-candidate flag) at
76
+ the commitment Guardian last canonicalized for the account. Sourced
77
+ from Guardian's stored state — no live Miden RPC calls.
78
+
79
+ ```typescript
80
+ const snapshot = await client.getAccountSnapshot('0x...');
81
+ console.log(snapshot.commitment, snapshot.updatedAt);
82
+ if (snapshot.hasPendingCandidate) {
83
+ console.warn('vault may be stale — candidate delta in flight');
84
+ }
85
+ for (const asset of snapshot.vault.fungible) {
86
+ console.log(asset.faucetId, asset.amount);
87
+ }
88
+ ```
89
+
90
+ ### Inventory And Health Snapshot
91
+
92
+ ```typescript
93
+ const info = await client.getDashboardInfo();
94
+ console.log(info.totalAccountCount, info.environment);
95
+ console.log(info.deltaStatusCounts.candidate);
96
+ console.log(info.inFlightProposalCount);
97
+ if (info.serviceStatus === 'degraded') {
98
+ console.warn('degraded aggregates:', info.degradedAggregates);
99
+ }
100
+ ```
101
+
102
+ ### Per-Account Delta Feed
103
+
55
104
  ```typescript
56
- const response = await client.getAccount('0x...');
57
- console.log(response.account.authorizedSignerIds);
105
+ const page = await client.listAccountDeltas('0x...', { limit: 50 });
106
+ for (const entry of page.items) {
107
+ console.log(entry.nonce, entry.status, entry.statusTimestamp);
108
+ }
109
+ ```
110
+
111
+ ### Per-Account In-Flight Proposals
112
+
113
+ Single-key Miden accounts and EVM accounts always return an empty
114
+ proposal queue.
115
+
116
+ ```typescript
117
+ const page = await client.listAccountProposals('0x...', { limit: 50 });
118
+ for (const entry of page.items) {
119
+ console.log(
120
+ entry.commitment,
121
+ entry.signaturesCollected,
122
+ '/',
123
+ entry.signaturesRequired,
124
+ );
125
+ }
126
+ ```
127
+
128
+ ### Cross-Account Delta Feed
129
+
130
+ Paginated newest-first by `status_timestamp DESC`. The optional
131
+ `status` filter accepts a single status or an array; the wrapper
132
+ serializes the array to a comma-separated query parameter.
133
+
134
+ ```typescript
135
+ const page = await client.listGlobalDeltas({
136
+ limit: 50,
137
+ status: ['candidate', 'canonical'],
138
+ });
139
+ for (const entry of page.items) {
140
+ console.log(entry.accountId, entry.nonce, entry.status);
141
+ }
142
+ ```
143
+
144
+ ### Cross-Account In-Flight Proposal Feed
145
+
146
+ Paginated newest-first by `originating_timestamp DESC`. There is no
147
+ `status` filter — every entry is in-flight by definition. EVM accounts
148
+ do not appear in v1.
149
+
150
+ ```typescript
151
+ const page = await client.listGlobalProposals({ limit: 50 });
152
+ for (const entry of page.items) {
153
+ console.log(
154
+ entry.accountId,
155
+ entry.commitment,
156
+ entry.signaturesCollected,
157
+ '/',
158
+ entry.signaturesRequired,
159
+ );
160
+ }
58
161
  ```
59
162
 
60
163
  ### Logout
@@ -63,6 +166,33 @@ console.log(response.account.authorizedSignerIds);
63
166
  await client.logout();
64
167
  ```
65
168
 
169
+ ## Pagination Shape
170
+
171
+ Every paginated dashboard endpoint returns a `PagedResult<T>` envelope:
172
+
173
+ ```jsonc
174
+ {
175
+ "items": [ /* T entries */ ],
176
+ "next_cursor": "string | null" // null at end of list
177
+ }
178
+ ```
179
+
180
+ - `limit` defaults to `50` and is capped at `500`. A bare `?limit=`
181
+ (present but empty) is treated as omitted; out-of-range values
182
+ return `400 invalid_limit`.
183
+ - `cursor` is opaque, server-signed, and tied to a specific endpoint
184
+ kind (e.g. an account-list cursor cannot be replayed on the
185
+ deltas endpoint). Tampered or stale cursors return
186
+ `400 invalid_cursor`. There is no client-visible TTL.
187
+ - A `cursor` may be supplied without a `limit`; the default of 50
188
+ applies.
189
+ - The account list endpoint sorts by `(updated_at DESC, account_id
190
+ ASC)`. Concurrent updates to `updated_at` MAY cause an account to
191
+ be skipped or repeated across a traversal — documented expected
192
+ behavior of cursor pagination over a mutable sort key. All other
193
+ paginated endpoints sort by an immutable per-account `nonce` (or
194
+ `(nonce, commitment)` for proposals) and are fully stable.
195
+
66
196
  ## Cookie Transport
67
197
 
68
198
  The Guardian operator session is cookie-based. This package does not manage a
@@ -75,13 +205,36 @@ appropriate for your runtime.
75
205
  import {
76
206
  GuardianOperatorContractError,
77
207
  GuardianOperatorHttpError,
208
+ isDashboardErrorCode,
78
209
  } from '@openzeppelin/guardian-operator-client';
79
210
 
80
211
  try {
81
- await client.listAccounts();
212
+ await client.listAccounts({ limit: 9999 });
82
213
  } catch (error) {
83
214
  if (error instanceof GuardianOperatorHttpError) {
84
- console.error(error.status, error.data?.error);
215
+ // Stable machine-readable code lives on `error.data.code`.
216
+ // Branch on it rather than on `error.status` or
217
+ // `error.data.error` (the human message).
218
+ const code = error.data?.code;
219
+ if (code && isDashboardErrorCode(code)) {
220
+ switch (code) {
221
+ case 'invalid_limit':
222
+ case 'invalid_cursor':
223
+ case 'invalid_status_filter':
224
+ // Caller bug — fix the request.
225
+ break;
226
+ case 'account_not_found':
227
+ // Path-addressed account does not exist.
228
+ break;
229
+ case 'data_unavailable':
230
+ // Metadata exists but storage cannot be read; retry later.
231
+ break;
232
+ case 'authentication_failed':
233
+ // Operator session is missing, tampered, or expired —
234
+ // re-issue the challenge / verify flow.
235
+ break;
236
+ }
237
+ }
85
238
  }
86
239
 
87
240
  if (error instanceof GuardianOperatorContractError) {
@@ -89,3 +242,15 @@ try {
89
242
  }
90
243
  }
91
244
  ```
245
+
246
+ The dashboard error taxonomy (feature `005-operator-dashboard-metrics`
247
+ FR-028) is:
248
+
249
+ | HTTP | Body `code` | When |
250
+ |------|-------------|------|
251
+ | 401 | `authentication_failed` | missing / tampered / expired operator session |
252
+ | 404 | `account_not_found` | path-addressed account does not exist |
253
+ | 400 | `invalid_cursor` | tampered, malformed, or stale cursor |
254
+ | 400 | `invalid_limit` | `limit` outside `[1, 500]` |
255
+ | 400 | `invalid_status_filter` | global delta feed `status` filter is unknown or malformed |
256
+ | 503 | `data_unavailable` | metadata exists but underlying records cannot be read |
package/dist/http.d.ts CHANGED
@@ -1,4 +1,39 @@
1
- import type { DashboardAccountResponse, DashboardAccountsResponse, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallengeResponse, VerifyOperatorRequest, VerifyOperatorResponse } from './types.js';
1
+ import type { DashboardAccountResponse, DashboardAccountSnapshot, DashboardAccountSummary, DashboardDeltaEntry, DashboardErrorCode, DashboardGlobalDeltaEntry, DashboardGlobalProposalEntry, DashboardInfoResponse, DashboardProposalEntry, GlobalDeltasOptions, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallengeResponse, PagedResult, VerifyOperatorRequest, VerifyOperatorResponse } from './types.js';
2
+ /**
3
+ * Common pagination query options for the new dashboard feeds
4
+ * endpoints. Spec reference: `005-operator-dashboard-metrics` FR-001.
5
+ */
6
+ export interface PaginationOptions {
7
+ /** Page size; default 50 server-side, max 500. */
8
+ limit?: number;
9
+ /** Opaque cursor token from a prior page's `nextCursor`. */
10
+ cursor?: string;
11
+ }
12
+ /**
13
+ * Result of parsing an error response body. The {@link code} field is
14
+ * narrowed to {@link DashboardErrorCode} when the server emitted one of
15
+ * the dashboard error codes; otherwise it is forwarded as a raw string
16
+ * (or `null` if the body was missing/malformed).
17
+ */
18
+ export interface ParsedErrorBody {
19
+ code: DashboardErrorCode | string | null;
20
+ message: string | null;
21
+ retryAfterSecs?: number;
22
+ }
23
+ /**
24
+ * Parse an error response body into a typed `{ code, message }` shape.
25
+ * Clients SHOULD branch on `code` rather than on the HTTP status alone
26
+ * — see FR-028 of `005-operator-dashboard-metrics`.
27
+ *
28
+ * Accepts either a `Response` (fetch result) or a pre-read JSON body.
29
+ * Returns `{ code: null, message: null }` when the body is absent or
30
+ * malformed; never throws.
31
+ */
32
+ export declare function parseErrorBody(response: Response | unknown): Promise<ParsedErrorBody>;
33
+ /**
34
+ * Type guard narrowing an arbitrary string to {@link DashboardErrorCode}.
35
+ */
36
+ export declare function isDashboardErrorCode(value: string): value is DashboardErrorCode;
2
37
  export declare class GuardianOperatorHttpError extends Error {
3
38
  readonly status: number;
4
39
  readonly statusText: string;
@@ -21,8 +56,73 @@ export declare class GuardianOperatorHttpClient {
21
56
  challenge(commitment: string): Promise<OperatorChallengeResponse>;
22
57
  verify(request: VerifyOperatorRequest): Promise<VerifyOperatorResponse>;
23
58
  logout(): Promise<LogoutOperatorResponse>;
24
- listAccounts(): Promise<DashboardAccountsResponse>;
59
+ /**
60
+ * Paginated account list per feature
61
+ * `005-operator-dashboard-metrics` US1 / FR-001..FR-008.
62
+ *
63
+ * **Breaking change vs. `003-operator-account-apis`**: the response
64
+ * is now a {@link PagedResult} envelope. The previous
65
+ * unparameterized full-inventory mode and `total_count` field are
66
+ * removed; aggregate inventory totals are exposed via
67
+ * {@link GuardianOperatorHttpClient.getDashboardInfo}. Callers that
68
+ * relied on `listAccounts()` must migrate to this method.
69
+ */
70
+ listAccounts(options?: PaginationOptions): Promise<PagedResult<DashboardAccountSummary>>;
71
+ /**
72
+ * Inventory and lifecycle health snapshot per feature
73
+ * `005-operator-dashboard-metrics` US2 / FR-008..FR-012.
74
+ */
75
+ getDashboardInfo(): Promise<DashboardInfoResponse>;
25
76
  getAccount(accountId: string): Promise<DashboardAccountResponse>;
77
+ /**
78
+ * Return a decoded snapshot of `accountId`'s stored state at the
79
+ * commitment Guardian last canonicalized — v1 surface exposes the
80
+ * fungible/non-fungible vault. The endpoint distinguishes its
81
+ * failure modes via the FR-045 error taxonomy:
82
+ *
83
+ * - `400 unsupported_for_network` — the account's `network_config`
84
+ * is EVM. The snapshot endpoint is Miden-only by construction;
85
+ * this is a permanent condition for the account on this surface,
86
+ * not a transient failure.
87
+ * - `404 account_not_found` — no metadata exists.
88
+ * - `503 account_data_unavailable` — metadata exists but the state
89
+ * row cannot be loaded, or the stored blob fails to deserialize
90
+ * as a Miden `Account`. Transient/recoverable.
91
+ *
92
+ * Spec reference: follow-up addition to `005-operator-dashboard-metrics`
93
+ * FR-043..FR-046.
94
+ */
95
+ getAccountSnapshot(accountId: string): Promise<DashboardAccountSnapshot>;
96
+ /**
97
+ * List the per-account delta feed for `accountId`, paginated
98
+ * newest-first by `nonce DESC`. Spec reference:
99
+ * `005-operator-dashboard-metrics` US3.
100
+ */
101
+ listAccountDeltas(accountId: string, options?: PaginationOptions): Promise<PagedResult<DashboardDeltaEntry>>;
102
+ /**
103
+ * List the per-account in-flight multisig proposal queue for
104
+ * `accountId`, paginated newest-first by `(nonce DESC, commitment
105
+ * DESC)`. Single-key Miden and EVM accounts always return an empty
106
+ * page per FR-017. Spec reference:
107
+ * `005-operator-dashboard-metrics` US4.
108
+ */
109
+ listAccountProposals(accountId: string, options?: PaginationOptions): Promise<PagedResult<DashboardProposalEntry>>;
110
+ /**
111
+ * Cross-account delta feed. Paginated newest-first by
112
+ * `status_timestamp DESC`. The optional `status` filter accepts a
113
+ * single status or an array; the wrapper serializes the array to
114
+ * comma-separated. Spec reference:
115
+ * `005-operator-dashboard-metrics` US6.
116
+ */
117
+ listGlobalDeltas(options?: GlobalDeltasOptions): Promise<PagedResult<DashboardGlobalDeltaEntry>>;
118
+ /**
119
+ * Cross-account in-flight proposal feed. Paginated newest-first by
120
+ * `originating_timestamp DESC`. Takes no `status` filter — every
121
+ * entry is in-flight by definition. EVM accounts do not appear in
122
+ * v1 per FR-017. Spec reference:
123
+ * `005-operator-dashboard-metrics` US7.
124
+ */
125
+ listGlobalProposals(options?: PaginationOptions): Promise<PagedResult<DashboardGlobalProposalEntry>>;
26
126
  private request;
27
127
  private toHttpError;
28
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EAExB,yBAAyB,EAEzB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EAEtB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,qBAAa,yBAA0B,SAAQ,KAAK;aAIhC,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;IAN5D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;gBAGf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;CAU7D;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EAC/B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,iCAAiC;IAahD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMjE,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAcvE,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAQzC,YAAY,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAQlD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;YASxD,OAAO;YA4BP,WAAW;CAU1B"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EAExB,uBAAuB,EACvB,mBAAmB,EAEnB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EAItB,mBAAmB,EACnB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EAEtB,yBAAyB,EACzB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAC3B,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,kBAAkB,CAE7B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;aAIhC,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;IAN5D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;gBAGf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;CAU7D;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EAC/B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,iCAAiC;IAahD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMjE,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAcvE,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAQ/C;;;;;;;;;;OAUG;IACG,YAAY,CAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAMhD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAQlD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAStE;;;;;;;;;;;;;;;;;OAiBG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAS9E;;;;OAIG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAU5C;;;;;;OAMG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAU/C;;;;;;OAMG;IACG,gBAAgB,CACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAmBlD;;;;;;OAMG;IACG,mBAAmB,CACvB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;YAMvC,OAAO;YA4BP,WAAW;CAU1B"}
package/dist/http.js CHANGED
@@ -1,3 +1,79 @@
1
+ /**
2
+ * Set of stable error codes added by feature
3
+ * `005-operator-dashboard-metrics`. Used by {@link parseErrorBody} to
4
+ * narrow the unknown server `code` to the typed
5
+ * {@link DashboardErrorCode} union.
6
+ */
7
+ const DASHBOARD_ERROR_CODES = new Set([
8
+ 'authentication_failed',
9
+ 'account_not_found',
10
+ 'invalid_cursor',
11
+ 'invalid_limit',
12
+ 'invalid_status_filter',
13
+ 'data_unavailable',
14
+ // Snapshot-specific codes (FR-045).
15
+ 'unsupported_for_network',
16
+ 'account_data_unavailable',
17
+ ]);
18
+ /**
19
+ * Parse an error response body into a typed `{ code, message }` shape.
20
+ * Clients SHOULD branch on `code` rather than on the HTTP status alone
21
+ * — see FR-028 of `005-operator-dashboard-metrics`.
22
+ *
23
+ * Accepts either a `Response` (fetch result) or a pre-read JSON body.
24
+ * Returns `{ code: null, message: null }` when the body is absent or
25
+ * malformed; never throws.
26
+ */
27
+ export async function parseErrorBody(response) {
28
+ let raw;
29
+ if (response &&
30
+ typeof response === 'object' &&
31
+ 'text' in response &&
32
+ typeof response.text === 'function') {
33
+ // `response.text()` itself can reject when the body has already
34
+ // been consumed or the underlying stream errors. The function's
35
+ // contract says we never throw, so swallow that and treat it the
36
+ // same as an empty body.
37
+ let body;
38
+ try {
39
+ body = await response.text();
40
+ }
41
+ catch {
42
+ return { code: null, message: null };
43
+ }
44
+ if (!body) {
45
+ return { code: null, message: null };
46
+ }
47
+ try {
48
+ raw = JSON.parse(body);
49
+ }
50
+ catch {
51
+ return { code: null, message: null };
52
+ }
53
+ }
54
+ else {
55
+ raw = response;
56
+ }
57
+ if (raw === null || typeof raw !== 'object') {
58
+ return { code: null, message: null };
59
+ }
60
+ const record = raw;
61
+ const codeRaw = record['code'];
62
+ const code = typeof codeRaw === 'string' ? codeRaw : null;
63
+ const messageRaw = record['error'];
64
+ const message = typeof messageRaw === 'string' ? messageRaw : null;
65
+ const retryRaw = record['retry_after_secs'];
66
+ const retryAfterSecs = typeof retryRaw === 'number' && Number.isInteger(retryRaw)
67
+ ? retryRaw
68
+ : undefined;
69
+ return { code, message, retryAfterSecs };
70
+ }
71
+ /**
72
+ * Type guard narrowing an arbitrary string to {@link DashboardErrorCode}.
73
+ */
74
+ export function isDashboardErrorCode(value) {
75
+ return DASHBOARD_ERROR_CODES.has(value);
76
+ }
1
77
  export class GuardianOperatorHttpError extends Error {
2
78
  status;
3
79
  statusText;
@@ -53,13 +129,116 @@ export class GuardianOperatorHttpClient {
53
129
  async logout() {
54
130
  return this.request(new URL('auth/logout', this.baseUrl), { method: 'POST' }, parseLogoutResponse);
55
131
  }
56
- async listAccounts() {
57
- return this.request(new URL('dashboard/accounts', this.baseUrl), { method: 'GET' }, parseAccountsResponse);
132
+ /**
133
+ * Paginated account list per feature
134
+ * `005-operator-dashboard-metrics` US1 / FR-001..FR-008.
135
+ *
136
+ * **Breaking change vs. `003-operator-account-apis`**: the response
137
+ * is now a {@link PagedResult} envelope. The previous
138
+ * unparameterized full-inventory mode and `total_count` field are
139
+ * removed; aggregate inventory totals are exposed via
140
+ * {@link GuardianOperatorHttpClient.getDashboardInfo}. Callers that
141
+ * relied on `listAccounts()` must migrate to this method.
142
+ */
143
+ async listAccounts(options = {}) {
144
+ const url = new URL('dashboard/accounts', this.baseUrl);
145
+ applyPaginationParams(url, options);
146
+ return this.request(url, { method: 'GET' }, parseAccountListPage);
147
+ }
148
+ /**
149
+ * Inventory and lifecycle health snapshot per feature
150
+ * `005-operator-dashboard-metrics` US2 / FR-008..FR-012.
151
+ */
152
+ async getDashboardInfo() {
153
+ return this.request(new URL('dashboard/info', this.baseUrl), { method: 'GET' }, parseDashboardInfo);
58
154
  }
59
155
  async getAccount(accountId) {
60
156
  const encodedAccountId = encodeURIComponent(accountId);
61
157
  return this.request(new URL(`dashboard/accounts/${encodedAccountId}`, this.baseUrl), { method: 'GET' }, parseAccountResponse);
62
158
  }
159
+ /**
160
+ * Return a decoded snapshot of `accountId`'s stored state at the
161
+ * commitment Guardian last canonicalized — v1 surface exposes the
162
+ * fungible/non-fungible vault. The endpoint distinguishes its
163
+ * failure modes via the FR-045 error taxonomy:
164
+ *
165
+ * - `400 unsupported_for_network` — the account's `network_config`
166
+ * is EVM. The snapshot endpoint is Miden-only by construction;
167
+ * this is a permanent condition for the account on this surface,
168
+ * not a transient failure.
169
+ * - `404 account_not_found` — no metadata exists.
170
+ * - `503 account_data_unavailable` — metadata exists but the state
171
+ * row cannot be loaded, or the stored blob fails to deserialize
172
+ * as a Miden `Account`. Transient/recoverable.
173
+ *
174
+ * Spec reference: follow-up addition to `005-operator-dashboard-metrics`
175
+ * FR-043..FR-046.
176
+ */
177
+ async getAccountSnapshot(accountId) {
178
+ const encodedAccountId = encodeURIComponent(accountId);
179
+ return this.request(new URL(`dashboard/accounts/${encodedAccountId}/snapshot`, this.baseUrl), { method: 'GET' }, parseAccountSnapshot);
180
+ }
181
+ /**
182
+ * List the per-account delta feed for `accountId`, paginated
183
+ * newest-first by `nonce DESC`. Spec reference:
184
+ * `005-operator-dashboard-metrics` US3.
185
+ */
186
+ async listAccountDeltas(accountId, options = {}) {
187
+ const encodedAccountId = encodeURIComponent(accountId);
188
+ const url = new URL(`dashboard/accounts/${encodedAccountId}/deltas`, this.baseUrl);
189
+ applyPaginationParams(url, options);
190
+ return this.request(url, { method: 'GET' }, parseDeltaPage);
191
+ }
192
+ /**
193
+ * List the per-account in-flight multisig proposal queue for
194
+ * `accountId`, paginated newest-first by `(nonce DESC, commitment
195
+ * DESC)`. Single-key Miden and EVM accounts always return an empty
196
+ * page per FR-017. Spec reference:
197
+ * `005-operator-dashboard-metrics` US4.
198
+ */
199
+ async listAccountProposals(accountId, options = {}) {
200
+ const encodedAccountId = encodeURIComponent(accountId);
201
+ const url = new URL(`dashboard/accounts/${encodedAccountId}/proposals`, this.baseUrl);
202
+ applyPaginationParams(url, options);
203
+ return this.request(url, { method: 'GET' }, parseProposalPage);
204
+ }
205
+ /**
206
+ * Cross-account delta feed. Paginated newest-first by
207
+ * `status_timestamp DESC`. The optional `status` filter accepts a
208
+ * single status or an array; the wrapper serializes the array to
209
+ * comma-separated. Spec reference:
210
+ * `005-operator-dashboard-metrics` US6.
211
+ */
212
+ async listGlobalDeltas(options = {}) {
213
+ const url = new URL('dashboard/deltas', this.baseUrl);
214
+ if (options.limit !== undefined) {
215
+ url.searchParams.set('limit', String(options.limit));
216
+ }
217
+ if (options.cursor !== undefined) {
218
+ url.searchParams.set('cursor', options.cursor);
219
+ }
220
+ if (options.status !== undefined) {
221
+ const statuses = Array.isArray(options.status)
222
+ ? options.status
223
+ : [options.status];
224
+ if (statuses.length > 0) {
225
+ url.searchParams.set('status', statuses.join(','));
226
+ }
227
+ }
228
+ return this.request(url, { method: 'GET' }, parseGlobalDeltasPage);
229
+ }
230
+ /**
231
+ * Cross-account in-flight proposal feed. Paginated newest-first by
232
+ * `originating_timestamp DESC`. Takes no `status` filter — every
233
+ * entry is in-flight by definition. EVM accounts do not appear in
234
+ * v1 per FR-017. Spec reference:
235
+ * `005-operator-dashboard-metrics` US7.
236
+ */
237
+ async listGlobalProposals(options = {}) {
238
+ const url = new URL('dashboard/proposals', this.baseUrl);
239
+ applyPaginationParams(url, options);
240
+ return this.request(url, { method: 'GET' }, parseGlobalProposalsPage);
241
+ }
63
242
  async request(url, init, parse) {
64
243
  const response = await this.fetchImpl(url.toString(), {
65
244
  ...init,
@@ -174,19 +353,109 @@ function parseLogoutResponse(value) {
174
353
  success: requireSuccess(record, 'logout response'),
175
354
  };
176
355
  }
177
- function parseAccountsResponse(value) {
178
- const record = asRecord(value, 'accounts response');
356
+ function parseAccountListPage(value) {
357
+ return parsePagedResult(value, parseAccountSummary, 'accounts page');
358
+ }
359
+ function parseDashboardInfo(value) {
360
+ const record = asRecord(value, 'dashboard info');
361
+ const serviceStatusRaw = requireString(record, 'service_status', 'dashboard info');
362
+ let serviceStatus;
363
+ if (serviceStatusRaw === 'healthy' || serviceStatusRaw === 'degraded') {
364
+ serviceStatus = serviceStatusRaw;
365
+ }
366
+ else {
367
+ throw new GuardianOperatorContractError('dashboard info', `expected service_status to be "healthy" or "degraded", got ${JSON.stringify(serviceStatusRaw)}`);
368
+ }
369
+ const counts = asRecord(requireField(record, 'delta_status_counts', 'dashboard info'), 'dashboard info.delta_status_counts');
370
+ const buildRecord = asRecord(requireField(record, 'build', 'dashboard info'), 'dashboard info.build');
371
+ const profileRaw = requireString(buildRecord, 'profile', 'dashboard info.build');
372
+ if (profileRaw !== 'debug' && profileRaw !== 'release') {
373
+ throw new GuardianOperatorContractError('dashboard info.build', `expected profile to be "debug" or "release", got ${JSON.stringify(profileRaw)}`);
374
+ }
375
+ const build = {
376
+ version: requireString(buildRecord, 'version', 'dashboard info.build'),
377
+ gitCommit: requireString(buildRecord, 'git_commit', 'dashboard info.build'),
378
+ profile: profileRaw,
379
+ startedAt: requireString(buildRecord, 'started_at', 'dashboard info.build'),
380
+ };
381
+ const backendRecord = asRecord(requireField(record, 'backend', 'dashboard info'), 'dashboard info.backend');
382
+ const storageRaw = requireString(backendRecord, 'storage', 'dashboard info.backend');
383
+ if (storageRaw !== 'filesystem' && storageRaw !== 'postgres') {
384
+ throw new GuardianOperatorContractError('dashboard info.backend', `expected storage to be "filesystem" or "postgres", got ${JSON.stringify(storageRaw)}`);
385
+ }
386
+ const canonicalizationField = backendRecord['canonicalization'];
387
+ let canonicalization;
388
+ if (canonicalizationField === null || canonicalizationField === undefined) {
389
+ canonicalization = null;
390
+ }
391
+ else {
392
+ const c = asRecord(canonicalizationField, 'dashboard info.backend.canonicalization');
393
+ canonicalization = {
394
+ checkIntervalSeconds: requireInteger(c, 'check_interval_seconds', 'dashboard info.backend.canonicalization'),
395
+ maxRetries: requireInteger(c, 'max_retries', 'dashboard info.backend.canonicalization'),
396
+ submissionGracePeriodSeconds: requireInteger(c, 'submission_grace_period_seconds', 'dashboard info.backend.canonicalization'),
397
+ };
398
+ }
399
+ const backend = {
400
+ storage: storageRaw,
401
+ supportedAckSchemes: requireStringArray(backendRecord, 'supported_ack_schemes', 'dashboard info.backend'),
402
+ canonicalization,
403
+ };
404
+ const authMethodsRecord = asRecord(requireField(record, 'accounts_by_auth_method', 'dashboard info'), 'dashboard info.accounts_by_auth_method');
405
+ const accountsByAuthMethod = {};
406
+ for (const [key, raw] of Object.entries(authMethodsRecord)) {
407
+ if (typeof raw !== 'number' || !Number.isInteger(raw) || raw < 0) {
408
+ throw new GuardianOperatorContractError('dashboard info.accounts_by_auth_method', `expected non-negative integer count for "${key}", got ${JSON.stringify(raw)}`);
409
+ }
410
+ accountsByAuthMethod[key] = raw;
411
+ }
179
412
  return {
180
- success: requireSuccess(record, 'accounts response'),
181
- totalCount: requireInteger(record, 'total_count', 'accounts response'),
182
- accounts: requireArray(record, 'accounts', 'accounts response').map((entry, index) => parseAccountSummary(entry, `accounts[${index}]`)),
413
+ serviceStatus,
414
+ environment: requireString(record, 'environment', 'dashboard info'),
415
+ build,
416
+ backend,
417
+ totalAccountCount: requireInteger(record, 'total_account_count', 'dashboard info'),
418
+ accountsByAuthMethod,
419
+ latestActivity: requireNullableString(record, 'latest_activity', 'dashboard info'),
420
+ deltaStatusCounts: {
421
+ candidate: requireInteger(counts, 'candidate', 'dashboard info.delta_status_counts'),
422
+ canonical: requireInteger(counts, 'canonical', 'dashboard info.delta_status_counts'),
423
+ discarded: requireInteger(counts, 'discarded', 'dashboard info.delta_status_counts'),
424
+ },
425
+ inFlightProposalCount: requireInteger(record, 'in_flight_proposal_count', 'dashboard info'),
426
+ degradedAggregates: requireStringArray(record, 'degraded_aggregates', 'dashboard info'),
183
427
  };
184
428
  }
185
429
  function parseAccountResponse(value) {
186
- const record = asRecord(value, 'account response');
430
+ return parseAccountDetail(value, 'account response');
431
+ }
432
+ function parseAccountSnapshot(value) {
433
+ const record = asRecord(value, 'account snapshot');
434
+ const vaultRecord = asRecord(requireField(record, 'vault', 'account snapshot'), 'account snapshot.vault');
435
+ const fungibleRaw = requireArray(vaultRecord, 'fungible', 'account snapshot.vault');
436
+ const nonFungibleRaw = requireArray(vaultRecord, 'non_fungible', 'account snapshot.vault');
437
+ const fungible = fungibleRaw.map((entry, idx) => {
438
+ const ctx = `account snapshot.vault.fungible[${idx}]`;
439
+ const r = asRecord(entry, ctx);
440
+ return {
441
+ faucetId: requireString(r, 'faucet_id', ctx),
442
+ amount: requireString(r, 'amount', ctx),
443
+ };
444
+ });
445
+ const nonFungible = nonFungibleRaw.map((entry, idx) => {
446
+ const ctx = `account snapshot.vault.non_fungible[${idx}]`;
447
+ const r = asRecord(entry, ctx);
448
+ return {
449
+ faucetId: requireString(r, 'faucet_id', ctx),
450
+ vaultKey: requireString(r, 'vault_key', ctx),
451
+ };
452
+ });
453
+ const vault = { fungible, nonFungible };
187
454
  return {
188
- success: requireSuccess(record, 'account response'),
189
- account: parseAccountDetail(requireField(record, 'account', 'account response'), 'account'),
455
+ commitment: requireString(record, 'commitment', 'account snapshot'),
456
+ updatedAt: requireString(record, 'updated_at', 'account snapshot'),
457
+ hasPendingCandidate: requireBoolean(record, 'has_pending_candidate', 'account snapshot'),
458
+ vault,
190
459
  };
191
460
  }
192
461
  function parseAccountSummary(value, context) {
@@ -226,8 +495,21 @@ function parseErrorResponse(value) {
226
495
  }
227
496
  retryAfterSecs = retryAfterValue;
228
497
  }
498
+ // Optional stable machine-readable error code added by feature
499
+ // `005-operator-dashboard-metrics` and required for the dashboard
500
+ // error taxonomy (FR-028). Older servers may omit it; tolerate that
501
+ // by leaving the field undefined.
502
+ const codeValue = record.code;
503
+ let code;
504
+ if (codeValue !== undefined) {
505
+ if (typeof codeValue !== 'string') {
506
+ throw new GuardianOperatorContractError('error response', 'code must be a string when present');
507
+ }
508
+ code = codeValue;
509
+ }
229
510
  return {
230
511
  success: false,
512
+ code,
231
513
  error: requireString(record, 'error', 'error response'),
232
514
  retryAfterSecs,
233
515
  };
@@ -303,4 +585,119 @@ function requireStringArray(record, key, context) {
303
585
  return entry;
304
586
  });
305
587
  }
588
+ // ---------------------------------------------------------------------------
589
+ // Pagination helpers — feature `005-operator-dashboard-metrics`.
590
+ // ---------------------------------------------------------------------------
591
+ function applyPaginationParams(url, options) {
592
+ if (options.limit !== undefined) {
593
+ url.searchParams.set('limit', String(options.limit));
594
+ }
595
+ if (options.cursor !== undefined) {
596
+ url.searchParams.set('cursor', options.cursor);
597
+ }
598
+ }
599
+ function parseDeltaPage(value) {
600
+ return parsePagedResult(value, parseDeltaEntry, 'deltas page');
601
+ }
602
+ function parseProposalPage(value) {
603
+ return parsePagedResult(value, parseProposalEntry, 'proposals page');
604
+ }
605
+ function parseGlobalDeltasPage(value) {
606
+ return parsePagedResult(value, (entry, ctx) => parseGlobalDeltaEntry(entry, ctx), 'global deltas page');
607
+ }
608
+ function parseGlobalProposalsPage(value) {
609
+ return parsePagedResult(value, (entry, ctx) => parseGlobalProposalEntry(entry, ctx), 'global proposals page');
610
+ }
611
+ function parseGlobalDeltaEntry(value, context) {
612
+ const base = parseDeltaEntry(value, context);
613
+ if (!base.accountId) {
614
+ throw new GuardianOperatorContractError(context, 'global delta feed entries must include account_id');
615
+ }
616
+ return base;
617
+ }
618
+ function parseGlobalProposalEntry(value, context) {
619
+ const base = parseProposalEntry(value, context);
620
+ if (!base.accountId) {
621
+ throw new GuardianOperatorContractError(context, 'global proposal feed entries must include account_id');
622
+ }
623
+ return base;
624
+ }
625
+ function parsePagedResult(value, parseItem, context) {
626
+ const record = asRecord(value, context);
627
+ const items = requireArray(record, 'items', context).map((entry, index) => parseItem(entry, `${context}.items[${index}]`));
628
+ const nextCursorRaw = requireField(record, 'next_cursor', context);
629
+ let nextCursor;
630
+ if (nextCursorRaw === null) {
631
+ nextCursor = null;
632
+ }
633
+ else if (typeof nextCursorRaw === 'string') {
634
+ nextCursor = nextCursorRaw;
635
+ }
636
+ else {
637
+ throw new GuardianOperatorContractError(context, 'next_cursor must be a string or null');
638
+ }
639
+ return { items, nextCursor };
640
+ }
641
+ function parseDeltaEntry(value, context) {
642
+ const record = asRecord(value, context);
643
+ const entry = {
644
+ nonce: requireInteger(record, 'nonce', context),
645
+ status: parseDeltaStatus(requireString(record, 'status', context), `${context}.status`),
646
+ statusTimestamp: requireString(record, 'status_timestamp', context),
647
+ prevCommitment: requireString(record, 'prev_commitment', context),
648
+ newCommitment: requireNullableString(record, 'new_commitment', context),
649
+ };
650
+ if (record.retry_count !== undefined) {
651
+ const retry = record.retry_count;
652
+ if (typeof retry !== 'number' || !Number.isInteger(retry) || retry < 0) {
653
+ throw new GuardianOperatorContractError(context, 'retry_count must be a non-negative integer when present');
654
+ }
655
+ entry.retryCount = retry;
656
+ }
657
+ if (record.account_id !== undefined) {
658
+ if (typeof record.account_id !== 'string') {
659
+ throw new GuardianOperatorContractError(context, 'account_id must be a string when present');
660
+ }
661
+ entry.accountId = record.account_id;
662
+ }
663
+ if (record.proposal_type !== undefined) {
664
+ if (typeof record.proposal_type !== 'string') {
665
+ throw new GuardianOperatorContractError(context, 'proposal_type must be a string when present');
666
+ }
667
+ entry.proposalType = record.proposal_type;
668
+ }
669
+ return entry;
670
+ }
671
+ function parseProposalEntry(value, context) {
672
+ const record = asRecord(value, context);
673
+ const entry = {
674
+ commitment: requireString(record, 'commitment', context),
675
+ nonce: requireInteger(record, 'nonce', context),
676
+ proposerId: requireString(record, 'proposer_id', context),
677
+ originatingTimestamp: requireString(record, 'originating_timestamp', context),
678
+ signaturesCollected: requireInteger(record, 'signatures_collected', context),
679
+ signaturesRequired: requireInteger(record, 'signatures_required', context),
680
+ prevCommitment: requireString(record, 'prev_commitment', context),
681
+ newCommitment: requireNullableString(record, 'new_commitment', context),
682
+ };
683
+ if (record.account_id !== undefined) {
684
+ if (typeof record.account_id !== 'string') {
685
+ throw new GuardianOperatorContractError(context, 'account_id must be a string when present');
686
+ }
687
+ entry.accountId = record.account_id;
688
+ }
689
+ if (record.proposal_type !== undefined) {
690
+ if (typeof record.proposal_type !== 'string') {
691
+ throw new GuardianOperatorContractError(context, 'proposal_type must be a string when present');
692
+ }
693
+ entry.proposalType = record.proposal_type;
694
+ }
695
+ return entry;
696
+ }
697
+ function parseDeltaStatus(value, context) {
698
+ if (value === 'candidate' || value === 'canonical' || value === 'discarded') {
699
+ return value;
700
+ }
701
+ throw new GuardianOperatorContractError(context, `expected status to be "candidate" / "canonical" / "discarded", got ${JSON.stringify(value)}`);
702
+ }
306
703
  //# sourceMappingURL=http.js.map
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { GuardianOperatorContractError, GuardianOperatorHttpClient, GuardianOperatorHttpError, } from './http.js';
2
- export type { DashboardAccountDetail, DashboardAccountResponse, DashboardAccountsResponse, DashboardAccountStateStatus, DashboardAccountSummary, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallenge, OperatorChallengeResponse, VerifyOperatorRequest, VerifyOperatorResponse, } from './types.js';
1
+ export { GuardianOperatorContractError, GuardianOperatorHttpClient, GuardianOperatorHttpError, isDashboardErrorCode, parseErrorBody, } from './http.js';
2
+ export type { PaginationOptions, ParsedErrorBody } from './http.js';
3
+ export type { DashboardAccountDetail, DashboardAccountResponse, DashboardAccountStateStatus, DashboardAccountSummary, DashboardDeltaEntry, DashboardDeltaStatus, DashboardErrorCode, DashboardGlobalDeltaEntry, DashboardGlobalDeltaStatusFilter, DashboardGlobalProposalEntry, DashboardInfoResponse, DashboardProposalEntry, GlobalDeltasOptions, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallenge, OperatorChallengeResponse, PagedResult, VerifyOperatorRequest, VerifyOperatorResponse, } from './types.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpE,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { GuardianOperatorContractError, GuardianOperatorHttpClient, GuardianOperatorHttpError, } from './http.js';
1
+ export { GuardianOperatorContractError, GuardianOperatorHttpClient, GuardianOperatorHttpError, isDashboardErrorCode, parseErrorBody, } from './http.js';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,GACf,MAAM,WAAW,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,15 @@
1
1
  export type DashboardAccountStateStatus = 'available' | 'unavailable';
2
2
  export interface GuardianOperatorHttpErrorData {
3
3
  success: false;
4
+ /**
5
+ * Stable, machine-readable error code emitted by the server. Clients
6
+ * SHOULD branch on this rather than on `error` (the human message) or
7
+ * the HTTP status alone. Codes added by feature
8
+ * `005-operator-dashboard-metrics` are typed via {@link DashboardErrorCode};
9
+ * other codes (e.g. `account_not_found`, `authentication_failed`) are
10
+ * forwarded as raw strings.
11
+ */
12
+ code?: string;
4
13
  error: string;
5
14
  retryAfterSecs?: number;
6
15
  }
@@ -48,13 +57,189 @@ export interface DashboardAccountDetail extends DashboardAccountSummary {
48
57
  stateCreatedAt: string | null;
49
58
  stateUpdatedAt: string | null;
50
59
  }
51
- export interface DashboardAccountsResponse {
52
- success: true;
53
- totalCount: number;
54
- accounts: DashboardAccountSummary[];
60
+ /**
61
+ * @deprecated Removed in feature `005-operator-dashboard-metrics`. The
62
+ * account list endpoint now returns
63
+ * `PagedResult<DashboardAccountSummary>` (see
64
+ * `GuardianOperatorHttpClient.listAccounts`). Aggregate inventory
65
+ * totals are exposed via `getDashboardInfo()`.
66
+ */
67
+ export type DashboardAccountsResponse = never;
68
+ /**
69
+ * `GET /dashboard/accounts/{id}` returns the account detail directly
70
+ * (no `success`, no `account` wrapper). The endpoint relies on the
71
+ * HTTP status code for success/failure and on the `DashboardErrorCode`
72
+ * body for typed errors.
73
+ *
74
+ * Kept as a named alias so callers and library code can still reference
75
+ * "the response shape" without having to spell out the detail type at
76
+ * each site. New shapes added to this endpoint MUST keep the bare
77
+ * payload form.
78
+ */
79
+ export type DashboardAccountResponse = DashboardAccountDetail;
80
+ /**
81
+ * Stable error codes that the dashboard endpoints can emit. The server's
82
+ * 401 path uses `authentication_failed` (the cookie/session middleware
83
+ * variant); a hypothetical token-bearer path could emit `unauthorized`,
84
+ * but that does not happen on the operator dashboard surface today.
85
+ *
86
+ * Mirrors the `code` enum on `ErrorBody` in
87
+ * `005-operator-dashboard-metrics/contracts/dashboard.openapi.yaml`.
88
+ */
89
+ export type DashboardErrorCode = 'authentication_failed' | 'account_not_found' | 'invalid_cursor' | 'invalid_limit' | 'invalid_status_filter' | 'data_unavailable' | 'unsupported_for_network' | 'account_data_unavailable';
90
+ export interface PagedResult<T> {
91
+ items: T[];
92
+ nextCursor: string | null;
55
93
  }
56
- export interface DashboardAccountResponse {
57
- success: true;
58
- account: DashboardAccountDetail;
94
+ export type DashboardDeltaStatus = 'candidate' | 'canonical' | 'discarded';
95
+ export interface DashboardDeltaEntry {
96
+ nonce: number;
97
+ accountId?: string;
98
+ status: DashboardDeltaStatus;
99
+ statusTimestamp: string;
100
+ prevCommitment: string;
101
+ newCommitment: string | null;
102
+ retryCount?: number;
103
+ /**
104
+ * Multisig proposal type tag carried in
105
+ * `delta_payload.metadata.proposal_type` on the underlying record
106
+ * (e.g. `"add_signer"`, `"p2id"`, `"change_threshold"`, ...). Absent
107
+ * for direct `push_delta` single-key Miden writes and for EVM
108
+ * deltas, which carry no metadata blob.
109
+ */
110
+ proposalType?: string;
111
+ }
112
+ export interface DashboardProposalEntry {
113
+ commitment: string;
114
+ nonce: number;
115
+ accountId?: string;
116
+ proposerId: string;
117
+ originatingTimestamp: string;
118
+ signaturesCollected: number;
119
+ signaturesRequired: number;
120
+ prevCommitment: string;
121
+ newCommitment: string | null;
122
+ /** See {@link DashboardDeltaEntry.proposalType}. In practice always
123
+ * populated for in-flight multisig proposals on this endpoint. */
124
+ proposalType?: string;
125
+ }
126
+ /**
127
+ * Global delta feed entry. Identical to {@link DashboardDeltaEntry}
128
+ * but `accountId` is required (every entry on the global feed is
129
+ * tagged with the account it belongs to).
130
+ */
131
+ export interface DashboardGlobalDeltaEntry extends DashboardDeltaEntry {
132
+ accountId: string;
133
+ }
134
+ /**
135
+ * Global proposal feed entry. Identical to
136
+ * {@link DashboardProposalEntry} but `accountId` is required.
137
+ */
138
+ export interface DashboardGlobalProposalEntry extends DashboardProposalEntry {
139
+ accountId: string;
140
+ }
141
+ /** Fungible asset entry in an account vault snapshot. `amount` is a
142
+ * string to keep `u64` precision safe across JS. Decimal handling and
143
+ * USD conversion are dashboard-client concerns; Guardian does not
144
+ * carry token metadata or price oracles. */
145
+ export interface DashboardVaultFungibleEntry {
146
+ faucetId: string;
147
+ amount: string;
148
+ }
149
+ /** Non-fungible asset entry. `vaultKey` is the canonical Miden
150
+ * identifier for the asset within the vault. */
151
+ export interface DashboardVaultNonFungibleEntry {
152
+ faucetId: string;
153
+ vaultKey: string;
154
+ }
155
+ export interface DashboardVaultSnapshot {
156
+ fungible: DashboardVaultFungibleEntry[];
157
+ nonFungible: DashboardVaultNonFungibleEntry[];
158
+ }
159
+ /**
160
+ * Decoded snapshot of one account's stored state at the commitment
161
+ * Guardian last canonicalized. Source of truth is Guardian's stored
162
+ * state — no live Miden RPC calls. New fields land here as additive
163
+ * top-level keys derivable from the existing state blob.
164
+ */
165
+ export interface DashboardAccountSnapshot {
166
+ /** Hex state commitment the snapshot was decoded from. Equals
167
+ * `DashboardAccountDetail.currentCommitment` for the same account
168
+ * at the same point in time; callers can correlate the snapshot
169
+ * with a delta history entry by matching on this hex. */
170
+ commitment: string;
171
+ /** RFC3339 wall-clock time of the underlying state row's
172
+ * `updated_at` — i.e. when Guardian last persisted the
173
+ * canonicalized state this snapshot was decoded from. Equals
174
+ * `DashboardAccountDetail.stateUpdatedAt` for the same account at
175
+ * the same point in time. */
176
+ updatedAt: string;
177
+ /** True when the account has a candidate delta in flight that has
178
+ * not yet been canonicalized. The snapshot reflects the current
179
+ * canonical state only — when this is `true`, the vault content
180
+ * may already be stale relative to the chain. UIs SHOULD warn
181
+ * rather than silently display stale data. */
182
+ hasPendingCandidate: boolean;
183
+ vault: DashboardVaultSnapshot;
184
+ }
185
+ /**
186
+ * Optional `?status=` filter on the global delta feed (FR-033).
187
+ * Accepts either a single value or an array; the wrapper serializes
188
+ * to comma-separated.
189
+ */
190
+ export type DashboardGlobalDeltaStatusFilter = DashboardDeltaStatus | DashboardDeltaStatus[];
191
+ export interface GlobalDeltasOptions {
192
+ limit?: number;
193
+ cursor?: string;
194
+ status?: DashboardGlobalDeltaStatusFilter;
195
+ }
196
+ /** Build identity for the running `guardian-server` binary. */
197
+ export interface DashboardBuildInfo {
198
+ /** `guardian-server` package version (`CARGO_PKG_VERSION`). */
199
+ version: string;
200
+ /** Short git SHA at build time, or `"unknown"` when unavailable. */
201
+ gitCommit: string;
202
+ /** Cargo build profile: `"debug"` or `"release"`. */
203
+ profile: 'debug' | 'release';
204
+ /** RFC3339 wall-clock time the server initialized dashboard state. */
205
+ startedAt: string;
206
+ }
207
+ /** Canonicalization worker config when the server runs in
208
+ * candidate-commit mode. `null` indicates optimistic-commit mode. */
209
+ export interface DashboardCanonicalizationConfig {
210
+ checkIntervalSeconds: number;
211
+ maxRetries: number;
212
+ submissionGracePeriodSeconds: number;
213
+ }
214
+ /** Backend configuration snapshot. */
215
+ export interface DashboardBackendInfo {
216
+ /** `"filesystem"` or `"postgres"` based on the server's compiled
217
+ * feature flag. */
218
+ storage: 'filesystem' | 'postgres';
219
+ /** Acknowledgement signature schemes wired into the server's
220
+ * `AckRegistry`. */
221
+ supportedAckSchemes: string[];
222
+ /** `null` in optimistic-commit mode. */
223
+ canonicalization: DashboardCanonicalizationConfig | null;
224
+ }
225
+ export interface DashboardInfoResponse {
226
+ serviceStatus: 'healthy' | 'degraded';
227
+ environment: string;
228
+ build: DashboardBuildInfo;
229
+ backend: DashboardBackendInfo;
230
+ totalAccountCount: number;
231
+ /** Counts of accounts grouped by stable auth-method label
232
+ * (`"miden_falcon"`, `"miden_ecdsa"`, `"evm"`). Empty when marked
233
+ * degraded — check `degradedAggregates` for
234
+ * `"accounts_by_auth_method"`. */
235
+ accountsByAuthMethod: Record<string, number>;
236
+ latestActivity: string | null;
237
+ deltaStatusCounts: {
238
+ candidate: number;
239
+ canonical: number;
240
+ discarded: number;
241
+ };
242
+ inFlightProposalCount: number;
243
+ degradedAggregates: string[];
59
244
  }
60
245
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,aAAa,CAAC;AAEtE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,2BAA2B,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,sBAAsB,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,aAAa,CAAC;AAEtE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,KAAK,CAAC;IACf;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,2BAA2B,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAiB9D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,kBAAkB,GAKlB,yBAAyB,GACzB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;sEACkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;4CAG4C;AAC5C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;gDACgD;AAChD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IACxC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;6DAGyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;iCAI6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB;;;;kDAI8C;IAC9C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,sBAAsB,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GACxC,oBAAoB,GACpB,oBAAoB,EAAE,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;qEACqE;AACrE,MAAM,WAAW,+BAA+B;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC;uBACmB;IACnB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC;wBACoB;IACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,wCAAwC;IACxC,gBAAgB,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;sCAGkC;IAClC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/guardian-operator-client",
3
- "version": "0.14.3",
3
+ "version": "0.14.6",
4
4
  "description": "TypeScript HTTP client for Guardian operator dashboard endpoints",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",