@newpeak/barista-cli 0.1.1 → 0.1.2

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 (182) 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/.eslintrc.json +0 -23
  167. package/.prettierrc +0 -9
  168. package/.sisyphus/notepads/liberica-employees/learnings.md +0 -73
  169. package/AGENTS.md +0 -270
  170. package/CONTRIBUTING.md +0 -291
  171. package/tests/unit/commands/arabica/auth.test.ts +0 -230
  172. package/tests/unit/commands/liberica/auth.test.ts +0 -175
  173. package/tests/unit/commands/liberica/context.test.ts +0 -98
  174. package/tests/unit/commands/liberica/employees/create.test.ts +0 -463
  175. package/tests/unit/commands/liberica/employees/disable.test.ts +0 -82
  176. package/tests/unit/commands/liberica/employees/enable.test.ts +0 -82
  177. package/tests/unit/commands/liberica/employees/get.test.ts +0 -111
  178. package/tests/unit/commands/liberica/employees/list.test.ts +0 -294
  179. package/tests/unit/commands/liberica/employees/update.test.ts +0 -210
  180. package/tests/unit/config.test.ts +0 -141
  181. package/tests/unit/types.test.ts +0 -195
  182. package/tsconfig.json +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE;YACX,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE;QACR,GAAG,EAAE,WAAW,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,YAAY,EAAE,MAAM,CAClB,WAAW,EACX;QACE,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CACF,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './employee.js';
2
+ export * from './org.js';
3
+ export * from './position.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAwEA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface Organization {
2
+ organizationId: number;
3
+ orgCode?: string;
4
+ orgName?: string;
5
+ parentId?: number;
6
+ orgLevel?: number;
7
+ sortNo?: number;
8
+ statusFlag?: number;
9
+ }
10
+ export interface OrgListItem {
11
+ id: string;
12
+ name: string;
13
+ }
14
+ export interface OrgListResponse {
15
+ success: boolean;
16
+ data?: OrgListItem[];
17
+ error?: {
18
+ code: string;
19
+ message: string;
20
+ };
21
+ }
22
+ //# sourceMappingURL=org.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=org.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export interface Position {
2
+ positionId: string;
3
+ positionCode?: string;
4
+ positionName?: string;
5
+ jobType?: string;
6
+ jobLevelNo?: string;
7
+ statusFlag?: number;
8
+ }
9
+ export interface PositionListItem {
10
+ id: string;
11
+ name: string;
12
+ }
13
+ export interface PositionListResponse {
14
+ success: boolean;
15
+ data?: PositionListItem[];
16
+ error?: {
17
+ code: string;
18
+ message: string;
19
+ };
20
+ }
21
+ //# sourceMappingURL=position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/types/position.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/types/position.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ export type UserStatusFlag = 1 | 2;
2
+ export interface User {
3
+ userId: string;
4
+ realName: string;
5
+ account: string;
6
+ email?: string;
7
+ employeeId?: string;
8
+ employeeNumber?: string;
9
+ employeeName?: string;
10
+ roleNameList?: string[];
11
+ statusFlag: UserStatusFlag;
12
+ createTime?: string;
13
+ readOnly?: boolean;
14
+ }
15
+ export interface CreateUserRequest {
16
+ realName: string;
17
+ account: string;
18
+ email?: string;
19
+ roleIdList: string[];
20
+ employeeId?: string;
21
+ employeeNumber?: string;
22
+ employeeCode?: string;
23
+ orgId?: string;
24
+ positionId?: string;
25
+ mainFlag?: boolean;
26
+ }
27
+ export interface UpdateUserRequest {
28
+ userId: string;
29
+ realName?: string;
30
+ email?: string;
31
+ roleIdList?: string[];
32
+ employeeId?: string;
33
+ statusFlag?: UserStatusFlag;
34
+ }
35
+ export interface UserQueryParams {
36
+ pageNo?: number;
37
+ pageSize?: number;
38
+ status?: UserStatusFlag;
39
+ account?: string;
40
+ realName?: string;
41
+ employeeId?: string;
42
+ }
43
+ export interface PageResult<T> {
44
+ totalRows: number;
45
+ pageSize: number;
46
+ pageNo: number;
47
+ rows: T[];
48
+ }
49
+ export interface UserListResponse extends PageResult<User> {
50
+ }
51
+ export interface UserApiResponse {
52
+ success: boolean;
53
+ data?: User | UserListResponse;
54
+ error?: {
55
+ code: string;
56
+ message: string;
57
+ };
58
+ }
59
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnC,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU,CAAC,IAAI,CAAC;CAAG;AAE7D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,gBAAgB,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newpeak/barista-cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "AI Tools CLI for Liberica and Arabica services",
5
5
  "type": "module",
