@portaidentity/cli 1.7.3 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +125 -105
  3. package/dist/admin/admin-date-time.d.ts +6 -0
  4. package/dist/admin/admin-date-time.d.ts.map +1 -0
  5. package/dist/admin/admin-date-time.js +33 -0
  6. package/dist/admin/admin-date-time.js.map +1 -0
  7. package/dist/admin/application-client-features.d.ts +38 -0
  8. package/dist/admin/application-client-features.d.ts.map +1 -0
  9. package/dist/admin/application-client-features.js +545 -0
  10. package/dist/admin/application-client-features.js.map +1 -0
  11. package/dist/admin/application-controller.d.ts +58 -0
  12. package/dist/admin/application-controller.d.ts.map +1 -0
  13. package/dist/admin/application-controller.js +286 -0
  14. package/dist/admin/application-controller.js.map +1 -0
  15. package/dist/admin/application-dialogs.d.ts +91 -0
  16. package/dist/admin/application-dialogs.d.ts.map +1 -0
  17. package/dist/admin/application-dialogs.js +250 -0
  18. package/dist/admin/application-dialogs.js.map +1 -0
  19. package/dist/admin/application-rbac-controller.d.ts +56 -0
  20. package/dist/admin/application-rbac-controller.d.ts.map +1 -0
  21. package/dist/admin/application-rbac-controller.js +280 -0
  22. package/dist/admin/application-rbac-controller.js.map +1 -0
  23. package/dist/admin/application-rbac-features.d.ts +51 -0
  24. package/dist/admin/application-rbac-features.d.ts.map +1 -0
  25. package/dist/admin/application-rbac-features.js +175 -0
  26. package/dist/admin/application-rbac-features.js.map +1 -0
  27. package/dist/admin/application-rbac-workspace.d.ts +62 -0
  28. package/dist/admin/application-rbac-workspace.d.ts.map +1 -0
  29. package/dist/admin/application-rbac-workspace.js +344 -0
  30. package/dist/admin/application-rbac-workspace.js.map +1 -0
  31. package/dist/admin/application-runtime.d.ts +44 -0
  32. package/dist/admin/application-runtime.d.ts.map +1 -0
  33. package/dist/admin/application-runtime.js +183 -0
  34. package/dist/admin/application-runtime.js.map +1 -0
  35. package/dist/admin/application-service.d.ts +39 -0
  36. package/dist/admin/application-service.d.ts.map +1 -0
  37. package/dist/admin/application-service.js +248 -0
  38. package/dist/admin/application-service.js.map +1 -0
  39. package/dist/admin/application-state.d.ts +109 -0
  40. package/dist/admin/application-state.d.ts.map +1 -0
  41. package/dist/admin/application-state.js +3 -0
  42. package/dist/admin/application-state.js.map +1 -0
  43. package/dist/admin/application-workspace.d.ts +77 -0
  44. package/dist/admin/application-workspace.d.ts.map +1 -0
  45. package/dist/admin/application-workspace.js +302 -0
  46. package/dist/admin/application-workspace.js.map +1 -0
  47. package/dist/admin/application.d.ts +88 -0
  48. package/dist/admin/application.d.ts.map +1 -0
  49. package/dist/admin/application.js +932 -0
  50. package/dist/admin/application.js.map +1 -0
  51. package/dist/admin/client-authentication-dialog.d.ts +77 -0
  52. package/dist/admin/client-authentication-dialog.d.ts.map +1 -0
  53. package/dist/admin/client-authentication-dialog.js +217 -0
  54. package/dist/admin/client-authentication-dialog.js.map +1 -0
  55. package/dist/admin/client-controller.d.ts +58 -0
  56. package/dist/admin/client-controller.d.ts.map +1 -0
  57. package/dist/admin/client-controller.js +462 -0
  58. package/dist/admin/client-controller.js.map +1 -0
  59. package/dist/admin/client-credential-dialogs.d.ts +36 -0
  60. package/dist/admin/client-credential-dialogs.d.ts.map +1 -0
  61. package/dist/admin/client-credential-dialogs.js +145 -0
  62. package/dist/admin/client-credential-dialogs.js.map +1 -0
  63. package/dist/admin/client-dialogs.d.ts +64 -0
  64. package/dist/admin/client-dialogs.d.ts.map +1 -0
  65. package/dist/admin/client-dialogs.js +110 -0
  66. package/dist/admin/client-dialogs.js.map +1 -0
  67. package/dist/admin/client-form-scroller.d.ts +17 -0
  68. package/dist/admin/client-form-scroller.d.ts.map +1 -0
  69. package/dist/admin/client-form-scroller.js +67 -0
  70. package/dist/admin/client-form-scroller.js.map +1 -0
  71. package/dist/admin/client-registration-dialog.d.ts +27 -0
  72. package/dist/admin/client-registration-dialog.d.ts.map +1 -0
  73. package/dist/admin/client-registration-dialog.js +195 -0
  74. package/dist/admin/client-registration-dialog.js.map +1 -0
  75. package/dist/admin/client-service.d.ts +41 -0
  76. package/dist/admin/client-service.d.ts.map +1 -0
  77. package/dist/admin/client-service.js +484 -0
  78. package/dist/admin/client-service.js.map +1 -0
  79. package/dist/admin/client-state.d.ts +157 -0
  80. package/dist/admin/client-state.d.ts.map +1 -0
  81. package/dist/admin/client-state.js +3 -0
  82. package/dist/admin/client-state.js.map +1 -0
  83. package/dist/admin/client-workspace.d.ts +88 -0
  84. package/dist/admin/client-workspace.d.ts.map +1 -0
  85. package/dist/admin/client-workspace.js +484 -0
  86. package/dist/admin/client-workspace.js.map +1 -0
  87. package/dist/admin/delete-confirmation-layout.d.ts +38 -0
  88. package/dist/admin/delete-confirmation-layout.d.ts.map +1 -0
  89. package/dist/admin/delete-confirmation-layout.js +52 -0
  90. package/dist/admin/delete-confirmation-layout.js.map +1 -0
  91. package/dist/admin/index.d.ts +64 -0
  92. package/dist/admin/index.d.ts.map +1 -0
  93. package/dist/admin/index.js +31 -0
  94. package/dist/admin/index.js.map +1 -0
  95. package/dist/admin/organization-controller.d.ts +77 -0
  96. package/dist/admin/organization-controller.d.ts.map +1 -0
  97. package/dist/admin/organization-controller.js +472 -0
  98. package/dist/admin/organization-controller.js.map +1 -0
  99. package/dist/admin/organization-dialogs.d.ts +63 -0
  100. package/dist/admin/organization-dialogs.d.ts.map +1 -0
  101. package/dist/admin/organization-dialogs.js +303 -0
  102. package/dist/admin/organization-dialogs.js.map +1 -0
  103. package/dist/admin/organization-service.d.ts +110 -0
  104. package/dist/admin/organization-service.d.ts.map +1 -0
  105. package/dist/admin/organization-service.js +548 -0
  106. package/dist/admin/organization-service.js.map +1 -0
  107. package/dist/admin/organization-workspace.d.ts +29 -0
  108. package/dist/admin/organization-workspace.d.ts.map +1 -0
  109. package/dist/admin/organization-workspace.js +421 -0
  110. package/dist/admin/organization-workspace.js.map +1 -0
  111. package/dist/admin/portability-controller.d.ts +83 -0
  112. package/dist/admin/portability-controller.d.ts.map +1 -0
  113. package/dist/admin/portability-controller.js +466 -0
  114. package/dist/admin/portability-controller.js.map +1 -0
  115. package/dist/admin/portability-service.d.ts +31 -0
  116. package/dist/admin/portability-service.d.ts.map +1 -0
  117. package/dist/admin/portability-service.js +51 -0
  118. package/dist/admin/portability-service.js.map +1 -0
  119. package/dist/admin/portability-state.d.ts +88 -0
  120. package/dist/admin/portability-state.d.ts.map +1 -0
  121. package/dist/admin/portability-state.js +3 -0
  122. package/dist/admin/portability-state.js.map +1 -0
  123. package/dist/admin/portability-workspace.d.ts +78 -0
  124. package/dist/admin/portability-workspace.d.ts.map +1 -0
  125. package/dist/admin/portability-workspace.js +337 -0
  126. package/dist/admin/portability-workspace.js.map +1 -0
  127. package/dist/admin/presentation.d.ts +46 -0
  128. package/dist/admin/presentation.d.ts.map +1 -0
  129. package/dist/admin/presentation.js +271 -0
  130. package/dist/admin/presentation.js.map +1 -0
  131. package/dist/admin/rbac-dialogs.d.ts +73 -0
  132. package/dist/admin/rbac-dialogs.d.ts.map +1 -0
  133. package/dist/admin/rbac-dialogs.js +345 -0
  134. package/dist/admin/rbac-dialogs.js.map +1 -0
  135. package/dist/admin/rbac-service.d.ts +47 -0
  136. package/dist/admin/rbac-service.d.ts.map +1 -0
  137. package/dist/admin/rbac-service.js +258 -0
  138. package/dist/admin/rbac-service.js.map +1 -0
  139. package/dist/admin/rbac-state.d.ts +129 -0
  140. package/dist/admin/rbac-state.d.ts.map +1 -0
  141. package/dist/admin/rbac-state.js +136 -0
  142. package/dist/admin/rbac-state.js.map +1 -0
  143. package/dist/admin/selectable-read-only-input.d.ts +18 -0
  144. package/dist/admin/selectable-read-only-input.d.ts.map +1 -0
  145. package/dist/admin/selectable-read-only-input.js +24 -0
  146. package/dist/admin/selectable-read-only-input.js.map +1 -0
  147. package/dist/admin/session-service.d.ts +169 -0
  148. package/dist/admin/session-service.d.ts.map +1 -0
  149. package/dist/admin/session-service.js +353 -0
  150. package/dist/admin/session-service.js.map +1 -0
  151. package/dist/admin/state.d.ts +301 -0
  152. package/dist/admin/state.d.ts.map +1 -0
  153. package/dist/admin/state.js +10 -0
  154. package/dist/admin/state.js.map +1 -0
  155. package/dist/admin/system-config-controller.d.ts +58 -0
  156. package/dist/admin/system-config-controller.d.ts.map +1 -0
  157. package/dist/admin/system-config-controller.js +218 -0
  158. package/dist/admin/system-config-controller.js.map +1 -0
  159. package/dist/admin/system-config-service.d.ts +54 -0
  160. package/dist/admin/system-config-service.d.ts.map +1 -0
  161. package/dist/admin/system-config-service.js +180 -0
  162. package/dist/admin/system-config-service.js.map +1 -0
  163. package/dist/admin/system-config-state.d.ts +77 -0
  164. package/dist/admin/system-config-state.d.ts.map +1 -0
  165. package/dist/admin/system-config-state.js +78 -0
  166. package/dist/admin/system-config-state.js.map +1 -0
  167. package/dist/admin/system-config-workspace.d.ts +47 -0
  168. package/dist/admin/system-config-workspace.d.ts.map +1 -0
  169. package/dist/admin/system-config-workspace.js +217 -0
  170. package/dist/admin/system-config-workspace.js.map +1 -0
  171. package/dist/admin/user-controller-types.d.ts +67 -0
  172. package/dist/admin/user-controller-types.d.ts.map +1 -0
  173. package/dist/admin/user-controller-types.js +3 -0
  174. package/dist/admin/user-controller-types.js.map +1 -0
  175. package/dist/admin/user-controller.d.ts +6 -0
  176. package/dist/admin/user-controller.d.ts.map +1 -0
  177. package/dist/admin/user-controller.js +674 -0
  178. package/dist/admin/user-controller.js.map +1 -0
  179. package/dist/admin/user-dialog-fields.d.ts +44 -0
  180. package/dist/admin/user-dialog-fields.d.ts.map +1 -0
  181. package/dist/admin/user-dialog-fields.js +130 -0
  182. package/dist/admin/user-dialog-fields.js.map +1 -0
  183. package/dist/admin/user-dialogs.d.ts +66 -0
  184. package/dist/admin/user-dialogs.d.ts.map +1 -0
  185. package/dist/admin/user-dialogs.js +374 -0
  186. package/dist/admin/user-dialogs.js.map +1 -0
  187. package/dist/admin/user-role-controller.d.ts +82 -0
  188. package/dist/admin/user-role-controller.d.ts.map +1 -0
  189. package/dist/admin/user-role-controller.js +337 -0
  190. package/dist/admin/user-role-controller.js.map +1 -0
  191. package/dist/admin/user-role-dialog.d.ts +94 -0
  192. package/dist/admin/user-role-dialog.d.ts.map +1 -0
  193. package/dist/admin/user-role-dialog.js +265 -0
  194. package/dist/admin/user-role-dialog.js.map +1 -0
  195. package/dist/admin/user-service-types.d.ts +100 -0
  196. package/dist/admin/user-service-types.d.ts.map +1 -0
  197. package/dist/admin/user-service-types.js +3 -0
  198. package/dist/admin/user-service-types.js.map +1 -0
  199. package/dist/admin/user-service.d.ts +14 -0
  200. package/dist/admin/user-service.d.ts.map +1 -0
  201. package/dist/admin/user-service.js +612 -0
  202. package/dist/admin/user-service.js.map +1 -0
  203. package/dist/admin/user-state.d.ts +158 -0
  204. package/dist/admin/user-state.d.ts.map +1 -0
  205. package/dist/admin/user-state.js +3 -0
  206. package/dist/admin/user-state.js.map +1 -0
  207. package/dist/admin/user-workspace.d.ts +65 -0
  208. package/dist/admin/user-workspace.d.ts.map +1 -0
  209. package/dist/admin/user-workspace.js +366 -0
  210. package/dist/admin/user-workspace.js.map +1 -0
  211. package/dist/auth/browser-flow.d.ts +27 -1
  212. package/dist/auth/browser-flow.d.ts.map +1 -1
  213. package/dist/auth/browser-flow.js +55 -33
  214. package/dist/auth/browser-flow.js.map +1 -1
  215. package/dist/auth/callback-server.d.ts.map +1 -1
  216. package/dist/auth/callback-server.js +5 -9
  217. package/dist/auth/callback-server.js.map +1 -1
  218. package/dist/auth/id-token-verifier.d.ts +39 -0
  219. package/dist/auth/id-token-verifier.d.ts.map +1 -0
  220. package/dist/auth/id-token-verifier.js +104 -0
  221. package/dist/auth/id-token-verifier.js.map +1 -0
  222. package/dist/auth/login-coordinator.d.ts +72 -0
  223. package/dist/auth/login-coordinator.d.ts.map +1 -0
  224. package/dist/auth/login-coordinator.js +190 -0
  225. package/dist/auth/login-coordinator.js.map +1 -0
  226. package/dist/auth/metadata.d.ts +2 -1
  227. package/dist/auth/metadata.d.ts.map +1 -1
  228. package/dist/auth/metadata.js +67 -6
  229. package/dist/auth/metadata.js.map +1 -1
  230. package/dist/auth/types.d.ts +14 -0
  231. package/dist/auth/types.d.ts.map +1 -1
  232. package/dist/client-factory.d.ts.map +1 -1
  233. package/dist/client-factory.js +15 -2
  234. package/dist/client-factory.js.map +1 -1
  235. package/dist/commands/admin.d.ts +22 -0
  236. package/dist/commands/admin.d.ts.map +1 -0
  237. package/dist/commands/admin.js +112 -0
  238. package/dist/commands/admin.js.map +1 -0
  239. package/dist/commands/app-claim.d.ts.map +1 -1
  240. package/dist/commands/app-claim.js +11 -4
  241. package/dist/commands/app-claim.js.map +1 -1
  242. package/dist/commands/app-module.d.ts.map +1 -1
  243. package/dist/commands/app-module.js +61 -12
  244. package/dist/commands/app-module.js.map +1 -1
  245. package/dist/commands/app-permission.d.ts.map +1 -1
  246. package/dist/commands/app-permission.js +66 -24
  247. package/dist/commands/app-permission.js.map +1 -1
  248. package/dist/commands/app-role.d.ts.map +1 -1
  249. package/dist/commands/app-role.js +48 -27
  250. package/dist/commands/app-role.js.map +1 -1
  251. package/dist/commands/app.d.ts.map +1 -1
  252. package/dist/commands/app.js +37 -25
  253. package/dist/commands/app.js.map +1 -1
  254. package/dist/commands/bulk.d.ts.map +1 -1
  255. package/dist/commands/bulk.js +9 -2
  256. package/dist/commands/bulk.js.map +1 -1
  257. package/dist/commands/client-secret.d.ts.map +1 -1
  258. package/dist/commands/client-secret.js +12 -6
  259. package/dist/commands/client-secret.js.map +1 -1
  260. package/dist/commands/client.d.ts +3 -2
  261. package/dist/commands/client.d.ts.map +1 -1
  262. package/dist/commands/client.js +87 -43
  263. package/dist/commands/client.js.map +1 -1
  264. package/dist/commands/config.d.ts +4 -0
  265. package/dist/commands/config.d.ts.map +1 -1
  266. package/dist/commands/config.js +68 -7
  267. package/dist/commands/config.js.map +1 -1
  268. package/dist/commands/export.d.ts +6 -0
  269. package/dist/commands/export.d.ts.map +1 -0
  270. package/dist/commands/export.js +182 -0
  271. package/dist/commands/export.js.map +1 -0
  272. package/dist/commands/import.d.ts +6 -0
  273. package/dist/commands/import.d.ts.map +1 -0
  274. package/dist/commands/import.js +142 -0
  275. package/dist/commands/import.js.map +1 -0
  276. package/dist/commands/keys.d.ts.map +1 -1
  277. package/dist/commands/keys.js +11 -4
  278. package/dist/commands/keys.js.map +1 -1
  279. package/dist/commands/login.d.ts.map +1 -1
  280. package/dist/commands/login.js +24 -10
  281. package/dist/commands/login.js.map +1 -1
  282. package/dist/commands/org.d.ts +2 -4
  283. package/dist/commands/org.d.ts.map +1 -1
  284. package/dist/commands/org.js +16 -76
  285. package/dist/commands/org.js.map +1 -1
  286. package/dist/commands/user-role.d.ts.map +1 -1
  287. package/dist/commands/user-role.js +19 -14
  288. package/dist/commands/user-role.js.map +1 -1
  289. package/dist/commands/user.d.ts +3 -2
  290. package/dist/commands/user.d.ts.map +1 -1
  291. package/dist/commands/user.js +47 -71
  292. package/dist/commands/user.js.map +1 -1
  293. package/dist/commands/version.d.ts +1 -1
  294. package/dist/commands/version.js +1 -1
  295. package/dist/credential-lock.d.ts +20 -0
  296. package/dist/credential-lock.d.ts.map +1 -0
  297. package/dist/credential-lock.js +130 -0
  298. package/dist/credential-lock.js.map +1 -0
  299. package/dist/credential-store.d.ts +14 -0
  300. package/dist/credential-store.d.ts.map +1 -1
  301. package/dist/credential-store.js +114 -3
  302. package/dist/credential-store.js.map +1 -1
  303. package/dist/error-handler.d.ts.map +1 -1
  304. package/dist/error-handler.js +2 -0
  305. package/dist/error-handler.js.map +1 -1
  306. package/dist/global-options.d.ts +8 -0
  307. package/dist/global-options.d.ts.map +1 -1
  308. package/dist/global-options.js +19 -8
  309. package/dist/global-options.js.map +1 -1
  310. package/dist/index.js +7 -5
  311. package/dist/index.js.map +1 -1
  312. package/dist/output.d.ts +11 -0
  313. package/dist/output.d.ts.map +1 -1
  314. package/dist/output.js +25 -6
  315. package/dist/output.js.map +1 -1
  316. package/dist/prompt.d.ts +2 -2
  317. package/dist/prompt.d.ts.map +1 -1
  318. package/dist/prompt.js +27 -7
  319. package/dist/prompt.js.map +1 -1
  320. package/package.json +7 -3
  321. package/dist/commands/gui.d.ts +0 -21
  322. package/dist/commands/gui.d.ts.map +0 -1
  323. package/dist/commands/gui.js +0 -67
  324. package/dist/commands/gui.js.map +0 -1
  325. package/dist/commands/provision.d.ts +0 -47
  326. package/dist/commands/provision.d.ts.map +0 -1
  327. package/dist/commands/provision.js +0 -444
  328. package/dist/commands/provision.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-dialogs.js","sourceRoot":"","sources":["../../src/admin/application-dialogs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /** Operation and context ownership for Application role and permission administration. */
