@zincapp/znvault-cli 4.0.0 → 4.0.2

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.
Files changed (172) hide show
  1. package/dist/commands/advisor.js +7 -4
  2. package/dist/commands/advisor.js.map +1 -1
  3. package/dist/commands/apikey/conditions.d.ts.map +1 -1
  4. package/dist/commands/apikey/conditions.js +4 -3
  5. package/dist/commands/apikey/conditions.js.map +1 -1
  6. package/dist/commands/apikey/create.d.ts.map +1 -1
  7. package/dist/commands/apikey/create.js +4 -2
  8. package/dist/commands/apikey/create.js.map +1 -1
  9. package/dist/commands/apikey/delete.d.ts.map +1 -1
  10. package/dist/commands/apikey/delete.js +4 -2
  11. package/dist/commands/apikey/delete.js.map +1 -1
  12. package/dist/commands/apikey/enable-disable.d.ts.map +1 -1
  13. package/dist/commands/apikey/enable-disable.js +7 -4
  14. package/dist/commands/apikey/enable-disable.js.map +1 -1
  15. package/dist/commands/apikey/helpers.d.ts +16 -0
  16. package/dist/commands/apikey/helpers.d.ts.map +1 -1
  17. package/dist/commands/apikey/helpers.js +9 -0
  18. package/dist/commands/apikey/helpers.js.map +1 -1
  19. package/dist/commands/apikey/list.d.ts.map +1 -1
  20. package/dist/commands/apikey/list.js +4 -3
  21. package/dist/commands/apikey/list.js.map +1 -1
  22. package/dist/commands/apikey/managed/bind.d.ts.map +1 -1
  23. package/dist/commands/apikey/managed/bind.js +4 -3
  24. package/dist/commands/apikey/managed/bind.js.map +1 -1
  25. package/dist/commands/apikey/managed/conditions.d.ts.map +1 -1
  26. package/dist/commands/apikey/managed/conditions.js +5 -4
  27. package/dist/commands/apikey/managed/conditions.js.map +1 -1
  28. package/dist/commands/apikey/managed/config.d.ts.map +1 -1
  29. package/dist/commands/apikey/managed/config.js +4 -3
  30. package/dist/commands/apikey/managed/config.js.map +1 -1
  31. package/dist/commands/apikey/managed/create.d.ts.map +1 -1
  32. package/dist/commands/apikey/managed/create.js +4 -1
  33. package/dist/commands/apikey/managed/create.js.map +1 -1
  34. package/dist/commands/apikey/managed/delete.d.ts.map +1 -1
  35. package/dist/commands/apikey/managed/delete.js +4 -2
  36. package/dist/commands/apikey/managed/delete.js.map +1 -1
  37. package/dist/commands/apikey/managed/get.d.ts.map +1 -1
  38. package/dist/commands/apikey/managed/get.js +4 -2
  39. package/dist/commands/apikey/managed/get.js.map +1 -1
  40. package/dist/commands/apikey/managed/list.d.ts.map +1 -1
  41. package/dist/commands/apikey/managed/list.js +4 -2
  42. package/dist/commands/apikey/managed/list.js.map +1 -1
  43. package/dist/commands/apikey/managed/permissions.d.ts.map +1 -1
  44. package/dist/commands/apikey/managed/permissions.js +5 -3
  45. package/dist/commands/apikey/managed/permissions.js.map +1 -1
  46. package/dist/commands/apikey/managed/rotate.d.ts.map +1 -1
  47. package/dist/commands/apikey/managed/rotate.js +4 -3
  48. package/dist/commands/apikey/managed/rotate.js.map +1 -1
  49. package/dist/commands/apikey/permissions.d.ts.map +1 -1
  50. package/dist/commands/apikey/permissions.js +5 -3
  51. package/dist/commands/apikey/permissions.js.map +1 -1
  52. package/dist/commands/apikey/policies.d.ts.map +1 -1
  53. package/dist/commands/apikey/policies.js +10 -7
  54. package/dist/commands/apikey/policies.js.map +1 -1
  55. package/dist/commands/apikey/rotate.d.ts.map +1 -1
  56. package/dist/commands/apikey/rotate.js +4 -3
  57. package/dist/commands/apikey/rotate.js.map +1 -1
  58. package/dist/commands/apikey/show.d.ts.map +1 -1
  59. package/dist/commands/apikey/show.js +5 -4
  60. package/dist/commands/apikey/show.js.map +1 -1
  61. package/dist/commands/audit.d.ts.map +1 -1
  62. package/dist/commands/audit.js +10 -3
  63. package/dist/commands/audit.js.map +1 -1
  64. package/dist/commands/cluster.d.ts.map +1 -1
  65. package/dist/commands/cluster.js +31 -14
  66. package/dist/commands/cluster.js.map +1 -1
  67. package/dist/commands/group.js +15 -3
  68. package/dist/commands/group.js.map +1 -1
  69. package/dist/commands/health.d.ts.map +1 -1
  70. package/dist/commands/health.js +6 -5
  71. package/dist/commands/health.js.map +1 -1
  72. package/dist/commands/kms/crud.d.ts +1 -1
  73. package/dist/commands/kms/crud.d.ts.map +1 -1
  74. package/dist/commands/kms/crud.js +6 -6
  75. package/dist/commands/kms/crud.js.map +1 -1
  76. package/dist/commands/kms/index.d.ts.map +1 -1
  77. package/dist/commands/kms/index.js +5 -2
  78. package/dist/commands/kms/index.js.map +1 -1
  79. package/dist/commands/kms/lifecycle.d.ts +1 -1
  80. package/dist/commands/kms/lifecycle.d.ts.map +1 -1
  81. package/dist/commands/kms/lifecycle.js +7 -7
  82. package/dist/commands/kms/lifecycle.js.map +1 -1
  83. package/dist/commands/kms/routing.d.ts +5 -0
  84. package/dist/commands/kms/routing.d.ts.map +1 -1
  85. package/dist/commands/kms/routing.js +41 -5
  86. package/dist/commands/kms/routing.js.map +1 -1
  87. package/dist/commands/policy/attachments.d.ts +9 -5
  88. package/dist/commands/policy/attachments.d.ts.map +1 -1
  89. package/dist/commands/policy/attachments.js +16 -13
  90. package/dist/commands/policy/attachments.js.map +1 -1
  91. package/dist/commands/policy/crud.d.ts +6 -5
  92. package/dist/commands/policy/crud.d.ts.map +1 -1
  93. package/dist/commands/policy/crud.js +16 -11
  94. package/dist/commands/policy/crud.js.map +1 -1
  95. package/dist/commands/policy/helpers.d.ts +16 -0
  96. package/dist/commands/policy/helpers.d.ts.map +1 -1
  97. package/dist/commands/policy/helpers.js +9 -0
  98. package/dist/commands/policy/helpers.js.map +1 -1
  99. package/dist/commands/policy/io.d.ts +3 -2
  100. package/dist/commands/policy/io.d.ts.map +1 -1
  101. package/dist/commands/policy/io.js +7 -5
  102. package/dist/commands/policy/io.js.map +1 -1
  103. package/dist/commands/policy/list.d.ts +6 -2
  104. package/dist/commands/policy/list.d.ts.map +1 -1
  105. package/dist/commands/policy/list.js +7 -6
  106. package/dist/commands/policy/list.js.map +1 -1
  107. package/dist/commands/quarantine.js +23 -9
  108. package/dist/commands/quarantine.js.map +1 -1
  109. package/dist/commands/role.d.ts.map +1 -1
  110. package/dist/commands/role.js +36 -15
  111. package/dist/commands/role.js.map +1 -1
  112. package/dist/commands/sso/crud.d.ts +1 -1
  113. package/dist/commands/sso/crud.d.ts.map +1 -1
  114. package/dist/commands/sso/crud.js +16 -16
  115. package/dist/commands/sso/crud.js.map +1 -1
  116. package/dist/commands/sso/helpers.d.ts +7 -1
  117. package/dist/commands/sso/helpers.d.ts.map +1 -1
  118. package/dist/commands/sso/helpers.js +32 -1
  119. package/dist/commands/sso/helpers.js.map +1 -1
  120. package/dist/commands/sso/index.d.ts.map +1 -1
  121. package/dist/commands/sso/index.js +6 -1
  122. package/dist/commands/sso/index.js.map +1 -1
  123. package/dist/commands/user.js +11 -5
  124. package/dist/commands/user.js.map +1 -1
  125. package/dist/lib/client/apikeys.d.ts +21 -13
  126. package/dist/lib/client/apikeys.d.ts.map +1 -1
  127. package/dist/lib/client/apikeys.js +30 -26
  128. package/dist/lib/client/apikeys.js.map +1 -1
  129. package/dist/lib/client/audit.d.ts +54 -1
  130. package/dist/lib/client/audit.d.ts.map +1 -1
  131. package/dist/lib/client/audit.js +83 -9
  132. package/dist/lib/client/audit.js.map +1 -1
  133. package/dist/lib/client/index.d.ts +37 -36
  134. package/dist/lib/client/index.d.ts.map +1 -1
  135. package/dist/lib/client/index.js +37 -36
  136. package/dist/lib/client/index.js.map +1 -1
  137. package/dist/lib/client/managed-keys.d.ts +10 -7
  138. package/dist/lib/client/managed-keys.d.ts.map +1 -1
  139. package/dist/lib/client/managed-keys.js +16 -16
  140. package/dist/lib/client/managed-keys.js.map +1 -1
  141. package/dist/lib/client/policies.d.ts +14 -10
  142. package/dist/lib/client/policies.d.ts.map +1 -1
  143. package/dist/lib/client/policies.js +22 -22
  144. package/dist/lib/client/policies.js.map +1 -1
  145. package/dist/lib/client/quarantine.d.ts +25 -9
  146. package/dist/lib/client/quarantine.d.ts.map +1 -1
  147. package/dist/lib/client/quarantine.js +44 -27
  148. package/dist/lib/client/quarantine.js.map +1 -1
  149. package/dist/lib/client/users.d.ts +30 -3
  150. package/dist/lib/client/users.d.ts.map +1 -1
  151. package/dist/lib/client/users.js +39 -15
  152. package/dist/lib/client/users.js.map +1 -1
  153. package/dist/lib/command-context.d.ts +15 -0
  154. package/dist/lib/command-context.d.ts.map +1 -1
  155. package/dist/lib/command-context.js +9 -0
  156. package/dist/lib/command-context.js.map +1 -1
  157. package/dist/lib/db/health.d.ts.map +1 -1
  158. package/dist/lib/db/health.js +13 -4
  159. package/dist/lib/db/health.js.map +1 -1
  160. package/dist/lib/mode.d.ts +18 -4
  161. package/dist/lib/mode.d.ts.map +1 -1
  162. package/dist/lib/mode.js +13 -6
  163. package/dist/lib/mode.js.map +1 -1
  164. package/dist/tui/hooks/useApi.d.ts +14 -7
  165. package/dist/tui/hooks/useApi.d.ts.map +1 -1
  166. package/dist/tui/hooks/useApi.js.map +1 -1
  167. package/dist/tui/screens/Dashboard.d.ts.map +1 -1
  168. package/dist/tui/screens/Dashboard.js +2 -3
  169. package/dist/tui/screens/Dashboard.js.map +1 -1
  170. package/dist/types/index.d.ts +59 -12
  171. package/dist/types/index.d.ts.map +1 -1
  172. package/package.json +1 -1