6
6
  "bin": {
package/.eslintrc.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "env": {
3
- "node": true,
4
- "es2022": true
5
- },
6
- "extends": [
7
- "eslint:recommended",
8
- "plugin:@typescript-eslint/recommended"
9
- ],
10
- "parser": "@typescript-eslint/parser",
11
- "parserOptions": {
12
- "ecmaVersion": 2022,
13
- "sourceType": "module"
14
- },
15
- "plugins": ["@typescript-eslint"],
16
- "rules": {
17
- "no-console": "off",
18
- "@typescript-eslint/no-explicit-any": "warn",
19
- "@typescript-eslint/explicit-function-return-type": "off",
20
- "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
21
- },
22
- "ignorePatterns": ["dist/", "node_modules/", "*.js"]
23
- }
package/.prettierrc DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "semi": true,
3
- "singleQuote": true,
4
- "tabWidth": 2,
5
- "trailingComma": "es5",
6
- "printWidth": 100,
7
- "arrowParens": "always",
8
- "endOfLine": "lf"
9
- }
@@ -1,73 +0,0 @@
1
- # Liberica Employees - Learnings
2
-
3
- ## API Patterns Observed
4
-
5
- - API expects token WITHOUT "Bearer " prefix
6
- - API prefix: /api
7
- - Pagination is 0-based on backend
8
- - Response fields: rows, pageNo, pageSize, totalRows
9
- - Backend error format: {success, code, message} directly (not nested under error object)
10
- - organizationId is `string` (was BigInteger), positionId is `string`
11
-
12
- ## CRITICAL: BigInteger IDs
13
-
14
- **Backend returns BigInteger for all ID fields, which exceeds JavaScript number range.**
15
-
16
- ```typescript
17
- // WRONG - Precision loss for IDs > 9007199254740991
18
- employeeId: number
19
-
20
- // CORRECT
21
- employeeId: string
22
- ```
23
-
24
- **Affected interfaces:**
25
- - Employee.employeeId
26
- - Employee.organizationId
27
- - UpdateEmployeeRequest.employeeId
28
- - OrgListItem.id (for cached org/position lookups)
29
-
30
- ## CRITICAL: Do NOT Use X-TENANT-ID Header
31
-
32
- The tenant is embedded in the JWT token. Passing `X-TENANT-ID` with string tenant name causes:
33
- ```
34
- NumberFormatException: For input string: "shanghai"
35
- ```
36
-
37
- Backend expects numeric tenant ID or no header at all.
38
-
39
- ## HTTP Methods Matter
40
-
41
- | Endpoint | Method | Common Error |
42
- |----------|--------|--------------|
43
- | `/master/org/tree` | POST (not GET!) | A1504: 当前接口不支持GET方式请求 |
44
- | `/master/position/list` | GET | - |
45
- | `/employee/delete` | POST | - |
46
-
47
- ## Error Response Normalization
48
-
49
- Backend returns errors in two formats - must normalize in handleApiError:
50
-
51
- ```typescript
52
- // Format 1: Error at top level
53
- { success: false, code: "A150001", message: "查询结果不存在" }
54
-
55
- // Format 2: Nested under error
56
- { success: false, error: { code: "01001150001", message: "职员不存在" } }
57
- ```
58
-
59
- ## Implementation Decisions
60
-
61
- - In-memory cache (Map) for org/position lists with 5-minute TTL
62
- - Cache key: `${environment}:${tenant}`
63
- - Generic lookup types (OrgListItem, PositionListItem) with `id` + `name` for reuse across modules
64
- - Create command resolves names to IDs before building request; exits with descriptive error if not found
65
- - Position ID stays as string (backend contract)
66
- - All IDs use string type to handle BigInteger without precision loss
67
-
68
- ## Debugging Tips
69
-
70
- 1. Add `console.error('[DEBUG]', ...)` to see raw API responses
71
- 2. Use `--json` flag to get full response data with IDs
72
- 3. Token stored in `~/.barista/.barista-tokens` (binary format)
73
- 4. Config stored in `~/.barista/config.yaml`
package/AGENTS.md DELETED
@@ -1,270 +0,0 @@
1
- # AGENTS.md - Barista CLI
2
-
3
- **Project**: Node.js CLI (TypeScript) for Liberica & Arabica services
4
- **Updated**: 2025-04-13
5
-
6
- ## Quick Commands
7
-
8
- ```bash
9
- cd coffee-barista-cli
10
-
11
- npm run build # Build TypeScript
12
- npm run dev # Watch mode
13
- npm run test:unit # Run tests (single run)
14
- npm test # Watch mode
15
- npm run lint # ESLint check
16
- npm run lint -- --fix # Auto-fix
17
-
18
- # Run CLI directly
19
- node ./bin/barista.js --help
20
- ```
21
-
22
- ## Project Structure
23
-
24
- ```
25
- src/
26
- ├── index.ts # Main entry - Commander setup
27
- ├── commands/
28
- │ ├── context.ts # Context management
29
- │ ├── auth.ts # Auth commands
30
- │ ├── liberica/
31
- │ │ ├── index.ts # Liberica service entry
32
- │ │ ├── auth/index.ts # Liberica auth
33
- │ │ ├── context/index.ts # Liberica context
34
- │ │ └── employees/ # Employee CRUD commands
35
- │ └── arabica/
36
- │ └── auth/ # Arabica auth commands
37
- ├── core/
38
- │ ├── auth/token-manager.ts # Keychain token storage
39
- │ ├── config/manager.ts # YAML config (~/.barista/config.yaml)
40
- │ └── api/client.ts # API client (axios wrapper)
41
- └── types/
42
- ├── index.ts
43
- ├── employee.ts
44
- ├── org.ts
45
- └── position.ts
46
- ```
47
-
48
- ## CRITICAL: API Integration Rules
49
-
50
- **These rules are hard-won. Breaking them causes silent failures.**
51
-
52
- ### 1. BigInteger IDs → Use String Type
53
-
54
- Backend returns BigInteger for all ID fields, exceeding JS `number` range (max: 9007199254740991).
55
-
56
- ```typescript
57
- // WRONG - precision loss
58
- employeeId: number
59
-
60
- // CORRECT
61
- employeeId: string
62
- ```
63
-
64
- **All ID fields from backend MUST be `string`.**
65
-
66
- ### 2. Do NOT Use X-TENANT-ID Header
67
-
68
- Tenant is embedded in JWT token. Passing `X-TENANT-ID` causes:
69
- ```
70
- NumberFormatException: For input string: "shanghai"
71
- ```
72
-
73
- ```typescript
74
- // WRONG
75
- { headers: { 'X-TENANT-ID': tenant } }
76
-
77
- // CORRECT - omit header entirely
78
- ```
79
-
80
- ### 3. Authorization: No "Bearer " Prefix
81
-
82
- ```typescript
83
- // WRONG
84
- 'Authorization': `Bearer ${token}`
85
-
86
- // CORRECT
87
- 'Authorization': token
88
- ```
89
-
90
- ### 4. HTTP Methods Vary by Endpoint
91
-
92
- Always check the backend controller for correct method:
93
-
94
- | Endpoint | Method | Notes |
95
- |----------|--------|-------|
96
- | `/employee/page` | GET | Paginated list |
97
- | `/employee/detail` | GET | Single item |
98
- | `/employee/add\|edit\|delete` | POST | Write operations |
99
- | `/master/org/tree` | POST | NOT GET |
100
- | `/master/position/list` | GET | - |
101
-
102
- ### 5. Error Response Has Two Formats
103
-
104
- Backend returns errors in different structures:
105
-
106
- ```typescript
107
- // Format 1: Top-level error (common)
108
- { success: false, code: "A150001", message: "查询结果不存在" }
109
-
110
- // Format 2: Nested under 'error'
111
- { success: false, error: { code: "01001150001", message: "职员不存在" } }
112
- ```
113
-
114
- Must normalize in `handleApiError()`.
115
-
116
- ### 6. Pagination: 0-Based, Use pageNo/pageSize
117
-
118
- ```typescript
119
- // CLI page 1 → API page 0
120
- const pageNo = parseInt(options.page) - 1;
121
- // Query: /employee/page?pageNo=0&pageSize=20
122
- ```
123
-
124
- ### 7. Response Field Names Differ
125
-
126
- | Backend | Common Mistake |
127
- |---------|---------------|
128
- | `rows` | `records` |
129
- | `pageNo` | `current` |
130
- | `pageSize` | `size` |
131
- | `totalRows` | `total` |
132
-
133
- ## Common Issues & Fixes
134
-
135
- | Error | Cause | Fix |
136
- |-------|-------|-----|
137
- | `A1504: 不支持GET方式` | Wrong HTTP method | Use POST for `/org/tree` |
138
- | `NumberFormatException` | Using `X-TENANT-ID` header | Remove header |
139
- | Precision loss on IDs | Using `number` for BigInteger | Use `string` |
140
- | "not found" for valid ID | ID truncated due to precision loss | Use string type |
141
- | Empty data despite records | Field name mismatch | Check `rows` not `records` |
142
-
143
- ## CLI Conventions
144
-
145
- ### Command Structure
146
- - Factory functions: `createXxxCommand(): Command`
147
- - Subcommands via `.addCommand()`
148
- - Commander.js 12 (not oclif/yargs)
149
-
150
- ### Output Formatting
151
- - TTY auto-detection: tables for humans, JSON for scripts
152
- - `--json` flag forces JSON output
153
- - `chalk` for colors, `cli-table3` for tables
154
-
155
- ### Imports
156
- - Use `.js` extension even in TypeScript: `'../../core/config/manager.js'`
157
- - Async parse: `program.parseAsync()` not `parse()`
158
-
159
- ## Token & Config
160
-
161
- - Tokens: System keychain only (keytar), NOT files
162
- - Key: `{service}:{environment}:{tenant}` (e.g., `liberica:dev:shanghai`)
163
- - Config: `~/.barista/config.yaml`
164
- - First run creates config with defaults
165
-
166
- ## Adding Commands (MANDATORY: Design First)
167
-
168
- 1. Read `docs/COMMAND_DESIGN_SPEC.md`
169
- 2. Find backend Controller endpoints (check facade modules)
170
- 3. Create design doc at `docs/commands/{service}/{resource}/{action}.md`
171
- 4. Implement following existing patterns
172
- 5. Write unit tests
173
- 6. Verify: `npm run build && npm run test:unit`
174
-
175
- ## Functional Verification Workflow
176
-
177
- **Always verify new commands against the real API before committing.**
178
-
179
- ### Standard Test Environment
180
-
181
- ```bash
182
- # Environment: dev
183
- # Tenant: shanghai
184
- # User: admin@shanghai.newpeaksh.com
185
- # Password: 123456
186
- ```
187
-
188
- ### Workflow
189
-
190
- ```bash
191
- cd coffee-barista-cli
192
-
193
- # 1. Build
194
- npm run build
195
-
196
- # 2. Login to Liberica
197
- node ./bin/barista.js liberica auth login dev shanghai admin@shanghai.newpeaksh.com 123456
198
-
199
- # 3. Verify login
200
- node ./bin/barista.js context show
201
-
202
- # 4. Test command (use --json to see full IDs)
203
- node ./bin/barista.js liberica employees list --json
204
-
205
- # 5. Test specific operations
206
- node ./bin/barista.js liberica employees get <id>
207
- node ./bin/barista.js liberica employees create -n "测试" --no "9999"
208
- node ./bin/barista.js liberica employees delete <id> --force
209
-
210
- # 6. For create with org/position:
211
- node ./bin/barista.js liberica employees create \
212
- -n "测试员工" \
213
- -p "13300000000" \
214
- -e "test@example.com" \
215
- -s M \
216
- --org "销售部" \
217
- --position "经理" \
218
- --no "TEST001"
219
- ```
220
-
221
- ### Why This Matters
222
-
223
- - Unit tests mock the API but don't catch real integration issues
224
- - BigInteger ID precision only shows with actual API responses
225
- - Backend may return different error formats than mocks
226
- - HTTP method issues only appear with real calls
227
-
228
- ### Troubleshooting
229
-
230
- ```bash
231
- # Check current context
232
- node ./bin/barista.js context show
233
-
234
- # Re-login if token expired
235
- node ./bin/barista.js liberica auth login dev shanghai admin@shanghai.newpeaksh.com 123456
236
-
237
- # Debug: use --json to see full response
238
- node ./bin/barista.js liberica employees list --json
239
-
240
- # Debug: check API calls
241
- # Add to client.ts temporarily:
242
- console.error('[DEBUG]', JSON.stringify(response.data));
243
- ```
244
-
245
- ## Testing
246
-
247
- - Vitest with TypeScript
248
- - Mock `keytar` and `axios`
249
- - Tests co-located: `tests/unit/commands/...`
250
-
251
- ## Key Files Reference
252
-
253
- | Purpose | File |
254
- |---------|------|
255
- | API client | `src/core/api/client.ts` |
256
- | Types | `src/types/employee.ts`, `org.ts`, `position.ts` |
257
- | Commands | `src/commands/liberica/employees/*.ts` |
258
- | Integration lessons | `docs/INTEGRATION_NOTES.md` |
259
- | Command design | `docs/COMMAND_DESIGN_SPEC.md` |
260
-
261
- ## Environment URLs
262
-
263
- ```
264
- Liberica: https://{tenant}-{env}.newpeaksh.com
265
- dev: https://{tenant}-dev.newpeaksh.com
266
- prod-jp: https://{tenant}.newpeakjp.com
267
-
268
- Arabica: https://arabica-{env}.newpeaksh.com
269
- prod: https://www.newpeaksh.com
270
- ```