@newpeak/barista-cli 0.1.1 → 0.1.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.
Files changed (183) hide show
  1. package/dist/commands/arabica/auth/index.d.ts +3 -0
  2. package/dist/commands/arabica/auth/index.d.ts.map +1 -0
  3. package/dist/commands/arabica/auth/index.js +244 -0
  4. package/dist/commands/arabica/auth/index.js.map +1 -0
  5. package/dist/commands/arabica/auth/login.d.ts +3 -0
  6. package/dist/commands/arabica/auth/login.d.ts.map +1 -0
  7. package/dist/commands/arabica/auth/login.js +5 -0
  8. package/dist/commands/arabica/auth/login.js.map +1 -0
  9. package/dist/commands/arabica/auth/logout.d.ts +3 -0
  10. package/dist/commands/arabica/auth/logout.d.ts.map +1 -0
  11. package/dist/commands/arabica/auth/logout.js +5 -0
  12. package/dist/commands/arabica/auth/logout.js.map +1 -0
  13. package/dist/commands/arabica/auth/register.d.ts +3 -0
  14. package/dist/commands/arabica/auth/register.d.ts.map +1 -0
  15. package/dist/commands/arabica/auth/register.js +5 -0
  16. package/dist/commands/arabica/auth/register.js.map +1 -0
  17. package/dist/commands/arabica/auth/status.d.ts +3 -0
  18. package/dist/commands/arabica/auth/status.d.ts.map +1 -0
  19. package/dist/commands/arabica/auth/status.js +5 -0
  20. package/dist/commands/arabica/auth/status.js.map +1 -0
  21. package/dist/commands/arabica/index.d.ts +3 -0
  22. package/dist/commands/arabica/index.d.ts.map +1 -0
  23. package/dist/commands/arabica/index.js +20 -0
  24. package/dist/commands/arabica/index.js.map +1 -0
  25. package/dist/commands/auth.d.ts +3 -0
  26. package/dist/commands/auth.d.ts.map +1 -0
  27. package/dist/commands/auth.js +92 -0
  28. package/dist/commands/auth.js.map +1 -0
  29. package/dist/commands/context.d.ts +3 -0
  30. package/dist/commands/context.d.ts.map +1 -0
  31. package/dist/commands/context.js +50 -0
  32. package/dist/commands/context.js.map +1 -0
  33. package/dist/commands/liberica/auth/index.d.ts +3 -0
  34. package/dist/commands/liberica/auth/index.d.ts.map +1 -0
  35. package/dist/commands/liberica/auth/index.js +152 -0
  36. package/dist/commands/liberica/auth/index.js.map +1 -0
  37. package/dist/commands/liberica/context/index.d.ts +3 -0
  38. package/dist/commands/liberica/context/index.d.ts.map +1 -0
  39. package/dist/commands/liberica/context/index.js +36 -0
  40. package/dist/commands/liberica/context/index.js.map +1 -0
  41. package/dist/commands/liberica/employees/create.d.ts +3 -0
  42. package/dist/commands/liberica/employees/create.d.ts.map +1 -0
  43. package/dist/commands/liberica/employees/create.js +262 -0
  44. package/dist/commands/liberica/employees/create.js.map +1 -0
  45. package/dist/commands/liberica/employees/delete.d.ts +3 -0
  46. package/dist/commands/liberica/employees/delete.d.ts.map +1 -0
  47. package/dist/commands/liberica/employees/delete.js +119 -0
  48. package/dist/commands/liberica/employees/delete.js.map +1 -0
  49. package/dist/commands/liberica/employees/disable.d.ts +3 -0
  50. package/dist/commands/liberica/employees/disable.d.ts.map +1 -0
  51. package/dist/commands/liberica/employees/disable.js +88 -0
  52. package/dist/commands/liberica/employees/disable.js.map +1 -0
  53. package/dist/commands/liberica/employees/enable.d.ts +3 -0
  54. package/dist/commands/liberica/employees/enable.d.ts.map +1 -0
  55. package/dist/commands/liberica/employees/enable.js +88 -0
  56. package/dist/commands/liberica/employees/enable.js.map +1 -0
  57. package/dist/commands/liberica/employees/get.d.ts +3 -0
  58. package/dist/commands/liberica/employees/get.d.ts.map +1 -0
  59. package/dist/commands/liberica/employees/get.js +104 -0
  60. package/dist/commands/liberica/employees/get.js.map +1 -0
  61. package/dist/commands/liberica/employees/index.d.ts +3 -0
  62. package/dist/commands/liberica/employees/index.d.ts.map +1 -0
  63. package/dist/commands/liberica/employees/index.js +21 -0
  64. package/dist/commands/liberica/employees/index.js.map +1 -0
  65. package/dist/commands/liberica/employees/list.d.ts +3 -0
  66. package/dist/commands/liberica/employees/list.d.ts.map +1 -0
  67. package/dist/commands/liberica/employees/list.js +98 -0
  68. package/dist/commands/liberica/employees/list.js.map +1 -0
  69. package/dist/commands/liberica/employees/update.d.ts +3 -0
  70. package/dist/commands/liberica/employees/update.d.ts.map +1 -0
  71. package/dist/commands/liberica/employees/update.js +147 -0
  72. package/dist/commands/liberica/employees/update.js.map +1 -0
  73. package/dist/commands/liberica/index.d.ts +3 -0
  74. package/dist/commands/liberica/index.d.ts.map +1 -0
  75. package/dist/commands/liberica/index.js +33 -0
  76. package/dist/commands/liberica/index.js.map +1 -0
  77. package/dist/commands/liberica/orgs/index.d.ts +3 -0
  78. package/dist/commands/liberica/orgs/index.d.ts.map +1 -0
  79. package/dist/commands/liberica/orgs/index.js +27 -0
  80. package/dist/commands/liberica/orgs/index.js.map +1 -0
  81. package/dist/commands/liberica/positions/index.d.ts +3 -0
  82. package/dist/commands/liberica/positions/index.d.ts.map +1 -0
  83. package/dist/commands/liberica/positions/index.js +24 -0
  84. package/dist/commands/liberica/positions/index.js.map +1 -0
  85. package/dist/commands/liberica/roles/index.d.ts +3 -0
  86. package/dist/commands/liberica/roles/index.d.ts.map +1 -0
  87. package/dist/commands/liberica/roles/index.js +50 -0
  88. package/dist/commands/liberica/roles/index.js.map +1 -0
  89. package/dist/commands/liberica/users/create.d.ts +3 -0
  90. package/dist/commands/liberica/users/create.d.ts.map +1 -0
  91. package/dist/commands/liberica/users/create.js +112 -0
  92. package/dist/commands/liberica/users/create.js.map +1 -0
  93. package/dist/commands/liberica/users/delete.d.ts +3 -0
  94. package/dist/commands/liberica/users/delete.d.ts.map +1 -0
  95. package/dist/commands/liberica/users/delete.js +41 -0
  96. package/dist/commands/liberica/users/delete.js.map +1 -0
  97. package/dist/commands/liberica/users/disable.d.ts +3 -0
  98. package/dist/commands/liberica/users/disable.d.ts.map +1 -0
  99. package/dist/commands/liberica/users/disable.js +34 -0
  100. package/dist/commands/liberica/users/disable.js.map +1 -0
  101. package/dist/commands/liberica/users/enable.d.ts +3 -0
  102. package/dist/commands/liberica/users/enable.d.ts.map +1 -0
  103. package/dist/commands/liberica/users/enable.js +24 -0
  104. package/dist/commands/liberica/users/enable.js.map +1 -0
  105. package/dist/commands/liberica/users/get.d.ts +3 -0
  106. package/dist/commands/liberica/users/get.d.ts.map +1 -0
  107. package/dist/commands/liberica/users/get.js +38 -0
  108. package/dist/commands/liberica/users/get.js.map +1 -0
  109. package/dist/commands/liberica/users/index.d.ts +3 -0
  110. package/dist/commands/liberica/users/index.d.ts.map +1 -0
  111. package/dist/commands/liberica/users/index.js +25 -0
  112. package/dist/commands/liberica/users/index.js.map +1 -0
  113. package/dist/commands/liberica/users/list.d.ts +3 -0
  114. package/dist/commands/liberica/users/list.d.ts.map +1 -0
  115. package/dist/commands/liberica/users/list.js +59 -0
  116. package/dist/commands/liberica/users/list.js.map +1 -0
  117. package/dist/commands/liberica/users/me.d.ts +3 -0
  118. package/dist/commands/liberica/users/me.d.ts.map +1 -0
  119. package/dist/commands/liberica/users/me.js +34 -0
  120. package/dist/commands/liberica/users/me.js.map +1 -0
  121. package/dist/commands/liberica/users/reset-password.d.ts +3 -0
  122. package/dist/commands/liberica/users/reset-password.d.ts.map +1 -0
  123. package/dist/commands/liberica/users/reset-password.js +35 -0
  124. package/dist/commands/liberica/users/reset-password.js.map +1 -0
  125. package/dist/commands/liberica/users/update.d.ts +3 -0
  126. package/dist/commands/liberica/users/update.d.ts.map +1 -0
  127. package/dist/commands/liberica/users/update.js +42 -0
  128. package/dist/commands/liberica/users/update.js.map +1 -0
  129. package/dist/core/api/client.d.ts +114 -0
  130. package/dist/core/api/client.d.ts.map +1 -0
  131. package/dist/core/api/client.js +644 -0
  132. package/dist/core/api/client.js.map +1 -0
  133. package/dist/core/auth/token-manager.d.ts +26 -0
  134. package/dist/core/auth/token-manager.d.ts.map +1 -0
  135. package/dist/core/auth/token-manager.js +158 -0
  136. package/dist/core/auth/token-manager.js.map +1 -0
  137. package/dist/core/config/manager.d.ts +17 -0
  138. package/dist/core/config/manager.d.ts.map +1 -0
  139. package/dist/core/config/manager.js +153 -0
  140. package/dist/core/config/manager.js.map +1 -0
  141. package/dist/index.d.ts +3 -0
  142. package/dist/index.d.ts.map +1 -0
  143. package/dist/index.js +33 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/types/employee.d.ts +87 -0
  146. package/dist/types/employee.d.ts.map +1 -0
  147. package/dist/types/employee.js +2 -0
  148. package/dist/types/employee.js.map +1 -0
  149. package/dist/types/index.d.ts +66 -0
  150. package/dist/types/index.d.ts.map +1 -0
  151. package/dist/types/index.js +4 -0
  152. package/dist/types/index.js.map +1 -0
  153. package/dist/types/org.d.ts +22 -0
  154. package/dist/types/org.d.ts.map +1 -0
  155. package/dist/types/org.js +2 -0
  156. package/dist/types/org.js.map +1 -0
  157. package/dist/types/position.d.ts +21 -0
  158. package/dist/types/position.d.ts.map +1 -0
  159. package/dist/types/position.js +2 -0
  160. package/dist/types/position.js.map +1 -0
  161. package/dist/types/user.d.ts +59 -0
  162. package/dist/types/user.d.ts.map +1 -0
  163. package/dist/types/user.js +2 -0
  164. package/dist/types/user.js.map +1 -0
  165. package/package.json +1 -1
  166. package/src/index.ts +1 -1
  167. package/.eslintrc.json +0 -23
  168. package/.prettierrc +0 -9
  169. package/.sisyphus/notepads/liberica-employees/learnings.md +0 -73
  170. package/AGENTS.md +0 -270
  171. package/CONTRIBUTING.md +0 -291
  172. package/tests/unit/commands/arabica/auth.test.ts +0 -230
  173. package/tests/unit/commands/liberica/auth.test.ts +0 -175
  174. package/tests/unit/commands/liberica/context.test.ts +0 -98
  175. package/tests/unit/commands/liberica/employees/create.test.ts +0 -463
  176. package/tests/unit/commands/liberica/employees/disable.test.ts +0 -82
  177. package/tests/unit/commands/liberica/employees/enable.test.ts +0 -82
  178. package/tests/unit/commands/liberica/employees/get.test.ts +0 -111
  179. package/tests/unit/commands/liberica/employees/list.test.ts +0 -294
  180. package/tests/unit/commands/liberica/employees/update.test.ts +0 -210
  181. package/tests/unit/config.test.ts +0 -141
  182. package/tests/unit/types.test.ts +0 -195
  183. package/tsconfig.json +0 -20