2
+ import type { CreatePermissionInput, CreateRoleInput, UpdatePermissionInput, UpdateRoleInput } from '@portaidentity/sdk';
3
+ import type { AdminRbacOperations } from './rbac-service.js';
4
+ import type { AdminApplicationRbacViewState } from './rbac-state.js';
5
+ /** Immutable owner used to reject results from an old Application or verified session. */
6
+ export interface AdminApplicationRbacContext {
7
+ /** Application that owns every operation. */
8
+ readonly applicationId: string;
9
+ /** Epoch advanced whenever the verified session is replaced. */
10
+ readonly sessionEpoch: number;
11
+ }
12
+ /** Dependencies for one Application-owned RBAC controller. */
13
+ export interface AdminApplicationRbacControllerOptions {
14
+ /** Reads the latest selected Application and verified-session owner. */
15
+ readonly readContext: () => AdminApplicationRbacContext;
16
+ /** Reads validated operations from the current authenticated session. */
17
+ readonly readOperations: () => Partial<AdminRbacOperations> | undefined;
18
+ /** Publishes immutable validated state to the two RBAC pages. */
19
+ readonly publishState: (state: AdminApplicationRbacViewState) => void;
20
+ /** Enters the existing authentication flow after a definite session transition. */
21
+ readonly requestAuthentication: () => void;
22
+ /** Gates sibling mutations while an unknown outcome awaits explicit Reload. */
23
+ readonly setRecoveryRequired?: (required: boolean) => void;
24
+ }
25
+ /** Direct Application role, permission, and mapping workflow boundary. */
26
+ export interface AdminApplicationRbacController {
27
+ /** Loads the complete role and permission collections. */
28
+ readonly load: () => Promise<void>;
29
+ /** Performs the explicit read-only reconciliation after a failed or unknown operation. */
30
+ readonly reload: () => Promise<void>;
31
+ /** Creates one role and reloads authoritative state. */
32
+ readonly createRole: (input: CreateRoleInput) => Promise<void>;
33
+ /** Updates one role and reloads authoritative state. */
34
+ readonly updateRole: (roleId: string, input: UpdateRoleInput) => Promise<void>;
35
+ /** Permanently deletes one role and reloads authoritative state. */
36
+ readonly deleteRole: (roleId: string) => Promise<void>;
37
+ /** Creates one permission and reloads authoritative state. */
38
+ readonly createPermission: (input: CreatePermissionInput) => Promise<void>;
39
+ /** Updates mutable permission metadata and reloads authoritative state. */
40
+ readonly updatePermission: (permissionId: string, input: UpdatePermissionInput) => Promise<void>;
41
+ /** Permanently deletes one permission and reloads authoritative state. */
42
+ readonly deletePermission: (permissionId: string) => Promise<void>;
43
+ /** Loads assigned and available permissions for one retained role. */
44
+ readonly loadRolePermissions: (roleId: string) => Promise<boolean>;
45
+ /** Assigns permissions to one role and reloads both mapping collections. */
46
+ readonly assignPermissions: (roleId: string, permissionIds: readonly string[]) => Promise<void>;
47
+ /** Removes permissions from one role and reloads both mapping collections. */
48
+ readonly removePermissions: (roleId: string, permissionIds: readonly string[]) => Promise<void>;
49
+ /** Cancels owned work and requires reconciliation if a mutation was already dispatched. */
50
+ readonly cancelActiveOperation: () => void;
51
+ /** Releases the controller and clears protected state. */
52
+ readonly dispose: () => void;
53
+ }
54
+ /** Creates the focused Application RBAC workflow controller. */
55
+ export declare function createAdminApplicationRbacController(options: AdminApplicationRbacControllerOptions): AdminApplicationRbacController;
56
+ //# sourceMappingURL=application-rbac-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-rbac-controller.d.ts","sourceRoot":"","sources":["../../src/admin/application-rbac-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ /** Operation and context ownership for Application role and permission administration. */
2
+ /** Creates the focused Application RBAC workflow controller. */
3
+ export function createAdminApplicationRbacController(options) {
4
+ let generation = 0;
5
+ let operation;
6
+ let mutationDispatched = false;
7
+ let projection;
8
+ let recoveryRequired = false;
9
+ let disposed = false;
10
+ /** Publishes only while this controller still owns its Application surface. */
11
+ const publish = (state) => {
12
+ if (!disposed)
13
+ options.publishState(state);
14
+ };
15
+ /** Confirms that one continuation still belongs to its exact Application and session epoch. */
16
+ const owns = (capturedGeneration, context, controller) => {
17
+ const current = options.readContext();
18
+ return (!disposed &&
19
+ generation === capturedGeneration &&
20
+ operation === controller &&
21
+ !controller.signal.aborted &&
22
+ current.applicationId === context.applicationId &&
23
+ current.sessionEpoch === context.sessionEpoch);
24
+ };
25
+ /** Publishes a fixed failure while preserving the last validated collection. */
26
+ const publishFailure = (failure) => {
27
+ publish({ kind: 'failure', failure, ...(projection ? { previous: projection } : {}) });
28
+ };
29
+ /** Clears state and enters authentication after a definite invalid session or self-revocation. */
30
+ const requireAuthentication = () => {
31
+ generation += 1;
32
+ operation?.abort();
33
+ operation = undefined;
34
+ mutationDispatched = false;
35
+ projection = undefined;
36
+ recoveryRequired = false;
37
+ options.setRecoveryRequired?.(false);
38
+ publish({ kind: 'closed' });
39
+ options.requestAuthentication();
40
+ };
41
+ /** Retains validated state and requires an explicit read-only reconciliation. */
42
+ const requireReconciliation = () => {
43
+ recoveryRequired = true;
44
+ options.setRecoveryRequired?.(true);
45
+ publish({ kind: 'indeterminate', ...(projection ? { previous: projection } : {}) });
46
+ };
47
+ /** Cancels the current continuation and records uncertainty only after mutation dispatch. */
48
+ const cancel = (reconcileDispatchedMutation = false) => {
49
+ const uncertain = reconcileDispatchedMutation && mutationDispatched;
50
+ generation += 1;
51
+ operation?.abort();
52
+ operation = undefined;
53
+ mutationDispatched = false;
54
+ if (uncertain)
55
+ requireReconciliation();
56
+ };
57
+ /** Loads both complete Application-owned RBAC collections. */
58
+ const load = async () => {
59
+ if (disposed || operation)
60
+ return;
61
+ const context = options.readContext();
62
+ const operations = options.readOperations();
63
+ if (!operations?.listRoles || !operations.listPermissions)
64
+ return;
65
+ const controller = new AbortController();
66
+ operation = controller;
67
+ const capturedGeneration = ++generation;
68
+ publish({ kind: 'loading', ...(projection ? { previous: projection } : {}) });
69
+ try {
70
+ const roleResult = await operations.listRoles(context.applicationId, controller.signal);
71
+ if (!owns(capturedGeneration, context, controller))
72
+ return;
73
+ if (roleResult.kind === 'session-invalid') {
74
+ requireAuthentication();
75
+ return;
76
+ }
77
+ if (roleResult.kind === 'failure') {
78
+ publishFailure(roleResult.failure);
79
+ return;
80
+ }
81
+ const permissionResult = await operations.listPermissions(context.applicationId, controller.signal);
82
+ if (!owns(capturedGeneration, context, controller))
83
+ return;
84
+ if (permissionResult.kind === 'session-invalid') {
85
+ requireAuthentication();
86
+ }
87
+ else if (permissionResult.kind === 'failure') {
88
+ publishFailure(permissionResult.failure);
89
+ }
90
+ else {
91
+ projection = {
92
+ kind: 'ready',
93
+ applicationId: context.applicationId,
94
+ roles: roleResult.value,
95
+ permissions: permissionResult.value,
96
+ };
97
+ recoveryRequired = false;
98
+ options.setRecoveryRequired?.(false);
99
+ publish(projection);
100
+ }
101
+ }
102
+ finally {
103
+ if (operation === controller)
104
+ operation = undefined;
105
+ }
106
+ };
107
+ /** Reloads the assigned and available collections after one direct mapping mutation. */
108
+ const reloadMappings = async (context, roleId, controller, capturedGeneration) => {
109
+ const operations = options.readOperations();
110
+ if (!operations?.listRolePermissions || !operations.listPermissions)
111
+ return false;
112
+ const assignedResult = await operations.listRolePermissions(context.applicationId, roleId, controller.signal);
113
+ if (!owns(capturedGeneration, context, controller))
114
+ return false;
115
+ if (assignedResult.kind === 'session-invalid') {
116
+ requireAuthentication();
117
+ return false;
118
+ }
119
+ if (assignedResult.kind === 'failure') {
120
+ publishFailure(assignedResult.failure);
121
+ return false;
122
+ }
123
+ const permissionResult = await operations.listPermissions(context.applicationId, controller.signal);
124
+ if (!owns(capturedGeneration, context, controller))
125
+ return false;
126
+ if (permissionResult.kind === 'session-invalid') {
127
+ requireAuthentication();
128
+ return false;
129
+ }
130
+ else if (permissionResult.kind === 'failure') {
131
+ publishFailure(permissionResult.failure);
132
+ return false;
133
+ }
134
+ else {
135
+ const assignedIds = new Set(assignedResult.value.map((permission) => permission.id));
136
+ projection = {
137
+ kind: 'ready',
138
+ applicationId: context.applicationId,
139
+ roles: projection?.roles ?? [],
140
+ permissions: permissionResult.value,
141
+ assignedPermissions: assignedResult.value,
142
+ availablePermissions: permissionResult.value.filter((permission) => !assignedIds.has(permission.id)),
143
+ };
144
+ recoveryRequired = false;
145
+ options.setRecoveryRequired?.(false);
146
+ publish(projection);
147
+ return true;
148
+ }
149
+ };
150
+ /** Handles the common fixed mutation outcomes before authoritative reconciliation. */
151
+ const acceptsReload = (result) => {
152
+ mutationDispatched = false;
153
+ if (result.kind === 'session-invalid') {
154
+ requireAuthentication();
155
+ return false;
156
+ }
157
+ if (result.kind === 'outcome-unknown') {
158
+ requireReconciliation();
159
+ return false;
160
+ }
161
+ if (result.kind === 'failure') {
162
+ publishFailure(result.failure);
163
+ return false;
164
+ }
165
+ if (result.kind === 'cancelled')
166
+ return false;
167
+ if ('reauthenticationRequired' in result && result.reauthenticationRequired) {
168
+ requireAuthentication();
169
+ return false;
170
+ }
171
+ return true;
172
+ };
173
+ /** Runs one ordinary role or permission mutation, then reloads complete authoritative state. */
174
+ const mutateAndReload = async (invoke) => {
175
+ if (disposed || operation || recoveryRequired)
176
+ return;
177
+ const context = options.readContext();
178
+ const operations = options.readOperations();
179
+ if (!operations)
180
+ return;
181
+ const controller = new AbortController();
182
+ operation = controller;
183
+ const capturedGeneration = ++generation;
184
+ try {
185
+ mutationDispatched = true;
186
+ const result = await invoke(operations, context, controller.signal);
187
+ if (!owns(capturedGeneration, context, controller))
188
+ return;
189
+ if (!acceptsReload(result))
190
+ return;
191
+ operation = undefined;
192
+ await load();
193
+ }
194
+ finally {
195
+ if (operation === controller) {
196
+ operation = undefined;
197
+ mutationDispatched = false;
198
+ }
199
+ }
200
+ };
201
+ /** Runs one direct permission mapping mutation and reloads both mapping collections. */
202
+ const mutateMapping = async (roleId, permissionIds, remove) => {
203
+ if (disposed || operation || recoveryRequired || permissionIds.length === 0)
204
+ return;
205
+ const context = options.readContext();
206
+ const operations = options.readOperations();
207
+ const invoke = remove ? operations?.removePermissions : operations?.assignPermissions;
208
+ if (!invoke || !operations?.listRolePermissions || !operations.listPermissions)
209
+ return;
210
+ const controller = new AbortController();
211
+ operation = controller;
212
+ const capturedGeneration = ++generation;
213
+ try {
214
+ mutationDispatched = true;
215
+ const result = await invoke(context.applicationId, roleId, permissionIds, controller.signal);
216
+ if (!owns(capturedGeneration, context, controller))
217
+ return;
218
+ if (!acceptsReload(result))
219
+ return;
220
+ await reloadMappings(context, roleId, controller, capturedGeneration);
221
+ }
222
+ finally {
223
+ if (operation === controller) {
224
+ operation = undefined;
225
+ mutationDispatched = false;
226
+ }
227
+ }
228
+ };
229
+ /** Loads both mapping collections before opening the focused management dialog. */
230
+ const loadRolePermissions = async (roleId) => {
231
+ if (disposed || operation || recoveryRequired || !projection)
232
+ return false;
233
+ const context = options.readContext();
234
+ const operations = options.readOperations();
235
+ if (!operations?.listRolePermissions || !operations.listPermissions)
236
+ return false;
237
+ const controller = new AbortController();
238
+ operation = controller;
239
+ const capturedGeneration = ++generation;
240
+ publish({ kind: 'loading', previous: projection });
241
+ try {
242
+ return await reloadMappings(context, roleId, controller, capturedGeneration);
243
+ }
244
+ finally {
245
+ if (operation === controller)
246
+ operation = undefined;
247
+ }
248
+ };
249
+ return {
250
+ load,
251
+ reload: load,
252
+ createRole: (input) => mutateAndReload((operations, context, signal) => operations.createRole?.(context.applicationId, input, signal) ??
253
+ Promise.resolve({ kind: 'cancelled' })),
254
+ updateRole: (roleId, input) => mutateAndReload((operations, context, signal) => operations.updateRole?.(context.applicationId, roleId, input, signal) ??
255
+ Promise.resolve({ kind: 'cancelled' })),
256
+ deleteRole: (roleId) => mutateAndReload((operations, context, signal) => operations.deleteRole?.(context.applicationId, roleId, signal) ??
257
+ Promise.resolve({ kind: 'cancelled' })),
258
+ createPermission: (input) => mutateAndReload((operations, context, signal) => operations.createPermission?.(context.applicationId, input, signal) ??
259
+ Promise.resolve({ kind: 'cancelled' })),
260
+ updatePermission: (permissionId, input) => mutateAndReload((operations, context, signal) => operations.updatePermission?.(context.applicationId, permissionId, input, signal) ??
261
+ Promise.resolve({ kind: 'cancelled' })),
262
+ deletePermission: (permissionId) => mutateAndReload((operations, context, signal) => operations.deletePermission?.(context.applicationId, permissionId, signal) ??
263
+ Promise.resolve({ kind: 'cancelled' })),
264
+ loadRolePermissions,
265
+ assignPermissions: (roleId, permissionIds) => mutateMapping(roleId, permissionIds, false),
266
+ removePermissions: (roleId, permissionIds) => mutateMapping(roleId, permissionIds, true),
267
+ cancelActiveOperation: () => cancel(true),
268
+ dispose() {
269
+ if (disposed)
270
+ return;
271
+ cancel();
272
+ disposed = true;
273
+ projection = undefined;
274
+ recoveryRequired = false;
275
+ options.setRecoveryRequired?.(false);
276
+ options.publishState({ kind: 'closed' });
277
+ },
278
+ };
279
+ }
280
+ //# sourceMappingURL=application-rbac-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-rbac-controller.js","sourceRoot":"","sources":["../../src/admin/application-rbac-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /** Application-specific composition for RBAC dialogs, controller operations, and state. */
2
+ import type { AdminDialogSurface } from './application-runtime.js';
3
+ import type { AdminApplicationSession } from './application.js';
4
+ import type { AdminApplication, AdminApplicationModule } from './application-state.js';
5
+ import type { AdminApplicationRbacIntent } from './application-rbac-workspace.js';
6
+ import type { AdminApplicationRbacViewState } from './rbac-state.js';
7
+ import type { AdminCapabilities } from './state.js';
8
+ /** Current selected Application context required by every RBAC operation and dialog. */
9
+ export interface AdminApplicationRbacSelection {
10
+ /** Immutable selected Application. */
11
+ readonly application: AdminApplication;
12
+ /** Complete module catalog loaded with the selected Application. */
13
+ readonly modules: readonly AdminApplicationModule[];
14
+ }
15
+ /** Dependencies supplied by the existing Application and Client composition. */
16
+ export interface AdminApplicationRbacFeaturesOptions {
17
+ /** Shared shell-owned modal surface. */
18
+ readonly dialogs: AdminDialogSurface;
19
+ /** Reads the current selected Application and its modules. */
20
+ readonly readSelection: () => AdminApplicationRbacSelection | undefined;
21
+ /** Reads the current authenticated operations. */
22
+ readonly readSession: () => AdminApplicationSession | undefined;
23
+ /** Reads the current verified-session generation. */
24
+ readonly readSessionEpoch: () => number;
25
+ /** Reads exact capabilities for mapping-dialog enablement. */
26
+ readonly readCapabilities: () => AdminCapabilities | undefined;
27
+ /** Runs one dialog through the shell's existing single-dialog owner. */
28
+ readonly runDialog: <T>(work: (signal: AbortSignal) => Promise<T>) => Promise<T | undefined>;
29
+ /** Publishes state to the currently mounted Application workspace. */
30
+ readonly publishState: (state: AdminApplicationRbacViewState) => void;
31
+ /** Re-enters the existing authentication flow after definite authority loss. */
32
+ readonly requestAuthentication: () => void;
33
+ }
34
+ /** Narrow lifecycle used by the existing Application and Client composition. */
35
+ export interface AdminApplicationRbacFeatures {
36
+ /** Returns the most recently published validated state. */
37
+ readonly state: () => AdminApplicationRbacViewState;
38
+ /** Synchronizes the controller when the selected Application changes. */
39
+ readonly syncApplication: () => void;
40
+ /** Handles one closed intent from the selected Application's RBAC pages. */
41
+ readonly handleIntent: (intent: AdminApplicationRbacIntent) => void;
42
+ /** Cancels in-flight controller work. Dialog cancellation remains shell-owned. */
43
+ readonly cancelActiveOperation: () => void;
44
+ /** Cancels unsafe work when the terminal cannot retain its dialog geometry. */
45
+ readonly handleRecoverableGeometry: (recoverable: boolean) => void;
46
+ /** Releases retained state and controller ownership. */
47
+ readonly dispose: () => void;
48
+ }
49
+ /** Creates the direct Application RBAC coordinator approved for the terminal shell. */
50
+ export declare function createAdminApplicationRbacFeatures(options: AdminApplicationRbacFeaturesOptions): AdminApplicationRbacFeatures;
51
+ //# sourceMappingURL=application-rbac-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-rbac-features.d.ts","sourceRoot":"","sources":["../../src/admin/application-rbac-features.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAUlF,OAAO,KAAK,EAEV,6BAA6B,EAG9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,wFAAwF;AACxF,MAAM,WAAW,6BAA6B;IAC5C,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD;AAED,gFAAgF;AAChF,MAAM,WAAW,mCAAmC;IAClD,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,EAAE,MAAM,6BAA6B,GAAG,SAAS,CAAC;IACxE,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,uBAAuB,GAAG,SAAS,CAAC;IAChE,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAC/D,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7F,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;IACtE,gFAAgF;IAChF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;CAC5C;AAED,gFAAgF;AAChF,MAAM,WAAW,4BAA4B;IAC3C,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,6BAA6B,CAAC;IACpD,yEAAyE;IACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACpE,kFAAkF;IAClF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,+EAA+E;IAC/E,QAAQ,CAAC,yBAAyB,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAaD,uFAAuF;AACvF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mCAAmC,GAC3C,4BAA4B,CAmL9B"}
@@ -0,0 +1,175 @@
1
+ /** Application-specific composition for RBAC dialogs, controller operations, and state. */
2
+ import { createAdminApplicationRbacController } from './application-rbac-controller.js';
3
+ import { showCreatePermissionDialog, showCreateRoleDialog, showDeletePermissionDialog, showDeleteRoleDialog, showEditPermissionDialog, showEditRoleDialog, showManageRolePermissionsDialog, } from './rbac-dialogs.js';
4
+ /** Returns the complete retained projection, including recovery states. */
5
+ function retainedProjection(state) {
6
+ if (state.kind === 'ready')
7
+ return state;
8
+ if (state.kind === 'loading' || state.kind === 'failure' || state.kind === 'indeterminate') {
9
+ return state.previous;
10
+ }
11
+ return undefined;
12
+ }
13
+ /** Creates the direct Application RBAC coordinator approved for the terminal shell. */
14
+ export function createAdminApplicationRbacFeatures(options) {
15
+ let currentState = { kind: 'closed' };
16
+ let applicationId;
17
+ let sessionEpoch = -1;
18
+ let disposed = false;
19
+ /** Publishes one state snapshot while retaining it for dialog target lookup. */
20
+ const publishState = (state) => {
21
+ currentState = state;
22
+ options.publishState(state);
23
+ };
24
+ const controller = createAdminApplicationRbacController({
25
+ readContext: () => ({
26
+ applicationId: options.readSelection()?.application.id ?? '',
27
+ sessionEpoch: options.readSessionEpoch(),
28
+ }),
29
+ readOperations: () => options.readSession()?.rbac,
30
+ publishState,
31
+ requestAuthentication: options.requestAuthentication,
32
+ });
33
+ /** Returns a retained role owned by the current selected Application. */
34
+ const role = (roleId) => retainedProjection(currentState)?.roles.find((candidate) => candidate.id === roleId);
35
+ /** Returns a retained permission owned by the current selected Application. */
36
+ const permission = (permissionId) => retainedProjection(currentState)?.permissions.find((candidate) => candidate.id === permissionId);
37
+ /** Opens and submits the focused create-role dialog. */
38
+ async function createRole() {
39
+ const selection = options.readSelection();
40
+ if (!selection)
41
+ return;
42
+ const result = await options.runDialog((signal) => showCreateRoleDialog(options.dialogs.host, signal, selection.application));
43
+ if (result?.kind === 'create-role')
44
+ await controller.createRole(result.input);
45
+ }
46
+ /** Opens and submits the focused role editor. */
47
+ async function editRole(roleId) {
48
+ const selection = options.readSelection();
49
+ const target = role(roleId);
50
+ if (!selection || !target)
51
+ return;
52
+ const result = await options.runDialog((signal) => showEditRoleDialog(options.dialogs.host, signal, selection.application, target));
53
+ if (result?.kind === 'update-role')
54
+ await controller.updateRole(target.id, result.input);
55
+ }
56
+ /** Confirms and permanently deletes one retained role. */
57
+ async function deleteRole(roleId) {
58
+ const selection = options.readSelection();
59
+ const target = role(roleId);
60
+ if (!selection || !target)
61
+ return;
62
+ const result = await options.runDialog((signal) => showDeleteRoleDialog(options.dialogs.host, signal, selection.application, target));
63
+ if (result?.kind === 'delete-role')
64
+ await controller.deleteRole(target.id);
65
+ }
66
+ /** Opens and submits the focused create-permission dialog. */
67
+ async function createPermission() {
68
+ const selection = options.readSelection();
69
+ if (!selection)
70
+ return;
71
+ const result = await options.runDialog((signal) => showCreatePermissionDialog(options.dialogs.host, signal, selection.application, selection.modules));
72
+ if (result?.kind === 'create-permission')
73
+ await controller.createPermission(result.input);
74
+ }
75
+ /** Opens and submits mutable metadata for one retained permission. */
76
+ async function editPermission(permissionId) {
77
+ const selection = options.readSelection();
78
+ const target = permission(permissionId);
79
+ if (!selection || !target)
80
+ return;
81
+ const result = await options.runDialog((signal) => showEditPermissionDialog(options.dialogs.host, signal, selection.application, target, selection.modules));
82
+ if (result?.kind === 'update-permission') {
83
+ await controller.updatePermission(target.id, result.input);
84
+ }
85
+ }
86
+ /** Confirms and permanently deletes one retained permission. */
87
+ async function deletePermission(permissionId) {
88
+ const selection = options.readSelection();
89
+ const target = permission(permissionId);
90
+ if (!selection || !target)
91
+ return;
92
+ const result = await options.runDialog((signal) => showDeletePermissionDialog(options.dialogs.host, signal, selection.application, target));
93
+ if (result?.kind === 'delete-permission')
94
+ await controller.deletePermission(target.id);
95
+ }
96
+ /** Opens role permission management once and closes it after dispatching the saved changes. */
97
+ async function manageRolePermissions(roleId) {
98
+ const selection = options.readSelection();
99
+ const target = role(roleId);
100
+ if (!selection || !target)
101
+ return;
102
+ if (!(await controller.loadRolePermissions(target.id)))
103
+ return;
104
+ if (currentState.kind !== 'ready')
105
+ return;
106
+ const projection = currentState;
107
+ const assignedPermissions = projection.assignedPermissions;
108
+ const availablePermissions = projection.availablePermissions;
109
+ if (!assignedPermissions || !availablePermissions)
110
+ return;
111
+ const capabilities = options.readCapabilities();
112
+ const result = await options.runDialog((signal) => showManageRolePermissionsDialog(options.dialogs.host, signal, selection.application, target, assignedPermissions, availablePermissions, Boolean(capabilities?.canUpdateRoles && capabilities.canReadPermissions)));
113
+ if (result?.kind !== 'update-role-permissions')
114
+ return;
115
+ await controller.assignPermissions(result.roleId, result.assignPermissionIds);
116
+ if (currentState.kind !== 'ready')
117
+ return;
118
+ await controller.removePermissions(result.roleId, result.removePermissionIds);
119
+ }
120
+ return {
121
+ state: () => currentState,
122
+ syncApplication() {
123
+ if (disposed)
124
+ return;
125
+ const nextApplicationId = options.readSelection()?.application.id;
126
+ const nextSessionEpoch = options.readSessionEpoch();
127
+ if (nextApplicationId === applicationId && nextSessionEpoch === sessionEpoch)
128
+ return;
129
+ controller.cancelActiveOperation();
130
+ applicationId = nextApplicationId;
131
+ sessionEpoch = nextSessionEpoch;
132
+ publishState({ kind: 'closed' });
133
+ if (applicationId)
134
+ void controller.load();
135
+ },
136
+ handleIntent(intent) {
137
+ if (disposed)
138
+ return;
139
+ if (intent.kind === 'reload')
140
+ void controller.reload();
141
+ else if (intent.kind === 'add-role')
142
+ void createRole();
143
+ else if (intent.kind === 'edit-role')
144
+ void editRole(intent.roleId);
145
+ else if (intent.kind === 'delete-role')
146
+ void deleteRole(intent.roleId);
147
+ else if (intent.kind === 'manage-role-permissions') {
148
+ void manageRolePermissions(intent.roleId);
149
+ }
150
+ else if (intent.kind === 'add-permission')
151
+ void createPermission();
152
+ else if (intent.kind === 'edit-permission')
153
+ void editPermission(intent.permissionId);
154
+ else
155
+ void deletePermission(intent.permissionId);
156
+ },
157
+ cancelActiveOperation() {
158
+ controller.cancelActiveOperation();
159
+ },
160
+ handleRecoverableGeometry(recoverable) {
161
+ if (!recoverable)
162
+ controller.cancelActiveOperation();
163
+ },
164
+ dispose() {
165
+ if (disposed)
166
+ return;
167
+ controller.dispose();
168
+ currentState = { kind: 'closed' };
169
+ applicationId = undefined;
170
+ sessionEpoch = -1;
171
+ disposed = true;
172
+ },
173
+ };
174
+ }
175
+ //# sourceMappingURL=application-rbac-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-rbac-features.js","sourceRoot":"","sources":["../../src/admin/application-rbac-features.ts"],"names":[],"mappings":"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"}