@portaidentity/cli 1.0.1 → 1.0.3

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.
@@ -0,0 +1,21 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,67 @@
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
@@ -0,0 +1 @@
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"}
@@ -17,7 +17,7 @@ import type { GlobalOptions } from '../global-options.js';
17
17
  * CLI version — read from package.json at build time.
18
18
  * This must be kept in sync with package.json version.
19
19
  */
20
- export declare const CLI_VERSION = "1.0.0";
20
+ export declare const CLI_VERSION = "1.0.2";
21
21
  /**
22
22
  * The version command module — shows version info for CLI, SDK, and server.
23
23
  */
@@ -22,7 +22,7 @@ import { fetchHealthStatus } from '../auth/metadata.js';
22
22
  * CLI version — read from package.json at build time.
23
23
  * This must be kept in sync with package.json version.
24
24
  */
25
- export const CLI_VERSION = '1.0.0';
25
+ export const CLI_VERSION = '1.0.2';
26
26
  // ---------------------------------------------------------------------------
27
27
  // Command Definition
28
28
  // ---------------------------------------------------------------------------
package/dist/index.js CHANGED
@@ -46,6 +46,7 @@ import { sessionsCommand } from './commands/sessions.js';
46
46
  import { bulkCommand } from './commands/bulk.js';
47
47
  import { statsCommand } from './commands/stats.js';
48
48
  import { exportsCommand } from './commands/exports.js';
49
+ import { guiCommand } from './commands/gui.js';
49
50
  /**
50
51
  * Builds and runs the CLI.
51
52
  *
@@ -108,6 +109,8 @@ async function main() {
108
109
  .command(provisionCommand)
109
110
  // Unauthenticated commands
110
111
  .command(healthCommand)
112
+ // GUI launcher (no auth required — admin-gui handles its own auth)
113
+ .command(guiCommand)
111
114
  .demandCommand(1, 'Please specify a command')
112
115
  .strict()
113
116
  .help()
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;GAKG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,UAAU,CAAC,OAAO,CAAC;SACnB,KAAK,CAAC,wBAAwB,CAAC;SAC/B,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,kBAAkB;QAC5B,MAAM,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,uBAAuB;QACjC,MAAM,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,sBAAsB;QAChC,MAAM,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,mCAAmC;QAC7C,MAAM,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,2BAA2B;QACrC,MAAM,EAAE,IAAI;KACb,CAAC;QACF,wCAAwC;SACvC,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,iBAAiB,CAAC;QAC3B,kCAAkC;SACjC,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,WAAW,CAAC;QACrB,0CAA0C;SACzC,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,YAAY,CAAC;SACrB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,gBAAgB,CAAC;QAC1B,2BAA2B;SAC1B,OAAO,CAAC,aAAa,CAAC;QACvB,mEAAmE;SAClE,OAAO,CAAC,UAAU,CAAC;SACnB,aAAa,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAC5C,MAAM,EAAE;SACR,IAAI,EAAE;SACN,OAAO,CAAC,KAAK,CAAC,CAAC,6DAA6D;SAC5E,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,uEAAuE;SACvG,KAAK,EAAE,CAAC;AACb,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portaidentity/cli",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Standalone CLI for the Porta Identity Platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,23 +19,23 @@
19
19
  "clean": "rm -rf dist"
20
20
  },
21
21
  "dependencies": {
22
- "@portaidentity/sdk": "0.1.0",
23
- "chalk": "^5.0.0",
24
- "cli-table3": "^0.6.0",
22
+ "@portaidentity/sdk": "1.0.1",
23
+ "chalk": "^5.6.2",
24
+ "cli-table3": "^0.6.5",
25
25
  "jose": "^6.2.3",
26
26
  "open": "^11.0.0",
27
27
  "yaml": "^2.8.4",
28
28
  "yargs": "^18.0.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@eslint/js": "^10.0.0",
32
- "@types/node": "^22.0.0",
33
- "@types/yargs": "^17.0.0",
31
+ "@eslint/js": "^10.0.1",
32
+ "@types/node": "^25.6.0",
33
+ "@types/yargs": "^17.0.35",
34
34
  "eslint": "^10.3.0",
35
- "eslint-config-prettier": "^10.0.0",
36
- "typescript": "^6.0.0",
35
+ "eslint-config-prettier": "^10.1.8",
36
+ "typescript": "^6.0.3",
37
37
  "typescript-eslint": "^8.59.2",
38
- "vitest": "^4.0.0"
38
+ "vitest": "^4.1.5"
39
39
  },
40
40
  "repository": {
41
41
  "type": "git",