@zincapp/znvault-cli 3.3.1 → 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 (221) hide show
  1. package/README.md +32 -28
  2. package/dist/commands/advisor.d.ts +14 -1
  3. package/dist/commands/advisor.d.ts.map +1 -1
  4. package/dist/commands/advisor.js +355 -331
  5. package/dist/commands/advisor.js.map +1 -1
  6. package/dist/commands/agent/index.d.ts +2 -1
  7. package/dist/commands/agent/index.d.ts.map +1 -1
  8. package/dist/commands/agent/index.js +23 -19
  9. package/dist/commands/agent/index.js.map +1 -1
  10. package/dist/commands/apikey/conditions.d.ts.map +1 -1
  11. package/dist/commands/apikey/conditions.js +4 -3
  12. package/dist/commands/apikey/conditions.js.map +1 -1
  13. package/dist/commands/apikey/create.d.ts.map +1 -1
  14. package/dist/commands/apikey/create.js +4 -2
  15. package/dist/commands/apikey/create.js.map +1 -1
  16. package/dist/commands/apikey/delete.d.ts.map +1 -1
  17. package/dist/commands/apikey/delete.js +4 -2
  18. package/dist/commands/apikey/delete.js.map +1 -1
  19. package/dist/commands/apikey/enable-disable.d.ts.map +1 -1
  20. package/dist/commands/apikey/enable-disable.js +7 -4
  21. package/dist/commands/apikey/enable-disable.js.map +1 -1
  22. package/dist/commands/apikey/helpers.d.ts +16 -0
  23. package/dist/commands/apikey/helpers.d.ts.map +1 -1
  24. package/dist/commands/apikey/helpers.js +9 -0
  25. package/dist/commands/apikey/helpers.js.map +1 -1
  26. package/dist/commands/apikey/index.d.ts +2 -1
  27. package/dist/commands/apikey/index.d.ts.map +1 -1
  28. package/dist/commands/apikey/index.js +23 -14
  29. package/dist/commands/apikey/index.js.map +1 -1
  30. package/dist/commands/apikey/list.d.ts.map +1 -1
  31. package/dist/commands/apikey/list.js +4 -3
  32. package/dist/commands/apikey/list.js.map +1 -1
  33. package/dist/commands/apikey/managed/bind.d.ts.map +1 -1
  34. package/dist/commands/apikey/managed/bind.js +4 -3
  35. package/dist/commands/apikey/managed/bind.js.map +1 -1
  36. package/dist/commands/apikey/managed/conditions.d.ts.map +1 -1
  37. package/dist/commands/apikey/managed/conditions.js +5 -4
  38. package/dist/commands/apikey/managed/conditions.js.map +1 -1
  39. package/dist/commands/apikey/managed/config.d.ts.map +1 -1
  40. package/dist/commands/apikey/managed/config.js +4 -3
  41. package/dist/commands/apikey/managed/config.js.map +1 -1
  42. package/dist/commands/apikey/managed/create.d.ts.map +1 -1
  43. package/dist/commands/apikey/managed/create.js +4 -1
  44. package/dist/commands/apikey/managed/create.js.map +1 -1
  45. package/dist/commands/apikey/managed/delete.d.ts.map +1 -1
  46. package/dist/commands/apikey/managed/delete.js +4 -2
  47. package/dist/commands/apikey/managed/delete.js.map +1 -1
  48. package/dist/commands/apikey/managed/get.d.ts.map +1 -1
  49. package/dist/commands/apikey/managed/get.js +4 -2
  50. package/dist/commands/apikey/managed/get.js.map +1 -1
  51. package/dist/commands/apikey/managed/list.d.ts.map +1 -1
  52. package/dist/commands/apikey/managed/list.js +4 -2
  53. package/dist/commands/apikey/managed/list.js.map +1 -1
  54. package/dist/commands/apikey/managed/permissions.d.ts.map +1 -1
  55. package/dist/commands/apikey/managed/permissions.js +5 -3
  56. package/dist/commands/apikey/managed/permissions.js.map +1 -1
  57. package/dist/commands/apikey/managed/rotate.d.ts.map +1 -1
  58. package/dist/commands/apikey/managed/rotate.js +4 -3
  59. package/dist/commands/apikey/managed/rotate.js.map +1 -1
  60. package/dist/commands/apikey/permissions.d.ts.map +1 -1
  61. package/dist/commands/apikey/permissions.js +5 -3
  62. package/dist/commands/apikey/permissions.js.map +1 -1
  63. package/dist/commands/apikey/policies.d.ts.map +1 -1
  64. package/dist/commands/apikey/policies.js +10 -7
  65. package/dist/commands/apikey/policies.js.map +1 -1
  66. package/dist/commands/apikey/rotate.d.ts.map +1 -1
  67. package/dist/commands/apikey/rotate.js +4 -3
  68. package/dist/commands/apikey/rotate.js.map +1 -1
  69. package/dist/commands/apikey/show.d.ts.map +1 -1
  70. package/dist/commands/apikey/show.js +5 -4
  71. package/dist/commands/apikey/show.js.map +1 -1
  72. package/dist/commands/audit.d.ts +2 -1
  73. package/dist/commands/audit.d.ts.map +1 -1
  74. package/dist/commands/audit.js +15 -3
  75. package/dist/commands/audit.js.map +1 -1
  76. package/dist/commands/cluster.d.ts.map +1 -1
  77. package/dist/commands/cluster.js +31 -14
  78. package/dist/commands/cluster.js.map +1 -1
  79. package/dist/commands/group.d.ts +2 -1
  80. package/dist/commands/group.d.ts.map +1 -1
  81. package/dist/commands/group.js +61 -39
  82. package/dist/commands/group.js.map +1 -1
  83. package/dist/commands/health.d.ts.map +1 -1
  84. package/dist/commands/health.js +6 -5
  85. package/dist/commands/health.js.map +1 -1
  86. package/dist/commands/host/index.d.ts +2 -1
  87. package/dist/commands/host/index.d.ts.map +1 -1
  88. package/dist/commands/host/index.js +22 -18
  89. package/dist/commands/host/index.js.map +1 -1
  90. package/dist/commands/kms/crud.d.ts +1 -1
  91. package/dist/commands/kms/crud.d.ts.map +1 -1
  92. package/dist/commands/kms/crud.js +6 -6
  93. package/dist/commands/kms/crud.js.map +1 -1
  94. package/dist/commands/kms/index.d.ts +2 -1
  95. package/dist/commands/kms/index.d.ts.map +1 -1
  96. package/dist/commands/kms/index.js +14 -6
  97. package/dist/commands/kms/index.js.map +1 -1
  98. package/dist/commands/kms/lifecycle.d.ts +1 -1
  99. package/dist/commands/kms/lifecycle.d.ts.map +1 -1
  100. package/dist/commands/kms/lifecycle.js +7 -7
  101. package/dist/commands/kms/lifecycle.js.map +1 -1
  102. package/dist/commands/kms/routing.d.ts +5 -0
  103. package/dist/commands/kms/routing.d.ts.map +1 -1
  104. package/dist/commands/kms/routing.js +41 -5
  105. package/dist/commands/kms/routing.js.map +1 -1
  106. package/dist/commands/policy/attachments.d.ts +9 -5
  107. package/dist/commands/policy/attachments.d.ts.map +1 -1
  108. package/dist/commands/policy/attachments.js +16 -13
  109. package/dist/commands/policy/attachments.js.map +1 -1
  110. package/dist/commands/policy/crud.d.ts +6 -5
  111. package/dist/commands/policy/crud.d.ts.map +1 -1
  112. package/dist/commands/policy/crud.js +16 -11
  113. package/dist/commands/policy/crud.js.map +1 -1
  114. package/dist/commands/policy/helpers.d.ts +16 -0
  115. package/dist/commands/policy/helpers.d.ts.map +1 -1
  116. package/dist/commands/policy/helpers.js +9 -0
  117. package/dist/commands/policy/helpers.js.map +1 -1
  118. package/dist/commands/policy/index.d.ts +2 -1
  119. package/dist/commands/policy/index.d.ts.map +1 -1
  120. package/dist/commands/policy/index.js +149 -101
  121. package/dist/commands/policy/index.js.map +1 -1
  122. package/dist/commands/policy/io.d.ts +3 -2
  123. package/dist/commands/policy/io.d.ts.map +1 -1
  124. package/dist/commands/policy/io.js +7 -5
  125. package/dist/commands/policy/io.js.map +1 -1
  126. package/dist/commands/policy/list.d.ts +6 -2
  127. package/dist/commands/policy/list.d.ts.map +1 -1
  128. package/dist/commands/policy/list.js +7 -6
  129. package/dist/commands/policy/list.js.map +1 -1
  130. package/dist/commands/quarantine.d.ts +2 -1
  131. package/dist/commands/quarantine.d.ts.map +1 -1
  132. package/dist/commands/quarantine.js +394 -339
  133. package/dist/commands/quarantine.js.map +1 -1
  134. package/dist/commands/role.d.ts +2 -1
  135. package/dist/commands/role.d.ts.map +1 -1
  136. package/dist/commands/role.js +92 -49
  137. package/dist/commands/role.js.map +1 -1
  138. package/dist/commands/ssh/index.d.ts +2 -1
  139. package/dist/commands/ssh/index.d.ts.map +1 -1
  140. package/dist/commands/ssh/index.js +18 -13
  141. package/dist/commands/ssh/index.js.map +1 -1
  142. package/dist/commands/sso/crud.d.ts +1 -1
  143. package/dist/commands/sso/crud.d.ts.map +1 -1
  144. package/dist/commands/sso/crud.js +16 -16
  145. package/dist/commands/sso/crud.js.map +1 -1
  146. package/dist/commands/sso/helpers.d.ts +7 -1
  147. package/dist/commands/sso/helpers.d.ts.map +1 -1
  148. package/dist/commands/sso/helpers.js +32 -1
  149. package/dist/commands/sso/helpers.js.map +1 -1
  150. package/dist/commands/sso/index.d.ts +2 -1
  151. package/dist/commands/sso/index.d.ts.map +1 -1
  152. package/dist/commands/sso/index.js +13 -5
  153. package/dist/commands/sso/index.js.map +1 -1
  154. package/dist/commands/superadmin/accounts.d.ts +10 -0
  155. package/dist/commands/superadmin/accounts.d.ts.map +1 -0
  156. package/dist/commands/{superadmin.js → superadmin/accounts.js} +16 -15
  157. package/dist/commands/superadmin/accounts.js.map +1 -0
  158. package/dist/commands/superadmin/index.d.ts +20 -0
  159. package/dist/commands/superadmin/index.d.ts.map +1 -0
  160. package/dist/commands/superadmin/index.js +60 -0
  161. package/dist/commands/superadmin/index.js.map +1 -0
  162. package/dist/commands/user.d.ts +2 -1
  163. package/dist/commands/user.d.ts.map +1 -1
  164. package/dist/commands/user.js +26 -13
  165. package/dist/commands/user.js.map +1 -1
  166. package/dist/index.js +18 -13
  167. package/dist/index.js.map +1 -1
  168. package/dist/lib/client/apikeys.d.ts +21 -13
  169. package/dist/lib/client/apikeys.d.ts.map +1 -1
  170. package/dist/lib/client/apikeys.js +30 -26
  171. package/dist/lib/client/apikeys.js.map +1 -1
  172. package/dist/lib/client/audit.d.ts +54 -1
  173. package/dist/lib/client/audit.d.ts.map +1 -1
  174. package/dist/lib/client/audit.js +83 -9
  175. package/dist/lib/client/audit.js.map +1 -1
  176. package/dist/lib/client/index.d.ts +37 -36
  177. package/dist/lib/client/index.d.ts.map +1 -1
  178. package/dist/lib/client/index.js +37 -36
  179. package/dist/lib/client/index.js.map +1 -1
  180. package/dist/lib/client/managed-keys.d.ts +10 -7
  181. package/dist/lib/client/managed-keys.d.ts.map +1 -1
  182. package/dist/lib/client/managed-keys.js +16 -16
  183. package/dist/lib/client/managed-keys.js.map +1 -1
  184. package/dist/lib/client/policies.d.ts +14 -10
  185. package/dist/lib/client/policies.d.ts.map +1 -1
  186. package/dist/lib/client/policies.js +22 -22
  187. package/dist/lib/client/policies.js.map +1 -1
  188. package/dist/lib/client/quarantine.d.ts +25 -9
  189. package/dist/lib/client/quarantine.d.ts.map +1 -1
  190. package/dist/lib/client/quarantine.js +44 -27
  191. package/dist/lib/client/quarantine.js.map +1 -1
  192. package/dist/lib/client/users.d.ts +30 -3
  193. package/dist/lib/client/users.d.ts.map +1 -1
  194. package/dist/lib/client/users.js +39 -15
  195. package/dist/lib/client/users.js.map +1 -1
  196. package/dist/lib/command-context.d.ts +64 -0
  197. package/dist/lib/command-context.d.ts.map +1 -0
  198. package/dist/lib/command-context.js +90 -0
  199. package/dist/lib/command-context.js.map +1 -0
  200. package/dist/lib/context-help.d.ts.map +1 -1
  201. package/dist/lib/context-help.js +5 -0
  202. package/dist/lib/context-help.js.map +1 -1
  203. package/dist/lib/db/health.d.ts.map +1 -1
  204. package/dist/lib/db/health.js +13 -4
  205. package/dist/lib/db/health.js.map +1 -1
  206. package/dist/lib/mode.d.ts +18 -4
  207. package/dist/lib/mode.d.ts.map +1 -1
  208. package/dist/lib/mode.js +13 -6
  209. package/dist/lib/mode.js.map +1 -1
  210. package/dist/tui/hooks/useApi.d.ts +14 -7
  211. package/dist/tui/hooks/useApi.d.ts.map +1 -1
  212. package/dist/tui/hooks/useApi.js.map +1 -1
  213. package/dist/tui/screens/Dashboard.d.ts.map +1 -1
  214. package/dist/tui/screens/Dashboard.js +2 -3
  215. package/dist/tui/screens/Dashboard.js.map +1 -1
  216. package/dist/types/index.d.ts +59 -12
  217. package/dist/types/index.d.ts.map +1 -1
  218. package/package.json +1 -1
  219. package/dist/commands/superadmin.d.ts +0 -3
  220. package/dist/commands/superadmin.d.ts.map +0 -1
  221. package/dist/commands/superadmin.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { applyTenantContextPatch } from './lib/command-context.js';
