@portaidentity/cli 0.1.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 (157) hide show
  1. package/dist/auth/browser-flow.d.ts +42 -0
  2. package/dist/auth/browser-flow.d.ts.map +1 -0
  3. package/dist/auth/browser-flow.js +193 -0
  4. package/dist/auth/browser-flow.js.map +1 -0
  5. package/dist/auth/callback-server.d.ts +81 -0
  6. package/dist/auth/callback-server.d.ts.map +1 -0
  7. package/dist/auth/callback-server.js +193 -0
  8. package/dist/auth/callback-server.js.map +1 -0
  9. package/dist/auth/metadata.d.ts +43 -0
  10. package/dist/auth/metadata.d.ts.map +1 -0
  11. package/dist/auth/metadata.js +66 -0
  12. package/dist/auth/metadata.js.map +1 -0
  13. package/dist/auth/pkce.d.ts +42 -0
  14. package/dist/auth/pkce.d.ts.map +1 -0
  15. package/dist/auth/pkce.js +52 -0
  16. package/dist/auth/pkce.js.map +1 -0
  17. package/dist/auth/types.d.ts +72 -0
  18. package/dist/auth/types.d.ts.map +1 -0
  19. package/dist/auth/types.js +11 -0
  20. package/dist/auth/types.js.map +1 -0
  21. package/dist/client-factory.d.ts +29 -0
  22. package/dist/client-factory.d.ts.map +1 -0
  23. package/dist/client-factory.js +43 -0
  24. package/dist/client-factory.js.map +1 -0
  25. package/dist/commands/app-claim.d.ts +9 -0
  26. package/dist/commands/app-claim.d.ts.map +1 -0
  27. package/dist/commands/app-claim.js +128 -0
  28. package/dist/commands/app-claim.js.map +1 -0
  29. package/dist/commands/app-module.d.ts +9 -0
  30. package/dist/commands/app-module.d.ts.map +1 -0
  31. package/dist/commands/app-module.js +104 -0
  32. package/dist/commands/app-module.js.map +1 -0
  33. package/dist/commands/app-permission.d.ts +9 -0
  34. package/dist/commands/app-permission.d.ts.map +1 -0
  35. package/dist/commands/app-permission.js +118 -0
  36. package/dist/commands/app-permission.js.map +1 -0
  37. package/dist/commands/app-role.d.ts +9 -0
  38. package/dist/commands/app-role.d.ts.map +1 -0
  39. package/dist/commands/app-role.js +166 -0
  40. package/dist/commands/app-role.js.map +1 -0
  41. package/dist/commands/app.d.ts +12 -0
  42. package/dist/commands/app.d.ts.map +1 -0
  43. package/dist/commands/app.js +255 -0
  44. package/dist/commands/app.js.map +1 -0
  45. package/dist/commands/audit.d.ts +12 -0
  46. package/dist/commands/audit.d.ts.map +1 -0
  47. package/dist/commands/audit.js +96 -0
  48. package/dist/commands/audit.js.map +1 -0
  49. package/dist/commands/bulk.d.ts +12 -0
  50. package/dist/commands/bulk.d.ts.map +1 -0
  51. package/dist/commands/bulk.js +77 -0
  52. package/dist/commands/bulk.js.map +1 -0
  53. package/dist/commands/client-secret.d.ts +18 -0
  54. package/dist/commands/client-secret.d.ts.map +1 -0
  55. package/dist/commands/client-secret.js +126 -0
  56. package/dist/commands/client-secret.js.map +1 -0
  57. package/dist/commands/client.d.ts +27 -0
  58. package/dist/commands/client.d.ts.map +1 -0
  59. package/dist/commands/client.js +385 -0
  60. package/dist/commands/client.js.map +1 -0
  61. package/dist/commands/completion.d.ts +27 -0
  62. package/dist/commands/completion.d.ts.map +1 -0
  63. package/dist/commands/completion.js +42 -0
  64. package/dist/commands/completion.js.map +1 -0
  65. package/dist/commands/config.d.ts +14 -0
  66. package/dist/commands/config.d.ts.map +1 -0
  67. package/dist/commands/config.js +85 -0
  68. package/dist/commands/config.js.map +1 -0
  69. package/dist/commands/doctor.d.ts +25 -0
  70. package/dist/commands/doctor.d.ts.map +1 -0
  71. package/dist/commands/doctor.js +198 -0
  72. package/dist/commands/doctor.js.map +1 -0
  73. package/dist/commands/exports.d.ts +12 -0
  74. package/dist/commands/exports.d.ts.map +1 -0
  75. package/dist/commands/exports.js +80 -0
  76. package/dist/commands/exports.js.map +1 -0
  77. package/dist/commands/health.d.ts +12 -0
  78. package/dist/commands/health.d.ts.map +1 -0
  79. package/dist/commands/health.js +53 -0
  80. package/dist/commands/health.js.map +1 -0
  81. package/dist/commands/keys.d.ts +14 -0
  82. package/dist/commands/keys.d.ts.map +1 -0
  83. package/dist/commands/keys.js +91 -0
  84. package/dist/commands/keys.js.map +1 -0
  85. package/dist/commands/login.d.ts +36 -0
  86. package/dist/commands/login.d.ts.map +1 -0
  87. package/dist/commands/login.js +78 -0
  88. package/dist/commands/login.js.map +1 -0
  89. package/dist/commands/logout.d.ts +25 -0
  90. package/dist/commands/logout.d.ts.map +1 -0
  91. package/dist/commands/logout.js +43 -0
  92. package/dist/commands/logout.js.map +1 -0
  93. package/dist/commands/org.d.ts +26 -0
  94. package/dist/commands/org.d.ts.map +1 -0
  95. package/dist/commands/org.js +396 -0
  96. package/dist/commands/org.js.map +1 -0
  97. package/dist/commands/provision.d.ts +47 -0
  98. package/dist/commands/provision.d.ts.map +1 -0
  99. package/dist/commands/provision.js +400 -0
  100. package/dist/commands/provision.js.map +1 -0
  101. package/dist/commands/sessions.d.ts +14 -0
  102. package/dist/commands/sessions.d.ts.map +1 -0
  103. package/dist/commands/sessions.js +122 -0
  104. package/dist/commands/sessions.js.map +1 -0
  105. package/dist/commands/stats.d.ts +12 -0
  106. package/dist/commands/stats.d.ts.map +1 -0
  107. package/dist/commands/stats.js +46 -0
  108. package/dist/commands/stats.js.map +1 -0
  109. package/dist/commands/user-claim.d.ts +17 -0
  110. package/dist/commands/user-claim.d.ts.map +1 -0
  111. package/dist/commands/user-claim.js +123 -0
  112. package/dist/commands/user-claim.js.map +1 -0
  113. package/dist/commands/user-role.d.ts +17 -0
  114. package/dist/commands/user-role.d.ts.map +1 -0
  115. package/dist/commands/user-role.js +118 -0
  116. package/dist/commands/user-role.js.map +1 -0
  117. package/dist/commands/user.d.ts +26 -0
  118. package/dist/commands/user.d.ts.map +1 -0
  119. package/dist/commands/user.js +352 -0
  120. package/dist/commands/user.js.map +1 -0
  121. package/dist/commands/version.d.ts +25 -0
  122. package/dist/commands/version.d.ts.map +1 -0
  123. package/dist/commands/version.js +83 -0
  124. package/dist/commands/version.js.map +1 -0
  125. package/dist/commands/whoami.d.ts +26 -0
  126. package/dist/commands/whoami.d.ts.map +1 -0
  127. package/dist/commands/whoami.js +66 -0
  128. package/dist/commands/whoami.js.map +1 -0
  129. package/dist/credential-store.d.ts +101 -0
  130. package/dist/credential-store.d.ts.map +1 -0
  131. package/dist/credential-store.js +121 -0
  132. package/dist/credential-store.js.map +1 -0
  133. package/dist/error-handler.d.ts +47 -0
  134. package/dist/error-handler.d.ts.map +1 -0
  135. package/dist/error-handler.js +166 -0
  136. package/dist/error-handler.js.map +1 -0
  137. package/dist/global-options.d.ts +50 -0
  138. package/dist/global-options.d.ts.map +1 -0
  139. package/dist/global-options.js +62 -0
  140. package/dist/global-options.js.map +1 -0
  141. package/dist/index.d.ts +29 -0
  142. package/dist/index.d.ts.map +1 -0
  143. package/dist/index.js +122 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/output.d.ts +75 -0
  146. package/dist/output.d.ts.map +1 -0
  147. package/dist/output.js +100 -0
  148. package/dist/output.js.map +1 -0
  149. package/dist/parsers.d.ts +74 -0
  150. package/dist/parsers.d.ts.map +1 -0
  151. package/dist/parsers.js +125 -0
  152. package/dist/parsers.js.map +1 -0
  153. package/dist/prompt.d.ts +50 -0
  154. package/dist/prompt.d.ts.map +1 -0
  155. package/dist/prompt.js +98 -0
  156. package/dist/prompt.js.map +1 -0
  157. package/package.json +46 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * CLI application permission subcommands.
