@newpeak/barista-cli 0.1.197 → 0.1.210

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 (93) hide show
  1. package/dist/commands/liberica/caturra/clients/approve.d.ts +3 -0
  2. package/dist/commands/liberica/caturra/clients/approve.d.ts.map +1 -0
  3. package/dist/commands/liberica/caturra/clients/approve.js +45 -0
  4. package/dist/commands/liberica/caturra/clients/approve.js.map +1 -0
  5. package/dist/commands/liberica/caturra/clients/index.d.ts +3 -0
  6. package/dist/commands/liberica/caturra/clients/index.d.ts.map +1 -0
  7. package/dist/commands/liberica/caturra/clients/index.js +15 -0
  8. package/dist/commands/liberica/caturra/clients/index.js.map +1 -0
  9. package/dist/commands/liberica/caturra/clients/list.d.ts +3 -0
  10. package/dist/commands/liberica/caturra/clients/list.d.ts.map +1 -0
  11. package/dist/commands/liberica/caturra/clients/list.js +75 -0
  12. package/dist/commands/liberica/caturra/clients/list.js.map +1 -0
  13. package/dist/commands/liberica/caturra/clients/register.d.ts +3 -0
  14. package/dist/commands/liberica/caturra/clients/register.d.ts.map +1 -0
  15. package/dist/commands/liberica/caturra/clients/register.js +57 -0
  16. package/dist/commands/liberica/caturra/clients/register.js.map +1 -0
  17. package/dist/commands/liberica/caturra/clients/revoke.d.ts +3 -0
  18. package/dist/commands/liberica/caturra/clients/revoke.d.ts.map +1 -0
  19. package/dist/commands/liberica/caturra/clients/revoke.js +44 -0
  20. package/dist/commands/liberica/caturra/clients/revoke.js.map +1 -0
  21. package/dist/commands/liberica/caturra/index.d.ts +3 -0
  22. package/dist/commands/liberica/caturra/index.d.ts.map +1 -0
  23. package/dist/commands/liberica/caturra/index.js +23 -0
  24. package/dist/commands/liberica/caturra/index.js.map +1 -0
  25. package/dist/commands/liberica/caturra/metadata/columns.d.ts +3 -0
  26. package/dist/commands/liberica/caturra/metadata/columns.d.ts.map +1 -0
  27. package/dist/commands/liberica/caturra/metadata/columns.js +68 -0
  28. package/dist/commands/liberica/caturra/metadata/columns.js.map +1 -0
  29. package/dist/commands/liberica/caturra/metadata/database-info.d.ts +3 -0
  30. package/dist/commands/liberica/caturra/metadata/database-info.d.ts.map +1 -0
  31. package/dist/commands/liberica/caturra/metadata/database-info.js +44 -0
  32. package/dist/commands/liberica/caturra/metadata/database-info.js.map +1 -0
  33. package/dist/commands/liberica/caturra/metadata/index.d.ts +3 -0
  34. package/dist/commands/liberica/caturra/metadata/index.d.ts.map +1 -0
  35. package/dist/commands/liberica/caturra/metadata/index.js +15 -0
  36. package/dist/commands/liberica/caturra/metadata/index.js.map +1 -0
  37. package/dist/commands/liberica/caturra/metadata/query.d.ts +3 -0
  38. package/dist/commands/liberica/caturra/metadata/query.d.ts.map +1 -0
  39. package/dist/commands/liberica/caturra/metadata/query.js +63 -0
  40. package/dist/commands/liberica/caturra/metadata/query.js.map +1 -0
  41. package/dist/commands/liberica/caturra/metadata/tables.d.ts +3 -0
  42. package/dist/commands/liberica/caturra/metadata/tables.d.ts.map +1 -0
  43. package/dist/commands/liberica/caturra/metadata/tables.js +51 -0
  44. package/dist/commands/liberica/caturra/metadata/tables.js.map +1 -0
  45. package/dist/commands/liberica/cutting-material/create.d.ts.map +1 -1
  46. package/dist/commands/liberica/cutting-material/create.js +7 -1
  47. package/dist/commands/liberica/cutting-material/create.js.map +1 -1
  48. package/dist/commands/liberica/index.d.ts.map +1 -1
  49. package/dist/commands/liberica/index.js +3 -0
  50. package/dist/commands/liberica/index.js.map +1 -1
  51. package/dist/commands/liberica/material-issue/create.d.ts.map +1 -1
  52. package/dist/commands/liberica/material-issue/create.js +5 -2
  53. package/dist/commands/liberica/material-issue/create.js.map +1 -1
  54. package/dist/commands/liberica/mes-result/create.d.ts.map +1 -1
  55. package/dist/commands/liberica/mes-result/create.js +15 -0
  56. package/dist/commands/liberica/mes-result/create.js.map +1 -1
  57. package/dist/commands/liberica/mould/set-status.d.ts.map +1 -1
  58. package/dist/commands/liberica/mould/set-status.js +17 -0
  59. package/dist/commands/liberica/mould/set-status.js.map +1 -1
  60. package/dist/commands/liberica/outsourcing-orders/create.d.ts.map +1 -1
  61. package/dist/commands/liberica/outsourcing-orders/create.js +41 -19
  62. package/dist/commands/liberica/outsourcing-orders/create.js.map +1 -1
  63. package/dist/commands/liberica/stock-reservation/create.js +2 -2
  64. package/dist/commands/liberica/stock-reservation/create.js.map +1 -1
  65. package/dist/commands/liberica/stock-reservation/list.d.ts.map +1 -1
  66. package/dist/commands/liberica/stock-reservation/list.js +5 -3
  67. package/dist/commands/liberica/stock-reservation/list.js.map +1 -1
  68. package/dist/commands/liberica/stock-reservation/release.d.ts.map +1 -1
  69. package/dist/commands/liberica/stock-reservation/release.js +5 -4
  70. package/dist/commands/liberica/stock-reservation/release.js.map +1 -1
  71. package/dist/commands/liberica/suppliers/update.d.ts.map +1 -1
  72. package/dist/commands/liberica/suppliers/update.js +62 -29
  73. package/dist/commands/liberica/suppliers/update.js.map +1 -1
  74. package/dist/commands/liberica/work-orders/create.d.ts.map +1 -1
  75. package/dist/commands/liberica/work-orders/create.js +23 -5
  76. package/dist/commands/liberica/work-orders/create.js.map +1 -1
  77. package/dist/core/api/client.d.ts +35 -0
  78. package/dist/core/api/client.d.ts.map +1 -1
  79. package/dist/core/api/client.js +182 -0
  80. package/dist/core/api/client.js.map +1 -1
  81. package/dist/types/caturra.d.ts +93 -0
  82. package/dist/types/caturra.d.ts.map +1 -0
  83. package/dist/types/caturra.js +6 -0
  84. package/dist/types/caturra.js.map +1 -0
  85. package/dist/types/cutting-material.d.ts +1 -0
  86. package/dist/types/cutting-material.d.ts.map +1 -1
  87. package/dist/types/outsourcing-order.d.ts +1 -0
  88. package/dist/types/outsourcing-order.d.ts.map +1 -1
  89. package/dist/types/work-order.d.ts +2 -0
  90. package/dist/types/work-order.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/skills/barista-cli/data/commands.json +51 -2
  93. package/skills/barista-cli/data/commands.yaml +34 -2
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraClientsApproveCommand(): Command;
3
+ //# sourceMappingURL=approve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kCAAkC,IAAI,OAAO,CA4C5D"}
@@ -0,0 +1,45 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { shouldUseJson } from '../../../../utils/output.js';
6
+ export function createCaturraClientsApproveCommand() {
7
+ const command = new Command('approve');
8
+ command
9
+ .description('Approve a pending Caturra client')
10
+ .argument('<clientId>', 'Client ID or UUID to approve')
11
+ .option('--remark <remark>', 'Approval remark')
12
+ .option('--dry-run', 'Preview without executing')
13
+ .option('--json', 'Output as JSON')
14
+ .action(async (clientId, options) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = options.env || context.environment;
17
+ const tenant = options.tenant || context.tenant;
18
+ const outputJson = shouldUseJson(options);
19
+ if (options.dryRun) {
20
+ console.log(chalk.bold('\nšŸ” Dry-run: Approve Caturra Client\n'));
21
+ console.log(chalk.gray(` Client ID: ${clientId}`));
22
+ console.log(chalk.gray(` Remark: ${options.remark || '-'}`));
23
+ console.log();
24
+ return;
25
+ }
26
+ const response = await apiClient.approveCaturraClient(environment, tenant, {
27
+ clientId,
28
+ approverRemark: options.remark,
29
+ });
30
+ if (!response.success) {
31
+ console.error(chalk.red(`\nāœ— Approval failed: ${response.error?.message || 'Unknown error'}`));
32
+ process.exit(1);
33
+ }
34
+ if (outputJson) {
35
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
36
+ return;
37
+ }
38
+ console.log(chalk.bold('\nāœ… Client approved successfully!\n'));
39
+ console.log(chalk.green(' New credentials have been generated.'));
40
+ console.log(chalk.gray(' The client will receive them via polling.'));
41
+ console.log();
42
+ });
43
+ return command;
44
+ }
45
+ //# sourceMappingURL=approve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/approve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,kCAAkC;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO;SACJ,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE;YACzE,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,MAA4B;SACrD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraClientsCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,2BAA2B,IAAI,OAAO,CAUrD"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ import { createCaturraClientsListCommand } from './list.js';
3
+ import { createCaturraClientsRegisterCommand } from './register.js';
4
+ import { createCaturraClientsApproveCommand } from './approve.js';
5
+ import { createCaturraClientsRevokeCommand } from './revoke.js';
6
+ export function createCaturraClientsCommand() {
7
+ const clientsCommand = new Command('clients');
8
+ clientsCommand.description('Manage Caturra clients');
9
+ clientsCommand.addCommand(createCaturraClientsListCommand());
10
+ clientsCommand.addCommand(createCaturraClientsRegisterCommand());
11
+ clientsCommand.addCommand(createCaturraClientsApproveCommand());
12
+ clientsCommand.addCommand(createCaturraClientsRevokeCommand());
13
+ return clientsCommand;
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,2BAA2B;IACzC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAErD,cAAc,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAC7D,cAAc,CAAC,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAC;IACjE,cAAc,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IAChE,cAAc,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAE/D,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraClientsListCommand(): Command;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,+BAA+B,IAAI,OAAO,CAkFzD"}
@@ -0,0 +1,75 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createCaturraClientsListCommand() {
8
+ const command = new Command('list');
9
+ command
10
+ .description('List Caturra clients')
11
+ .option('-p, --page <number>', 'Page number', '1')
12
+ .option('-s, --size <number>', 'Page size', '20')
13
+ .option('--status <status>', 'Filter by status (PENDING/APPROVED/REVOKED)')
14
+ .option('--search <text>', 'Search text')
15
+ .option('--json', 'Output as JSON')
16
+ .action(async (options) => {
17
+ const context = configManager.getCurrentContext();
18
+ const environment = options.env || context.environment;
19
+ const tenant = options.tenant || context.tenant;
20
+ const outputJson = shouldUseJson(options);
21
+ const response = await apiClient.listCaturraClients(environment, tenant, {
22
+ pageNo: parseInt(options.page, 10),
23
+ pageSize: parseInt(options.size, 10),
24
+ status: options.status,
25
+ searchText: options.search,
26
+ });
27
+ if (!response.success) {
28
+ console.error(chalk.red(`\nāœ— Failed to list clients: ${response.error?.message || 'Unknown error'}`));
29
+ process.exit(1);
30
+ }
31
+ const data = response.data;
32
+ if (outputJson) {
33
+ console.log(JSON.stringify({ success: true, data }, null, 2));
34
+ return;
35
+ }
36
+ const records = data?.rows || [];
37
+ console.log(chalk.bold('\nā˜• Caturra Clients\n'));
38
+ if (records.length === 0) {
39
+ console.log(chalk.gray(' No clients found\n'));
40
+ return;
41
+ }
42
+ const table = new Table({
43
+ head: [
44
+ chalk.bold('ID'),
45
+ chalk.bold('Name'),
46
+ chalk.bold('Machine ID'),
47
+ chalk.bold('Status'),
48
+ chalk.bold('API Key'),
49
+ chalk.bold('Email'),
50
+ chalk.bold('Created'),
51
+ ],
52
+ colWidths: [8, 15, 18, 10, 38, 20, 12],
53
+ style: { head: [], border: [] },
54
+ });
55
+ for (const client of records) {
56
+ const statusColor = client.status === 'APPROVED' ? chalk.green :
57
+ client.status === 'PENDING' ? chalk.yellow :
58
+ chalk.red;
59
+ table.push([
60
+ String(client.clientId ?? '-').substring(0, 8),
61
+ String(client.clientName ?? '-').substring(0, 14),
62
+ String(client.machineId ?? '-').substring(0, 17),
63
+ statusColor(String(client.status ?? '-')),
64
+ String(client.apiKey ?? '-').substring(0, 37),
65
+ String(client.contactEmail ?? '-').substring(0, 19),
66
+ String(client.createTime ?? '-').substring(0, 11),
67
+ ]);
68
+ }
69
+ console.log(table.toString());
70
+ console.log(chalk.gray(`\n Total: ${data?.totalRows ?? 0} | Page: ${data?.pageNo ?? 1} / ${Math.ceil((data?.totalRows ?? 0) / (data?.pageSize ?? 20)) || 1} | Size: ${data?.pageSize ?? 20}`));
71
+ console.log();
72
+ });
73
+ return command;
74
+ }
75
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,+BAA+B;IAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;SACJ,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,IAAI,CAAC;SAChD,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE;YACvE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAc,EAAE,EAAE,CAAC;YAC5C,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAc,EAAE,EAAE,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAA4B;YAC5C,UAAU,EAAE,OAAO,CAAC,MAA4B;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA4G,CAAC;QAEnI,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,IAAI,EAAE;gBACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;aACtB;YACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5C,KAAK,CAAC,GAAG,CAAC;YAEZ,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChD,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CACpB,cAAc,IAAI,EAAE,SAAS,IAAI,CAAC,YAAY,IAAI,EAAE,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,CACvK,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraClientsRegisterCommand(): Command;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mCAAmC,IAAI,OAAO,CAyD7D"}
@@ -0,0 +1,57 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { shouldUseJson } from '../../../../utils/output.js';
6
+ export function createCaturraClientsRegisterCommand() {
7
+ const command = new Command('register');
8
+ command
9
+ .description('Register a new Caturra client')
10
+ .requiredOption('-n, --name <name>', 'Client name')
11
+ .option('-d, --description <desc>', 'Client description')
12
+ .option('-e, --email <email>', 'Contact email')
13
+ .option('--dry-run', 'Preview without executing')
14
+ .option('--json', 'Output as JSON')
15
+ .action(async (options) => {
16
+ const context = configManager.getCurrentContext();
17
+ const environment = options.env || context.environment;
18
+ const tenant = options.tenant || context.tenant;
19
+ const outputJson = shouldUseJson(options);
20
+ if (options.dryRun) {
21
+ console.log(chalk.bold('\nšŸ” Dry-run: Register Caturra Client\n'));
22
+ console.log(chalk.gray(` Name: ${options.name}`));
23
+ console.log(chalk.gray(` Description: ${options.description || '-'}`));
24
+ console.log(chalk.gray(` Email: ${options.email || '-'}`));
25
+ console.log(chalk.gray(` Tenant: ${tenant}`));
26
+ console.log();
27
+ return;
28
+ }
29
+ const response = await apiClient.registerCaturraClient(environment, tenant, {
30
+ clientName: options.name,
31
+ clientDescription: options.description,
32
+ contactEmail: options.email,
33
+ });
34
+ if (!response.success) {
35
+ console.error(chalk.red(`\nāœ— Registration failed: ${response.error?.message || 'Unknown error'}`));
36
+ process.exit(1);
37
+ }
38
+ const client = response.data;
39
+ if (outputJson) {
40
+ console.log(JSON.stringify({ success: true, data: client }, null, 2));
41
+ return;
42
+ }
43
+ console.log(chalk.bold('\nāœ… Client registered successfully!\n'));
44
+ if (client) {
45
+ console.log(chalk.green(` UUID: ${client.clientUuid}`));
46
+ console.log(chalk.green(` Name: ${client.clientName}`));
47
+ console.log(chalk.green(` API Key: ${client.apiKey}`));
48
+ console.log(chalk.yellow(` Status: ${client.status} (requires approval)`));
49
+ console.log();
50
+ console.log(chalk.gray(' The client will receive credentials via polling after approval.'));
51
+ console.log(chalk.gray(' Use "barista liberica caturra clients approve" to approve.'));
52
+ console.log();
53
+ }
54
+ });
55
+ return command;
56
+ }
57
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraClientsRevokeCommand(): Command;
3
+ //# sourceMappingURL=revoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iCAAiC,IAAI,OAAO,CA2C3D"}
@@ -0,0 +1,44 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../../core/config/manager.js';
4
+ import { apiClient } from '../../../../core/api/client.js';
5
+ import { shouldUseJson } from '../../../../utils/output.js';
6
+ export function createCaturraClientsRevokeCommand() {
7
+ const command = new Command('revoke');
8
+ command
9
+ .description('Revoke an approved Caturra client')
10
+ .argument('<clientId>', 'Client ID or UUID to revoke')
11
+ .option('-r, --reason <reason>', 'Revocation reason')
12
+ .option('--dry-run', 'Preview without executing')
13
+ .option('--json', 'Output as JSON')
14
+ .action(async (clientId, options) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = options.env || context.environment;
17
+ const tenant = options.tenant || context.tenant;
18
+ const outputJson = shouldUseJson(options);
19
+ if (options.dryRun) {
20
+ console.log(chalk.bold('\nšŸ” Dry-run: Revoke Caturra Client\n'));
21
+ console.log(chalk.gray(` Client ID: ${clientId}`));
22
+ console.log(chalk.gray(` Reason: ${options.reason || '-'}`));
23
+ console.log();
24
+ return;
25
+ }
26
+ const response = await apiClient.revokeCaturraClient(environment, tenant, {
27
+ clientId,
28
+ reason: options.reason,
29
+ });
30
+ if (!response.success) {
31
+ console.error(chalk.red(`\nāœ— Revoke failed: ${response.error?.message || 'Unknown error'}`));
32
+ process.exit(1);
33
+ }
34
+ if (outputJson) {
35
+ console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
36
+ return;
37
+ }
38
+ console.log(chalk.bold('\nāœ… Client revoked successfully!\n'));
39
+ console.log(chalk.yellow(' The client can no longer connect to the server.'));
40
+ console.log();
41
+ });
42
+ return command;
43
+ }
44
+ //# sourceMappingURL=revoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/clients/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,iCAAiC;IAC/C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO;SACJ,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;SACrD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;SACpD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE;YACxE,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,MAA4B;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/caturra/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,IAAI,OAAO,CAqB9C"}
@@ -0,0 +1,23 @@
1
+ import { Command } from 'commander';
2
+ import { createCaturraMetadataCommand } from './metadata/index.js';
3
+ import { createCaturraClientsCommand } from './clients/index.js';
4
+ export function createCaturraCommand() {
5
+ const caturraCommand = new Command('caturra');
6
+ caturraCommand.description('Manage Caturra clients and query database metadata');
7
+ caturraCommand.addCommand(createCaturraMetadataCommand());
8
+ caturraCommand.addCommand(createCaturraClientsCommand());
9
+ caturraCommand.action(() => {
10
+ console.log(' Use "barista liberica caturra metadata <command>" for database metadata queries');
11
+ console.log(' Use "barista liberica caturra clients <command>" for client management');
12
+ console.log();
13
+ console.log(' Examples:');
14
+ console.log(' barista liberica caturra metadata tables');
15
+ console.log(' barista liberica caturra metadata columns --table <tableName>');
16
+ console.log(' barista liberica caturra metadata query --client <uuid> --sql "SELECT * FROM ..."');
17
+ console.log(' barista liberica caturra clients list');
18
+ console.log(' barista liberica caturra clients register --name "MyApp"');
19
+ console.log();
20
+ });
21
+ return caturraCommand;
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/caturra/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,oBAAoB;IAClC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,oDAAoD,CAAC,CAAC;IAEjF,cAAc,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAEzD,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraMetadataColumnsCommand(): Command;
3
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,mCAAmC,IAAI,OAAO,CAgF7D"}
@@ -0,0 +1,68 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createCaturraMetadataColumnsCommand() {
8
+ const command = new Command('columns');
9
+ command
10
+ .description('Get columns for a specific table')
11
+ .requiredOption('-t, --table <tableName>', 'Table name')
12
+ .option('-c, --client <uuid>', 'Caturra client UUID for real-time query')
13
+ .option('--json', 'Output as JSON')
14
+ .action(async (options) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = options.env || context.environment;
17
+ const tenant = options.tenant || context.tenant;
18
+ const outputJson = shouldUseJson(options);
19
+ const response = await apiClient.getCaturraColumns(environment, tenant, {
20
+ tableName: options.table,
21
+ clientId: options.client,
22
+ });
23
+ if (!response.success) {
24
+ console.error(chalk.red(`\nāœ— Failed to get columns: ${response.error?.message || 'Unknown error'}`));
25
+ process.exit(1);
26
+ }
27
+ const columns = response.data || [];
28
+ if (outputJson) {
29
+ console.log(JSON.stringify({ success: true, tableName: options.table, data: columns }, null, 2));
30
+ return;
31
+ }
32
+ console.log(chalk.bold(`\nšŸ“‹ Columns: ${options.table}\n`));
33
+ if (columns.length === 0) {
34
+ console.log(chalk.gray(' No columns found\n'));
35
+ return;
36
+ }
37
+ const table = new Table({
38
+ head: [
39
+ chalk.bold('#'),
40
+ chalk.bold('Column'),
41
+ chalk.bold('Type'),
42
+ chalk.bold('Size'),
43
+ chalk.bold('Nullable'),
44
+ chalk.bold('PK'),
45
+ chalk.bold('Auto'),
46
+ chalk.bold('Default'),
47
+ ],
48
+ colWidths: [4, 22, 12, 8, 8, 4, 5, 12],
49
+ style: { head: [], border: [] },
50
+ });
51
+ columns.forEach((col, i) => {
52
+ table.push([
53
+ String(col.ordinalPosition ?? i + 1),
54
+ col.columnName,
55
+ col.dataType,
56
+ col.columnSize ?? '-',
57
+ col.nullable ? 'YES' : 'NO',
58
+ col.primaryKey ? 'ā˜…' : '',
59
+ col.autoIncrement ? 'āœ“' : '',
60
+ col.defaultValue ?? '-',
61
+ ]);
62
+ });
63
+ console.log(table.toString());
64
+ console.log(chalk.gray(`\n Total: ${columns.length} columns\n`));
65
+ });
66
+ return command;
67
+ }
68
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/columns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraMetadataDatabaseInfoCommand(): Command;
3
+ //# sourceMappingURL=database-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-info.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/database-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,wCAAwC,IAAI,OAAO,CA8DlE"}
@@ -0,0 +1,44 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createCaturraMetadataDatabaseInfoCommand() {
8
+ const command = new Command('database-info');
9
+ command
10
+ .description('Get database information (version, charset, etc.)')
11
+ .option('-c, --client <uuid>', 'Caturra client UUID for real-time query')
12
+ .option('--json', 'Output as JSON')
13
+ .action(async (options) => {
14
+ const context = configManager.getCurrentContext();
15
+ const environment = options.env || context.environment;
16
+ const tenant = options.tenant || context.tenant;
17
+ const outputJson = shouldUseJson(options);
18
+ const response = await apiClient.getCaturraDatabaseInfo(environment, tenant, {
19
+ clientId: options.client,
20
+ });
21
+ if (!response.success) {
22
+ console.error(chalk.red(`\nāœ— Failed to get database info: ${response.error?.message || 'Unknown error'}`));
23
+ process.exit(1);
24
+ }
25
+ const info = response.data;
26
+ if (outputJson) {
27
+ console.log(JSON.stringify({ success: true, data: info }, null, 2));
28
+ return;
29
+ }
30
+ if (!info) {
31
+ console.log(chalk.gray(' No database info available\n'));
32
+ return;
33
+ }
34
+ console.log(chalk.bold('\nšŸ—„ļø Database Information\n'));
35
+ const table = new Table({
36
+ style: { head: [], border: [] },
37
+ });
38
+ table.push({ 'Database Version': info.databaseVersion }, { 'Charset': info.charset }, { 'Collation': info.collation }, { 'Metadata Version': String(info.metadataVersion) }, { 'Last Updated': info.lastUpdated ? new Date(info.lastUpdated).toISOString() : 'N/A' }, { 'Tables': String(info.tableCount) }, { 'Columns': String(info.columnCount) });
39
+ console.log(table.toString());
40
+ console.log();
41
+ });
42
+ return command;
43
+ }
44
+ //# sourceMappingURL=database-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-info.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/database-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,UAAU,wCAAwC;IACtD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO;SACJ,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE;YAC3E,QAAQ,EAAE,OAAO,CAAC,MAA4B;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAQd,CAAC;QAET,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CACR,EAAE,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,EAC5C,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAC3B,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAC/B,EAAE,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EACpD,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EACvF,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EACrC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CACxC,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraMetadataCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,4BAA4B,IAAI,OAAO,CAUtD"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ import { createCaturraMetadataTablesCommand } from './tables.js';
3
+ import { createCaturraMetadataColumnsCommand } from './columns.js';
4
+ import { createCaturraMetadataQueryCommand } from './query.js';
5
+ import { createCaturraMetadataDatabaseInfoCommand } from './database-info.js';
6
+ export function createCaturraMetadataCommand() {
7
+ const metadataCommand = new Command('metadata');
8
+ metadataCommand.description('Query database metadata (tables, columns, etc.)');
9
+ metadataCommand.addCommand(createCaturraMetadataTablesCommand());
10
+ metadataCommand.addCommand(createCaturraMetadataColumnsCommand());
11
+ metadataCommand.addCommand(createCaturraMetadataQueryCommand());
12
+ metadataCommand.addCommand(createCaturraMetadataDatabaseInfoCommand());
13
+ return metadataCommand;
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,wCAAwC,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,UAAU,4BAA4B;IAC1C,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,eAAe,CAAC,WAAW,CAAC,iDAAiD,CAAC,CAAC;IAE/E,eAAe,CAAC,UAAU,CAAC,kCAAkC,EAAE,CAAC,CAAC;IACjE,eAAe,CAAC,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAC;IAClE,eAAe,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAChE,eAAe,CAAC,UAAU,CAAC,wCAAwC,EAAE,CAAC,CAAC;IAEvE,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCaturraMetadataQueryCommand(): Command;
3
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,iCAAiC,IAAI,OAAO,CAkE3D"}
@@ -0,0 +1,63 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createCaturraMetadataQueryCommand() {
8
+ const command = new Command('query');
9
+ command
10
+ .description('Execute SQL query on client database (requires connected client)')
11
+ .requiredOption('-c, --client <uuid>', 'Caturra client UUID (required)')
12
+ .requiredOption('-q, --sql <query>', 'SQL query (SELECT only)')
13
+ .option('--dry-run', 'Show the query without executing')
14
+ .option('--json', 'Output as JSON')
15
+ .action(async (options) => {
16
+ const context = configManager.getCurrentContext();
17
+ const environment = options.env || context.environment;
18
+ const tenant = options.tenant || context.tenant;
19
+ const outputJson = shouldUseJson(options);
20
+ if (options.dryRun) {
21
+ console.log(chalk.bold('\nšŸ” Dry-run: SQL Query\n'));
22
+ console.log(chalk.gray(` Client: ${options.client}`));
23
+ console.log(chalk.gray(` SQL: ${options.sql}`));
24
+ console.log();
25
+ return;
26
+ }
27
+ const response = await apiClient.executeCaturraQuery(environment, tenant, {
28
+ clientId: options.client,
29
+ sql: options.sql,
30
+ });
31
+ if (!response.success) {
32
+ console.error(chalk.red(`\nāœ— Query failed: ${response.error?.message || 'Unknown error'}`));
33
+ process.exit(1);
34
+ }
35
+ const rows = response.data || [];
36
+ if (outputJson) {
37
+ console.log(JSON.stringify({ success: true, rowCount: rows.length, data: rows }, null, 2));
38
+ return;
39
+ }
40
+ console.log(chalk.bold('\nšŸ“Š Query Result\n'));
41
+ if (rows.length === 0) {
42
+ console.log(chalk.gray(' No rows returned\n'));
43
+ return;
44
+ }
45
+ // Extract column names from first row
46
+ const columnNames = Object.keys(rows[0]);
47
+ const table = new Table({
48
+ head: columnNames.map(name => chalk.bold(name)),
49
+ colWidths: columnNames.map(() => Math.min(20, Math.floor(80 / columnNames.length))),
50
+ style: { head: [], border: [] },
51
+ });
52
+ rows.forEach(row => {
53
+ table.push(columnNames.map(col => {
54
+ const val = row[col];
55
+ return val === null ? chalk.gray('NULL') : String(val).substring(0, 40);
56
+ }));
57
+ });
58
+ console.log(table.toString());
59
+ console.log(chalk.gray(`\n Total: ${rows.length} rows\n`));
60
+ });
61
+ return command;
62
+ }
63
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/caturra/metadata/query.ts"],"names":[],"mappings":"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"}