@@ -0,0 +1,152 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { configManager } from '../../../core/config/manager.js';
5
+ import { tokenManager } from '../../../core/auth/token-manager.js';
6
+ import { apiClient } from '../../../core/api/client.js';
7
+ export function createLibericaAuthCommand() {
8
+ const authCommand = new Command('auth');
9
+ authCommand.description('Manage Liberica authentication');
10
+ authCommand.action(async () => {
11
+ await authCommand.help();
12
+ });
13
+ authCommand
14
+ .command('login')
15
+ .description('Login to Liberica')
16
+ .arguments('<env> [tenant] [username] [password]')
17
+ .option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
18
+ .option('--tenant <tenant>', 'Tenant name')
19
+ .option('--username <username>', 'Username')
20
+ .option('--password <password>', 'Password')
21
+ .action(async (env, tenant, username, password, options) => {
22
+ const context = configManager.getCurrentContext();
23
+ const environment = options.env || env || context.environment;
24
+ let resolvedTenant = options.tenant || tenant || context.tenant;
25
+ console.log(chalk.bold(`\nšŸ” Login to Liberica (${environment})\n`));
26
+ if (!resolvedTenant) {
27
+ const { tenant: inputTenant } = await inquirer.prompt([
28
+ {
29
+ type: 'input',
30
+ name: 'tenant',
31
+ message: 'Enter tenant name:',
32
+ validate: (input) => input.length > 0 || 'Tenant is required',
33
+ },
34
+ ]);
35
+ resolvedTenant = inputTenant;
36
+ }
37
+ let resolvedUsername = options.username || username;
38
+ let resolvedPassword = options.password || password;
39
+ if (!resolvedUsername) {
40
+ const { username: inputUsername } = await inquirer.prompt([
41
+ {
42
+ type: 'input',
43
+ name: 'username',
44
+ message: 'Enter username:',
45
+ validate: (input) => input.length > 0 || 'Username is required',
46
+ },
47
+ ]);
48
+ resolvedUsername = inputUsername;
49
+ }
50
+ if (!resolvedPassword) {
51
+ const { password: inputPassword } = await inquirer.prompt([
52
+ {
53
+ type: 'password',
54
+ name: 'password',
55
+ message: 'Enter password:',
56
+ validate: (input) => input.length > 0 || 'Password is required',
57
+ },
58
+ ]);
59
+ resolvedPassword = inputPassword;
60
+ }
61
+ try {
62
+ const response = await apiClient.login('liberica', environment, resolvedTenant, resolvedUsername, resolvedPassword);
63
+ if (response.success && response.data) {
64
+ try {
65
+ await tokenManager.setToken({
66
+ service: 'liberica',
67
+ environment,
68
+ tenant: resolvedTenant,
69
+ }, response.data.token);
70
+ }
71
+ catch (keytarError) {
72
+ console.error(chalk.red(`\nāœ— Failed to save token to keychain: ${keytarError instanceof Error ? keytarError.message : 'Unknown error'}`));
73
+ console.error(chalk.gray(' This may occur in headless environments without D-Bus/X11.'));
74
+ console.error(chalk.gray(' The login was successful but the token could not be persisted.\n'));
75
+ process.exit(1);
76
+ }
77
+ await configManager.setTenant(resolvedTenant);
78
+ console.log(chalk.green('\nāœ“ Login successful'));
79
+ if (response.data.expiresAt) {
80
+ console.log(chalk.gray(` Token expires: ${response.data.expiresAt}`));
81
+ }
82
+ console.log();
83
+ }
84
+ else {
85
+ console.error(chalk.red(`\nāœ— Login failed: ${response.error?.message || 'Unknown error'}`));
86
+ if (response.error?.code) {
87
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
88
+ }
89
+ console.error();
90
+ process.exit(1);
91
+ }
92
+ }
93
+ catch (error) {
94
+ console.error(chalk.red(`\nāœ— Login error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
95
+ process.exit(1);
96
+ }
97
+ });
98
+ authCommand
99
+ .command('status')
100
+ .description('Check Liberica authentication status')
101
+ .action(async () => {
102
+ const environments = ['dev', 'test', 'prod-cn', 'prod-jp'];
103
+ const context = configManager.getCurrentContext();
104
+ console.log(chalk.bold('\nšŸ” Liberica Authentication Status\n'));
105
+ for (const env of environments) {
106
+ const token = await tokenManager.getToken({ service: 'liberica', environment: env, tenant: context.tenant });
107
+ const statusIcon = token ? chalk.green('āœ“') : chalk.red('āœ—');
108
+ const statusText = token ? 'Logged in' : 'Not logged in';
109
+ const tenantText = context.tenant ? ` (${context.tenant})` : '';
110
+ console.log(` ${statusIcon} ${chalk.gray('liberica')}${tenantText} (${env}): ${statusText}`);
111
+ }
112
+ console.log();
113
+ });
114
+ authCommand
115
+ .command('logout')
116
+ .description('Logout from Liberica and clear token')
117
+ .option('--env <environment>', 'Environment (dev|test|prod-cn|prod-jp)')
118
+ .option('--all', 'Clear all Liberica tokens')
119
+ .action(async (options) => {
120
+ const context = configManager.getCurrentContext();
121
+ if (options.all) {
122
+ const allTokens = await tokenManager.findAllTokens();
123
+ for (const cred of allTokens) {
124
+ const parts = cred.account.split(':');
125
+ if (parts[0] === 'liberica') {
126
+ await tokenManager.deleteToken({
127
+ service: 'liberica',
128
+ environment: parts[1],
129
+ tenant: parts[2],
130
+ });
131
+ }
132
+ }
133
+ console.log(chalk.green('\nāœ“ All Liberica tokens cleared\n'));
134
+ }
135
+ else {
136
+ const environment = options.env || context.environment;
137
+ const deleted = await tokenManager.deleteToken({
138
+ service: 'liberica',
139
+ environment,
140
+ tenant: context.tenant,
141
+ });
142
+ if (deleted) {
143
+ console.log(chalk.green(`\nāœ“ Token cleared for Liberica (${environment})\n`));
144
+ }
145
+ else {
146
+ console.log(chalk.gray(`\nNo token found for Liberica (${environment})\n`));
147
+ }
148
+ }
149
+ });
150
+ return authCommand;
151
+ }
152
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/auth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createLibericaContextCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,4BAA4B,IAAI,OAAO,CAqCtD"}
@@ -0,0 +1,36 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { configManager } from '../../../core/config/manager.js';
4
+ import { tokenManager } from '../../../core/auth/token-manager.js';
5
+ export function createLibericaContextCommand() {
6
+ const contextCommand = new Command('context');
7
+ contextCommand.description('Manage Liberica context (tenant, environment)');
8
+ contextCommand.action(async () => {
9
+ await contextCommand.help();
10
+ });
11
+ contextCommand
12
+ .command('show')
13
+ .description('Show current Liberica context')
14
+ .action(async () => {
15
+ const context = configManager.getCurrentContext();
16
+ const token = await tokenManager.getToken({
17
+ service: 'liberica',
18
+ environment: context.environment,
19
+ tenant: context.tenant,
20
+ });
21
+ console.log(chalk.bold('\nšŸ“‹ Liberica Context\n'));
22
+ console.log(` ${chalk.gray('Environment:')} ${chalk.green(context.environment)}`);
23
+ console.log(` ${chalk.gray('Tenant:')} ${chalk.green(context.tenant)}`);
24
+ console.log(` ${chalk.gray('Auth Status:')} ${token ? chalk.green('āœ“ Logged in') : chalk.red('āœ— Not logged in')}`);
25
+ console.log();
26
+ });
27
+ contextCommand
28
+ .command('use-enterprise <tenant>')
29
+ .description('Switch Liberica tenant (enterprise)')
30
+ .action(async (tenant) => {
31
+ await configManager.setTenant(tenant);
32
+ console.log(chalk.green(`\nāœ“ Tenant set to ${tenant}\n`));
33
+ });
34
+ return contextCommand;
35
+ }
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,MAAM,UAAU,4BAA4B;IAC1C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAE5E,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC/B,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,cAAc;SACX,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC;YACxC,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CACvG,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,cAAc;SACX,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,MAAM,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createEmployeeCreateCommand(): Command;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/employees/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,wBAAgB,2BAA2B,IAAI,OAAO,CAwOrD"}
@@ -0,0 +1,262 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { apiClient } from '../../../core/api/client.js';
5
+ import { configManager } from '../../../core/config/manager.js';
6
+ const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
7
+ const PHONE_REGEX = /^[\d\s\-()+]+$/;
8
+ const DATE_REGEX = /^\d{4}-\d{2}-\d{2}$/;
9
+ const SEX_REGEX = /^[MF]$/;
10
+ function validateFields(data) {
11
+ if (data.employeeEmail && !EMAIL_REGEX.test(data.employeeEmail)) {
12
+ return 'Invalid email format. Please provide a valid email address.';
13
+ }
14
+ if (data.employeePhone && !PHONE_REGEX.test(data.employeePhone)) {
15
+ return 'Invalid phone format. Phone must contain only digits, spaces, hyphens, or parentheses.';
16
+ }
17
+ if (data.employeeJoinedDate && !DATE_REGEX.test(data.employeeJoinedDate)) {
18
+ return 'Invalid date format. Date must be in YYYY-MM-DD format.';
19
+ }
20
+ if (data.employeeSex && !SEX_REGEX.test(data.employeeSex)) {
21
+ return 'Invalid sex value. Must be M or F.';
22
+ }
23
+ return null;
24
+ }
25
+ function formatTable(data) {
26
+ const lines = [];
27
+ lines.push(` ${chalk.gray('Name:')} ${data.employeeName}`);
28
+ lines.push(` ${chalk.gray('Employee No:')} ${data.employeeNo}`);
29
+ if (data.employeeCode)
30
+ lines.push(` ${chalk.gray('Code:')} ${data.employeeCode}`);
31
+ if (data.employeePhone)
32
+ lines.push(` ${chalk.gray('Phone:')} ${data.employeePhone}`);
33
+ if (data.employeeEmail)
34
+ lines.push(` ${chalk.gray('Email:')} ${data.employeeEmail}`);
35
+ if (data.employeeSex)
36
+ lines.push(` ${chalk.gray('Sex:')} ${data.employeeSex}`);
37
+ if (data.organizationId)
38
+ lines.push(` ${chalk.gray('Org ID:')} ${data.organizationId}`);
39
+ if (data.positionId)
40
+ lines.push(` ${chalk.gray('Position ID:')} ${data.positionId}`);
41
+ if (data.employeeJoinedDate)
42
+ lines.push(` ${chalk.gray('Joined Date:')} ${data.employeeJoinedDate}`);
43
+ return lines.join('\n');
44
+ }
45
+ export function createEmployeeCreateCommand() {
46
+ const cmd = new Command('create');
47
+ cmd.description('Create a new employee');
48
+ cmd
49
+ .option('-n, --name <name>', 'Employee name (required)')
50
+ .option('-c, --code <code>', 'Employee code (optional, auto-generated if empty)')
51
+ .option('-p, --phone <phone>', 'Phone number')
52
+ .option('-e, --email <email>', 'Email address')
53
+ .option('-s, --sex <sex>', 'Sex (M or F)')
54
+ .option('--org <name>', 'Organization name')
55
+ .option('--position <name>', 'Position name')
56
+ .option('-d, --joined-date <date>', 'Joined date (YYYY-MM-DD)')
57
+ .option('--no <no>', 'Employee number (required)')
58
+ .option('--dry-run', 'Preview without making API call')
59
+ .option('--json', 'Output as JSON');
60
+ cmd.action(async () => {
61
+ const context = configManager.getCurrentContext();
62
+ const opts = cmd.opts();
63
+ let name = opts.name;
64
+ let no = opts.no || opts['no'];
65
+ const code = opts.code;
66
+ const phone = opts.phone;
67
+ const email = opts.email;
68
+ const sex = opts.sex;
69
+ const orgName = opts.org;
70
+ const positionName = opts.position;
71
+ const joinedDate = opts.joinedDate;
72
+ const dryRun = opts.dryRun === true;
73
+ const jsonOutput = opts.json === true;
74
+ if (!name) {
75
+ const { inputName } = await inquirer.prompt([
76
+ {
77
+ type: 'input',
78
+ name: 'inputName',
79
+ message: 'Enter employee name:',
80
+ validate: (input) => input.trim().length > 0 || 'Employee name is required',
81
+ },
82
+ ]);
83
+ name = inputName;
84
+ }
85
+ if (!no) {
86
+ const { inputNo } = await inquirer.prompt([
87
+ {
88
+ type: 'input',
89
+ name: 'inputNo',
90
+ message: 'Enter employee number:',
91
+ validate: (input) => input.trim().length > 0 || 'Employee number is required',
92
+ },
93
+ ]);
94
+ no = inputNo;
95
+ }
96
+ let resolvedCode = code;
97
+ if (!resolvedCode) {
98
+ const codeResponse = await apiClient.getCodeByType(context.environment, context.tenant, 'TenantEmployeeCode');
99
+ if (codeResponse.success && codeResponse.data) {
100
+ resolvedCode = codeResponse.data;
101
+ }
102
+ }
103
+ let resolvedOrgId;
104
+ if (orgName) {
105
+ const orgResponse = await apiClient.getOrgListName(context.environment, context.tenant);
106
+ if (!orgResponse.success || !orgResponse.data) {
107
+ const errMsg = orgResponse.error?.message || 'Failed to fetch organization list';
108
+ if (jsonOutput) {
109
+ console.log(JSON.stringify({ success: false, error: { code: orgResponse.error?.code || 'FETCH_ORG_ERROR', message: errMsg } }));
110
+ }
111
+ else {
112
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
113
+ }
114
+ process.exit(1);
115
+ }
116
+ const found = orgResponse.data.find((o) => o.name === orgName);
117
+ if (!found) {
118
+ const errMsg = `Organization '${orgName}' not found`;
119
+ if (jsonOutput) {
120
+ console.log(JSON.stringify({ success: false, error: { code: 'ORG_NOT_FOUND', message: errMsg } }));
121
+ }
122
+ else {
123
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
124
+ }
125
+ process.exit(1);
126
+ }
127
+ resolvedOrgId = found.id;
128
+ }
129
+ let resolvedPositionId;
130
+ if (positionName) {
131
+ const posResponse = await apiClient.listPositions(context.environment, context.tenant);
132
+ if (!posResponse.success || !posResponse.data) {
133
+ const errMsg = posResponse.error?.message || 'Failed to fetch position list';
134
+ if (jsonOutput) {
135
+ console.log(JSON.stringify({ success: false, error: { code: posResponse.error?.code || 'FETCH_POSITION_ERROR', message: errMsg } }));
136
+ }
137
+ else {
138
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
139
+ }
140
+ process.exit(1);
141
+ }
142
+ const found = posResponse.data.find((p) => p.name === positionName);
143
+ if (!found) {
144
+ const errMsg = `Position '${positionName}' not found`;
145
+ if (jsonOutput) {
146
+ console.log(JSON.stringify({ success: false, error: { code: 'POSITION_NOT_FOUND', message: errMsg } }));
147
+ }
148
+ else {
149
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
150
+ }
151
+ process.exit(1);
152
+ }
153
+ resolvedPositionId = found.id;
154
+ }
155
+ const data = {
156
+ employeeName: name,
157
+ employeeNo: no,
158
+ employeeCode: resolvedCode,
159
+ employeePhone: phone,
160
+ employeeEmail: email,
161
+ employeeSex: sex,
162
+ organizationId: resolvedOrgId,
163
+ positionId: resolvedPositionId,
164
+ employeeJoinedDate: joinedDate,
165
+ };
166
+ const validationError = validateFields(data);
167
+ if (validationError) {
168
+ if (jsonOutput) {
169
+ console.log(JSON.stringify({ success: false, error: { code: 'VALIDATION_ERROR', message: validationError } }));
170
+ }
171
+ else {
172
+ console.error(chalk.red(`\nāœ— Validation error: ${validationError}\n`));
173
+ }
174
+ process.exit(1);
175
+ }
176
+ if (dryRun) {
177
+ if (jsonOutput) {
178
+ console.log(JSON.stringify({ success: true, dryRun: true, data }));
179
+ }
180
+ else {
181
+ console.log(chalk.bold('\nšŸ” Dry-Run Mode: No changes will be made\n'));
182
+ console.log(' Employee to be created:');
183
+ console.log(formatTable(data));
184
+ console.log();
185
+ }
186
+ return;
187
+ }
188
+ const requestData = {
189
+ employeeName: data.employeeName,
190
+ employeeNo: data.employeeNo,
191
+ employeeCode: data.employeeCode,
192
+ employeePhone: data.employeePhone,
193
+ employeeEmail: data.employeeEmail,
194
+ employeeSex: data.employeeSex,
195
+ organizationId: data.organizationId,
196
+ positionId: data.positionId,
197
+ employeeJoinedDate: data.employeeJoinedDate,
198
+ };
199
+ if (!jsonOutput) {
200
+ console.log(chalk.bold('\nšŸ“ Creating Employee\n'));
201
+ }
202
+ const response = await apiClient.createEmployee(context.environment, context.tenant, requestData);
203
+ if (!response.success) {
204
+ const errorMsg = response.error?.message || 'Failed to create employee';
205
+ const errorCode = response.error?.code || 'CREATE_EMPLOYEE_ERROR';
206
+ if (jsonOutput) {
207
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
208
+ }
209
+ else {
210
+ console.error(chalk.red(`\nāœ— Failed to create employee: ${errorMsg}`));
211
+ if (response.error?.code) {
212
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
213
+ }
214
+ console.error();
215
+ }
216
+ process.exit(1);
217
+ }
218
+ if (response.success) {
219
+ const emp = response.data;
220
+ if (jsonOutput) {
221
+ console.log(JSON.stringify({ success: true, data: emp }));
222
+ }
223
+ else {
224
+ console.log(chalk.green('āœ“ Employee created successfully\n'));
225
+ if (emp?.employeeId)
226
+ console.log(` ${chalk.gray('Employee ID:')} ${chalk.green(String(emp.employeeId))}`);
227
+ if (emp?.employeeName)
228
+ console.log(` ${chalk.gray('Name:')} ${emp.employeeName}`);
229
+ if (emp?.employeeNo)
230
+ console.log(` ${chalk.gray('Employee No:')} ${emp.employeeNo}`);
231
+ if (emp?.employeeCode)
232
+ console.log(` ${chalk.gray('Code:')} ${emp.employeeCode}`);
233
+ if (emp?.orgName)
234
+ console.log(` ${chalk.gray('Organization:')} ${emp.orgName}`);
235
+ if (emp?.positionName)
236
+ console.log(` ${chalk.gray('Position:')} ${emp.positionName}`);
237
+ if (emp?.statusFlag !== undefined) {
238
+ const statusText = emp.statusFlag === 1 ? 'Enabled' : 'Disabled';
239
+ console.log(` ${chalk.gray('Status:')} ${chalk.green(statusText)}`);
240
+ }
241
+ console.log();
242
+ }
243
+ }
244
+ else {
245
+ const errorMsg = response.error?.message || 'Failed to create employee';
246
+ const errorCode = response.error?.code || 'CREATE_EMPLOYEE_ERROR';
247
+ if (jsonOutput) {
248
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
249
+ }
250
+ else {
251
+ console.error(chalk.red(`\nāœ— Failed to create employee: ${errorMsg}`));
252
+ if (response.error?.code) {
253
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
254
+ }
255
+ console.error();
256
+ }
257
+ process.exit(1);
258
+ }
259
+ });
260
+ return cmd;
261
+ }
262
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/employees/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createEmployeeDeleteCommand(): Command;
3
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/employees/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,2BAA2B,IAAI,OAAO,CAiHrD"}
@@ -0,0 +1,119 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import inquirer from 'inquirer';
4
+ import { configManager } from '../../../core/config/manager.js';
5
+ import { apiClient } from '../../../core/api/client.js';
6
+ export function createEmployeeDeleteCommand() {
7
+ const deleteCommand = new Command('delete');
8
+ deleteCommand
9
+ .description('Delete an employee')
10
+ .argument('<id>', 'Employee ID')
11
+ .option('--force', 'Skip confirmation prompt')
12
+ .option('--dry-run', 'Preview the operation without executing')
13
+ .option('--json', 'Output as JSON')
14
+ .action(async (id, options) => {
15
+ const context = configManager.getCurrentContext();
16
+ const environment = context.environment;
17
+ const tenant = context.tenant;
18
+ const jsonOutput = options.json === true;
19
+ const employeeId = id;
20
+ if (!jsonOutput) {
21
+ console.log(chalk.bold(`\nšŸ—‘ļø Delete Employee (${environment})\n`));
22
+ console.log(chalk.gray(` Employee ID: ${employeeId}`));
23
+ }
24
+ if (options.dryRun) {
25
+ if (jsonOutput) {
26
+ console.log(JSON.stringify({ success: true, dryRun: true, employeeId }));
27
+ }
28
+ else {
29
+ console.log(chalk.cyan('\nšŸ” Dry-Run Mode: No actual API call will be made\n'));
30
+ console.log(chalk.gray(' This operation will delete the employee.'));
31
+ console.log();
32
+ }
33
+ return;
34
+ }
35
+ let employee;
36
+ try {
37
+ const employeeResponse = await apiClient.getEmployee(environment, tenant, employeeId);
38
+ if (!employeeResponse.success || !employeeResponse.data) {
39
+ const errMsg = `Employee not found: ${employeeId}`;
40
+ if (jsonOutput) {
41
+ console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
42
+ }
43
+ else {
44
+ console.error(chalk.red(`\nāœ— ${errMsg}\n`));
45
+ }
46
+ process.exit(1);
47
+ }
48
+ employee = employeeResponse.data;
49
+ }
50
+ catch (error) {
51
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
52
+ if (jsonOutput) {
53
+ console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch employee: ${errMsg}` } }));
54
+ }
55
+ else {
56
+ console.error(chalk.red(`\nāœ— Failed to fetch employee: ${errMsg}\n`));
57
+ }
58
+ process.exit(1);
59
+ }
60
+ if (!options.force) {
61
+ if (!jsonOutput) {
62
+ console.log(chalk.gray(` Name: ${employee.employeeName}`));
63
+ console.log(chalk.gray(` Code: ${employee.employeeNo}`));
64
+ }
65
+ const { confirm } = await inquirer.prompt([
66
+ {
67
+ type: 'confirm',
68
+ name: 'confirm',
69
+ message: `Delete employee "${employee.employeeName}"? This action cannot be undone.`,
70
+ default: false,
71
+ },
72
+ ]);
73
+ if (!confirm) {
74
+ if (!jsonOutput) {
75
+ console.log(chalk.gray('\n Operation cancelled.\n'));
76
+ }
77
+ process.exit(0);
78
+ }
79
+ }
80
+ try {
81
+ const response = await apiClient.deleteEmployee(environment, tenant, employeeId);
82
+ if (response.success) {
83
+ if (jsonOutput) {
84
+ console.log(JSON.stringify({ success: true, employeeId, name: employee.employeeName }));
85
+ }
86
+ else {
87
+ console.log(chalk.green(`\nāœ“ Employee "${employee.employeeName}" (ID: ${employeeId}) deleted\n`));
88
+ }
89
+ }
90
+ else {
91
+ const errorMsg = response.error?.message || 'Unknown error';
92
+ const errorCode = response.error?.code || 'DELETE_ERROR';
93
+ if (jsonOutput) {
94
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
95
+ }
96
+ else {
97
+ console.error(chalk.red(`\nāœ— Failed to delete employee: ${errorMsg}`));
98
+ if (response.error?.code) {
99
+ console.error(chalk.gray(` Error code: ${response.error.code}`));
100
+ }
101
+ console.error();
102
+ }
103
+ process.exit(1);
104
+ }
105
+ }
106
+ catch (error) {
107
+ const errMsg = error instanceof Error ? error.message : 'Unknown error';
108
+ if (jsonOutput) {
109
+ console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
110
+ }
111
+ else {
112
+ console.error(chalk.red(`\nāœ— Error: ${errMsg}\n`));
113
+ }
114
+ process.exit(1);
115
+ }
116
+ });
117
+ return deleteCommand;
118
+ }
119
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/liberica/employees/delete.ts"],"names":[],"mappings":"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"}