3
+ *
4
+ * @module commands/app-permission
5
+ */
6
+ import { createClient } from '../client-factory.js';
7
+ import { handleError } from '../error-handler.js';
8
+ import { printTable, printJson, success, warn, info, formatDate, truncate } from '../output.js';
9
+ // ---------------------------------------------------------------------------
10
+ // Command definition
11
+ // ---------------------------------------------------------------------------
12
+ export const appPermissionCommand = {
13
+ command: 'permission',
14
+ describe: 'Manage application permissions',
15
+ builder: (yargs) => {
16
+ return yargs
17
+ .command('create <app-id>', 'Create a permission', (y) => y
18
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
19
+ .option('name', { type: 'string', demandOption: true, description: 'Permission name' })
20
+ .option('slug', { type: 'string', description: 'Permission slug' })
21
+ .option('description', { type: 'string', description: 'Permission description' }), async (argv) => {
22
+ try {
23
+ const client = createClient(argv);
24
+ const perm = await client.permissions.create(argv['app-id'], {
25
+ applicationId: argv['app-id'],
26
+ name: argv.name,
27
+ slug: argv.slug,
28
+ description: argv.description,
29
+ });
30
+ if (argv.json) {
31
+ printJson(perm);
32
+ }
33
+ else {
34
+ success(`Permission created: ${perm.name} (${perm.slug})`);
35
+ printTable(['Field', 'Value'], [
36
+ ['ID', perm.id],
37
+ ['Name', perm.name],
38
+ ['Slug', perm.slug],
39
+ ['Created', formatDate(perm.createdAt)],
40
+ ]);
41
+ }
42
+ }
43
+ catch (err) {
44
+ handleError(err, argv.verbose);
45
+ }
46
+ })
47
+ .command('list <app-id>', 'List permissions for an application', (y) => y
48
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
49
+ .option('page', { type: 'number', default: 1, description: 'Page number' })
50
+ .option('page-size', { type: 'number', default: 20, description: 'Items per page' }), async (argv) => {
51
+ try {
52
+ const client = createClient(argv);
53
+ const result = await client.permissions.list(argv['app-id'], {
54
+ page: argv.page,
55
+ pageSize: argv['page-size'],
56
+ });
57
+ if (result.data.length === 0) {
58
+ warn('No permissions found');
59
+ return;
60
+ }
61
+ if (argv.json) {
62
+ printJson(result);
63
+ }
64
+ else {
65
+ printTable(['ID', 'Name', 'Slug', 'Created'], result.data.map((p) => [
66
+ truncate(p.id, 8),
67
+ p.name,
68
+ p.slug,
69
+ formatDate(p.createdAt),
70
+ ]));
71
+ info(`Total: ${result.total} permissions`);
72
+ }
73
+ }
74
+ catch (err) {
75
+ handleError(err, argv.verbose);
76
+ }
77
+ })
78
+ .command('show <app-id> <permission-id>', 'Show permission details', (y) => y
79
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
80
+ .positional('permission-id', { type: 'string', demandOption: true, description: 'Permission ID' }), async (argv) => {
81
+ try {
82
+ const client = createClient(argv);
83
+ const perm = await client.permissions.get(argv['app-id'], argv['permission-id']);
84
+ if (argv.json) {
85
+ printJson(perm);
86
+ }
87
+ else {
88
+ printTable(['Field', 'Value'], [
89
+ ['ID', perm.id],
90
+ ['Name', perm.name],
91
+ ['Slug', perm.slug],
92
+ ['Description', perm.description ?? '—'],
93
+ ['Created', formatDate(perm.createdAt)],
94
+ ['Updated', formatDate(perm.updatedAt)],
95
+ ]);
96
+ }
97
+ }
98
+ catch (err) {
99
+ handleError(err, argv.verbose);
100
+ }
101
+ })
102
+ .command('archive <app-id> <permission-id>', 'Archive a permission', (y) => y
103
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
104
+ .positional('permission-id', { type: 'string', demandOption: true, description: 'Permission ID' }), async (argv) => {
105
+ try {
106
+ const client = createClient(argv);
107
+ await client.permissions.archive(argv['app-id'], argv['permission-id']);
108
+ success('Permission archived');
109
+ }
110
+ catch (err) {
111
+ handleError(err, argv.verbose);
112
+ }
113
+ })
114
+ .demandCommand(1, 'Specify a permission subcommand: create, list, show, archive');
115
+ },
116
+ handler: () => { },
117
+ };
118
+ //# sourceMappingURL=app-permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-permission.js","sourceRoot":"","sources":["../../src/commands/app-permission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI application role subcommands.
3
+ *
4
+ * @module commands/app-role
5
+ */
6
+ import type { CommandModule } from 'yargs';
7
+ import type { GlobalOptions } from '../global-options.js';
8
+ export declare const appRoleCommand: CommandModule<GlobalOptions, GlobalOptions>;
9
+ //# sourceMappingURL=app-role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-role.d.ts","sourceRoot":"","sources":["../../src/commands/app-role.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkD1D,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,aAAa,EAAE,aAAa,CA4MtE,CAAC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * CLI application role subcommands.
3
+ *
4
+ * @module commands/app-role
5
+ */
6
+ import { createClient } from '../client-factory.js';
7
+ import { handleError } from '../error-handler.js';
8
+ import { printTable, printJson, success, warn, info, formatDate, truncate } from '../output.js';
9
+ // ---------------------------------------------------------------------------
10
+ // Command definition
11
+ // ---------------------------------------------------------------------------
12
+ export const appRoleCommand = {
13
+ command: 'role',
14
+ describe: 'Manage application roles',
15
+ builder: (yargs) => {
16
+ return yargs
17
+ .command('create <app-id>', 'Create a role', (y) => y
18
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
19
+ .option('name', { type: 'string', demandOption: true, description: 'Role name' })
20
+ .option('slug', { type: 'string', description: 'Role slug' })
21
+ .option('description', { type: 'string', description: 'Role description' }), async (argv) => {
22
+ try {
23
+ const client = createClient(argv);
24
+ const role = await client.roles.create(argv['app-id'], {
25
+ applicationId: argv['app-id'],
26
+ name: argv.name,
27
+ slug: argv.slug,
28
+ description: argv.description,
29
+ });
30
+ if (argv.json) {
31
+ printJson(role);
32
+ }
33
+ else {
34
+ success(`Role created: ${role.name} (${role.slug})`);
35
+ printTable(['Field', 'Value'], [
36
+ ['ID', role.id],
37
+ ['Name', role.name],
38
+ ['Slug', role.slug],
39
+ ['Created', formatDate(role.createdAt)],
40
+ ]);
41
+ }
42
+ }
43
+ catch (err) {
44
+ handleError(err, argv.verbose);
45
+ }
46
+ })
47
+ .command('list <app-id>', 'List roles for an application', (y) => y
48
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
49
+ .option('page', { type: 'number', default: 1, description: 'Page number' })
50
+ .option('page-size', { type: 'number', default: 20, description: 'Items per page' }), async (argv) => {
51
+ try {
52
+ const client = createClient(argv);
53
+ const result = await client.roles.list(argv['app-id'], {
54
+ page: argv.page,
55
+ pageSize: argv['page-size'],
56
+ });
57
+ if (result.data.length === 0) {
58
+ warn('No roles found');
59
+ return;
60
+ }
61
+ if (argv.json) {
62
+ printJson(result);
63
+ }
64
+ else {
65
+ printTable(['ID', 'Name', 'Slug', 'Created'], result.data.map((r) => [
66
+ truncate(r.id, 8),
67
+ r.name,
68
+ r.slug,
69
+ formatDate(r.createdAt),
70
+ ]));
71
+ info(`Total: ${result.total} roles`);
72
+ }
73
+ }
74
+ catch (err) {
75
+ handleError(err, argv.verbose);
76
+ }
77
+ })
78
+ .command('show <app-id> <role-id>', 'Show role details', (y) => y
79
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
80
+ .positional('role-id', { type: 'string', demandOption: true, description: 'Role ID' }), async (argv) => {
81
+ try {
82
+ const client = createClient(argv);
83
+ const role = await client.roles.get(argv['app-id'], argv['role-id']);
84
+ if (argv.json) {
85
+ printJson(role);
86
+ }
87
+ else {
88
+ printTable(['Field', 'Value'], [
89
+ ['ID', role.id],
90
+ ['Name', role.name],
91
+ ['Slug', role.slug],
92
+ ['Description', role.description ?? '—'],
93
+ ['Created', formatDate(role.createdAt)],
94
+ ['Updated', formatDate(role.updatedAt)],
95
+ ]);
96
+ }
97
+ }
98
+ catch (err) {
99
+ handleError(err, argv.verbose);
100
+ }
101
+ })
102
+ .command('update <app-id> <role-id>', 'Update a role', (y) => y
103
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
104
+ .positional('role-id', { type: 'string', demandOption: true, description: 'Role ID' })
105
+ .option('name', { type: 'string', description: 'New role name' })
106
+ .option('description', { type: 'string', description: 'New description' }), async (argv) => {
107
+ try {
108
+ const client = createClient(argv);
109
+ const updated = await client.roles.update(argv['app-id'], argv['role-id'], {
110
+ name: argv.name,
111
+ description: argv.description,
112
+ });
113
+ if (argv.json) {
114
+ printJson(updated);
115
+ }
116
+ else {
117
+ success(`Role updated: ${updated.name}`);
118
+ }
119
+ }
120
+ catch (err) {
121
+ handleError(err, argv.verbose);
122
+ }
123
+ })
124
+ .command('archive <app-id> <role-id>', 'Archive a role', (y) => y
125
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
126
+ .positional('role-id', { type: 'string', demandOption: true, description: 'Role ID' }), async (argv) => {
127
+ try {
128
+ const client = createClient(argv);
129
+ await client.roles.archive(argv['app-id'], argv['role-id']);
130
+ success('Role archived');
131
+ }
132
+ catch (err) {
133
+ handleError(err, argv.verbose);
134
+ }
135
+ })
136
+ .command('assign-perm <app-id> <role-id> <permission-id>', 'Assign a permission to a role', (y) => y
137
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
138
+ .positional('role-id', { type: 'string', demandOption: true, description: 'Role ID' })
139
+ .positional('permission-id', { type: 'string', demandOption: true, description: 'Permission ID' }), async (argv) => {
140
+ try {
141
+ const client = createClient(argv);
142
+ await client.roles.assignPermission(argv['app-id'], argv['role-id'], argv['permission-id']);
143
+ success('Permission assigned to role');
144
+ }
145
+ catch (err) {
146
+ handleError(err, argv.verbose);
147
+ }
148
+ })
149
+ .command('remove-perm <app-id> <role-id> <permission-id>', 'Remove a permission from a role', (y) => y
150
+ .positional('app-id', { type: 'string', demandOption: true, description: 'Application ID' })
151
+ .positional('role-id', { type: 'string', demandOption: true, description: 'Role ID' })
152
+ .positional('permission-id', { type: 'string', demandOption: true, description: 'Permission ID' }), async (argv) => {
153
+ try {
154
+ const client = createClient(argv);
155
+ await client.roles.removePermission(argv['app-id'], argv['role-id'], argv['permission-id']);
156
+ success('Permission removed from role');
157
+ }
158
+ catch (err) {
159
+ handleError(err, argv.verbose);
160
+ }
161
+ })
162
+ .demandCommand(1, 'Specify a role subcommand: create, list, show, update, archive, assign-perm, remove-perm');
163
+ },
164
+ handler: () => { },
165
+ };
166
+ //# sourceMappingURL=app-role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-role.js","sourceRoot":"","sources":["../../src/commands/app-role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CLI application management commands.
3
+ *
4
+ * Provides CRUD and lifecycle management for applications.
5
+ * All operations use the Porta SDK for Admin API communication.
6
+ *
7
+ * @module commands/app
8
+ */
9
+ import type { CommandModule } from 'yargs';
10
+ import type { GlobalOptions } from '../global-options.js';
11
+ export declare const appCommand: CommandModule<GlobalOptions, GlobalOptions>;
12
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkD1D,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,aAAa,EAAE,aAAa,CA4SlE,CAAC"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * CLI application management commands.
3
+ *
4
+ * Provides CRUD and lifecycle management for applications.
5
+ * All operations use the Porta SDK for Admin API communication.
6
+ *
7
+ * @module commands/app
8
+ */
9
+ import { createClient } from '../client-factory.js';
10
+ import { handleError } from '../error-handler.js';
11
+ import { printTable, printJson, success, warn, info, formatDate, truncate, } from '../output.js';
12
+ import { confirm } from '../prompt.js';
13
+ import { appModuleCommand } from './app-module.js';
14
+ import { appRoleCommand } from './app-role.js';
15
+ import { appPermissionCommand } from './app-permission.js';
16
+ import { appClaimCommand } from './app-claim.js';
17
+ // ---------------------------------------------------------------------------
18
+ // Command definition
19
+ // ---------------------------------------------------------------------------
20
+ export const appCommand = {
21
+ command: 'app',
22
+ describe: 'Manage applications',
23
+ builder: (yargs) => {
24
+ return yargs
25
+ .command('create', 'Create a new application', (y) => y
26
+ .option('org-id', {
27
+ type: 'string',
28
+ demandOption: true,
29
+ description: 'Organization ID the application belongs to',
30
+ })
31
+ .option('name', {
32
+ type: 'string',
33
+ demandOption: true,
34
+ description: 'Application name',
35
+ })
36
+ .option('slug', {
37
+ type: 'string',
38
+ description: 'URL-friendly slug (auto-generated from name if omitted)',
39
+ })
40
+ .option('description', {
41
+ type: 'string',
42
+ description: 'Application description',
43
+ }), async (argv) => {
44
+ try {
45
+ const client = createClient(argv);
46
+ const app = await client.applications.create({
47
+ organizationId: argv['org-id'],
48
+ name: argv.name,
49
+ slug: argv.slug,
50
+ description: argv.description,
51
+ });
52
+ if (argv.json) {
53
+ printJson(app);
54
+ }
55
+ else {
56
+ success(`Application created: ${app.name} (${app.slug})`);
57
+ printTable(['Field', 'Value'], [
58
+ ['ID', app.id],
59
+ ['Name', app.name],
60
+ ['Slug', app.slug],
61
+ ['Status', app.status],
62
+ ['Organization ID', app.organizationId],
63
+ ['Created', formatDate(app.createdAt)],
64
+ ]);
65
+ }
66
+ }
67
+ catch (err) {
68
+ handleError(err, argv.verbose);
69
+ }
70
+ })
71
+ .command('list', 'List applications', (y) => y
72
+ .option('org-id', {
73
+ type: 'string',
74
+ description: 'Filter by organization ID',
75
+ })
76
+ .option('status', {
77
+ type: 'string',
78
+ choices: ['active', 'inactive', 'archived'],
79
+ description: 'Filter by status',
80
+ })
81
+ .option('page', {
82
+ type: 'number',
83
+ default: 1,
84
+ description: 'Page number',
85
+ })
86
+ .option('page-size', {
87
+ type: 'number',
88
+ default: 20,
89
+ description: 'Items per page',
90
+ }), async (argv) => {
91
+ try {
92
+ const client = createClient(argv);
93
+ const result = await client.applications.list({
94
+ page: argv.page,
95
+ pageSize: argv['page-size'],
96
+ ...(argv.status && { status: argv.status }),
97
+ ...(argv['org-id'] && { organizationId: argv['org-id'] }),
98
+ });
99
+ if (result.data.length === 0) {
100
+ warn('No applications found');
101
+ return;
102
+ }
103
+ if (argv.json) {
104
+ printJson(result);
105
+ }
106
+ else {
107
+ printTable(['ID', 'Name', 'Slug', 'Status', 'Created'], result.data.map((a) => [
108
+ truncate(a.id, 8),
109
+ a.name,
110
+ a.slug,
111
+ a.status,
112
+ formatDate(a.createdAt),
113
+ ]));
114
+ info(`Total: ${result.total} applications`);
115
+ }
116
+ }
117
+ catch (err) {
118
+ handleError(err, argv.verbose);
119
+ }
120
+ })
121
+ .command('show <id-or-slug>', 'Show application details', (y) => y.positional('id-or-slug', {
122
+ type: 'string',
123
+ demandOption: true,
124
+ description: 'Application UUID or slug',
125
+ }), async (argv) => {
126
+ try {
127
+ const client = createClient(argv);
128
+ const { data: app } = await client.applications.get(argv['id-or-slug']);
129
+ if (argv.json) {
130
+ printJson(app);
131
+ }
132
+ else {
133
+ printTable(['Field', 'Value'], [
134
+ ['ID', app.id],
135
+ ['Name', app.name],
136
+ ['Slug', app.slug],
137
+ ['Status', app.status],
138
+ ['Description', app.description ?? '—'],
139
+ ['Organization ID', app.organizationId],
140
+ ['Created', formatDate(app.createdAt)],
141
+ ['Updated', formatDate(app.updatedAt)],
142
+ ]);
143
+ }
144
+ }
145
+ catch (err) {
146
+ handleError(err, argv.verbose);
147
+ }
148
+ })
149
+ .command('update <id-or-slug>', 'Update application fields', (y) => y
150
+ .positional('id-or-slug', {
151
+ type: 'string',
152
+ demandOption: true,
153
+ description: 'Application UUID or slug',
154
+ })
155
+ .option('name', {
156
+ type: 'string',
157
+ description: 'New application name',
158
+ })
159
+ .option('description', {
160
+ type: 'string',
161
+ description: 'New description',
162
+ }), async (argv) => {
163
+ try {
164
+ const client = createClient(argv);
165
+ const { etag } = await client.applications.get(argv['id-or-slug']);
166
+ const updated = await client.applications.update(argv['id-or-slug'], {
167
+ name: argv.name,
168
+ description: argv.description,
169
+ }, etag ?? undefined);
170
+ if (argv.json) {
171
+ printJson(updated);
172
+ }
173
+ else {
174
+ success(`Application updated: ${updated.name} (${updated.slug})`);
175
+ }
176
+ }
177
+ catch (err) {
178
+ handleError(err, argv.verbose);
179
+ }
180
+ })
181
+ .command('archive <id-or-slug>', 'Archive an application', (y) => y.positional('id-or-slug', {
182
+ type: 'string',
183
+ demandOption: true,
184
+ description: 'Application UUID or slug',
185
+ }), async (argv) => {
186
+ try {
187
+ const client = createClient(argv);
188
+ const { data: app } = await client.applications.get(argv['id-or-slug']);
189
+ if (!argv.force) {
190
+ const confirmed = await confirm(`Archive application "${app.name}" (${app.slug})?`);
191
+ if (!confirmed) {
192
+ warn('Operation cancelled');
193
+ return;
194
+ }
195
+ }
196
+ await client.applications.archive(app.id);
197
+ success(`Application archived: ${app.name} (${app.slug})`);
198
+ }
199
+ catch (err) {
200
+ handleError(err, argv.verbose);
201
+ }
202
+ })
203
+ .command('restore <id-or-slug>', 'Restore an archived application', (y) => y.positional('id-or-slug', {
204
+ type: 'string',
205
+ demandOption: true,
206
+ description: 'Application UUID or slug',
207
+ }), async (argv) => {
208
+ try {
209
+ const client = createClient(argv);
210
+ const { data: app } = await client.applications.get(argv['id-or-slug']);
211
+ await client.applications.restore(app.id);
212
+ success(`Application restored: ${app.name} (${app.slug})`);
213
+ }
214
+ catch (err) {
215
+ handleError(err, argv.verbose);
216
+ }
217
+ })
218
+ .command('history <id-or-slug>', 'Show application change history', (y) => y.positional('id-or-slug', {
219
+ type: 'string',
220
+ demandOption: true,
221
+ description: 'Application UUID or slug',
222
+ }), async (argv) => {
223
+ try {
224
+ const client = createClient(argv);
225
+ const history = await client.applications.getHistory(argv['id-or-slug']);
226
+ if (history.length === 0) {
227
+ warn('No history entries found');
228
+ return;
229
+ }
230
+ if (argv.json) {
231
+ printJson(history);
232
+ }
233
+ else {
234
+ printTable(['Date', 'Action', 'Actor', 'Changes'], history.map((h) => [
235
+ formatDate(h.createdAt),
236
+ h.action,
237
+ h.performedBy ?? '—',
238
+ h.changes ? JSON.stringify(h.changes).slice(0, 60) : '—',
239
+ ]));
240
+ }
241
+ }
242
+ catch (err) {
243
+ handleError(err, argv.verbose);
244
+ }
245
+ })
246
+ // Nested subcommand groups
247
+ .command(appModuleCommand)
248
+ .command(appRoleCommand)
249
+ .command(appPermissionCommand)
250
+ .command(appClaimCommand)
251
+ .demandCommand(1, 'Specify an app subcommand');
252
+ },
253
+ handler: () => { },
254
+ };
255
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Audit command — view audit log entries.
3
+ *
4
+ * Subcommands:
5
+ * list List audit log entries with optional filters
6
+ *
7
+ * @module commands/audit
8
+ */
9
+ import type { CommandModule } from 'yargs';
10
+ import type { GlobalOptions } from '../global-options.js';
11
+ export declare const auditCommand: CommandModule<GlobalOptions, GlobalOptions>;
12
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyB1D,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,aAAa,EAAE,aAAa,CA4FpE,CAAC"}