3
4
  import { registerAuthCommands } from './commands/auth.js';
5
+ // Apply the global Commander patch that gates `--tenant` options by registration
6
+ // context. Must run before any command registration.
7
+ applyTenantContextPatch(Command.prototype);
4
8
  import { registerHealthCommands } from './commands/health.js';
5
- import { registerClusterCommands } from './commands/cluster.js';
6
- import { registerTenantCommands } from './commands/tenant.js';
7
9
  import { registerUserCommands } from './commands/user.js';
8
- import { registerSuperadminCommands } from './commands/superadmin.js';
9
- import { registerLockdownCommands } from './commands/lockdown.js';
10
+ import { registerSuperadminCommands } from './commands/superadmin/index.js';
10
11
  import { registerQuarantineCommands } from './commands/quarantine.js';
11
12
  import { registerAuditCommands } from './commands/audit.js';
12
13
  import { registerEmergencyCommands } from './commands/emergency.js';
@@ -19,9 +20,7 @@ import { registerPolicyCommands } from './commands/policy.js';
19
20
  import { registerPermissionsCommands } from './commands/permissions.js';
20
21
  import { registerSecretCommands } from './commands/secret.js';
21
22
  import { registerKmsCommands } from './commands/kms/index.js';
22
- import { registerLmkCommands } from './commands/lmk.js';
23
23
  import { registerRoleCommands } from './commands/role.js';