@@ -9,6 +9,7 @@ export function registerUserCommands(parent, opts) {
9
9
  withRegisterContext(ctx, () => { registerUserCommandsInner(parent, ctx); });
10
10
  }
11
11
  function registerUserCommandsInner(parent, ctx) {
12
+ const asSuperadmin = ctx === 'superadmin';
12
13
  const user = parent
13
14
  .command('user')
14
15
  .description('User management commands');
@@ -28,6 +29,7 @@ function registerUserCommandsInner(parent, ctx) {
28
29
  tenantId: options.tenant,
29
30
  role: options.role,
30
31
  status: options.status,
32
+ asSuperadmin,
31
33
  });
32
34
  spinner.stop();
33
35
  if (options.json) {
@@ -82,6 +84,7 @@ function registerUserCommandsInner(parent, ctx) {
82
84
  email: options.email,
83
85
  tenantId: options.tenant,
84
86
  role: options.role,
87
+ asSuperadmin,
85
88
  });
86
89
  spinner.succeed('User created successfully');
87
90
  if (options.json) {
@@ -113,7 +116,7 @@ function registerUserCommandsInner(parent, ctx) {
113
116
  .action(async (id, options) => {
114
117
  const spinner = output.spinner('Fetching user...').start();
115
118
  try {
116
- const result = await mode.getUser(id);
119
+ const result = await mode.getUser(id, { asSuperadmin });
117
120
  spinner.stop();
118
121
  if (!result) {
119
122
  output.error(`User '${id}' not found`);
@@ -179,7 +182,7 @@ function registerUserCommandsInner(parent, ctx) {
179
182
  }
180
183
  const spinner = output.spinner('Updating user...').start();
181
184
  try {
182
- const result = await client.updateUser(id, updates);
185
+ const result = await client.updateUser(id, updates, { asSuperadmin });
183
186
  spinner.succeed('User updated successfully');
184
187
  if (options.json) {
185
188
  output.json(result);
@@ -220,7 +223,7 @@ function registerUserCommandsInner(parent, ctx) {
220
223
  }
221
224
  const spinner = output.spinner('Deleting user...').start();
222
225
  try {
223
- await client.deleteUser(id);
226
+ await client.deleteUser(id, { asSuperadmin });
224
227
  spinner.succeed(`User '${id}' deleted successfully`);
225
228
  }
226
229
  catch (err) {
@@ -261,7 +264,7 @@ function registerUserCommandsInner(parent, ctx) {
261
264
  }
262
265
  else {
263
266
  // API mode
264
- const result = await client.unlockUser(id);
267
+ const result = await client.unlockUser(id, { asSuperadmin });
265
268
  spinner.succeed('User unlocked successfully');
266
269
  if (options.json) {
267
270
  output.json({ success: true, id, ...result });
@@ -311,8 +314,11 @@ function registerUserCommandsInner(parent, ctx) {
311
314
  else {
312
315
  // API mode — superadmins must use /v1/superadmin/users/:id/reset-password
313
316
  // because the tenant route is JWT-tenant-scoped after v1.41.2.
317
+ // We prefer the explicit registration context over the dynamic
318
+ // auth-context check so that a tenant admin who happens to share
319
+ // a session with another role flag stays on the tenant surface.
314
320
  const result = await client.resetUserPassword(id, password, {
315
- asSuperadmin: isSuperadmin(),
321
+ asSuperadmin: asSuperadmin || isSuperadmin(),
316
322
  });
317
323
  spinner.succeed('Password reset successfully');
318
324
  if (options.json) {
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,21 @@
2
2
  * API Key management client
3
3
  *
4
4
  * Routing policy:
5
- * - When `tenantId` is supplied, the caller is acting as a superadmin and
5
+ * - When `tenantId` is supplied OR the caller passes `asSuperadmin: true`,
6
6
  * we target `/v1/superadmin/api-keys/*` (the cross-tenant surface).
7
- * - When `tenantId` is omitted, the caller is a tenant principal and we
8
- * target `/auth/api-keys/*` (tenant derived from JWT).
7
+ * - Otherwise, we target `/auth/api-keys/*` (tenant principal; tenant
8
+ * derived from JWT).
9
+ *
10
+ * The explicit `asSuperadmin` flag is required for `znvault superadmin
11
+ * apikey list` (no `--tenant`): the tenant surface rejects pure superadmin
12
+ * principals with "Superadmins must use /v1/superadmin/* routes".
9
13
  */
10
14
  import { HttpClient } from './http.js';
11
15
  import type { APIKey, CreateAPIKeyResponse, ListAPIKeysResponse, RotateAPIKeyResponse, APIKeySelfResponse, APIKeyPolicyAttachment } from '../../types/index.js';
12
16
  import type { MessageResponse } from './types.js';
17
+ export interface ApiKeyScope {
18
+ asSuperadmin?: boolean;
19
+ }
13
20
  export declare class ApiKeysClient extends HttpClient {
14
21
  create(data: {
15
22
  name: string;
@@ -19,19 +26,20 @@ export declare class ApiKeysClient extends HttpClient {
19
26
  tenantId?: string;
20
27
  ipAllowlist?: string[];
21
28
  conditions?: Record<string, unknown>;
29
+ asSuperadmin?: boolean;
22
30
  }): Promise<CreateAPIKeyResponse>;
23
- list(tenantId?: string): Promise<ListAPIKeysResponse>;
24
- getById(id: string, tenantId?: string): Promise<APIKey>;
25
- deleteById(id: string, tenantId?: string): Promise<void>;
26
- rotate(id: string, name?: string, tenantId?: string): Promise<RotateAPIKeyResponse>;
27
- updatePermissions(id: string, permissions: string[], tenantId?: string): Promise<APIKey>;
28
- updateConditions(id: string, conditions: Record<string, unknown>, tenantId?: string): Promise<APIKey>;
29
- setEnabled(id: string, enabled: boolean, tenantId?: string): Promise<APIKey>;
30
- getPolicies(id: string, tenantId?: string): Promise<{
31
+ list(tenantId?: string, opts?: ApiKeyScope): Promise<ListAPIKeysResponse>;
32
+ getById(id: string, tenantId?: string, opts?: ApiKeyScope): Promise<APIKey>;
33
+ deleteById(id: string, tenantId?: string, opts?: ApiKeyScope): Promise<void>;
34
+ rotate(id: string, name?: string, tenantId?: string, opts?: ApiKeyScope): Promise<RotateAPIKeyResponse>;
35
+ updatePermissions(id: string, permissions: string[], tenantId?: string, opts?: ApiKeyScope): Promise<APIKey>;
36
+ updateConditions(id: string, conditions: Record<string, unknown>, tenantId?: string, opts?: ApiKeyScope): Promise<APIKey>;
37
+ setEnabled(id: string, enabled: boolean, tenantId?: string, opts?: ApiKeyScope): Promise<APIKey>;
38
+ getPolicies(id: string, tenantId?: string, opts?: ApiKeyScope): Promise<{
31
39
  policies: APIKeyPolicyAttachment[];
32
40
  }>;
33
- attachPolicy(keyId: string, policyId: string, tenantId?: string): Promise<MessageResponse>;
34
- detachPolicy(keyId: string, policyId: string, tenantId?: string): Promise<MessageResponse>;
41
+ attachPolicy(keyId: string, policyId: string, tenantId?: string, opts?: ApiKeyScope): Promise<MessageResponse>;
42
+ detachPolicy(keyId: string, policyId: string, tenantId?: string, opts?: ApiKeyScope): Promise<MessageResponse>;
35
43
  getSelf(): Promise<APIKeySelfResponse>;
36
44
  rotateSelf(name?: string): Promise<RotateAPIKeyResponse & {
37
45
  expiresInDays: number;
@@ -1 +1 @@
1
- {"version":3,"file":"apikeys.d.ts","sourceRoot":"","sources":["../../../src/lib/client/apikeys.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASlD,qBAAa,aAAc,SAAQ,UAAU;IACrC,MAAM,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB3B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQrD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASnF,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxF,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5E,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAA;KAAE,CAAC;IAQ3F,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ1F,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ1F,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOtC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CAO3F"}
1
+ {"version":3,"file":"apikeys.d.ts","sourceRoot":"","sources":["../../../src/lib/client/apikeys.ts"],"names":[],"mappings":"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"}
@@ -3,22 +3,26 @@
3
3
  * API Key management client
4
4
  *
5
5
  * Routing policy:
6
- * - When `tenantId` is supplied, the caller is acting as a superadmin and
6
+ * - When `tenantId` is supplied OR the caller passes `asSuperadmin: true`,
7
7
  * we target `/v1/superadmin/api-keys/*` (the cross-tenant surface).
8
- * - When `tenantId` is omitted, the caller is a tenant principal and we
9
- * target `/auth/api-keys/*` (tenant derived from JWT).
8
+ * - Otherwise, we target `/auth/api-keys/*` (tenant principal; tenant
9
+ * derived from JWT).
10
+ *
11
+ * The explicit `asSuperadmin` flag is required for `znvault superadmin
12
+ * apikey list` (no `--tenant`): the tenant surface rejects pure superadmin
13
+ * principals with "Superadmins must use /v1/superadmin/* routes".
10
14
  */
11
15
  import { HttpClient } from './http.js';
12
16
  const TENANT_BASE = '/auth/api-keys';
13
17
  const ADMIN_BASE = '/v1/superadmin/api-keys';
14
- function basePath(tenantId) {
15
- return tenantId ? ADMIN_BASE : TENANT_BASE;
18
+ function basePath(tenantId, asSuperadmin) {
19
+ return tenantId || asSuperadmin ? ADMIN_BASE : TENANT_BASE;
16
20
  }
17
21
  export class ApiKeysClient extends HttpClient {
18
22
  async create(data) {
19
23
  return this.request({
20
24
  method: 'POST',
21
- path: basePath(data.tenantId),
25
+ path: basePath(data.tenantId, data.asSuperadmin),
22
26
  query: data.tenantId ? { tenantId: data.tenantId } : undefined,
23
27
  body: {
24
28
  name: data.name,
@@ -30,80 +34,80 @@ export class ApiKeysClient extends HttpClient {
30
34
  },
31
35
  });
32
36
  }
33
- async list(tenantId) {
37
+ async list(tenantId, opts) {
34
38
  return this.request({
35
39
  method: 'GET',
36
- path: basePath(tenantId),
40
+ path: basePath(tenantId, opts?.asSuperadmin),
37
41
  query: tenantId ? { tenantId } : undefined,
38
42
  });
39
43
  }
40
- async getById(id, tenantId) {
44
+ async getById(id, tenantId, opts) {
41
45
  return this.request({
42
46
  method: 'GET',
43
- path: `${basePath(tenantId)}/${id}`,
47
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}`,
44
48
  query: tenantId ? { tenantId } : undefined,
45
49
  });
46
50
  }
47
- async deleteById(id, tenantId) {
51
+ async deleteById(id, tenantId, opts) {
48
52
  await this.request({
49
53
  method: 'DELETE',
50
- path: `${basePath(tenantId)}/${id}`,
54
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}`,
51
55
  query: tenantId ? { tenantId } : undefined,
52
56
  });
53
57
  }
54
- async rotate(id, name, tenantId) {
58
+ async rotate(id, name, tenantId, opts) {
55
59
  return this.request({
56
60
  method: 'POST',
57
- path: `${basePath(tenantId)}/${id}/rotate`,
61
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}/rotate`,
58
62
  query: tenantId ? { tenantId } : undefined,
59
63
  body: name ? { name } : {},
60
64
  });
61
65
  }
62
- async updatePermissions(id, permissions, tenantId) {
66
+ async updatePermissions(id, permissions, tenantId, opts) {
63
67
  const response = await this.request({
64
68
  method: 'PATCH',
65
- path: `${basePath(tenantId)}/${id}/permissions`,
69
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}/permissions`,
66
70
  query: tenantId ? { tenantId } : undefined,
67
71
  body: { permissions },
68
72
  });
69
73
  return response.apiKey;
70
74
  }
71
- async updateConditions(id, conditions, tenantId) {
75
+ async updateConditions(id, conditions, tenantId, opts) {
72
76
  const response = await this.request({
73
77
  method: 'PATCH',
74
- path: `${basePath(tenantId)}/${id}/conditions`,
78
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}/conditions`,
75
79
  query: tenantId ? { tenantId } : undefined,
76
80
  body: { conditions },
77
81
  });
78
82
  return response.apiKey;
79
83
  }
80
- async setEnabled(id, enabled, tenantId) {
84
+ async setEnabled(id, enabled, tenantId, opts) {
81
85
  const response = await this.request({
82
86
  method: 'PATCH',
83
- path: `${basePath(tenantId)}/${id}/enabled`,
87
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}/enabled`,
84
88
  query: tenantId ? { tenantId } : undefined,
85
89
  body: { enabled },
86
90
  });
87
91
  return response.apiKey;
88
92
  }
89
- async getPolicies(id, tenantId) {
93
+ async getPolicies(id, tenantId, opts) {
90
94
  return this.request({
91
95
  method: 'GET',
92
- path: `${basePath(tenantId)}/${id}/policies`,
96
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${id}/policies`,
93
97
  query: tenantId ? { tenantId } : undefined,
94
98
  });
95
99
  }
96
- async attachPolicy(keyId, policyId, tenantId) {
100
+ async attachPolicy(keyId, policyId, tenantId, opts) {
97
101
  return this.request({
98
102
  method: 'POST',
99
- path: `${basePath(tenantId)}/${keyId}/policies/${policyId}`,
103
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${keyId}/policies/${policyId}`,
100
104
  query: tenantId ? { tenantId } : undefined,
101
105
  });
102
106
  }
103
- async detachPolicy(keyId, policyId, tenantId) {
107
+ async detachPolicy(keyId, policyId, tenantId, opts) {
104
108
  return this.request({
105
109
  method: 'DELETE',
106
- path: `${basePath(tenantId)}/${keyId}/policies/${policyId}`,
110
+ path: `${basePath(tenantId, opts?.asSuperadmin)}/${keyId}/policies/${policyId}`,
107
111
  query: tenantId ? { tenantId } : undefined,
108
112
  });
109
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apikeys.js","sourceRoot":"","sources":["../../../src/lib/client/apikeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apikeys.js","sourceRoot":"","sources":["../../../src/lib/client/apikeys.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,31 @@
1
1
  /**
2
2
  * Audit log client
3
+ *
4
+ * Routing:
5
+ * - `asSuperadmin: true` → `/v1/superadmin/audit*` (cross-tenant; required
6
+ * when the caller is a superadmin under `znvault superadmin audit`).
7
+ * - otherwise → `/v1/audit*` (tenant-scoped; tenant derived from JWT).
8
+ *
9
+ * Superadmins MUST use the `/v1/superadmin/*` surface; the tenant-scoped
10
+ * surface rejects superadmin principals with
11
+ * "Superadmins must use /v1/superadmin/* routes".
12
+ *
13
+ * Note: the tenant and superadmin namespaces use different query schemas:
14
+ * - tenant `/v1/audit`: snake_case (`client_cn`, `start_date`, `end_date`)
15
+ * - admin `/v1/superadmin/audit`: camelCase (`username`, `startDate`,
16
+ * `endDate`); also supports `tenantId` filter.
17
+ * The admin namespace exposes only `GET /v1/superadmin/audit` (list) and
18
+ * `GET /v1/superadmin/audit/stats`. There is no superadmin /verify or
19
+ * /export endpoint — so for those operations the client routes through the
20
+ * superadmin list path with an optional `tenantId` filter when in admin
21
+ * mode, and through the tenant `/v1/audit/verify` & `/v1/audit/export`
22
+ * routes otherwise.
3
23
  */
4
24
  import { HttpClient } from './http.js';
5
25
  import type { AuditEntry, AuditVerifyResult } from '../../types/index.js';
26
+ export interface AuditScopeOptions {
27
+ asSuperadmin?: boolean;
28
+ }
6
29
  export declare class AuditClient extends HttpClient {
7
30
  list(options?: {
8
31
  user?: string;
@@ -10,12 +33,42 @@ export declare class AuditClient extends HttpClient {
10
33
  startDate?: string;
11
34
  endDate?: string;
12
35
  limit?: number;
36
+ tenantId?: string;
37
+ asSuperadmin?: boolean;
13
38
  }): Promise<AuditEntry[]>;
14
- verifyChain(): Promise<AuditVerifyResult>;
39
+ /**
40
+ * Verify the HMAC chain integrity of audit logs.
41
+ *
42
+ * Only the tenant-scoped surface exposes `/v1/audit/verify`. When called
43
+ * with `asSuperadmin: true`, the request still targets `/v1/audit/verify`
44
+ * which will reject a pure superadmin principal — surface that error to
45
+ * the caller rather than silently no-op.
46
+ */
47
+ verifyChain(_opts?: AuditScopeOptions): Promise<AuditVerifyResult>;
48
+ /**
49
+ * Export audit logs.
50
+ *
51
+ * - In tenant mode, hits `/v1/audit/export` (CSV/JSON download).
52
+ * - In superadmin mode, the server only exposes `/v1/superadmin/audit`
53
+ * (list) — there is no dedicated export endpoint. We hit the list
54
+ * endpoint with a high `limit` so the caller can still serialize the
55
+ * resulting JSON to disk. CSV is not supported in admin mode.
56
+ */
15
57
  export(options?: {
16
58
  format?: 'json' | 'csv';
17
59
  startDate?: string;
18
60
  endDate?: string;
61
+ tenantId?: string;
62
+ asSuperadmin?: boolean;
19
63
  }): Promise<string>;
64
+ /**
65
+ * Audit statistics summary.
66
+ *
67
+ * Available on both tenant (`/v1/audit/stats`) and admin
68
+ * (`/v1/superadmin/audit/stats`) surfaces.
69
+ */
70
+ getStats(opts?: AuditScopeOptions & {
71
+ tenantId?: string;
72
+ }): Promise<unknown>;
20
73
  }
21
74
  //# sourceMappingURL=audit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/lib/client/audit.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,WAAY,SAAQ,UAAU;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAenB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAOzC,MAAM,CAAC,OAAO,CAAC,EAAE;QACrB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC;CAYpB"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/lib/client/audit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,UAAU;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA0BzB;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOxE;;;;;;;;OAQG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE;QACrB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BnB;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAOnF"}
@@ -1,40 +1,114 @@
1
1
  // Path: src/lib/client/audit.ts
2
2
  /**
3
3
  * Audit log client
4
+ *
5
+ * Routing:
6
+ * - `asSuperadmin: true` → `/v1/superadmin/audit*` (cross-tenant; required
7
+ * when the caller is a superadmin under `znvault superadmin audit`).
8
+ * - otherwise → `/v1/audit*` (tenant-scoped; tenant derived from JWT).
9
+ *
10
+ * Superadmins MUST use the `/v1/superadmin/*` surface; the tenant-scoped
11
+ * surface rejects superadmin principals with
12
+ * "Superadmins must use /v1/superadmin/* routes".
13
+ *
14
+ * Note: the tenant and superadmin namespaces use different query schemas:
15
+ * - tenant `/v1/audit`: snake_case (`client_cn`, `start_date`, `end_date`)
16
+ * - admin `/v1/superadmin/audit`: camelCase (`username`, `startDate`,
17
+ * `endDate`); also supports `tenantId` filter.
18
+ * The admin namespace exposes only `GET /v1/superadmin/audit` (list) and
19
+ * `GET /v1/superadmin/audit/stats`. There is no superadmin /verify or
20
+ * /export endpoint — so for those operations the client routes through the
21
+ * superadmin list path with an optional `tenantId` filter when in admin
22
+ * mode, and through the tenant `/v1/audit/verify` & `/v1/audit/export`
23
+ * routes otherwise.
4
24
  */
5
25
  import { HttpClient } from './http.js';
26
+ const TENANT_BASE = '/v1/audit';
27
+ const ADMIN_BASE = '/v1/superadmin/audit';
6
28
  export class AuditClient extends HttpClient {
7
29
  async list(options) {
8
- const response = await this.request({
9
- method: 'GET',
10
- path: '/v1/audit',
11
- query: {
30
+ const query = options?.asSuperadmin
31
+ ? {
32
+ username: options.user,
33
+ action: options.action,
34
+ startDate: options.startDate,
35
+ endDate: options.endDate,
36
+ limit: options.limit ?? 100,
37
+ tenantId: options.tenantId,
38
+ }
39
+ : {
12
40
  client_cn: options?.user,
13
41
  action: options?.action,
14
42
  start_date: options?.startDate,
15
43
  end_date: options?.endDate,
16
44
  limit: options?.limit ?? 100,
17
- },
45
+ };
46
+ const response = await this.request({
47
+ method: 'GET',
48
+ path: options?.asSuperadmin ? ADMIN_BASE : TENANT_BASE,
49
+ query,
18
50
  });
19
51
  return response.items;
20
52
  }
21
- async verifyChain() {
53
+ /**
54
+ * Verify the HMAC chain integrity of audit logs.
55
+ *
56
+ * Only the tenant-scoped surface exposes `/v1/audit/verify`. When called
57
+ * with `asSuperadmin: true`, the request still targets `/v1/audit/verify`
58
+ * which will reject a pure superadmin principal — surface that error to
59
+ * the caller rather than silently no-op.
60
+ */
61
+ async verifyChain(_opts) {
22
62
  return this.request({
23
63
  method: 'GET',
24
- path: '/v1/audit/verify',
64
+ path: `${TENANT_BASE}/verify`,
25
65
  });
26
66
  }
67
+ /**
68
+ * Export audit logs.
69
+ *
70
+ * - In tenant mode, hits `/v1/audit/export` (CSV/JSON download).
71
+ * - In superadmin mode, the server only exposes `/v1/superadmin/audit`
72
+ * (list) — there is no dedicated export endpoint. We hit the list
73
+ * endpoint with a high `limit` so the caller can still serialize the
74
+ * resulting JSON to disk. CSV is not supported in admin mode.
75
+ */
27
76
  async export(options) {
77
+ if (options?.asSuperadmin) {
78
+ const response = await this.request({
79
+ method: 'GET',
80
+ path: ADMIN_BASE,
81
+ query: {
82
+ startDate: options.startDate,
83
+ endDate: options.endDate,
84
+ tenantId: options.tenantId,
85
+ limit: 10000,
86
+ },
87
+ });
88
+ return JSON.stringify(response.items);
89
+ }
28
90
  return this.request({
29
91
  method: 'GET',
30
- path: '/v1/audit',
92
+ path: `${TENANT_BASE}/export`,
31
93
  query: {
32
94
  format: options?.format ?? 'json',
33
95
  start_date: options?.startDate,
34
96
  end_date: options?.endDate,
35
- limit: 10000,
36
97
  },
37
98
  });
38
99
  }
100
+ /**
101
+ * Audit statistics summary.
102
+ *
103
+ * Available on both tenant (`/v1/audit/stats`) and admin
104
+ * (`/v1/superadmin/audit/stats`) surfaces.
105
+ */
106
+ async getStats(opts) {
107
+ return this.request({
108
+ method: 'GET',
109
+ path: opts?.asSuperadmin ? `${ADMIN_BASE}/stats` : `${TENANT_BASE}/stats`,
110
+ query: opts?.tenantId ? { tenantId: opts.tenantId } : undefined,
111
+ });
112
+ }
39
113
  }
40
114
  //# sourceMappingURL=audit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/lib/client/audit.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,KAAK,CAAC,IAAI,CAAC,OAMV;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC;YACjE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACL,SAAS,EAAE,OAAO,EAAE,IAAI;gBACxB,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,UAAU,EAAE,OAAO,EAAE,SAAS;gBAC9B,QAAQ,EAAE,OAAO,EAAE,OAAO;gBAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG;aAC7B;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAoB;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAIZ;QACC,OAAO,IAAI,CAAC,OAAO,CAAS;YAC1B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,MAAM;gBACjC,UAAU,EAAE,OAAO,EAAE,SAAS;gBAC9B,QAAQ,EAAE,OAAO,EAAE,OAAO;gBAC1B,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/lib/client/audit.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAM1C,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,KAAK,CAAC,IAAI,CAAC,OAQV;QACC,MAAM,KAAK,GAA0D,OAAO,EAAE,YAAY;YACxF,CAAC,CAAC;gBACE,QAAQ,EAAE,OAAO,CAAC,IAAI;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;gBAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,OAAO,EAAE,IAAI;gBACxB,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,UAAU,EAAE,OAAO,EAAE,SAAS;gBAC9B,QAAQ,EAAE,OAAO,EAAE,OAAO;gBAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG;aAC7B,CAAC;QAEN,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC;YACjE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACtD,KAAK;SACN,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,KAAyB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAoB;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,WAAW,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CAAC,OAMZ;QACC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC;gBACjE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,KAAK;iBACb;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAS;YAC1B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,WAAW,SAAS;YAC7B,KAAK,EAAE;gBACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,MAAM;gBACjC,UAAU,EAAE,OAAO,EAAE,SAAS;gBAC9B,QAAQ,EAAE,OAAO,EAAE,OAAO;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAgD;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAU;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,QAAQ;YACzE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC,CAAC;IACL,CAAC;CACF"}