@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,195 @@
1
+ /** Compact registration dialog for creating one OIDC client from server-backed defaults. */
2
+ import { Button, col, ComboBox, Commands, cover, Dialog, fixed, grow, Input, Label, RadioGroup, row, signal, spacer, Text, } from '@jsvision/ui';
3
+ import { runAbortableAdminDialog } from './application-runtime.js';
4
+ import { textValidator } from './user-dialog-fields.js';
5
+ /** One empty row separates each adjacent form component and the dialog action area. */
6
+ const REGISTRATION_FORM_GAP = 1;
7
+ /** Create and Cancel use their natural two-row button height, including the button shadow. */
8
+ const REGISTRATION_ACTIONS_HEIGHT = 2;
9
+ /**
10
+ * Calculates the client-details form height from its visible component heights and spacing.
11
+ */
12
+ function clientDetailsHeight() {
13
+ const componentHeights = [1, 1, 1, 2, 3, 1];
14
+ const componentGaps = (componentHeights.length - 1) * REGISTRATION_FORM_GAP;
15
+ return componentHeights.reduce((total, height) => total + height, 0) + componentGaps;
16
+ }
17
+ /**
18
+ * Calculates the complete dialog height without relying on a scrolling content surface.
19
+ * The dialog frame contributes two rows and the form keeps one top-padding row.
20
+ */
21
+ function registrationDialogHeight() {
22
+ const dialogFrameAndFormPadding = 3;
23
+ return (clientDetailsHeight() +
24
+ REGISTRATION_FORM_GAP +
25
+ REGISTRATION_ACTIONS_HEIGHT +
26
+ dialogFrameAndFormPadding);
27
+ }
28
+ /** Dialog that applies the same validation to buttons, Enter, and programmatic submission. */
29
+ class ClientRegistrationDialog extends Dialog {
30
+ form;
31
+ /** Creates one fixed registration surface that will fill its desktop. */
32
+ constructor(width, height, form) {
33
+ super({ title: 'Register OIDC client', width, height, centered: true });
34
+ this.form = form;
35
+ this.closable = false;
36
+ this.movable = false;
37
+ this.resizable = false;
38
+ this.zoomable = false;
39
+ }
40
+ /** Prevents an invalid or incomplete form from emitting a create result. */
41
+ valid(command) {
42
+ if (command === Commands.cancel)
43
+ return true;
44
+ if (!registrationIsValid(this.form)) {
45
+ this.firstInvalid = firstInvalidControl(this.form);
46
+ return false;
47
+ }
48
+ return super.valid(command);
49
+ }
50
+ }
51
+ /** Returns true for bounded text that cannot alter terminal rendering. */
52
+ function validText(value, minimum, maximum) {
53
+ if (value.length < minimum || value.length > maximum)
54
+ return false;
55
+ return ![...value].some((character) => {
56
+ const codePoint = character.codePointAt(0) ?? 0;
57
+ return codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f);
58
+ });
59
+ }
60
+ /** Returns true for one absolute redirect URI without wildcard or fragment syntax. */
61
+ function validRedirectUri(value) {
62
+ if (!validText(value, 1, 2_048) || value.includes('*'))
63
+ return false;
64
+ try {
65
+ const parsed = new URL(value);
66
+ return parsed.protocol.length > 1 && parsed.hash === '';
67
+ }
68
+ catch {
69
+ return false;
70
+ }
71
+ }
72
+ /** Reads current form values and applies the complete visible-field validity rule. */
73
+ function registrationIsValid(form) {
74
+ return (validText(form.clientName(), 1, 255) &&
75
+ form.application() !== null &&
76
+ form.clientType() >= 0 &&
77
+ form.clientType() <= 1 &&
78
+ form.applicationType() >= 0 &&
79
+ form.applicationType() <= 2 &&
80
+ validRedirectUri(form.redirectUri()));
81
+ }
82
+ /** Chooses the most useful control when validation blocks submission. */
83
+ function firstInvalidControl(form) {
84
+ if (!validText(form.clientName.peek(), 1, 255))
85
+ return form.nameInput;
86
+ if (!form.application.peek())
87
+ return form.applicationPicker;
88
+ return form.redirectInput;
89
+ }
90
+ /** Caps the preferred dialog geometry to the current terminal. */
91
+ function registrationDialogSize(host) {
92
+ return {
93
+ width: Math.max(1, Math.min(68, host.desktop.bounds.width)),
94
+ height: Math.max(1, Math.min(registrationDialogHeight(), host.desktop.bounds.height)),
95
+ };
96
+ }
97
+ /** Runs one abortable modal and removes it regardless of its completion path. */
98
+ async function runRegistrationDialog(host, dialog, operationSignal) {
99
+ host.desktop.addWindow(dialog);
100
+ try {
101
+ return await runAbortableAdminDialog(host.loop, operationSignal, async () => (await host.loop.execView(dialog)) ?? Commands.cancel);
102
+ }
103
+ catch (error) {
104
+ if (error instanceof DOMException && error.name === 'AbortError')
105
+ return Commands.cancel;
106
+ throw error;
107
+ }
108
+ finally {
109
+ host.desktop.removeWindow(dialog);
110
+ }
111
+ }
112
+ /** Creates a one-row field whose label points at its input control. */
113
+ function registrationInputRow(label, input) {
114
+ return fixed(row({ gap: 1 }, fixed(new Label(label, input), 18), grow(input)), 1);
115
+ }
116
+ /** Builds the client identity and type fields with the Layout DSL. */
117
+ function clientDetailsLayout(form, organization) {
118
+ return col({ gap: 1 }, fixed(new Text(`Organization: ${organization.name} (read only)`), 1), registrationInputRow('Client name', form.nameInput), fixed(row({ gap: 1 }, fixed(new Text('Application'), 18), grow(form.applicationPicker)), 1), fixed(row({ gap: 1 }, fixed(new Text('Client type'), 18), grow(new RadioGroup({
119
+ labels: ['~P~ublic', 'Con~f~idential'],
120
+ value: form.clientType,
121
+ }))), 2), fixed(row({ gap: 1 }, fixed(new Text('Application type'), 18), grow(new RadioGroup({
122
+ labels: ['~W~eb', '~N~ative', '~S~PA'],
123
+ value: form.applicationType,
124
+ }))), 3), registrationInputRow('Redirect URI', form.redirectInput));
125
+ }
126
+ /** Builds the complete non-scrolling registration layout. */
127
+ function registrationLayout(form, organization) {
128
+ return col({
129
+ gap: REGISTRATION_FORM_GAP,
130
+ padding: { top: 1, right: 2, bottom: 0, left: 2 },
131
+ }, fixed(clientDetailsLayout(form, organization), clientDetailsHeight()), fixed(row({ gap: 1 }, spacer(), new Button('~C~reate', {
132
+ command: Commands.ok,
133
+ default: true,
134
+ disabled: () => !registrationIsValid(form),
135
+ }), new Button('Cancel', { command: Commands.cancel })), REGISTRATION_ACTIONS_HEIGHT));
136
+ }
137
+ /** Creates the signals and controls for one compact registration attempt. */
138
+ function createRegistrationForm(applications) {
139
+ const activeApplications = applications.filter((application) => application.status === 'active');
140
+ const clientName = signal('');
141
+ const application = signal(activeApplications[0] ?? null);
142
+ const clientType = signal(1);
143
+ const applicationType = signal(0);
144
+ const redirectUri = signal('');
145
+ return {
146
+ clientName,
147
+ application,
148
+ clientType,
149
+ applicationType,
150
+ redirectUri,
151
+ nameInput: new Input({
152
+ value: clientName,
153
+ maxLength: 255,
154
+ validator: textValidator(1, 255, false),
155
+ }),
156
+ redirectInput: new Input({ value: redirectUri, maxLength: 2_048 }),
157
+ applicationPicker: new ComboBox({
158
+ items: signal(activeApplications),
159
+ getText: (item) => item.name,
160
+ value: application,
161
+ editable: false,
162
+ }),
163
+ };
164
+ }
165
+ /** Converts validated compact form values into an SDK create request. */
166
+ function registrationPayload(form) {
167
+ const application = form.application.peek();
168
+ if (!application)
169
+ throw new Error('A validated application is required.');
170
+ const applicationTypes = ['web', 'native', 'spa'];
171
+ const applicationType = applicationTypes[form.applicationType.peek()];
172
+ if (!applicationType)
173
+ throw new Error('A validated application type is required.');
174
+ const clientType = form.clientType.peek() === 0 ? 'public' : 'confidential';
175
+ const input = {
176
+ applicationId: application.id,
177
+ clientName: form.clientName.peek(),
178
+ clientType,
179
+ applicationType,
180
+ redirectUris: [form.redirectUri.peek()],
181
+ };
182
+ return input;
183
+ }
184
+ /** Opens compact OIDC client registration using server defaults for advanced fields. */
185
+ export async function showClientRegistrationDialog(host, operationSignal, options) {
186
+ const form = createRegistrationForm(options.applications);
187
+ const { width, height } = registrationDialogSize(host);
188
+ const dialog = new ClientRegistrationDialog(width, height, form);
189
+ dialog.add(cover(registrationLayout(form, options.organization)));
190
+ const command = await runRegistrationDialog(host, dialog, operationSignal);
191
+ return command === Commands.ok
192
+ ? { kind: 'create', input: registrationPayload(form) }
193
+ : { kind: 'cancel' };
194
+ }
195
+ //# sourceMappingURL=client-registration-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-registration-dialog.js","sourceRoot":"","sources":["../../src/admin/client-registration-dialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /** Validated SDK boundary for selected-organization OIDC client administration. */
2
+ import type { ClientsDomain, CreateClientInput, GenerateSecretInput, UpdateClientInput } from '@portaidentity/sdk';
3
+ import type { AdminClient, AdminClientMutationResult, AdminClientReadResult, AdminClientSecret, AdminGeneratedClientSecret } from './client-state.js';
4
+ export type * from './client-state.js';
5
+ /** Successful client creation before the plaintext continuation is disposed. */
6
+ export interface AdminClientCreateResult {
7
+ /** Validated created client. */
8
+ readonly client: AdminClient;
9
+ /** One-time confidential-client secret, when returned. */
10
+ readonly secret?: AdminGeneratedClientSecret;
11
+ }
12
+ /** Exact client operations consumed by controllers and later views. */
13
+ export interface AdminClientOperations {
14
+ /** Loads every validated client for exactly one organization. */
15
+ readonly listAll: (organizationId: string) => Promise<AdminClientReadResult<readonly AdminClient[]>>;
16
+ /** Loads one validated organization-owned client and its update precondition. */
17
+ readonly get: (organizationId: string, clientId: string) => Promise<AdminClientReadResult<{
18
+ client: AdminClient;
19
+ etag: string | null;
20
+ }>>;
21
+ /** Creates one client in exactly one organization. */
22
+ readonly create: (organizationId: string, input: Omit<CreateClientInput, 'organizationId'>) => Promise<AdminClientMutationResult<AdminClientCreateResult>>;
23
+ /** Updates mutable client configuration. */
24
+ readonly update: (organizationId: string, clientId: string, input: UpdateClientInput, etag?: string, signal?: AbortSignal) => Promise<AdminClientMutationResult<AdminClient>>;
25
+ /** Activates one client. */
26
+ readonly activate: (organizationId: string, clientId: string, signal?: AbortSignal) => Promise<AdminClientMutationResult>;
27
+ /** Deactivates one client. */
28
+ readonly deactivate: (organizationId: string, clientId: string, signal?: AbortSignal) => Promise<AdminClientMutationResult>;
29
+ /** Permanently deletes one client. */
30
+ readonly delete: (organizationId: string, clientId: string, signal?: AbortSignal) => Promise<AdminClientMutationResult>;
31
+ /** Lists metadata-only secrets for one confidential client. */
32
+ readonly listSecrets: (organizationId: string, clientId: string) => Promise<AdminClientReadResult<readonly AdminClientSecret[]>>;
33
+ /** Generates one transient plaintext secret. */
34
+ readonly generateSecret: (organizationId: string, clientId: string, input?: GenerateSecretInput, signal?: AbortSignal) => Promise<AdminClientMutationResult<AdminGeneratedClientSecret>>;
35
+ /** Permanently deletes one nested secret through the SDK compatibility operation. */
36
+ readonly revokeSecret: (organizationId: string, clientId: string, secretId: string, signal?: AbortSignal) => Promise<AdminClientMutationResult>;
37
+ }
38
+ type AdminClientDomain = Pick<ClientsDomain, 'listAll' | 'get' | 'create' | 'update' | 'activate' | 'deactivate' | 'delete' | 'listSecrets' | 'generateSecret' | 'revokeSecret'>;
39
+ /** Creates the feature-local client SDK adapter. */
40
+ export declare function createAdminClientOperations(domain: () => AdminClientDomain): AdminClientOperations;
41
+ //# sourceMappingURL=client-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-service.d.ts","sourceRoot":"","sources":["../../src/admin/client-service.ts"],"names":[],"mappings":"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"}