24
- import { registerBackupCommands } from './commands/backup/index.js';
25
24
  import { registerNotificationCommands } from './commands/notification.js';
26
25
  import { registerTuiCommands } from './commands/tui.js';
27
26
  import { registerSelfUpdateCommands } from './commands/self-update.js';
@@ -84,14 +83,20 @@ program
84
83
  const config = getConfig();
85
84
  profileIndicator(getActiveProfileName(), config.url);
86
85
  });
87
- // Register all command groups
86
+ // Register all top-level command groups (tenant context by default).
87
+ //
88
+ // In v4, the following groups moved entirely under `znvault superadmin <...>`
89
+ // and are no longer registered at the top level:
90
+ // - tenant, cluster, lockdown, lmk, backup (pure-superadmin)
91
+ // - superadmin account management → `superadmin accounts <...>`
92
+ //
93
+ // Dual-purpose groups (user, audit, quarantine, advisor, agent, apikey, host,
94
+ // kms, policy, role, sso, ssh, group) are registered here in tenant context
95
+ // (no --tenant flag) AND again under the superadmin namespace with
96
+ // `context: 'superadmin'` (--tenant accepted).
88
97
  registerAuthCommands(program);
89
98
  registerHealthCommands(program);
90
- registerClusterCommands(program);
91
- registerTenantCommands(program);
92
99
  registerUserCommands(program);
93
- registerSuperadminCommands(program);
94
- registerLockdownCommands(program);
95
100
  registerQuarantineCommands(program);
96
101
  registerAuditCommands(program);
97
102
  registerEmergencyCommands(program);
@@ -104,9 +109,7 @@ registerPolicyCommands(program);
104
109
  registerPermissionsCommands(program);
105
110
  registerSecretCommands(program);
106
111
  registerKmsCommands(program);
107
- registerLmkCommands(program);
108
112
  registerRoleCommands(program);
109
- registerBackupCommands(program);
110
113
  registerNotificationCommands(program);
111
114
  registerTuiCommands(program);
112
115
  registerSelfUpdateCommands(program);
@@ -121,6 +124,8 @@ registerGroupCommands(program);
121
124
  registerDynamicSecretsCommands(program);
122
125
  registerSSHCommands(program);
123
126
  registerSSHCACommands(program);
127
+ // Superadmin namespace (must come last so all referenced groups are loaded).
128
+ registerSuperadminCommands(program);
124
129
  // Configure context-aware help (hides superadmin-only commands for regular users)
125
130
  configureContextHelp(program);
126
131
  // Run background update check (non-blocking)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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"}