@portaidentity/cli 1.7.3 → 1.9.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 +18 -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 +486 -0
  78. package/dist/admin/client-service.js.map +1 -0
  79. package/dist/admin/client-state.d.ts +159 -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 +491 -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 +102 -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,303 @@
1
+ /** Organization and identity dialogs for the embedded administration application. */
2
+ import { Button, col, Commands, cover, Dialog, fixed, grow, Input, Label, ListView, row, signal, spacer, stringWidth, Text, } from '@jsvision/ui';
3
+ import { normalizeServerOrigin } from '../global-options.js';
4
+ import { runAbortableAdminDialog } from './application-runtime.js';
5
+ import { deleteActionLabel, deleteConfirmationLayout } from './delete-confirmation-layout.js';
6
+ /** Maximum number of terminal cells used for one organization row. */
7
+ const ORGANIZATION_ROW_WIDTH = 68;
8
+ const DELETE_ORGANIZATION_COMMAND = 'admin:delete-organization';
9
+ /** Dialog that keeps an unauthenticated user inside the Authenticate-or-Quit decision. */
10
+ class AuthenticationGateDialog extends Dialog {
11
+ /** Lets the global Quit shortcut close this modal before the application handles Quit. */
12
+ onEvent(event) {
13
+ if (event.event.type === 'command' && event.event.command === Commands.quit && this.modalHost) {
14
+ this.modalHost.endModal(Commands.quit);
15
+ this.modalHost = null;
16
+ event.handled = true;
17
+ return;
18
+ }
19
+ super.onEvent(event);
20
+ }
21
+ /** Ignores Escape so the unusable application beneath the gate cannot be exposed. */
22
+ resolveCancel(event) {
23
+ event.handled = true;
24
+ }
25
+ }
26
+ /** Quit button that treats Enter like Space while focused instead of invoking the default button. */
27
+ class AuthenticationQuitButton extends Button {
28
+ /** Exits on focused Enter and delegates every other activation to the standard button. */
29
+ onEvent(event) {
30
+ if (event.event.type === 'key' && event.event.key === 'enter' && this.state.focused) {
31
+ event.emit?.(Commands.no);
32
+ event.handled = true;
33
+ return;
34
+ }
35
+ super.onEvent(event);
36
+ }
37
+ }
38
+ /** Organization list that also accepts a literal decoded space key for activation. */
39
+ class OrganizationListView extends ListView {
40
+ currentItems;
41
+ /** Creates the fixed, order-preserving organization list. */
42
+ constructor(currentItems, selected) {
43
+ super({
44
+ items: currentItems,
45
+ getText: organizationRow,
46
+ selected,
47
+ sorted: false,
48
+ command: Commands.ok,
49
+ });
50
+ this.currentItems = currentItems;
51
+ }
52
+ /** Treats a literal space exactly like JSVision's normalized `space` key. */
53
+ onEvent(event) {
54
+ if (event.event.type === 'key' && event.event.key === ' ') {
55
+ const index = this.focused.peek();
56
+ if (this.currentItems.peek()[index]) {
57
+ this.selected.set(index);
58
+ event.emit?.(Commands.ok);
59
+ event.handled = true;
60
+ }
61
+ return;
62
+ }
63
+ super.onEvent(event);
64
+ }
65
+ }
66
+ /** Dialog that lets the organization-specific Delete command complete its modal session. */
67
+ class OrganizationChooserDialog extends Dialog {
68
+ /** Routes Delete through the same enabled-state and validity checks as standard dialog actions. */
69
+ onEvent(event) {
70
+ if (event.event.type === 'command' && event.event.command === DELETE_ORGANIZATION_COMMAND) {
71
+ this.handleTerminating(DELETE_ORGANIZATION_COMMAND, event);
72
+ return;
73
+ }
74
+ super.onEvent(event);
75
+ }
76
+ }
77
+ /** Returns a dialog size capped to the currently available terminal surface. */
78
+ function dialogSize(host, preferredWidth, preferredHeight) {
79
+ return {
80
+ width: Math.max(1, Math.min(preferredWidth, host.desktop.bounds.width)),
81
+ height: Math.max(1, Math.min(preferredHeight, host.desktop.bounds.height)),
82
+ };
83
+ }
84
+ /** Mounts one dialog and guarantees removal after modal completion. */
85
+ async function runDialog(host, dialog) {
86
+ host.desktop.addWindow(dialog);
87
+ try {
88
+ return (await host.loop.execView(dialog)) ?? Commands.cancel;
89
+ }
90
+ finally {
91
+ host.desktop.removeWindow(dialog);
92
+ }
93
+ }
94
+ /** Runs one abortable organization dialog and always removes its window. */
95
+ async function runDeleteDialog(host, dialog, operationSignal) {
96
+ host.desktop.addWindow(dialog);
97
+ try {
98
+ return await runAbortableAdminDialog(host.loop, operationSignal, async () => (await host.loop.execView(dialog)) ?? Commands.cancel);
99
+ }
100
+ catch (error) {
101
+ if (error instanceof DOMException && error.name === 'AbortError')
102
+ return Commands.cancel;
103
+ throw error;
104
+ }
105
+ finally {
106
+ host.desktop.removeWindow(dialog);
107
+ }
108
+ }
109
+ /** Shows the mandatory authentication gate and returns one explicit user choice. */
110
+ export async function showAuthenticationGate(host) {
111
+ const { width, height } = dialogSize(host, 52, 10);
112
+ const dialog = new AuthenticationGateDialog({
113
+ title: 'Authentication required',
114
+ width,
115
+ height,
116
+ centered: true,
117
+ });
118
+ dialog.closable = false;
119
+ dialog.add(cover(col({ padding: { top: 1, right: 2, bottom: 1, left: 2 } }, fixed(new Text('Authenticate with Porta to continue.'), 1), spacer(), fixed(row({ gap: 1, justify: 'end' }, new Button('~A~uthenticate', { command: Commands.ok, default: true }), new AuthenticationQuitButton('~Q~uit', { command: Commands.no })), 2))));
120
+ return (await runDialog(host, dialog)) === Commands.ok ? 'authenticate' : 'quit';
121
+ }
122
+ /** Accepts a bounded, control-free identity value or returns a fixed fallback. */
123
+ function safeIdentityText(value, fallback) {
124
+ if (!value || value.length > 80)
125
+ return fallback;
126
+ for (const character of value) {
127
+ const codePoint = character.codePointAt(0) ?? 0;
128
+ if (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
129
+ return fallback;
130
+ }
131
+ return value;
132
+ }
133
+ /** Removes a row at the first terminal control and clips it by display width. */
134
+ function clipDisplayText(value, maximumWidth) {
135
+ let result = '';
136
+ for (const character of value) {
137
+ const codePoint = character.codePointAt(0) ?? 0;
138
+ if (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
139
+ break;
140
+ if (stringWidth(result + character) > maximumWidth)
141
+ break;
142
+ result += character;
143
+ }
144
+ return result;
145
+ }
146
+ /** Formats one already validated organization for a single terminal row. */
147
+ function organizationRow(organization) {
148
+ return clipDisplayText(`${organization.name} (${organization.slug}) [${organization.status}]`, ORGANIZATION_ROW_WIDTH);
149
+ }
150
+ /** Converts a fixed operation result into a safe chooser message. */
151
+ function chooserMessage(result) {
152
+ if (result.kind === 'session-invalid')
153
+ return 'Authentication is required.';
154
+ switch (result.failure) {
155
+ case 'validation':
156
+ return 'Validation failed';
157
+ case 'unauthorized':
158
+ return 'Not authorized';
159
+ case 'conflict':
160
+ return 'Conflict';
161
+ case 'unavailable':
162
+ return 'Service unavailable';
163
+ case 'invalid-response':
164
+ return 'Invalid server response';
165
+ }
166
+ }
167
+ /** Converts a retained fixed organization failure into the chooser's bounded message. */
168
+ function organizationFailureMessage(failure) {
169
+ return chooserMessage({ kind: 'failure', failure });
170
+ }
171
+ /** Shows trusted identity details and restores the previously focused control on close. */
172
+ export async function showWhoAmIDialog(host, state, insecure) {
173
+ const { width, height } = dialogSize(host, 58, 12);
174
+ const lines = [
175
+ `Server: ${normalizeServerOrigin(state.server).origin}`,
176
+ `Authenticated — Name: ${safeIdentityText(state.identity.name, 'Verified administrator')}`,
177
+ `Email: ${safeIdentityText(state.identity.email, 'Not provided')}`,
178
+ ];
179
+ if (insecure)
180
+ lines.push('Warning: insecure TLS verification.');
181
+ const dialog = new Dialog({ title: 'Who am I', width, height, centered: true });
182
+ dialog.add(cover(col({ padding: { top: 1, right: 2, bottom: 0, left: 2 } }, fixed(new Text(lines.join('\n')), lines.length), spacer(), fixed(row({ justify: 'center' }, new Button('~O~K', { command: Commands.ok, default: true })), 2))));
183
+ await runDialog(host, dialog);
184
+ }
185
+ /** Shows the organization list and returns only an explicit typed choice. */
186
+ export async function showOrganizationChooser(host, options) {
187
+ const { width, height } = dialogSize(host, 76, 18);
188
+ const organizations = signal([]);
189
+ const message = signal(options.failure
190
+ ? organizationFailureMessage(options.failure)
191
+ : options.capabilities.canReadOrganizations
192
+ ? 'Loading organizations'
193
+ : 'Organization listing unavailable');
194
+ const selected = signal(-1);
195
+ const list = new OrganizationListView(organizations, selected);
196
+ const dialog = new OrganizationChooserDialog({
197
+ title: 'Organizations',
198
+ width,
199
+ height,
200
+ centered: true,
201
+ });
202
+ const createAllowed = options.capabilities.canCreateOrganizations;
203
+ const chooserActions = row({ gap: 1 }, new Button('Cancel', { command: Commands.cancel }), createAllowed && new Button('~C~reate', { command: Commands.yes }), options.capabilities.canReadOrganizations &&
204
+ new Button('~S~witch', { command: Commands.ok, disabled: () => selected() < 0 }), options.capabilities.canDeleteOrganizations &&
205
+ new Button('Delete', {
206
+ command: DELETE_ORGANIZATION_COMMAND,
207
+ disabled: () => {
208
+ const organization = organizations()[selected()];
209
+ return !organization || organization.isSuperAdmin === true;
210
+ },
211
+ }), spacer(), new Button('~R~eauthenticate', { command: Commands.no }));
212
+ dialog.add(cover(col({ gap: 1, padding: { top: 1, right: 2, bottom: 1, left: 2 } }, fixed(new Text(() => message()), 1), grow(list), !createAllowed &&
213
+ fixed(new Text('Create organization… (requires organization create)'), 1), !options.capabilities.canReadOrganizations &&
214
+ fixed(new Text('Switch organization… (requires organization read)'), 1), fixed(chooserActions, 2))));
215
+ if (options.organizations && options.capabilities.canReadOrganizations) {
216
+ void options.organizations.then((result) => {
217
+ if (result.kind !== 'success') {
218
+ message.set(chooserMessage(result));
219
+ return;
220
+ }
221
+ organizations.set([...result.value]);
222
+ if (!options.failure) {
223
+ message.set(result.value.length === 0 ? 'No organizations available' : 'Select an organization');
224
+ }
225
+ });
226
+ }
227
+ const command = await runDialog(host, dialog);
228
+ if (command === Commands.yes && createAllowed)
229
+ return { kind: 'create' };
230
+ if (command === Commands.no)
231
+ return { kind: 'reauthenticate' };
232
+ if (command === DELETE_ORGANIZATION_COMMAND) {
233
+ const organization = organizations.peek()[selected.peek()];
234
+ if (organization && !organization.isSuperAdmin)
235
+ return { kind: 'delete', organization };
236
+ }
237
+ if (command === Commands.ok) {
238
+ const organization = organizations.peek()[selected.peek()];
239
+ if (organization)
240
+ return { kind: 'switch', organization };
241
+ }
242
+ return { kind: 'cancel' };
243
+ }
244
+ /** Builds a validator whose live gate permits editing and whose final gate enforces length bounds. */
245
+ function lengthValidator(minimum, maximum, optional = false) {
246
+ return {
247
+ isValidInput: (value) => value.length <= maximum,
248
+ isValid: (value) => (optional && value.length === 0) || (value.length >= minimum && value.length <= maximum),
249
+ };
250
+ }
251
+ /** Shows the bounded create form and omits blank optional fields from its result. */
252
+ export async function showCreateOrganizationDialog(host) {
253
+ const { width, height } = dialogSize(host, 62, 14);
254
+ const name = signal('');
255
+ const slug = signal('');
256
+ const defaultLocale = signal('');
257
+ const nameInput = new Input({ value: name, maxLength: 255, validator: lengthValidator(1, 255) });
258
+ const slugInput = new Input({
259
+ value: slug,
260
+ maxLength: 100,
261
+ validator: lengthValidator(3, 100, true),
262
+ });
263
+ const localeInput = new Input({
264
+ value: defaultLocale,
265
+ maxLength: 10,
266
+ validator: lengthValidator(2, 10, true),
267
+ });
268
+ const dialog = new Dialog({ title: 'Create organization', width, height, centered: true });
269
+ const field = (label, input) => fixed(row({ gap: 1 }, fixed(new Label(label, input), 17), grow(input)), 1);
270
+ dialog.add(cover(col({ gap: 1, padding: { top: 1, right: 2, bottom: 1, left: 2 } }, field('~N~ame', nameInput), field('~S~lug', slugInput), field('~D~efault locale', localeInput), spacer(), fixed(row({ gap: 1, justify: 'end' }, new Button('~C~reate', { command: Commands.ok, default: true }), new Button('Cancel', { command: Commands.cancel })), 2))));
271
+ const command = await runDialog(host, dialog);
272
+ if (command !== Commands.ok)
273
+ return { kind: 'cancel' };
274
+ const input = { name: name.peek() };
275
+ if (slug.peek())
276
+ input.slug = slug.peek();
277
+ if (defaultLocale.peek())
278
+ input.defaultLocale = defaultLocale.peek();
279
+ return { kind: 'create', input };
280
+ }
281
+ /** Shows the tenant-owned cascade before permanently deleting an organization. */
282
+ export async function showDeleteOrganizationDialog(host, operationSignal, organization) {
283
+ const { width, height } = dialogSize(host, 72, 14);
284
+ const keep = new Button('Keep', { command: Commands.cancel, default: true });
285
+ const remove = new Button(deleteActionLabel(organization.name, width), {
286
+ command: Commands.yes,
287
+ });
288
+ const dialog = new Dialog({ title: 'Delete organization', width, height, centered: true });
289
+ const confirmation = deleteConfirmationLayout({
290
+ dialogWidth: width,
291
+ details: `Organization: ${organization.name}`,
292
+ warning: 'Deleting this organization removes its users, clients, and security data.',
293
+ keep,
294
+ remove,
295
+ });
296
+ dialog.add(cover(confirmation.content));
297
+ const outcome = runDeleteDialog(host, dialog, operationSignal);
298
+ host.loop.focusView(keep);
299
+ return (await outcome) === Commands.yes
300
+ ? { kind: 'delete', organizationId: organization.id }
301
+ : { kind: 'cancel' };
302
+ }
303
+ //# sourceMappingURL=organization-dialogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-dialogs.js","sourceRoot":"","sources":["../../src/admin/organization-dialogs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /** Sanitized organization operations for the embedded administration UI. */
2
+ import type { BrandingAssetUploadInput, BrandingDomain, CreateOrganizationInput, OrganizationsDomain, TwoFactorDomain, UpdateBrandingSettingsInput } from '@portaidentity/sdk';
3
+ import type { AdminOrganizationAsset, AdminOrganizationAssetType, AdminOrganizationContext, AdminOrganizationLoginMethod, AdminOrganizationOverviewInput, AdminOrganizationReconciliation, AdminOrganizationResult, AdminOrganizationSettings, AdminOrganizationTwoFactorPolicy, AdminOrganizationWorkspaceMutationResult, AdminOrganizationWorkspaceReadResult } from './state.js';
4
+ /**
5
+ * Projects the full organization settings used by the focused workspace.
6
+ *
7
+ * @param value - Untrusted organization returned by the SDK.
8
+ * @returns A frozen safe projection, or `undefined` when any retained field is invalid.
9
+ * @example
10
+ * ```ts
11
+ * const settings = validateOrganizationSettings(sdkOrganization);
12
+ * ```
13
+ */
14
+ export declare function validateOrganizationSettings(value: unknown): AdminOrganizationSettings | undefined;
15
+ /**
16
+ * Converts one untrusted SDK row to the only fields retained by the UI.
17
+ *
18
+ * @param value - Untrusted organization data returned by the SDK.
19
+ * @returns The validated four-field projection, or `undefined` for any malformed field.
20
+ * @example
21
+ * ```ts
22
+ * const context = validateOrganizationContext(sdkOrganization);
23
+ * ```
24
+ */
25
+ export declare function validateOrganizationContext(value: unknown): AdminOrganizationContext | undefined;
26
+ /** Operations used by the admin application without exposing raw SDK responses. */
27
+ export interface AdminOrganizationOperations {
28
+ /** Loads and validates the complete organization list once. */
29
+ readonly listAll: () => Promise<AdminOrganizationResult<readonly AdminOrganizationContext[]>>;
30
+ /** Refreshes one selected organization without exposing unrelated rows. */
31
+ readonly reconcile: (selectedId: string) => Promise<AdminOrganizationReconciliation>;
32
+ /** Creates one organization and validates the returned projection. */
33
+ readonly create: (input: CreateOrganizationInput) => Promise<AdminOrganizationResult<AdminOrganizationContext>>;
34
+ /** Permanently deletes one organization. */
35
+ readonly delete: (id: string) => Promise<AdminOrganizationResult<void>>;
36
+ }
37
+ /**
38
+ * Creates the narrow organization boundary used by the terminal application.
39
+ *
40
+ * The SDK domain is obtained lazily so no authenticated client is constructed before an
41
+ * organization operation is actually requested.
42
+ *
43
+ * @param domain - Returns the organization methods for the currently verified server.
44
+ * @returns Sanitized list, create, and reconciliation operations.
45
+ * @example
46
+ * ```ts
47
+ * const operations = createAdminOrganizationOperations(() => client.organizations);
48
+ * const result = await operations.listAll();
49
+ * ```
50
+ */
51
+ export declare function createAdminOrganizationOperations(domain: () => Pick<OrganizationsDomain, 'listAll' | 'create' | 'delete'>): AdminOrganizationOperations;
52
+ /** Existing SDK domains required only by the selected-organization workspace. */
53
+ export interface AdminOrganizationWorkspaceDomains {
54
+ /** Returns organization settings and lifecycle operations for the verified session. */
55
+ readonly organizations: () => Pick<OrganizationsDomain, 'get' | 'update' | 'activate' | 'suspend'>;
56
+ /** Returns organization branding settings and asset operations. */
57
+ readonly branding: () => Pick<BrandingDomain, 'listAssets' | 'updateSettings' | 'uploadAsset' | 'deleteAsset'>;
58
+ /** Returns the existing organization two-factor policy operations. */
59
+ readonly twoFactor: () => Pick<TwoFactorDomain, 'getPolicy' | 'setPolicy'>;
60
+ }
61
+ /** Common organization-qualified read signature used by workspace resources. */
62
+ type OrganizationWorkspaceRead<T> = (organizationId: string, signal?: AbortSignal) => Promise<AdminOrganizationWorkspaceReadResult<T>>;
63
+ /** Common organization-qualified mutation signature used by lifecycle actions. */
64
+ type OrganizationWorkspaceMutation = (organizationId: string, signal?: AbortSignal) => Promise<AdminOrganizationWorkspaceMutationResult>;
65
+ /** Common organization-qualified update signature for one validated settings value. */
66
+ type OrganizationWorkspaceUpdate<T> = (organizationId: string, value: T, signal?: AbortSignal) => Promise<AdminOrganizationWorkspaceMutationResult>;
67
+ /** Organization-qualified image upload signature. */
68
+ type OrganizationWorkspaceAssetUpload = (organizationId: string, assetType: AdminOrganizationAssetType, input: BrandingAssetUploadInput, signal?: AbortSignal) => Promise<AdminOrganizationWorkspaceMutationResult>;
69
+ /** Organization-qualified image deletion signature. */
70
+ type OrganizationWorkspaceAssetDelete = (organizationId: string, assetType: AdminOrganizationAssetType, signal?: AbortSignal) => Promise<AdminOrganizationWorkspaceMutationResult>;
71
+ /** Direct validated operations consumed by the organization workspace controller. */
72
+ export interface AdminOrganizationWorkspaceOperations {
73
+ /** Loads the complete validated organization settings projection. */
74
+ readonly get: OrganizationWorkspaceRead<AdminOrganizationSettings>;
75
+ /** Updates changed Overview fields without an ETag. */
76
+ readonly update: OrganizationWorkspaceUpdate<AdminOrganizationOverviewInput>;
77
+ /** Activates the selected organization. */
78
+ readonly activate: OrganizationWorkspaceMutation;
79
+ /** Suspends the selected organization. */
80
+ readonly suspend: OrganizationWorkspaceMutation;
81
+ /** Loads the organization login-method defaults. */
82
+ readonly getLoginMethods: OrganizationWorkspaceRead<readonly AdminOrganizationLoginMethod[]>;
83
+ /** Updates the non-empty organization login-method defaults. */
84
+ readonly updateLoginMethods: OrganizationWorkspaceUpdate<readonly AdminOrganizationLoginMethod[]>;
85
+ /** Loads the organization-wide password-login two-factor policy. */
86
+ readonly getTwoFactorPolicy: OrganizationWorkspaceRead<AdminOrganizationTwoFactorPolicy>;
87
+ /** Updates the organization-wide password-login two-factor policy. */
88
+ readonly updateTwoFactorPolicy: OrganizationWorkspaceUpdate<AdminOrganizationTwoFactorPolicy>;
89
+ /** Updates changed branding text fields independently from image assets. */
90
+ readonly updateBranding: OrganizationWorkspaceUpdate<UpdateBrandingSettingsInput>;
91
+ /** Lists complete validated logo and favicon metadata. */
92
+ readonly listAssets: OrganizationWorkspaceRead<readonly AdminOrganizationAsset[]>;
93
+ /** Creates or replaces one validated image asset. */
94
+ readonly uploadAsset: OrganizationWorkspaceAssetUpload;
95
+ /** Permanently removes one stored image asset. */
96
+ readonly deleteAsset: OrganizationWorkspaceAssetDelete;
97
+ }
98
+ /**
99
+ * Creates the direct SDK adapter used only by the selected-organization workspace.
100
+ *
101
+ * @param domains - Lazy access to the verified session's existing SDK domains.
102
+ * @returns Validated operations that expose only fixed safe outcomes.
103
+ * @example
104
+ * ```ts
105
+ * const operations = createAdminOrganizationWorkspaceOperations(domains);
106
+ * ```
107
+ */
108
+ export declare function createAdminOrganizationWorkspaceOperations(domains: AdminOrganizationWorkspaceDomains): AdminOrganizationWorkspaceOperations;
109
+ export {};
110
+ //# sourceMappingURL=organization-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-service.d.ts","sourceRoot":"","sources":["../../src/admin/organization-service.ts"],"names":[],"mappings":"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"}