@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.
- package/CHANGELOG.md +18 -0
- package/README.md +125 -105
- package/dist/admin/admin-date-time.d.ts +6 -0
- package/dist/admin/admin-date-time.d.ts.map +1 -0
- package/dist/admin/admin-date-time.js +33 -0
- package/dist/admin/admin-date-time.js.map +1 -0
- package/dist/admin/application-client-features.d.ts +38 -0
- package/dist/admin/application-client-features.d.ts.map +1 -0
- package/dist/admin/application-client-features.js +545 -0
- package/dist/admin/application-client-features.js.map +1 -0
- package/dist/admin/application-controller.d.ts +58 -0
- package/dist/admin/application-controller.d.ts.map +1 -0
- package/dist/admin/application-controller.js +286 -0
- package/dist/admin/application-controller.js.map +1 -0
- package/dist/admin/application-dialogs.d.ts +91 -0
- package/dist/admin/application-dialogs.d.ts.map +1 -0
- package/dist/admin/application-dialogs.js +250 -0
- package/dist/admin/application-dialogs.js.map +1 -0
- package/dist/admin/application-rbac-controller.d.ts +56 -0
- package/dist/admin/application-rbac-controller.d.ts.map +1 -0
- package/dist/admin/application-rbac-controller.js +280 -0
- package/dist/admin/application-rbac-controller.js.map +1 -0
- package/dist/admin/application-rbac-features.d.ts +51 -0
- package/dist/admin/application-rbac-features.d.ts.map +1 -0
- package/dist/admin/application-rbac-features.js +175 -0
- package/dist/admin/application-rbac-features.js.map +1 -0
- package/dist/admin/application-rbac-workspace.d.ts +62 -0
- package/dist/admin/application-rbac-workspace.d.ts.map +1 -0
- package/dist/admin/application-rbac-workspace.js +344 -0
- package/dist/admin/application-rbac-workspace.js.map +1 -0
- package/dist/admin/application-runtime.d.ts +44 -0
- package/dist/admin/application-runtime.d.ts.map +1 -0
- package/dist/admin/application-runtime.js +183 -0
- package/dist/admin/application-runtime.js.map +1 -0
- package/dist/admin/application-service.d.ts +39 -0
- package/dist/admin/application-service.d.ts.map +1 -0
- package/dist/admin/application-service.js +248 -0
- package/dist/admin/application-service.js.map +1 -0
- package/dist/admin/application-state.d.ts +109 -0
- package/dist/admin/application-state.d.ts.map +1 -0
- package/dist/admin/application-state.js +3 -0
- package/dist/admin/application-state.js.map +1 -0
- package/dist/admin/application-workspace.d.ts +77 -0
- package/dist/admin/application-workspace.d.ts.map +1 -0
- package/dist/admin/application-workspace.js +302 -0
- package/dist/admin/application-workspace.js.map +1 -0
- package/dist/admin/application.d.ts +88 -0
- package/dist/admin/application.d.ts.map +1 -0
- package/dist/admin/application.js +932 -0
- package/dist/admin/application.js.map +1 -0
- package/dist/admin/client-authentication-dialog.d.ts +77 -0
- package/dist/admin/client-authentication-dialog.d.ts.map +1 -0
- package/dist/admin/client-authentication-dialog.js +217 -0
- package/dist/admin/client-authentication-dialog.js.map +1 -0
- package/dist/admin/client-controller.d.ts +58 -0
- package/dist/admin/client-controller.d.ts.map +1 -0
- package/dist/admin/client-controller.js +462 -0
- package/dist/admin/client-controller.js.map +1 -0
- package/dist/admin/client-credential-dialogs.d.ts +36 -0
- package/dist/admin/client-credential-dialogs.d.ts.map +1 -0
- package/dist/admin/client-credential-dialogs.js +145 -0
- package/dist/admin/client-credential-dialogs.js.map +1 -0
- package/dist/admin/client-dialogs.d.ts +64 -0
- package/dist/admin/client-dialogs.d.ts.map +1 -0
- package/dist/admin/client-dialogs.js +110 -0
- package/dist/admin/client-dialogs.js.map +1 -0
- package/dist/admin/client-form-scroller.d.ts +17 -0
- package/dist/admin/client-form-scroller.d.ts.map +1 -0
- package/dist/admin/client-form-scroller.js +67 -0
- package/dist/admin/client-form-scroller.js.map +1 -0
- package/dist/admin/client-registration-dialog.d.ts +27 -0
- package/dist/admin/client-registration-dialog.d.ts.map +1 -0
- package/dist/admin/client-registration-dialog.js +195 -0
- package/dist/admin/client-registration-dialog.js.map +1 -0
- package/dist/admin/client-service.d.ts +41 -0
- package/dist/admin/client-service.d.ts.map +1 -0
- package/dist/admin/client-service.js +486 -0
- package/dist/admin/client-service.js.map +1 -0
- package/dist/admin/client-state.d.ts +159 -0
- package/dist/admin/client-state.d.ts.map +1 -0
- package/dist/admin/client-state.js +3 -0
- package/dist/admin/client-state.js.map +1 -0
- package/dist/admin/client-workspace.d.ts +88 -0
- package/dist/admin/client-workspace.d.ts.map +1 -0
- package/dist/admin/client-workspace.js +491 -0
- package/dist/admin/client-workspace.js.map +1 -0
- package/dist/admin/delete-confirmation-layout.d.ts +38 -0
- package/dist/admin/delete-confirmation-layout.d.ts.map +1 -0
- package/dist/admin/delete-confirmation-layout.js +52 -0
- package/dist/admin/delete-confirmation-layout.js.map +1 -0
- package/dist/admin/index.d.ts +64 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +31 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/organization-controller.d.ts +77 -0
- package/dist/admin/organization-controller.d.ts.map +1 -0
- package/dist/admin/organization-controller.js +472 -0
- package/dist/admin/organization-controller.js.map +1 -0
- package/dist/admin/organization-dialogs.d.ts +63 -0
- package/dist/admin/organization-dialogs.d.ts.map +1 -0
- package/dist/admin/organization-dialogs.js +303 -0
- package/dist/admin/organization-dialogs.js.map +1 -0
- package/dist/admin/organization-service.d.ts +110 -0
- package/dist/admin/organization-service.d.ts.map +1 -0
- package/dist/admin/organization-service.js +548 -0
- package/dist/admin/organization-service.js.map +1 -0
- package/dist/admin/organization-workspace.d.ts +29 -0
- package/dist/admin/organization-workspace.d.ts.map +1 -0
- package/dist/admin/organization-workspace.js +421 -0
- package/dist/admin/organization-workspace.js.map +1 -0
- package/dist/admin/portability-controller.d.ts +83 -0
- package/dist/admin/portability-controller.d.ts.map +1 -0
- package/dist/admin/portability-controller.js +466 -0
- package/dist/admin/portability-controller.js.map +1 -0
- package/dist/admin/portability-service.d.ts +31 -0
- package/dist/admin/portability-service.d.ts.map +1 -0
- package/dist/admin/portability-service.js +51 -0
- package/dist/admin/portability-service.js.map +1 -0
- package/dist/admin/portability-state.d.ts +88 -0
- package/dist/admin/portability-state.d.ts.map +1 -0
- package/dist/admin/portability-state.js +3 -0
- package/dist/admin/portability-state.js.map +1 -0
- package/dist/admin/portability-workspace.d.ts +78 -0
- package/dist/admin/portability-workspace.d.ts.map +1 -0
- package/dist/admin/portability-workspace.js +337 -0
- package/dist/admin/portability-workspace.js.map +1 -0
- package/dist/admin/presentation.d.ts +46 -0
- package/dist/admin/presentation.d.ts.map +1 -0
- package/dist/admin/presentation.js +271 -0
- package/dist/admin/presentation.js.map +1 -0
- package/dist/admin/rbac-dialogs.d.ts +73 -0
- package/dist/admin/rbac-dialogs.d.ts.map +1 -0
- package/dist/admin/rbac-dialogs.js +345 -0
- package/dist/admin/rbac-dialogs.js.map +1 -0
- package/dist/admin/rbac-service.d.ts +47 -0
- package/dist/admin/rbac-service.d.ts.map +1 -0
- package/dist/admin/rbac-service.js +258 -0
- package/dist/admin/rbac-service.js.map +1 -0
- package/dist/admin/rbac-state.d.ts +129 -0
- package/dist/admin/rbac-state.d.ts.map +1 -0
- package/dist/admin/rbac-state.js +136 -0
- package/dist/admin/rbac-state.js.map +1 -0
- package/dist/admin/selectable-read-only-input.d.ts +18 -0
- package/dist/admin/selectable-read-only-input.d.ts.map +1 -0
- package/dist/admin/selectable-read-only-input.js +24 -0
- package/dist/admin/selectable-read-only-input.js.map +1 -0
- package/dist/admin/session-service.d.ts +169 -0
- package/dist/admin/session-service.d.ts.map +1 -0
- package/dist/admin/session-service.js +353 -0
- package/dist/admin/session-service.js.map +1 -0
- package/dist/admin/state.d.ts +301 -0
- package/dist/admin/state.d.ts.map +1 -0
- package/dist/admin/state.js +10 -0
- package/dist/admin/state.js.map +1 -0
- package/dist/admin/system-config-controller.d.ts +58 -0
- package/dist/admin/system-config-controller.d.ts.map +1 -0
- package/dist/admin/system-config-controller.js +218 -0
- package/dist/admin/system-config-controller.js.map +1 -0
- package/dist/admin/system-config-service.d.ts +54 -0
- package/dist/admin/system-config-service.d.ts.map +1 -0
- package/dist/admin/system-config-service.js +180 -0
- package/dist/admin/system-config-service.js.map +1 -0
- package/dist/admin/system-config-state.d.ts +77 -0
- package/dist/admin/system-config-state.d.ts.map +1 -0
- package/dist/admin/system-config-state.js +78 -0
- package/dist/admin/system-config-state.js.map +1 -0
- package/dist/admin/system-config-workspace.d.ts +47 -0
- package/dist/admin/system-config-workspace.d.ts.map +1 -0
- package/dist/admin/system-config-workspace.js +217 -0
- package/dist/admin/system-config-workspace.js.map +1 -0
- package/dist/admin/user-controller-types.d.ts +67 -0
- package/dist/admin/user-controller-types.d.ts.map +1 -0
- package/dist/admin/user-controller-types.js +3 -0
- package/dist/admin/user-controller-types.js.map +1 -0
- package/dist/admin/user-controller.d.ts +6 -0
- package/dist/admin/user-controller.d.ts.map +1 -0
- package/dist/admin/user-controller.js +674 -0
- package/dist/admin/user-controller.js.map +1 -0
- package/dist/admin/user-dialog-fields.d.ts +44 -0
- package/dist/admin/user-dialog-fields.d.ts.map +1 -0
- package/dist/admin/user-dialog-fields.js +130 -0
- package/dist/admin/user-dialog-fields.js.map +1 -0
- package/dist/admin/user-dialogs.d.ts +66 -0
- package/dist/admin/user-dialogs.d.ts.map +1 -0
- package/dist/admin/user-dialogs.js +374 -0
- package/dist/admin/user-dialogs.js.map +1 -0
- package/dist/admin/user-role-controller.d.ts +82 -0
- package/dist/admin/user-role-controller.d.ts.map +1 -0
- package/dist/admin/user-role-controller.js +337 -0
- package/dist/admin/user-role-controller.js.map +1 -0
- package/dist/admin/user-role-dialog.d.ts +94 -0
- package/dist/admin/user-role-dialog.d.ts.map +1 -0
- package/dist/admin/user-role-dialog.js +265 -0
- package/dist/admin/user-role-dialog.js.map +1 -0
- package/dist/admin/user-service-types.d.ts +100 -0
- package/dist/admin/user-service-types.d.ts.map +1 -0
- package/dist/admin/user-service-types.js +3 -0
- package/dist/admin/user-service-types.js.map +1 -0
- package/dist/admin/user-service.d.ts +14 -0
- package/dist/admin/user-service.d.ts.map +1 -0
- package/dist/admin/user-service.js +612 -0
- package/dist/admin/user-service.js.map +1 -0
- package/dist/admin/user-state.d.ts +158 -0
- package/dist/admin/user-state.d.ts.map +1 -0
- package/dist/admin/user-state.js +3 -0
- package/dist/admin/user-state.js.map +1 -0
- package/dist/admin/user-workspace.d.ts +65 -0
- package/dist/admin/user-workspace.d.ts.map +1 -0
- package/dist/admin/user-workspace.js +366 -0
- package/dist/admin/user-workspace.js.map +1 -0
- package/dist/auth/browser-flow.d.ts +27 -1
- package/dist/auth/browser-flow.d.ts.map +1 -1
- package/dist/auth/browser-flow.js +55 -33
- package/dist/auth/browser-flow.js.map +1 -1
- package/dist/auth/callback-server.d.ts.map +1 -1
- package/dist/auth/callback-server.js +5 -9
- package/dist/auth/callback-server.js.map +1 -1
- package/dist/auth/id-token-verifier.d.ts +39 -0
- package/dist/auth/id-token-verifier.d.ts.map +1 -0
- package/dist/auth/id-token-verifier.js +104 -0
- package/dist/auth/id-token-verifier.js.map +1 -0
- package/dist/auth/login-coordinator.d.ts +72 -0
- package/dist/auth/login-coordinator.d.ts.map +1 -0
- package/dist/auth/login-coordinator.js +190 -0
- package/dist/auth/login-coordinator.js.map +1 -0
- package/dist/auth/metadata.d.ts +2 -1
- package/dist/auth/metadata.d.ts.map +1 -1
- package/dist/auth/metadata.js +67 -6
- package/dist/auth/metadata.js.map +1 -1
- package/dist/auth/types.d.ts +14 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +15 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/admin.d.ts +22 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +112 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/app-claim.d.ts.map +1 -1
- package/dist/commands/app-claim.js +11 -4
- package/dist/commands/app-claim.js.map +1 -1
- package/dist/commands/app-module.d.ts.map +1 -1
- package/dist/commands/app-module.js +61 -12
- package/dist/commands/app-module.js.map +1 -1
- package/dist/commands/app-permission.d.ts.map +1 -1
- package/dist/commands/app-permission.js +66 -24
- package/dist/commands/app-permission.js.map +1 -1
- package/dist/commands/app-role.d.ts.map +1 -1
- package/dist/commands/app-role.js +48 -27
- package/dist/commands/app-role.js.map +1 -1
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +37 -25
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/bulk.d.ts.map +1 -1
- package/dist/commands/bulk.js +9 -2
- package/dist/commands/bulk.js.map +1 -1
- package/dist/commands/client-secret.d.ts.map +1 -1
- package/dist/commands/client-secret.js +12 -6
- package/dist/commands/client-secret.js.map +1 -1
- package/dist/commands/client.d.ts +3 -2
- package/dist/commands/client.d.ts.map +1 -1
- package/dist/commands/client.js +102 -43
- package/dist/commands/client.js.map +1 -1
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +68 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/export.d.ts +6 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +182 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +6 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +142 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +11 -4
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +24 -10
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/org.d.ts +2 -4
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +16 -76
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/user-role.d.ts.map +1 -1
- package/dist/commands/user-role.js +19 -14
- package/dist/commands/user-role.js.map +1 -1
- package/dist/commands/user.d.ts +3 -2
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +47 -71
- package/dist/commands/user.js.map +1 -1
- package/dist/commands/version.d.ts +1 -1
- package/dist/commands/version.js +1 -1
- package/dist/credential-lock.d.ts +20 -0
- package/dist/credential-lock.d.ts.map +1 -0
- package/dist/credential-lock.js +130 -0
- package/dist/credential-lock.js.map +1 -0
- package/dist/credential-store.d.ts +14 -0
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +114 -3
- package/dist/credential-store.js.map +1 -1
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +2 -0
- package/dist/error-handler.js.map +1 -1
- package/dist/global-options.d.ts +8 -0
- package/dist/global-options.d.ts.map +1 -1
- package/dist/global-options.js +19 -8
- package/dist/global-options.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +11 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +25 -6
- package/dist/output.js.map +1 -1
- package/dist/prompt.d.ts +2 -2
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +27 -7
- package/dist/prompt.js.map +1 -1
- package/package.json +7 -3
- package/dist/commands/gui.d.ts +0 -21
- package/dist/commands/gui.d.ts.map +0 -1
- package/dist/commands/gui.js +0 -67
- package/dist/commands/gui.js.map +0 -1
- package/dist/commands/provision.d.ts +0 -47
- package/dist/commands/provision.d.ts.map +0 -1
- package/dist/commands/provision.js +0 -444
- package/dist/commands/provision.js.map +0 -1
package/dist/output.js
CHANGED
|
@@ -13,6 +13,25 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import Table from 'cli-table3';
|
|
15
15
|
import chalk from 'chalk';
|
|
16
|
+
/**
|
|
17
|
+
* Replace terminal control characters before rendering untrusted text.
|
|
18
|
+
*
|
|
19
|
+
* JSON output remains untouched because `JSON.stringify` escapes controls for machine consumers.
|
|
20
|
+
* Human output uses this boundary to prevent stored names or labels from emitting terminal escape
|
|
21
|
+
* sequences, changing the screen, or writing to the clipboard.
|
|
22
|
+
*
|
|
23
|
+
* @param value - Text that may originate from the server or command input
|
|
24
|
+
* @returns Printable text with C0, DEL, and C1 controls replaced
|
|
25
|
+
*/
|
|
26
|
+
export function sanitizeTerminalText(value) {
|
|
27
|
+
return Array.from(value, (character) => {
|
|
28
|
+
const codePoint = character.codePointAt(0);
|
|
29
|
+
return codePoint !== undefined &&
|
|
30
|
+
(codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
|
|
31
|
+
? '\ufffd'
|
|
32
|
+
: character;
|
|
33
|
+
}).join('');
|
|
34
|
+
}
|
|
16
35
|
/**
|
|
17
36
|
* Formats data as a table and prints to stdout.
|
|
18
37
|
*
|
|
@@ -27,9 +46,9 @@ import chalk from 'chalk';
|
|
|
27
46
|
*/
|
|
28
47
|
export function printTable(headers, rows) {
|
|
29
48
|
const table = new Table({
|
|
30
|
-
head: headers.map((
|
|
49
|
+
head: headers.map((header) => chalk.bold(sanitizeTerminalText(header))),
|
|
31
50
|
});
|
|
32
|
-
rows.forEach((row) => table.push(row));
|
|
51
|
+
rows.forEach((row) => table.push(row.map(sanitizeTerminalText)));
|
|
33
52
|
console.log(table.toString());
|
|
34
53
|
}
|
|
35
54
|
/**
|
|
@@ -49,7 +68,7 @@ export function printJson(data) {
|
|
|
49
68
|
* @param message - The success message
|
|
50
69
|
*/
|
|
51
70
|
export function success(message) {
|
|
52
|
-
console.log(chalk.green(`✓ ${message}`));
|
|
71
|
+
console.log(chalk.green(`✓ ${sanitizeTerminalText(message)}`));
|
|
53
72
|
}
|
|
54
73
|
/**
|
|
55
74
|
* Prints a warning message in yellow to stderr.
|
|
@@ -57,7 +76,7 @@ export function success(message) {
|
|
|
57
76
|
* @param message - The warning message
|
|
58
77
|
*/
|
|
59
78
|
export function warn(message) {
|
|
60
|
-
console.error(chalk.yellow(`⚠ ${message}`));
|
|
79
|
+
console.error(chalk.yellow(`⚠ ${sanitizeTerminalText(message)}`));
|
|
61
80
|
}
|
|
62
81
|
/**
|
|
63
82
|
* Prints an error message in red to stderr.
|
|
@@ -65,7 +84,7 @@ export function warn(message) {
|
|
|
65
84
|
* @param message - The error message
|
|
66
85
|
*/
|
|
67
86
|
export function error(message) {
|
|
68
|
-
console.error(chalk.red(`✗ ${message}`));
|
|
87
|
+
console.error(chalk.red(`✗ ${sanitizeTerminalText(message)}`));
|
|
69
88
|
}
|
|
70
89
|
/**
|
|
71
90
|
* Prints an info message in blue.
|
|
@@ -73,7 +92,7 @@ export function error(message) {
|
|
|
73
92
|
* @param message - The info message
|
|
74
93
|
*/
|
|
75
94
|
export function info(message) {
|
|
76
|
-
console.log(chalk.blue(`ℹ ${message}`));
|
|
95
|
+
console.log(chalk.blue(`ℹ ${sanitizeTerminalText(message)}`));
|
|
77
96
|
}
|
|
78
97
|
/**
|
|
79
98
|
* Formats a date string or Date object for display.
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,OAAiB,EAAE,IAAgB;IAC5D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* @param message - The confirmation question
|
|
18
18
|
* @returns true if the user answers 'y' or 'yes'
|
|
19
19
|
*/
|
|
20
|
-
export declare function confirm(message: string): Promise<boolean>;
|
|
20
|
+
export declare function confirm(message: string, signal?: AbortSignal): Promise<boolean>;
|
|
21
21
|
/**
|
|
22
22
|
* Asks the user for type-to-confirm input.
|
|
23
23
|
*
|
|
@@ -35,7 +35,7 @@ export declare function confirmTyped(message: string, expected: string): Promise
|
|
|
35
35
|
* @param prompt - The prompt message to display
|
|
36
36
|
* @returns The user's input string
|
|
37
37
|
*/
|
|
38
|
-
export declare function question(prompt: string): Promise<string>;
|
|
38
|
+
export declare function question(prompt: string, signal?: AbortSignal): Promise<string>;
|
|
39
39
|
/**
|
|
40
40
|
* Prompts the user for password input (hidden).
|
|
41
41
|
*
|
package/dist/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF;AAMD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B9D"}
|
package/dist/prompt.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* @module prompt
|
|
10
10
|
*/
|
|
11
11
|
import { createInterface } from 'node:readline';
|
|
12
|
+
import { sanitizeTerminalText } from './output.js';
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
13
14
|
// Confirmation Prompt
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
@@ -21,8 +22,8 @@ import { createInterface } from 'node:readline';
|
|
|
21
22
|
* @param message - The confirmation question
|
|
22
23
|
* @returns true if the user answers 'y' or 'yes'
|
|
23
24
|
*/
|
|
24
|
-
export async function confirm(message) {
|
|
25
|
-
const answer = await question(`${message} [y/N]
|
|
25
|
+
export async function confirm(message, signal) {
|
|
26
|
+
const answer = await question(`${message} [y/N] `, signal);
|
|
26
27
|
return answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes';
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
@@ -48,13 +49,31 @@ export async function confirmTyped(message, expected) {
|
|
|
48
49
|
* @param prompt - The prompt message to display
|
|
49
50
|
* @returns The user's input string
|
|
50
51
|
*/
|
|
51
|
-
export async function question(prompt) {
|
|
52
|
+
export async function question(prompt, signal) {
|
|
53
|
+
const safePrompt = sanitizeTerminalText(prompt);
|
|
52
54
|
const rl = createInterface({
|
|
53
55
|
input: process.stdin,
|
|
54
56
|
output: process.stderr, // Prompt on stderr so stdout stays clean for piping
|
|
55
57
|
});
|
|
56
|
-
return new Promise((resolve) => {
|
|
57
|
-
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
let settled = false;
|
|
60
|
+
const abort = () => {
|
|
61
|
+
if (settled)
|
|
62
|
+
return;
|
|
63
|
+
settled = true;
|
|
64
|
+
rl.close();
|
|
65
|
+
reject(new DOMException('The operation was aborted', 'AbortError'));
|
|
66
|
+
};
|
|
67
|
+
if (signal?.aborted) {
|
|
68
|
+
abort();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
72
|
+
rl.question(safePrompt, (answer) => {
|
|
73
|
+
if (settled)
|
|
74
|
+
return;
|
|
75
|
+
settled = true;
|
|
76
|
+
signal?.removeEventListener('abort', abort);
|
|
58
77
|
rl.close();
|
|
59
78
|
resolve(answer.trim());
|
|
60
79
|
});
|
|
@@ -71,6 +90,7 @@ export async function question(prompt) {
|
|
|
71
90
|
* @returns The entered password string
|
|
72
91
|
*/
|
|
73
92
|
export async function password(prompt) {
|
|
93
|
+
const safePrompt = sanitizeTerminalText(prompt);
|
|
74
94
|
const rl = createInterface({
|
|
75
95
|
input: process.stdin,
|
|
76
96
|
output: process.stderr,
|
|
@@ -78,7 +98,7 @@ export async function password(prompt) {
|
|
|
78
98
|
// Suppress echoing of password characters
|
|
79
99
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
80
100
|
rl._writeToOutput = function _writeToOutput(str) {
|
|
81
|
-
if (str.includes(
|
|
101
|
+
if (str.includes(safePrompt)) {
|
|
82
102
|
// Show the prompt itself
|
|
83
103
|
process.stderr.write(str);
|
|
84
104
|
}
|
|
@@ -88,7 +108,7 @@ export async function password(prompt) {
|
|
|
88
108
|
}
|
|
89
109
|
};
|
|
90
110
|
return new Promise((resolve) => {
|
|
91
|
-
rl.question(
|
|
111
|
+
rl.question(safePrompt, (answer) => {
|
|
92
112
|
process.stderr.write('\n'); // New line after hidden input
|
|
93
113
|
rl.close();
|
|
94
114
|
resolve(answer);
|
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portaidentity/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Standalone CLI for the Porta Identity Platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "../../node_modules/@typescript/native/bin/tsc",
|
|
17
17
|
"test": "vitest run",
|
|
18
|
+
"test:coverage": "vitest run --coverage",
|
|
18
19
|
"test:watch": "vitest",
|
|
19
20
|
"lint": "eslint 'src/**/*.ts' 'tests/**/*.ts'",
|
|
20
21
|
"typecheck": "../../node_modules/@typescript/native/bin/tsc --noEmit",
|
|
@@ -22,12 +23,15 @@
|
|
|
22
23
|
"clean": "rm -rf dist"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"@
|
|
26
|
+
"@jsvision/core": "1.7.1",
|
|
27
|
+
"@jsvision/files": "1.7.1",
|
|
28
|
+
"@jsvision/ui": "1.7.1",
|
|
29
|
+
"@portaidentity/sdk": "1.9.0",
|
|
26
30
|
"chalk": "^6.0.0",
|
|
27
31
|
"cli-table3": "^0.6.5",
|
|
32
|
+
"fs-ext-extra-prebuilt": "2.2.13",
|
|
28
33
|
"jose": "^6.2.8",
|
|
29
34
|
"open": "^11.0.0",
|
|
30
|
-
"yaml": "^2.9.0",
|
|
31
35
|
"yargs": "^18.1.0"
|
|
32
36
|
},
|
|
33
37
|
"devDependencies": {
|
package/dist/commands/gui.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `porta gui` command — Launch the standalone Admin GUI.
|
|
3
|
-
*
|
|
4
|
-
* Dynamically imports `@portaidentity/admin-gui` and calls `startServer()`.
|
|
5
|
-
* If the package is not installed, prints install instructions.
|
|
6
|
-
*
|
|
7
|
-
* The admin-gui package is NOT a dependency of the CLI — it is discovered
|
|
8
|
-
* at runtime via dynamic import. This avoids bloating the CLI with
|
|
9
|
-
* React + FluentUI dependencies.
|
|
10
|
-
*
|
|
11
|
-
* @module commands/gui
|
|
12
|
-
*/
|
|
13
|
-
import type { CommandModule } from 'yargs';
|
|
14
|
-
import type { GlobalOptions } from '../global-options.js';
|
|
15
|
-
interface GuiOptions extends GlobalOptions {
|
|
16
|
-
port?: number;
|
|
17
|
-
'no-open'?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare const guiCommand: CommandModule<GlobalOptions, GuiOptions>;
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=gui.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gui.d.ts","sourceRoot":"","sources":["../../src/commands/gui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,UAAU,UAAW,SAAQ,aAAa;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,aAAa,EAAE,UAAU,CAqD/D,CAAC"}
|
package/dist/commands/gui.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `porta gui` command — Launch the standalone Admin GUI.
|
|
3
|
-
*
|
|
4
|
-
* Dynamically imports `@portaidentity/admin-gui` and calls `startServer()`.
|
|
5
|
-
* If the package is not installed, prints install instructions.
|
|
6
|
-
*
|
|
7
|
-
* The admin-gui package is NOT a dependency of the CLI — it is discovered
|
|
8
|
-
* at runtime via dynamic import. This avoids bloating the CLI with
|
|
9
|
-
* React + FluentUI dependencies.
|
|
10
|
-
*
|
|
11
|
-
* @module commands/gui
|
|
12
|
-
*/
|
|
13
|
-
import { error, warn } from '../output.js';
|
|
14
|
-
export const guiCommand = {
|
|
15
|
-
command: 'gui',
|
|
16
|
-
describe: 'Launch the Porta Admin GUI in your browser',
|
|
17
|
-
builder: (yargs) => yargs
|
|
18
|
-
.option('port', {
|
|
19
|
-
type: 'number',
|
|
20
|
-
describe: 'BFF listen port',
|
|
21
|
-
default: 4002,
|
|
22
|
-
})
|
|
23
|
-
.option('no-open', {
|
|
24
|
-
type: 'boolean',
|
|
25
|
-
describe: 'Do not open browser on startup',
|
|
26
|
-
default: false,
|
|
27
|
-
}),
|
|
28
|
-
handler: async (argv) => {
|
|
29
|
-
try {
|
|
30
|
-
// Dynamic import — admin-gui is an optional peer, not a CLI dependency.
|
|
31
|
-
// Use a variable so TypeScript won't resolve the module at compile time
|
|
32
|
-
// (the package may not be installed or built during CLI typecheck).
|
|
33
|
-
const guiModule = '@portaidentity/admin-gui';
|
|
34
|
-
const adminGui = (await import(/* webpackIgnore: true */ guiModule));
|
|
35
|
-
await adminGui.startServer({
|
|
36
|
-
server: argv.server,
|
|
37
|
-
port: argv.port,
|
|
38
|
-
open: !argv['no-open'],
|
|
39
|
-
insecure: argv.insecure,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
// Check if it's a module-not-found error
|
|
44
|
-
if (isModuleNotFound(err)) {
|
|
45
|
-
warn('The Porta Admin GUI package is not installed.\n');
|
|
46
|
-
console.log(' Install it with:\n');
|
|
47
|
-
console.log(' npm install -g @portaidentity/admin-gui\n');
|
|
48
|
-
console.log(' Or run it directly with:\n');
|
|
49
|
-
console.log(' npx @portaidentity/admin-gui --server <porta-server-url>\n');
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
// Other error — rethrow
|
|
53
|
-
error(err instanceof Error ? err.message : String(err));
|
|
54
|
-
process.exit(1);
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Check if an error is a module-not-found error for @portaidentity/admin-gui.
|
|
60
|
-
*/
|
|
61
|
-
function isModuleNotFound(err) {
|
|
62
|
-
if (!(err instanceof Error))
|
|
63
|
-
return false;
|
|
64
|
-
const code = err.code;
|
|
65
|
-
return code === 'ERR_MODULE_NOT_FOUND' && err.message.includes('@portaidentity/admin-gui');
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=gui.js.map
|
package/dist/commands/gui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gui.js","sourceRoot":"","sources":["../../src/commands/gui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAO3C,MAAM,CAAC,MAAM,UAAU,GAA6C;IAClE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,4CAA4C;IACtD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,gCAAgC;QAC1C,OAAO,EAAE,KAAK;KACf,CAAC;IAEN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,wEAAwE;YACxE,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,SAAS,GAAG,0BAA0B,CAAC;YAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAOlE,CAAC;YAEF,MAAM,QAAQ,CAAC,WAAW,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,yCAAyC;YACzC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,wBAAwB;YACxB,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;IACjD,OAAO,IAAI,KAAK,sBAAsB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provision command — declarative tenant infrastructure from YAML/JSON.
|
|
3
|
-
*
|
|
4
|
-
* Reads a YAML (or JSON) provisioning file with a nested structure
|
|
5
|
-
* (organizations → applications → clients/roles/permissions/claims),
|
|
6
|
-
* transforms it into the flat import manifest format, and sends it
|
|
7
|
-
* to the import API via the SDK. All entities are created in a single
|
|
8
|
-
* transaction.
|
|
9
|
-
*
|
|
10
|
-
* Supports three modes:
|
|
11
|
-
* merge (default): skip existing entities, create new
|
|
12
|
-
* overwrite: update existing entities, create new
|
|
13
|
-
* dry-run: preview what would change without applying
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
* porta provision --file infrastructure.yaml
|
|
17
|
-
* porta provision --file infrastructure.yaml --dry-run
|
|
18
|
-
* porta provision --file infrastructure.yaml --mode overwrite
|
|
19
|
-
* porta provision --file infrastructure.yaml --json
|
|
20
|
-
*
|
|
21
|
-
* @module commands/provision
|
|
22
|
-
*/
|
|
23
|
-
import type { CommandModule } from 'yargs';
|
|
24
|
-
import type { GlobalOptions } from '../global-options.js';
|
|
25
|
-
/**
|
|
26
|
-
* Parse a duration string into a future Date.
|
|
27
|
-
*
|
|
28
|
-
* Supports: Nd (days), Nm (months), Ny (years), Nh (hours).
|
|
29
|
-
* Examples: "90d" (90 days), "6m" (6 months), "1y" (1 year), "24h" (24 hours).
|
|
30
|
-
*/
|
|
31
|
-
export declare function parseDuration(duration: string): Date;
|
|
32
|
-
/**
|
|
33
|
-
* Read and parse a provisioning file from disk or stdin.
|
|
34
|
-
*
|
|
35
|
-
* Detects format by file extension (.yaml/.yml for YAML, .json for JSON).
|
|
36
|
-
* When reading from `/dev/stdin` (no extension), defaults to YAML parsing
|
|
37
|
-
* which also handles valid JSON since YAML is a superset of JSON.
|
|
38
|
-
*/
|
|
39
|
-
export declare function parseProvisioningFile(filePath: string): unknown;
|
|
40
|
-
interface ProvisionOptions extends GlobalOptions {
|
|
41
|
-
file: string;
|
|
42
|
-
mode: 'merge' | 'overwrite';
|
|
43
|
-
'dry-run'?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export declare const provisionCommand: CommandModule<GlobalOptions, ProvisionOptions>;
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=provision.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../src/commands/provision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA4B1D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA2BpD;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAkB/D;AA+gBD,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAyF3E,CAAC"}
|