@newpeak/barista-cli 0.1.11 → 0.1.12
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.
- package/dist/index.js +1 -1
- package/package.json +7 -3
- package/docs/ARCHITECTURE.md +0 -184
- package/docs/COMMANDS.md +0 -352
- package/docs/COMMAND_DESIGN_SPEC.md +0 -840
- package/docs/INTEGRATION_NOTES.md +0 -270
- package/docs/commands/REFERENCE.md +0 -323
- package/docs/commands/arabica/auth/index.md +0 -296
- package/docs/commands/liberica/auth/index.md +0 -133
- package/docs/commands/liberica/calendar/DESIGN.md +0 -333
- package/docs/commands/liberica/client-contacts/create.md +0 -152
- package/docs/commands/liberica/client-contacts/delete.md +0 -123
- package/docs/commands/liberica/client-contacts/get.md +0 -133
- package/docs/commands/liberica/client-contacts/list.md +0 -143
- package/docs/commands/liberica/client-contacts/update.md +0 -158
- package/docs/commands/liberica/context/index.md +0 -60
- package/docs/commands/liberica/currency/create.md +0 -145
- package/docs/commands/liberica/currency/delete.md +0 -121
- package/docs/commands/liberica/currency/disable.md +0 -119
- package/docs/commands/liberica/currency/enable.md +0 -115
- package/docs/commands/liberica/currency/get.md +0 -118
- package/docs/commands/liberica/currency/list.md +0 -149
- package/docs/commands/liberica/currency/update.md +0 -141
- package/docs/commands/liberica/employees/create.md +0 -185
- package/docs/commands/liberica/employees/disable.md +0 -138
- package/docs/commands/liberica/employees/enable.md +0 -137
- package/docs/commands/liberica/employees/get.md +0 -153
- package/docs/commands/liberica/employees/list.md +0 -168
- package/docs/commands/liberica/employees/update.md +0 -180
- package/docs/commands/liberica/locations/create.md +0 -195
- package/docs/commands/liberica/locations/list.md +0 -171
- package/docs/commands/liberica/materials/create.md +0 -293
- package/docs/commands/liberica/materials/delete.md +0 -240
- package/docs/commands/liberica/materials/disable.md +0 -150
- package/docs/commands/liberica/materials/enable.md +0 -146
- package/docs/commands/liberica/materials/get.md +0 -188
- package/docs/commands/liberica/materials/list.md +0 -198
- package/docs/commands/liberica/materials/update.md +0 -250
- package/docs/commands/liberica/orgs/list.md +0 -62
- package/docs/commands/liberica/positions/list.md +0 -61
- package/docs/commands/liberica/roles/list.md +0 -67
- package/docs/commands/liberica/stock/ledger.md +0 -209
- package/docs/commands/liberica/stock/list.md +0 -165
- package/docs/commands/liberica/supplier-contacts/create.md +0 -152
- package/docs/commands/liberica/supplier-contacts/delete.md +0 -123
- package/docs/commands/liberica/supplier-contacts/get.md +0 -133
- package/docs/commands/liberica/supplier-contacts/list.md +0 -143
- package/docs/commands/liberica/supplier-contacts/update.md +0 -158
- package/docs/commands/liberica/teams/issues/close.md +0 -161
- package/docs/commands/liberica/teams/issues/create.md +0 -212
- package/docs/commands/liberica/teams/issues/delete.md +0 -179
- package/docs/commands/liberica/teams/issues/get.md +0 -167
- package/docs/commands/liberica/teams/issues/list.md +0 -182
- package/docs/commands/liberica/teams/issues/tests-design.md +0 -341
- package/docs/commands/liberica/teams/issues/update.md +0 -202
- package/docs/commands/liberica/teams/projects/create.md +0 -174
- package/docs/commands/liberica/teams/projects/delete.md +0 -180
- package/docs/commands/liberica/teams/projects/get.md +0 -150
- package/docs/commands/liberica/teams/projects/list.md +0 -179
- package/docs/commands/liberica/teams/projects/update.md +0 -175
- package/docs/commands/liberica/teams/tasks/create.md +0 -163
- package/docs/commands/liberica/teams/tasks/delete.md +0 -109
- package/docs/commands/liberica/teams/tasks/get.md +0 -121
- package/docs/commands/liberica/teams/tasks/list.md +0 -148
- package/docs/commands/liberica/teams/tasks/update.md +0 -158
- package/docs/commands/liberica/teams/work-logs/create.md +0 -151
- package/docs/commands/liberica/teams/work-logs/delete.md +0 -130
- package/docs/commands/liberica/teams/work-logs/get.md +0 -131
- package/docs/commands/liberica/teams/work-logs/list.md +0 -153
- package/docs/commands/liberica/teams/work-logs/update.md +0 -150
- package/docs/commands/liberica/transfer-in-forms/batch-delete.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/create.md +0 -220
- package/docs/commands/liberica/transfer-in-forms/get.md +0 -221
- package/docs/commands/liberica/transfer-in-forms/list.md +0 -242
- package/docs/commands/liberica/transfer-in-forms/update.md +0 -185
- package/docs/commands/liberica/transfer-out-forms/batch-delete.md +0 -187
- package/docs/commands/liberica/transfer-out-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/create.md +0 -280
- package/docs/commands/liberica/transfer-out-forms/get.md +0 -211
- package/docs/commands/liberica/transfer-out-forms/list.md +0 -233
- package/docs/commands/liberica/transfer-out-forms/update.md +0 -286
- package/docs/commands/liberica/uoms/create.md +0 -136
- package/docs/commands/liberica/uoms/delete.md +0 -119
- package/docs/commands/liberica/uoms/disable.md +0 -117
- package/docs/commands/liberica/uoms/enable.md +0 -115
- package/docs/commands/liberica/uoms/get.md +0 -119
- package/docs/commands/liberica/uoms/list.md +0 -155
- package/docs/commands/liberica/uoms/update.md +0 -148
- package/docs/commands/liberica/users/create.md +0 -170
- package/docs/commands/liberica/users/get.md +0 -151
- package/docs/commands/liberica/users/list.md +0 -175
- package/docs/commands/liberica/warehouses/create.md +0 -222
- package/docs/commands/liberica/warehouses/list.md +0 -184
- package/src/commands/arabica/auth/index.ts +0 -277
- package/src/commands/arabica/auth/login.ts +0 -5
- package/src/commands/arabica/auth/logout.ts +0 -5
- package/src/commands/arabica/auth/register.ts +0 -5
- package/src/commands/arabica/auth/status.ts +0 -5
- package/src/commands/arabica/index.ts +0 -23
- package/src/commands/auth.ts +0 -107
- package/src/commands/context.ts +0 -60
- package/src/commands/liberica/auth/index.ts +0 -176
- package/src/commands/liberica/calendar/index.ts +0 -13
- package/src/commands/liberica/calendar/list.ts +0 -214
- package/src/commands/liberica/calendar/set.ts +0 -130
- package/src/commands/liberica/client-contacts/create.ts +0 -115
- package/src/commands/liberica/client-contacts/delete.ts +0 -140
- package/src/commands/liberica/client-contacts/get.ts +0 -103
- package/src/commands/liberica/client-contacts/index.ts +0 -19
- package/src/commands/liberica/client-contacts/list.ts +0 -118
- package/src/commands/liberica/client-contacts/update.ts +0 -137
- package/src/commands/liberica/clients/create.ts +0 -122
- package/src/commands/liberica/clients/delete.ts +0 -125
- package/src/commands/liberica/clients/get.ts +0 -88
- package/src/commands/liberica/clients/index.ts +0 -19
- package/src/commands/liberica/clients/list.ts +0 -123
- package/src/commands/liberica/clients/update.ts +0 -103
- package/src/commands/liberica/context/index.ts +0 -43
- package/src/commands/liberica/currency/create.ts +0 -183
- package/src/commands/liberica/currency/delete.ts +0 -124
- package/src/commands/liberica/currency/disable.ts +0 -147
- package/src/commands/liberica/currency/enable.ts +0 -128
- package/src/commands/liberica/currency/get.ts +0 -91
- package/src/commands/liberica/currency/index.ts +0 -23
- package/src/commands/liberica/currency/list.ts +0 -140
- package/src/commands/liberica/currency/update.ts +0 -129
- package/src/commands/liberica/dict-types/get.ts +0 -74
- package/src/commands/liberica/dict-types/index.ts +0 -15
- package/src/commands/liberica/dict-types/list.ts +0 -118
- package/src/commands/liberica/dict-types/update.ts +0 -134
- package/src/commands/liberica/dicts/create.ts +0 -175
- package/src/commands/liberica/dicts/delete.ts +0 -107
- package/src/commands/liberica/dicts/get.ts +0 -80
- package/src/commands/liberica/dicts/index.ts +0 -19
- package/src/commands/liberica/dicts/list.ts +0 -114
- package/src/commands/liberica/dicts/update.ts +0 -116
- package/src/commands/liberica/employees/create.ts +0 -275
- package/src/commands/liberica/employees/delete.ts +0 -122
- package/src/commands/liberica/employees/disable.ts +0 -97
- package/src/commands/liberica/employees/enable.ts +0 -97
- package/src/commands/liberica/employees/get.ts +0 -115
- package/src/commands/liberica/employees/index.ts +0 -23
- package/src/commands/liberica/employees/list.ts +0 -131
- package/src/commands/liberica/employees/update.ts +0 -157
- package/src/commands/liberica/index.ts +0 -81
- package/src/commands/liberica/materials/create.ts +0 -199
- package/src/commands/liberica/materials/delete.ts +0 -105
- package/src/commands/liberica/materials/disable.ts +0 -148
- package/src/commands/liberica/materials/enable.ts +0 -129
- package/src/commands/liberica/materials/get.ts +0 -83
- package/src/commands/liberica/materials/index.ts +0 -23
- package/src/commands/liberica/materials/list.ts +0 -142
- package/src/commands/liberica/materials/update.ts +0 -125
- package/src/commands/liberica/mould/get.ts +0 -111
- package/src/commands/liberica/mould/index.ts +0 -17
- package/src/commands/liberica/mould/list.ts +0 -157
- package/src/commands/liberica/mould/set-status.ts +0 -99
- package/src/commands/liberica/mould/stock-in.ts +0 -165
- package/src/commands/liberica/operations/active.ts +0 -153
- package/src/commands/liberica/operations/batch-delete.ts +0 -131
- package/src/commands/liberica/operations/copy.ts +0 -138
- package/src/commands/liberica/operations/create.ts +0 -223
- package/src/commands/liberica/operations/deactive.ts +0 -152
- package/src/commands/liberica/operations/delete.ts +0 -128
- package/src/commands/liberica/operations/design.md +0 -587
- package/src/commands/liberica/operations/get.ts +0 -112
- package/src/commands/liberica/operations/index.ts +0 -27
- package/src/commands/liberica/operations/list.ts +0 -180
- package/src/commands/liberica/operations/update.ts +0 -218
- package/src/commands/liberica/orgs/index.ts +0 -34
- package/src/commands/liberica/positions/index.ts +0 -30
- package/src/commands/liberica/roles/index.ts +0 -59
- package/src/commands/liberica/stock/index.ts +0 -13
- package/src/commands/liberica/stock/ledger.ts +0 -159
- package/src/commands/liberica/stock/list.ts +0 -128
- package/src/commands/liberica/supplier-contacts/create.ts +0 -120
- package/src/commands/liberica/supplier-contacts/delete.ts +0 -88
- package/src/commands/liberica/supplier-contacts/get.ts +0 -94
- package/src/commands/liberica/supplier-contacts/index.ts +0 -19
- package/src/commands/liberica/supplier-contacts/list.ts +0 -130
- package/src/commands/liberica/supplier-contacts/update.ts +0 -127
- package/src/commands/liberica/suppliers/create.ts +0 -149
- package/src/commands/liberica/suppliers/delete.ts +0 -102
- package/src/commands/liberica/suppliers/disable.ts +0 -145
- package/src/commands/liberica/suppliers/enable.ts +0 -126
- package/src/commands/liberica/suppliers/get.ts +0 -86
- package/src/commands/liberica/suppliers/index.ts +0 -23
- package/src/commands/liberica/suppliers/list.ts +0 -134
- package/src/commands/liberica/suppliers/update.ts +0 -128
- package/src/commands/liberica/teams/index.ts +0 -17
- package/src/commands/liberica/teams/issues/close.ts +0 -104
- package/src/commands/liberica/teams/issues/create.ts +0 -254
- package/src/commands/liberica/teams/issues/delete.ts +0 -58
- package/src/commands/liberica/teams/issues/get.ts +0 -78
- package/src/commands/liberica/teams/issues/index.ts +0 -21
- package/src/commands/liberica/teams/issues/list.ts +0 -144
- package/src/commands/liberica/teams/issues/update.ts +0 -141
- package/src/commands/liberica/teams/projects/create.ts +0 -159
- package/src/commands/liberica/teams/projects/delete.ts +0 -58
- package/src/commands/liberica/teams/projects/get.ts +0 -87
- package/src/commands/liberica/teams/projects/index.ts +0 -19
- package/src/commands/liberica/teams/projects/list.ts +0 -147
- package/src/commands/liberica/teams/projects/update.ts +0 -117
- package/src/commands/liberica/teams/tasks/create.ts +0 -102
- package/src/commands/liberica/teams/tasks/delete.ts +0 -92
- package/src/commands/liberica/teams/tasks/get.ts +0 -64
- package/src/commands/liberica/teams/tasks/index.ts +0 -19
- package/src/commands/liberica/teams/tasks/list.ts +0 -102
- package/src/commands/liberica/teams/tasks/update.ts +0 -122
- package/src/commands/liberica/teams/work-logs/create.ts +0 -204
- package/src/commands/liberica/teams/work-logs/delete.ts +0 -58
- package/src/commands/liberica/teams/work-logs/get.ts +0 -87
- package/src/commands/liberica/teams/work-logs/index.ts +0 -19
- package/src/commands/liberica/teams/work-logs/list.ts +0 -141
- package/src/commands/liberica/teams/work-logs/update.ts +0 -120
- package/src/commands/liberica/transfer-in-forms/batch-delete.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/batch-review.ts +0 -151
- package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/create.ts +0 -179
- package/src/commands/liberica/transfer-in-forms/get.ts +0 -107
- package/src/commands/liberica/transfer-in-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-in-forms/list.ts +0 -97
- package/src/commands/liberica/transfer-in-forms/update.ts +0 -213
- package/src/commands/liberica/transfer-out-forms/batch-delete.ts +0 -83
- package/src/commands/liberica/transfer-out-forms/batch-review.ts +0 -148
- package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +0 -56
- package/src/commands/liberica/transfer-out-forms/create.ts +0 -194
- package/src/commands/liberica/transfer-out-forms/get.ts +0 -114
- package/src/commands/liberica/transfer-out-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-out-forms/list.ts +0 -125
- package/src/commands/liberica/transfer-out-forms/update.ts +0 -197
- package/src/commands/liberica/uoms/create.ts +0 -134
- package/src/commands/liberica/uoms/delete.ts +0 -105
- package/src/commands/liberica/uoms/disable.ts +0 -148
- package/src/commands/liberica/uoms/enable.ts +0 -129
- package/src/commands/liberica/uoms/get.ts +0 -83
- package/src/commands/liberica/uoms/index.ts +0 -23
- package/src/commands/liberica/uoms/list.ts +0 -129
- package/src/commands/liberica/uoms/update.ts +0 -124
- package/src/commands/liberica/users/create.ts +0 -133
- package/src/commands/liberica/users/delete.ts +0 -49
- package/src/commands/liberica/users/disable.ts +0 -41
- package/src/commands/liberica/users/enable.ts +0 -30
- package/src/commands/liberica/users/get.ts +0 -46
- package/src/commands/liberica/users/index.ts +0 -27
- package/src/commands/liberica/users/list.ts +0 -68
- package/src/commands/liberica/users/me.ts +0 -42
- package/src/commands/liberica/users/reset-password.ts +0 -42
- package/src/commands/liberica/users/update.ts +0 -48
- package/src/commands/liberica/warehouses/create.ts +0 -204
- package/src/commands/liberica/warehouses/delete.ts +0 -112
- package/src/commands/liberica/warehouses/disable.ts +0 -174
- package/src/commands/liberica/warehouses/enable.ts +0 -174
- package/src/commands/liberica/warehouses/get.ts +0 -101
- package/src/commands/liberica/warehouses/index.ts +0 -25
- package/src/commands/liberica/warehouses/list.ts +0 -136
- package/src/commands/liberica/warehouses/locations/create.ts +0 -209
- package/src/commands/liberica/warehouses/locations/delete.ts +0 -116
- package/src/commands/liberica/warehouses/locations/disable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/enable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/get.ts +0 -84
- package/src/commands/liberica/warehouses/locations/index.ts +0 -23
- package/src/commands/liberica/warehouses/locations/list.ts +0 -140
- package/src/commands/liberica/warehouses/locations/update.ts +0 -135
- package/src/commands/liberica/warehouses/update.ts +0 -142
- package/src/core/api/client.ts +0 -4443
- package/src/core/auth/token-manager.ts +0 -183
- package/src/core/config/manager.ts +0 -164
- package/src/index.ts +0 -35
- package/src/types/calendar.ts +0 -36
- package/src/types/client-contact.ts +0 -78
- package/src/types/client.ts +0 -115
- package/src/types/currency.ts +0 -90
- package/src/types/dict.ts +0 -121
- package/src/types/employee.ts +0 -102
- package/src/types/index.ts +0 -93
- package/src/types/location.ts +0 -66
- package/src/types/material.ts +0 -61
- package/src/types/mould-stock-in.ts +0 -82
- package/src/types/mould.ts +0 -74
- package/src/types/operation.ts +0 -72
- package/src/types/org.ts +0 -25
- package/src/types/position.ts +0 -24
- package/src/types/stock.ts +0 -161
- package/src/types/supplier-contact.ts +0 -78
- package/src/types/supplier.ts +0 -66
- package/src/types/team-issue.ts +0 -94
- package/src/types/team-project.ts +0 -74
- package/src/types/team-task.ts +0 -98
- package/src/types/team-work-log.ts +0 -87
- package/src/types/transfer-in-form.ts +0 -265
- package/src/types/transfer-out-form.ts +0 -290
- package/src/types/uom.ts +0 -60
- package/src/types/user.ts +0 -64
- package/src/types/warehouse.ts +0 -82
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import keytar from 'keytar';
|
|
2
|
-
import * as crypto from 'crypto';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import * as path from 'path';
|
|
5
|
-
import * as os from 'os';
|
|
6
|
-
import { TokenContext } from '../../types/index.js';
|
|
7
|
-
|
|
8
|
-
const SERVICE_NAME = 'barista-cli';
|
|
9
|
-
const ENCRYPTION_ALGORITHM = 'aes-256-gcm';
|
|
10
|
-
const FALLBACK_FILE_NAME = '.barista-tokens';
|
|
11
|
-
|
|
12
|
-
interface StoredToken {
|
|
13
|
-
service: string;
|
|
14
|
-
environment: string;
|
|
15
|
-
tenant?: string;
|
|
16
|
-
token: string;
|
|
17
|
-
updatedAt: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
class TokenManager {
|
|
21
|
-
private fallbackDir: string;
|
|
22
|
-
private fallbackFilePath: string;
|
|
23
|
-
|
|
24
|
-
constructor() {
|
|
25
|
-
this.fallbackDir = path.join(os.homedir(), '.barista');
|
|
26
|
-
this.fallbackFilePath = path.join(this.fallbackDir, FALLBACK_FILE_NAME);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async getToken(context: TokenContext): Promise<string | null> {
|
|
30
|
-
const account = this.buildAccount(context);
|
|
31
|
-
|
|
32
|
-
try {
|
|
33
|
-
const token = await keytar.getPassword(SERVICE_NAME, account);
|
|
34
|
-
if (token) return token;
|
|
35
|
-
} catch (keytarError) {
|
|
36
|
-
console.warn('[TokenManager] Keytar not available, using fallback storage');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return this.getTokenFromFallback(context);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async setToken(context: TokenContext, token: string): Promise<void> {
|
|
43
|
-
const account = this.buildAccount(context);
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
await keytar.setPassword(SERVICE_NAME, account, token);
|
|
47
|
-
await this.removeFromFallback(context);
|
|
48
|
-
return;
|
|
49
|
-
} catch (keytarError) {
|
|
50
|
-
console.warn('[TokenManager] Keytar failed, using fallback storage');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
await this.setTokenToFallback(context, token);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async deleteToken(context: TokenContext): Promise<boolean> {
|
|
57
|
-
const account = this.buildAccount(context);
|
|
58
|
-
|
|
59
|
-
let deleted = false;
|
|
60
|
-
try {
|
|
61
|
-
deleted = await keytar.deletePassword(SERVICE_NAME, account);
|
|
62
|
-
} catch (keytarError) {
|
|
63
|
-
// Ignore keytar errors, try fallback
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const fallbackDeleted = await this.removeFromFallback(context);
|
|
67
|
-
return deleted || fallbackDeleted;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
async findAllTokens(): Promise<Array<{ account: string; password: string }>> {
|
|
71
|
-
try {
|
|
72
|
-
const credentials = await keytar.findCredentials(SERVICE_NAME);
|
|
73
|
-
if (credentials.length > 0) return credentials;
|
|
74
|
-
} catch (keytarError) {
|
|
75
|
-
// Ignore keytar errors
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return this.getAllFromFallback();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
private buildAccount(context: TokenContext): string {
|
|
82
|
-
const parts: string[] = [context.service, context.environment];
|
|
83
|
-
if (context.tenant) {
|
|
84
|
-
parts.push(context.tenant);
|
|
85
|
-
}
|
|
86
|
-
return parts.join(':');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private getMachineId(): Buffer {
|
|
90
|
-
const machineId = os.hostname() + os.platform() + os.arch() + os.homedir();
|
|
91
|
-
return crypto.createHash('sha256').update(machineId).digest();
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
private encrypt(text: string): string {
|
|
95
|
-
const key = this.getMachineId();
|
|
96
|
-
const iv = crypto.randomBytes(16);
|
|
97
|
-
const cipher = crypto.createCipheriv(ENCRYPTION_ALGORITHM, key, iv);
|
|
98
|
-
let encrypted = cipher.update(text, 'utf8', 'hex');
|
|
99
|
-
encrypted += cipher.final('hex');
|
|
100
|
-
const authTag = cipher.getAuthTag();
|
|
101
|
-
return iv.toString('hex') + ':' + authTag.toString('hex') + ':' + encrypted;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
private decrypt(encryptedText: string): string {
|
|
105
|
-
const parts = encryptedText.split(':');
|
|
106
|
-
if (parts.length !== 3) throw new Error('Invalid encrypted data format');
|
|
107
|
-
const iv = Buffer.from(parts[0], 'hex');
|
|
108
|
-
const authTag = Buffer.from(parts[1], 'hex');
|
|
109
|
-
const encrypted = parts[2];
|
|
110
|
-
const key = this.getMachineId();
|
|
111
|
-
const decipher = crypto.createDecipheriv(ENCRYPTION_ALGORITHM, key, iv);
|
|
112
|
-
decipher.setAuthTag(authTag);
|
|
113
|
-
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
114
|
-
decrypted += decipher.final('utf8');
|
|
115
|
-
return decrypted;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
private async getFallbackTokens(): Promise<Record<string, StoredToken>> {
|
|
119
|
-
try {
|
|
120
|
-
if (!fs.existsSync(this.fallbackFilePath)) {
|
|
121
|
-
return {};
|
|
122
|
-
}
|
|
123
|
-
const encryptedData = fs.readFileSync(this.fallbackFilePath, 'utf8');
|
|
124
|
-
const decrypted = this.decrypt(encryptedData);
|
|
125
|
-
return JSON.parse(decrypted);
|
|
126
|
-
} catch {
|
|
127
|
-
return {};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
private async saveFallbackTokens(tokens: Record<string, StoredToken>): Promise<void> {
|
|
132
|
-
if (!fs.existsSync(this.fallbackDir)) {
|
|
133
|
-
fs.mkdirSync(this.fallbackDir, { recursive: true });
|
|
134
|
-
}
|
|
135
|
-
const json = JSON.stringify(tokens);
|
|
136
|
-
const encrypted = this.encrypt(json);
|
|
137
|
-
fs.writeFileSync(this.fallbackFilePath, encrypted, { mode: 0o600 });
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
private async getTokenFromFallback(context: TokenContext): Promise<string | null> {
|
|
141
|
-
const tokens = await this.getFallbackTokens();
|
|
142
|
-
const key = this.buildAccount(context);
|
|
143
|
-
const stored = tokens[key];
|
|
144
|
-
if (stored) {
|
|
145
|
-
return stored.token;
|
|
146
|
-
}
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
private async setTokenToFallback(context: TokenContext, token: string): Promise<void> {
|
|
151
|
-
const tokens = await this.getFallbackTokens();
|
|
152
|
-
const key = this.buildAccount(context);
|
|
153
|
-
tokens[key] = {
|
|
154
|
-
service: context.service,
|
|
155
|
-
environment: context.environment,
|
|
156
|
-
tenant: context.tenant,
|
|
157
|
-
token,
|
|
158
|
-
updatedAt: new Date().toISOString(),
|
|
159
|
-
};
|
|
160
|
-
await this.saveFallbackTokens(tokens);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
private async removeFromFallback(context: TokenContext): Promise<boolean> {
|
|
164
|
-
const tokens = await this.getFallbackTokens();
|
|
165
|
-
const key = this.buildAccount(context);
|
|
166
|
-
if (tokens[key]) {
|
|
167
|
-
delete tokens[key];
|
|
168
|
-
await this.saveFallbackTokens(tokens);
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
private async getAllFromFallback(): Promise<Array<{ account: string; password: string }>> {
|
|
175
|
-
const tokens = await this.getFallbackTokens();
|
|
176
|
-
return Object.entries(tokens).map(([account, stored]) => ({
|
|
177
|
-
account,
|
|
178
|
-
password: stored.token,
|
|
179
|
-
}));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export const tokenManager = new TokenManager();
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import os from 'os';
|
|
4
|
-
import yaml from 'yaml';
|
|
5
|
-
import { Config, Context, Environment, Service } from '../../types/index.js';
|
|
6
|
-
|
|
7
|
-
const DEFAULT_CONFIG: Config = {
|
|
8
|
-
defaults: {
|
|
9
|
-
env: 'dev',
|
|
10
|
-
tenant: 'default',
|
|
11
|
-
service: 'liberica',
|
|
12
|
-
},
|
|
13
|
-
environments: {
|
|
14
|
-
dev: {
|
|
15
|
-
liberica: {
|
|
16
|
-
baseUrl: 'https://{tenant}-dev.newpeaksh.com',
|
|
17
|
-
timeout: 30000,
|
|
18
|
-
},
|
|
19
|
-
arabica: {
|
|
20
|
-
baseUrl: 'https://arabica-dev.newpeaksh.com',
|
|
21
|
-
timeout: 30000,
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
test: {
|
|
25
|
-
liberica: {
|
|
26
|
-
baseUrl: 'https://{tenant}-test.newpeaksh.com',
|
|
27
|
-
timeout: 30000,
|
|
28
|
-
},
|
|
29
|
-
arabica: {
|
|
30
|
-
baseUrl: 'https://arabica-test.newpeaksh.com',
|
|
31
|
-
timeout: 30000,
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
'prod-cn': {
|
|
35
|
-
liberica: {
|
|
36
|
-
baseUrl: 'https://{tenant}.newpeaksh.com',
|
|
37
|
-
timeout: 60000,
|
|
38
|
-
},
|
|
39
|
-
arabica: {
|
|
40
|
-
baseUrl: 'https://www.newpeaksh.com',
|
|
41
|
-
timeout: 60000,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
'prod-jp': {
|
|
45
|
-
liberica: {
|
|
46
|
-
baseUrl: 'https://{tenant}.newpeakjp.com',
|
|
47
|
-
timeout: 60000,
|
|
48
|
-
},
|
|
49
|
-
arabica: {
|
|
50
|
-
baseUrl: 'https://members.newpeakjp.com',
|
|
51
|
-
timeout: 60000,
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
output: {
|
|
56
|
-
format: 'table',
|
|
57
|
-
color: true,
|
|
58
|
-
timestamp: true,
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
class ConfigManager {
|
|
63
|
-
private config: Config | null = null;
|
|
64
|
-
private configPath: string;
|
|
65
|
-
|
|
66
|
-
constructor() {
|
|
67
|
-
const homeDir = os.homedir();
|
|
68
|
-
const baristaDir = path.join(homeDir, '.barista');
|
|
69
|
-
this.configPath = path.join(baristaDir, 'config.yaml');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
async load(): Promise<void> {
|
|
73
|
-
try {
|
|
74
|
-
const configDir = path.dirname(this.configPath);
|
|
75
|
-
if (!fs.existsSync(configDir)) {
|
|
76
|
-
fs.mkdirSync(configDir, { recursive: true });
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (fs.existsSync(this.configPath)) {
|
|
80
|
-
const content = fs.readFileSync(this.configPath, 'utf-8');
|
|
81
|
-
this.config = yaml.parse(content) as Config;
|
|
82
|
-
} else {
|
|
83
|
-
this.config = { ...DEFAULT_CONFIG };
|
|
84
|
-
await this.save();
|
|
85
|
-
}
|
|
86
|
-
} catch (error) {
|
|
87
|
-
this.config = { ...DEFAULT_CONFIG };
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async save(): Promise<void> {
|
|
92
|
-
if (!this.config) {
|
|
93
|
-
throw new Error('Config not loaded');
|
|
94
|
-
}
|
|
95
|
-
const configDir = path.dirname(this.configPath);
|
|
96
|
-
if (!fs.existsSync(configDir)) {
|
|
97
|
-
fs.mkdirSync(configDir, { recursive: true });
|
|
98
|
-
}
|
|
99
|
-
const content = yaml.stringify(this.config);
|
|
100
|
-
fs.writeFileSync(this.configPath, content, 'utf-8');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getConfig(): Config {
|
|
104
|
-
if (!this.config) {
|
|
105
|
-
throw new Error('Config not loaded');
|
|
106
|
-
}
|
|
107
|
-
return this.config;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getCurrentContext(): Context {
|
|
111
|
-
if (!this.config) {
|
|
112
|
-
throw new Error('Config not loaded');
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
environment: this.config.defaults.env,
|
|
116
|
-
service: this.config.defaults.service,
|
|
117
|
-
tenant: this.config.defaults.tenant,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
async setEnvironment(env: Environment): Promise<void> {
|
|
122
|
-
if (!this.config) {
|
|
123
|
-
throw new Error('Config not loaded');
|
|
124
|
-
}
|
|
125
|
-
if (!['dev', 'test', 'prod-cn', 'prod-jp'].includes(env)) {
|
|
126
|
-
throw new Error(`Invalid environment: ${env}`);
|
|
127
|
-
}
|
|
128
|
-
this.config.defaults.env = env;
|
|
129
|
-
await this.save();
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
async setTenant(tenant: string): Promise<void> {
|
|
133
|
-
if (!this.config) {
|
|
134
|
-
throw new Error('Config not loaded');
|
|
135
|
-
}
|
|
136
|
-
this.config.defaults.tenant = tenant;
|
|
137
|
-
await this.save();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async setService(service: Service): Promise<void> {
|
|
141
|
-
if (!this.config) {
|
|
142
|
-
throw new Error('Config not loaded');
|
|
143
|
-
}
|
|
144
|
-
this.config.defaults.service = service;
|
|
145
|
-
await this.save();
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
getEnvironmentUrl(service: Service, environment: Environment, tenant?: string): string {
|
|
149
|
-
if (!this.config) {
|
|
150
|
-
throw new Error('Config not loaded');
|
|
151
|
-
}
|
|
152
|
-
const envConfig = this.config.environments[environment];
|
|
153
|
-
if (!envConfig) {
|
|
154
|
-
throw new Error(`Environment not found: ${environment}`);
|
|
155
|
-
}
|
|
156
|
-
let url = service === 'liberica' ? envConfig.liberica.baseUrl : envConfig.arabica.baseUrl;
|
|
157
|
-
if (service === 'liberica') {
|
|
158
|
-
url = url.replace('{tenant}', tenant || this.config.defaults.tenant);
|
|
159
|
-
}
|
|
160
|
-
return url;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export const configManager = new ConfigManager();
|
package/src/index.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { Command } from 'commander';
|
|
4
|
-
import { configManager } from './core/config/manager.js';
|
|
5
|
-
import { createContextCommand } from './commands/context.js';
|
|
6
|
-
import { createAuthCommand } from './commands/auth.js';
|
|
7
|
-
import { createLibericaCommand } from './commands/liberica/index.js';
|
|
8
|
-
import { createArabicaCommand } from './commands/arabica/index.js';
|
|
9
|
-
|
|
10
|
-
async function main(): Promise<void> {
|
|
11
|
-
try {
|
|
12
|
-
await configManager.load();
|
|
13
|
-
|
|
14
|
-
const program = new Command();
|
|
15
|
-
program
|
|
16
|
-
.name('barista')
|
|
17
|
-
.description('Barista CLI - Bridge between AI agents and Liberica/Arabica')
|
|
18
|
-
.version('0.1.11')
|
|
19
|
-
.option('-e, --env <environment>', 'Target environment (dev|test|prod-cn|prod-jp)')
|
|
20
|
-
.option('-t, --tenant <tenant>', 'Target tenant (for Liberica)')
|
|
21
|
-
.option('--debug', 'Enable debug mode');
|
|
22
|
-
|
|
23
|
-
program.addCommand(createContextCommand());
|
|
24
|
-
program.addCommand(createAuthCommand());
|
|
25
|
-
program.addCommand(createLibericaCommand());
|
|
26
|
-
program.addCommand(createArabicaCommand());
|
|
27
|
-
|
|
28
|
-
await program.parseAsync();
|
|
29
|
-
} catch (error) {
|
|
30
|
-
console.error('Error:', error instanceof Error ? error.message : error);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
main();
|
package/src/types/calendar.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// DateType literal type
|
|
2
|
-
export type DateType = 'WORKDAY' | 'WEEKEND' | 'HOLIDAY';
|
|
3
|
-
|
|
4
|
-
// Calendar item (corresponds to WorkDayCalendar entity)
|
|
5
|
-
export interface CalendarItem {
|
|
6
|
-
calendarDate: string; // format: yyyy-MM-dd
|
|
7
|
-
dateType: DateType;
|
|
8
|
-
remark?: string;
|
|
9
|
-
isWorkDay?: boolean;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// Query params for calendar list
|
|
13
|
-
export interface CalendarQueryParams {
|
|
14
|
-
year: number;
|
|
15
|
-
month: number;
|
|
16
|
-
months?: number; // default 12, number of months to query
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// Request for setting calendar date
|
|
20
|
-
export interface CalendarSetRequest {
|
|
21
|
-
calendarDate: string; // format: yyyy-MM-dd
|
|
22
|
-
dateType: DateType;
|
|
23
|
-
remark?: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// API response (backend returns Map<string, CalendarItem[]>)
|
|
27
|
-
export interface CalendarApiResponse {
|
|
28
|
-
success: boolean;
|
|
29
|
-
data?: {
|
|
30
|
-
[yearMonth: string]: CalendarItem[];
|
|
31
|
-
};
|
|
32
|
-
error?: {
|
|
33
|
-
code: string;
|
|
34
|
-
message: string;
|
|
35
|
-
};
|
|
36
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Client Contact entity (from MasterClientContact)
|
|
2
|
-
// All ID fields use string due to BigInteger backend
|
|
3
|
-
|
|
4
|
-
export interface ClientContact {
|
|
5
|
-
clientContactId: string;
|
|
6
|
-
clientId: string;
|
|
7
|
-
clientContactName: string;
|
|
8
|
-
clientContactPhone?: string;
|
|
9
|
-
clientContactTelephone?: string;
|
|
10
|
-
clientContactEmail?: string;
|
|
11
|
-
clientContactSex?: string;
|
|
12
|
-
clientContactBirthday?: string;
|
|
13
|
-
clientContactQq?: string;
|
|
14
|
-
clientContactWechat?: string;
|
|
15
|
-
clientContactAddress?: string;
|
|
16
|
-
defaultFlag?: string; // Y/N
|
|
17
|
-
remark?: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Request for creating client contact (add endpoint)
|
|
21
|
-
export interface CreateClientContactRequest {
|
|
22
|
-
clientId: string;
|
|
23
|
-
clientContactName: string;
|
|
24
|
-
clientContactPhone?: string;
|
|
25
|
-
clientContactTelephone?: string;
|
|
26
|
-
clientContactEmail?: string;
|
|
27
|
-
clientContactSex?: string;
|
|
28
|
-
clientContactBirthday?: string;
|
|
29
|
-
clientContactQq?: string;
|
|
30
|
-
clientContactWechat?: string;
|
|
31
|
-
clientContactAddress?: string;
|
|
32
|
-
defaultFlag?: string;
|
|
33
|
-
remark?: string;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Request for updating client contact (edit endpoint)
|
|
37
|
-
export interface UpdateClientContactRequest {
|
|
38
|
-
clientContactId: string;
|
|
39
|
-
clientContactName?: string;
|
|
40
|
-
clientContactPhone?: string;
|
|
41
|
-
clientContactTelephone?: string;
|
|
42
|
-
clientContactEmail?: string;
|
|
43
|
-
clientContactSex?: string;
|
|
44
|
-
clientContactBirthday?: string;
|
|
45
|
-
clientContactQq?: string;
|
|
46
|
-
clientContactWechat?: string;
|
|
47
|
-
clientContactAddress?: string;
|
|
48
|
-
defaultFlag?: string;
|
|
49
|
-
remark?: string;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Query params for list/pagination
|
|
53
|
-
export interface ClientContactQueryParams {
|
|
54
|
-
clientId: string;
|
|
55
|
-
pageNo?: number;
|
|
56
|
-
pageSize?: number;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Paginated response wrapper (PageResult from Roses framework)
|
|
60
|
-
export interface PageResult<T> {
|
|
61
|
-
totalRows: number;
|
|
62
|
-
pageSize: number;
|
|
63
|
-
pageNo: number;
|
|
64
|
-
rows: T[];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// List response type
|
|
68
|
-
export interface ClientContactListResponse extends PageResult<ClientContact> {}
|
|
69
|
-
|
|
70
|
-
// API response wrapper
|
|
71
|
-
export interface ClientContactApiResponse {
|
|
72
|
-
success: boolean;
|
|
73
|
-
data?: ClientContact | ClientContactListResponse;
|
|
74
|
-
error?: {
|
|
75
|
-
code: string;
|
|
76
|
-
message: string;
|
|
77
|
-
};
|
|
78
|
-
}
|
package/src/types/client.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
// Status flag literal type
|
|
2
|
-
export type StatusFlag = 1 | 2;
|
|
3
|
-
|
|
4
|
-
// Full Client entity (from MasterClientRequest - all fields)
|
|
5
|
-
export interface MasterClientResponse {
|
|
6
|
-
clientId: string;
|
|
7
|
-
clientCode: string;
|
|
8
|
-
clientName: string;
|
|
9
|
-
clientClasses?: string[];
|
|
10
|
-
follower?: string;
|
|
11
|
-
officeAddress?: string;
|
|
12
|
-
officeTelephone?: string;
|
|
13
|
-
officeFax?: string;
|
|
14
|
-
clientCredit?: string;
|
|
15
|
-
defaultCurrency?: string;
|
|
16
|
-
defaultManageFee?: number;
|
|
17
|
-
receiveAddress?: string;
|
|
18
|
-
receiveTelephone?: string;
|
|
19
|
-
receiveFax?: string;
|
|
20
|
-
sendPeriod?: number;
|
|
21
|
-
defaultTransactionMethod?: string;
|
|
22
|
-
region?: string;
|
|
23
|
-
defaultShippingMethod?: string;
|
|
24
|
-
defaultTradeType?: string;
|
|
25
|
-
lowLotRate?: number;
|
|
26
|
-
statusFlag: StatusFlag;
|
|
27
|
-
remark?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Compact Client entity for list items
|
|
31
|
-
export interface MasterClientCompactResponse {
|
|
32
|
-
clientId: string;
|
|
33
|
-
clientCode: string;
|
|
34
|
-
clientName: string;
|
|
35
|
-
follower?: string;
|
|
36
|
-
statusFlag: StatusFlag;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Request for creating client (add endpoint)
|
|
40
|
-
export interface CreateClientRequest {
|
|
41
|
-
clientCode: string;
|
|
42
|
-
clientName?: string;
|
|
43
|
-
follower?: string;
|
|
44
|
-
officeAddress?: string;
|
|
45
|
-
officeTelephone?: string;
|
|
46
|
-
officeFax?: string;
|
|
47
|
-
clientCredit?: string;
|
|
48
|
-
defaultCurrency?: string;
|
|
49
|
-
defaultManageFee?: number;
|
|
50
|
-
receiveAddress?: string;
|
|
51
|
-
receiveTelephone?: string;
|
|
52
|
-
receiveFax?: string;
|
|
53
|
-
sendPeriod?: number;
|
|
54
|
-
defaultTransactionMethod?: string;
|
|
55
|
-
region?: string;
|
|
56
|
-
defaultShippingMethod?: string;
|
|
57
|
-
defaultTradeType?: string;
|
|
58
|
-
lowLotRate?: number;
|
|
59
|
-
statusFlag?: StatusFlag;
|
|
60
|
-
remark?: string;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Request for updating client (edit endpoint)
|
|
64
|
-
export interface UpdateClientRequest {
|
|
65
|
-
clientId: string;
|
|
66
|
-
clientName?: string;
|
|
67
|
-
follower?: string;
|
|
68
|
-
officeAddress?: string;
|
|
69
|
-
officeTelephone?: string;
|
|
70
|
-
officeFax?: string;
|
|
71
|
-
clientCredit?: string;
|
|
72
|
-
defaultCurrency?: string;
|
|
73
|
-
defaultManageFee?: number;
|
|
74
|
-
receiveAddress?: string;
|
|
75
|
-
receiveTelephone?: string;
|
|
76
|
-
receiveFax?: string;
|
|
77
|
-
sendPeriod?: number;
|
|
78
|
-
defaultTransactionMethod?: string;
|
|
79
|
-
region?: string;
|
|
80
|
-
defaultShippingMethod?: string;
|
|
81
|
-
defaultTradeType?: string;
|
|
82
|
-
lowLotRate?: number;
|
|
83
|
-
statusFlag?: StatusFlag;
|
|
84
|
-
remark?: string;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Query params for list/pagination
|
|
88
|
-
export interface ClientQueryParams {
|
|
89
|
-
pageNo?: number;
|
|
90
|
-
pageSize?: number;
|
|
91
|
-
status?: StatusFlag;
|
|
92
|
-
clientCode?: string;
|
|
93
|
-
clientName?: string;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Paginated response wrapper (PageResult from Roses framework)
|
|
97
|
-
export interface PageResult<T> {
|
|
98
|
-
totalRows: number;
|
|
99
|
-
pageSize: number;
|
|
100
|
-
pageNo: number;
|
|
101
|
-
rows: T[];
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// List response type
|
|
105
|
-
export interface ClientListResponse extends PageResult<MasterClientCompactResponse> {}
|
|
106
|
-
|
|
107
|
-
// API response wrapper
|
|
108
|
-
export interface ClientApiResponse {
|
|
109
|
-
success: boolean;
|
|
110
|
-
data?: MasterClientResponse | ClientListResponse;
|
|
111
|
-
error?: {
|
|
112
|
-
code: string;
|
|
113
|
-
message: string;
|
|
114
|
-
};
|
|
115
|
-
}
|
package/src/types/currency.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// Status flag literal type
|
|
2
|
-
export type CurrencyStatusFlag = 1 | 2;
|
|
3
|
-
|
|
4
|
-
// Full Currency entity
|
|
5
|
-
export interface Currency {
|
|
6
|
-
currencyId: string;
|
|
7
|
-
currencyCode: string;
|
|
8
|
-
currencyName: string;
|
|
9
|
-
currencySign: string;
|
|
10
|
-
currencyRateType?: string;
|
|
11
|
-
currencyExchangeMethod?: string;
|
|
12
|
-
unitPriceFractionPlaces?: number;
|
|
13
|
-
amountFractionPlaces?: number;
|
|
14
|
-
statusFlag: CurrencyStatusFlag;
|
|
15
|
-
currencyRate?: string;
|
|
16
|
-
remark?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// Request for creating Currency (add endpoint)
|
|
20
|
-
export interface CreateCurrencyRequest {
|
|
21
|
-
currencyCode: string;
|
|
22
|
-
currencyName?: string;
|
|
23
|
-
currencySign?: string;
|
|
24
|
-
currencyRate?: string;
|
|
25
|
-
unitPriceFractionPlaces?: number;
|
|
26
|
-
amountFractionPlaces?: number;
|
|
27
|
-
remark?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Request for updating Currency (edit endpoint)
|
|
31
|
-
export interface UpdateCurrencyRequest {
|
|
32
|
-
currencyId: string;
|
|
33
|
-
currencyName?: string;
|
|
34
|
-
currencySign?: string;
|
|
35
|
-
currencyRateType?: string;
|
|
36
|
-
currencyExchangeMethod?: string;
|
|
37
|
-
unitPriceFractionPlaces?: number;
|
|
38
|
-
amountFractionPlaces?: number;
|
|
39
|
-
statusFlag?: CurrencyStatusFlag;
|
|
40
|
-
currencyRate?: string;
|
|
41
|
-
remark?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Query params for list/pagination
|
|
45
|
-
export interface CurrencyQueryParams {
|
|
46
|
-
pageNo?: number;
|
|
47
|
-
pageSize?: number;
|
|
48
|
-
status?: CurrencyStatusFlag;
|
|
49
|
-
currencyCode?: string;
|
|
50
|
-
currencyName?: string;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Paginated response wrapper (PageResult from Roses framework)
|
|
54
|
-
export interface PageResult<T> {
|
|
55
|
-
totalRows: number;
|
|
56
|
-
pageSize: number;
|
|
57
|
-
pageNo: number;
|
|
58
|
-
rows: T[];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// List response type
|
|
62
|
-
export interface CurrencyListResponse extends PageResult<Currency> {}
|
|
63
|
-
|
|
64
|
-
// API response wrapper
|
|
65
|
-
export interface CurrencyApiResponse {
|
|
66
|
-
success: boolean;
|
|
67
|
-
data?: Currency | CurrencyListResponse;
|
|
68
|
-
error?: {
|
|
69
|
-
code: string;
|
|
70
|
-
message: string;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Default currency response (from getCurrencyDefault endpoint)
|
|
75
|
-
export interface CurrencyDefault {
|
|
76
|
-
currencyCode: string;
|
|
77
|
-
currencyName: string;
|
|
78
|
-
currencySign: string;
|
|
79
|
-
unitPriceFractionPlaces?: number;
|
|
80
|
-
amountFractionPlaces?: number;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export interface CurrencyDefaultResponse {
|
|
84
|
-
success: boolean;
|
|
85
|
-
data?: CurrencyDefault;
|
|
86
|
-
error?: {
|
|
87
|
-
code: string;
|
|
88
|
-
message: string;
|
|
89
|
-
};
|
|
90
|
-
}
|