@newpeak/barista-cli 0.1.491 → 0.1.496
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/commands/liberica/files/index.d.ts +3 -0
- package/dist/commands/liberica/files/index.d.ts.map +1 -0
- package/dist/commands/liberica/files/index.js +9 -0
- package/dist/commands/liberica/files/index.js.map +1 -0
- package/dist/commands/liberica/files/upload.d.ts +3 -0
- package/dist/commands/liberica/files/upload.d.ts.map +1 -0
- package/dist/commands/liberica/files/upload.js +105 -0
- package/dist/commands/liberica/files/upload.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/capitalise.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/capitalise.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/capitalise.js +44 -0
- package/dist/commands/liberica/finance/fixed-asset/capitalise.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/create.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/category/create.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/create.js +70 -0
- package/dist/commands/liberica/finance/fixed-asset/category/create.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/index.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/category/index.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/index.js +11 -0
- package/dist/commands/liberica/finance/fixed-asset/category/index.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/list.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/category/list.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/category/list.js +59 -0
- package/dist/commands/liberica/finance/fixed-asset/category/list.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/create.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/create.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/create.js +89 -0
- package/dist/commands/liberica/finance/fixed-asset/create.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciate.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciate.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciate.js +51 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciate.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciation-schedule.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciation-schedule.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciation-schedule.js +61 -0
- package/dist/commands/liberica/finance/fixed-asset/depreciation-schedule.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/dispose.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/dispose.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/dispose.js +61 -0
- package/dist/commands/liberica/finance/fixed-asset/dispose.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/get.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/get.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/get.js +73 -0
- package/dist/commands/liberica/finance/fixed-asset/get.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/impairment.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/impairment.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/impairment.js +93 -0
- package/dist/commands/liberica/finance/fixed-asset/impairment.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/index.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/index.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/index.js +27 -0
- package/dist/commands/liberica/finance/fixed-asset/index.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/list.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/list.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/list.js +84 -0
- package/dist/commands/liberica/finance/fixed-asset/list.js.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/update.d.ts +3 -0
- package/dist/commands/liberica/finance/fixed-asset/update.d.ts.map +1 -0
- package/dist/commands/liberica/finance/fixed-asset/update.js +54 -0
- package/dist/commands/liberica/finance/fixed-asset/update.js.map +1 -0
- package/dist/commands/liberica/finance/index.d.ts.map +1 -1
- package/dist/commands/liberica/finance/index.js +3 -1
- package/dist/commands/liberica/finance/index.js.map +1 -1
- package/dist/commands/liberica/finance/voucher/audit-trail.d.ts +3 -0
- package/dist/commands/liberica/finance/voucher/audit-trail.d.ts.map +1 -0
- package/dist/commands/liberica/finance/voucher/audit-trail.js +68 -0
- package/dist/commands/liberica/finance/voucher/audit-trail.js.map +1 -0
- package/dist/commands/liberica/finance/voucher/gaps.d.ts +3 -0
- package/dist/commands/liberica/finance/voucher/gaps.d.ts.map +1 -0
- package/dist/commands/liberica/finance/voucher/gaps.js +64 -0
- package/dist/commands/liberica/finance/voucher/gaps.js.map +1 -0
- package/dist/commands/liberica/finance/voucher/index.d.ts.map +1 -1
- package/dist/commands/liberica/finance/voucher/index.js +5 -1
- package/dist/commands/liberica/finance/voucher/index.js.map +1 -1
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +2 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/issue/index.d.ts.map +1 -1
- package/dist/commands/liberica/issue/index.js +2 -0
- package/dist/commands/liberica/issue/index.js.map +1 -1
- package/dist/commands/liberica/issue/submit.d.ts.map +1 -1
- package/dist/commands/liberica/issue/submit.js +22 -0
- package/dist/commands/liberica/issue/submit.js.map +1 -1
- package/dist/commands/liberica/issue/upload.d.ts +3 -0
- package/dist/commands/liberica/issue/upload.d.ts.map +1 -0
- package/dist/commands/liberica/issue/upload.js +91 -0
- package/dist/commands/liberica/issue/upload.js.map +1 -0
- package/dist/commands/liberica/sales-orders/create.d.ts.map +1 -1
- package/dist/commands/liberica/sales-orders/create.js +11 -0
- package/dist/commands/liberica/sales-orders/create.js.map +1 -1
- package/dist/core/api/client.d.ts +16 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +272 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/file.d.ts +26 -0
- package/dist/types/file.d.ts.map +1 -0
- package/dist/types/file.js +2 -0
- package/dist/types/file.js.map +1 -0
- package/dist/types/finance.d.ts +130 -0
- package/dist/types/finance.d.ts.map +1 -1
- package/dist/types/issue-report.d.ts +6 -0
- package/dist/types/issue-report.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +84 -2
- package/skills/barista-cli/data/commands.yaml +59 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createFilesUploadCommand } from './upload.js';
|
|
3
|
+
export function createFilesCommand() {
|
|
4
|
+
const filesCommand = new Command('files');
|
|
5
|
+
filesCommand.description('Manage file uploads: upload files to the Liberica platform');
|
|
6
|
+
filesCommand.addCommand(createFilesUploadCommand());
|
|
7
|
+
return filesCommand;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,kBAAkB;IAChC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,WAAW,CAAC,4DAA4D,CAAC,CAAC;IAEvF,YAAY,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAEpD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/files/upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,wBAAwB,IAAI,OAAO,CAiGlD"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { statSync } from 'node:fs';
|
|
4
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
6
|
+
export function createFilesUploadCommand() {
|
|
7
|
+
const uploadCommand = new Command('upload');
|
|
8
|
+
uploadCommand.description('Upload a file to the Liberica platform (generic file storage)');
|
|
9
|
+
uploadCommand
|
|
10
|
+
.argument('<file-path>', 'Path to the file to upload')
|
|
11
|
+
.option('--secret-flag <Y|N>', 'File visibility: N (public, default) or Y (private)', 'N')
|
|
12
|
+
.option('--dry-run', 'Preview the file information without uploading')
|
|
13
|
+
.option('--json', 'Output as JSON')
|
|
14
|
+
.action(async (filePath, options) => {
|
|
15
|
+
const context = configManager.getCurrentContext();
|
|
16
|
+
const environment = context.environment;
|
|
17
|
+
const tenant = context.tenant;
|
|
18
|
+
const secretFlag = (options.secretFlag || 'N').toUpperCase();
|
|
19
|
+
// Validate secretFlag value
|
|
20
|
+
if (secretFlag !== 'Y' && secretFlag !== 'N') {
|
|
21
|
+
if (options.json) {
|
|
22
|
+
console.log(JSON.stringify({ success: false, error: { code: 'INVALID_OPTION', message: '--secret-flag must be Y or N' } }, null, 2));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.error(chalk.red('\n\u2717 Invalid --secret-flag value. Must be Y or N.\n'));
|
|
26
|
+
}
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
let fileSize;
|
|
30
|
+
try {
|
|
31
|
+
const stats = statSync(filePath);
|
|
32
|
+
fileSize = stats.size;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
if (options.json) {
|
|
36
|
+
console.log(JSON.stringify({ success: false, error: { code: 'FILE_READ_ERROR', message: `Cannot read file: ${filePath}` } }, null, 2));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.error(chalk.red(`\n\u2717 Failed to read file: ${filePath}`));
|
|
40
|
+
console.error(chalk.yellow(' Make sure the file exists and is readable.\n'));
|
|
41
|
+
}
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
45
|
+
if (fileSize > MAX_FILE_SIZE) {
|
|
46
|
+
if (options.json) {
|
|
47
|
+
console.log(JSON.stringify({ success: false, error: { code: 'FILE_TOO_LARGE', message: `File size ${(fileSize / 1024 / 1024).toFixed(2)}MB exceeds 10MB limit` } }, null, 2));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.error(chalk.red(`\n\u2717 File too large: ${(fileSize / 1024 / 1024).toFixed(2)}MB`));
|
|
51
|
+
console.error(chalk.yellow(' Maximum file size is 10MB.\n'));
|
|
52
|
+
}
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const fileName = filePath.split('/').pop() || filePath.split('\\').pop() || filePath;
|
|
56
|
+
const fileSuffix = fileName.includes('.') ? fileName.split('.').pop() : undefined;
|
|
57
|
+
if (options.dryRun) {
|
|
58
|
+
if (options.json) {
|
|
59
|
+
console.log(JSON.stringify({ success: true, data: { dryRun: true, fileName, fileSize, fileSuffix, secretFlag } }, null, 2));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(chalk.bold('\n\uD83D\uDD0D File Upload Preview (dry-run)\n'));
|
|
63
|
+
console.log(chalk.gray(' File:'), fileName);
|
|
64
|
+
console.log(chalk.gray(' Size:'), `${(fileSize / 1024).toFixed(1)} KB`);
|
|
65
|
+
if (fileSuffix)
|
|
66
|
+
console.log(chalk.gray(' Type:'), fileSuffix);
|
|
67
|
+
console.log(chalk.gray(' Visibility:'), secretFlag === 'N' ? 'Public' : 'Private');
|
|
68
|
+
console.log(chalk.green('\n\u2713 File exists and is within size limit.'));
|
|
69
|
+
console.log(chalk.gray(' Use without --dry-run to upload.\n'));
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const response = await apiClient.uploadSysFile(environment, tenant, filePath, secretFlag);
|
|
74
|
+
if (!response.success) {
|
|
75
|
+
const errCode = response.error?.code;
|
|
76
|
+
const errMsg = response.error?.message || 'Unknown error';
|
|
77
|
+
if (options.json) {
|
|
78
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: errMsg } }, null, 2));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.error(chalk.red(`\n\u2717 Failed to upload file: ${errMsg}`));
|
|
82
|
+
if (errCode)
|
|
83
|
+
console.error(chalk.gray(` Error code: ${errCode}`));
|
|
84
|
+
console.error();
|
|
85
|
+
}
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
if (options.json) {
|
|
89
|
+
console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.log(chalk.green('\n\u2713 File uploaded successfully\n'));
|
|
93
|
+
console.log(chalk.gray(' File ID:'), response.data?.fileId);
|
|
94
|
+
console.log(chalk.gray(' File Name:'), response.data?.fileName);
|
|
95
|
+
console.log(chalk.gray(' File Size:'), response.data?.fileSize ? `${(response.data.fileSize / 1024).toFixed(1)} KB` : 'N/A');
|
|
96
|
+
if (response.data?.fileSuffix)
|
|
97
|
+
console.log(chalk.gray(' File Type:'), response.data.fileSuffix);
|
|
98
|
+
if (response.data?.secretFlag)
|
|
99
|
+
console.log(chalk.gray(' Visibility:'), response.data.secretFlag === 'N' ? 'Public' : 'Private');
|
|
100
|
+
console.log();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return uploadCommand;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../src/commands/liberica/files/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalise.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/capitalise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,wCAAwC,IAAI,OAAO,CA2ClE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
export function createFinanceFixedAssetCapitaliseCommand() {
|
|
6
|
+
const cmd = new Command('capitalise');
|
|
7
|
+
cmd.description('Capitalise fixed asset (PENDING → ACTIVE)');
|
|
8
|
+
cmd
|
|
9
|
+
.requiredOption('--id <string>', 'Asset ID')
|
|
10
|
+
.option('--json', 'Output as JSON')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const context = configManager.getCurrentContext();
|
|
13
|
+
const environment = options.env || context.environment;
|
|
14
|
+
const tenant = options.tenant || context.tenant;
|
|
15
|
+
const id = options.id;
|
|
16
|
+
const response = await apiClient.capitaliseFixedAsset(environment, tenant, id);
|
|
17
|
+
if (!response.success) {
|
|
18
|
+
if (options.json) {
|
|
19
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: 'Unknown error' } }, null, 2));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.error(chalk.red(`\n✗ Failed to capitalise fixed asset: ${response.error?.message || 'Unknown error'}`));
|
|
23
|
+
if (response.error?.code)
|
|
24
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
25
|
+
}
|
|
26
|
+
console.error();
|
|
27
|
+
process.exit(1);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const result = response.data;
|
|
31
|
+
if (options.json) {
|
|
32
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.green(`\n✓ Fixed asset capitalised successfully`));
|
|
36
|
+
if (result) {
|
|
37
|
+
console.log(chalk.gray(` ID: ${result.assetId}`));
|
|
38
|
+
console.log(chalk.gray(` Status: ${result.assetStatus}`));
|
|
39
|
+
}
|
|
40
|
+
console.log();
|
|
41
|
+
});
|
|
42
|
+
return cmd;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=capitalise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalise.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/capitalise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAI3D,MAAM,UAAU,wCAAwC;IACtD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,GAAG,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE7D,GAAG;SACA,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC;SAC3C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAI,OAAO,CAAC,GAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAY,CAAC;QAEhC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrI,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;gBAChH,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI;oBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAiC,CAAC;QAE1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,4CAA4C,IAAI,OAAO,CA8DtE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
5
|
+
export function createFinanceFixedAssetCategoryCreateCommand() {
|
|
6
|
+
const createCommand = new Command('create');
|
|
7
|
+
createCommand.description('Create fixed asset category');
|
|
8
|
+
createCommand
|
|
9
|
+
.requiredOption('--name <string>', 'Category name')
|
|
10
|
+
.option('--code <string>', 'Category code')
|
|
11
|
+
.option('--default-life <number>', 'Default useful life (months)')
|
|
12
|
+
.option('--default-method <string>', 'Default depreciation method (STRAIGHT_LINE|DOUBLE_DECLINING|UNITS_OF_PRODUCTION)')
|
|
13
|
+
.option('--default-salvage-rate <number>', 'Default salvage value rate (0-100)')
|
|
14
|
+
.option('--asset-account-code <string>', 'Fixed asset CoA account code')
|
|
15
|
+
.option('--dep-expense-account-code <string>', 'Depreciation expense CoA account code')
|
|
16
|
+
.option('--accum-dep-account-code <string>', 'Accumulated depreciation CoA account code')
|
|
17
|
+
.option('--impairment-account-code <string>', 'Impairment CoA account code')
|
|
18
|
+
.option('--json', 'Output as JSON')
|
|
19
|
+
.action(async (options) => {
|
|
20
|
+
const context = configManager.getCurrentContext();
|
|
21
|
+
const environment = options.env || context.environment;
|
|
22
|
+
const tenant = options.tenant || context.tenant;
|
|
23
|
+
const data = {
|
|
24
|
+
categoryName: options.name,
|
|
25
|
+
};
|
|
26
|
+
if (options.code)
|
|
27
|
+
data.categoryCode = options.code;
|
|
28
|
+
if (options.defaultLife)
|
|
29
|
+
data.defaultLifeMonths = parseInt(options.defaultLife, 10);
|
|
30
|
+
if (options.defaultMethod)
|
|
31
|
+
data.defaultMethod = options.defaultMethod;
|
|
32
|
+
if (options.defaultSalvageRate)
|
|
33
|
+
data.defaultSalvageRate = parseInt(options.defaultSalvageRate, 10);
|
|
34
|
+
if (options.assetAccountCode)
|
|
35
|
+
data.assetAccountCode = options.assetAccountCode;
|
|
36
|
+
if (options.depExpenseAccountCode)
|
|
37
|
+
data.depExpenseAccountCode = options.depExpenseAccountCode;
|
|
38
|
+
if (options.accumDepAccountCode)
|
|
39
|
+
data.accumDepAccountCode = options.accumDepAccountCode;
|
|
40
|
+
if (options.impairmentAccountCode)
|
|
41
|
+
data.impairmentAccountCode = options.impairmentAccountCode;
|
|
42
|
+
const response = await apiClient.createFixedAssetCategory(environment, tenant, data);
|
|
43
|
+
if (!response.success) {
|
|
44
|
+
if (options.json) {
|
|
45
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: 'Unknown error' } }, null, 2));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.error(chalk.red(`\n✗ Failed to create category: ${response.error?.message || 'Unknown error'}`));
|
|
49
|
+
if (response.error?.code)
|
|
50
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
51
|
+
}
|
|
52
|
+
console.error();
|
|
53
|
+
process.exit(1);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const result = response.data;
|
|
57
|
+
if (options.json) {
|
|
58
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.log(chalk.green(`\n✓ Category created successfully`));
|
|
62
|
+
if (result) {
|
|
63
|
+
console.log(chalk.gray(` ID: ${result.categoryId}`));
|
|
64
|
+
console.log(chalk.gray(` Name: ${result.categoryName}`));
|
|
65
|
+
}
|
|
66
|
+
console.log();
|
|
67
|
+
});
|
|
68
|
+
return createCommand;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sCAAsC,IAAI,OAAO,CAQhE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createFinanceFixedAssetCategoryListCommand } from './list.js';
|
|
3
|
+
import { createFinanceFixedAssetCategoryCreateCommand } from './create.js';
|
|
4
|
+
export function createFinanceFixedAssetCategoryCommand() {
|
|
5
|
+
const categoryCommand = new Command('category');
|
|
6
|
+
categoryCommand.description('Manage fixed asset categories');
|
|
7
|
+
categoryCommand.addCommand(createFinanceFixedAssetCategoryListCommand());
|
|
8
|
+
categoryCommand.addCommand(createFinanceFixedAssetCategoryCreateCommand());
|
|
9
|
+
return categoryCommand;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0CAA0C,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,4CAA4C,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,UAAU,sCAAsC;IACpD,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,eAAe,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAE7D,eAAe,CAAC,UAAU,CAAC,0CAA0C,EAAE,CAAC,CAAC;IACzE,eAAe,CAAC,UAAU,CAAC,4CAA4C,EAAE,CAAC,CAAC;IAE3E,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,0CAA0C,IAAI,OAAO,CA4DpE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import Table from 'cli-table3';
|
|
4
|
+
import { configManager } from '../../../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../../../core/api/client.js';
|
|
6
|
+
export function createFinanceFixedAssetCategoryListCommand() {
|
|
7
|
+
const listCommand = new Command('list');
|
|
8
|
+
listCommand.description('List fixed asset categories');
|
|
9
|
+
listCommand
|
|
10
|
+
.option('--json', 'Output as JSON')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const context = configManager.getCurrentContext();
|
|
13
|
+
const environment = options.env || context.environment;
|
|
14
|
+
const tenant = options.tenant || context.tenant;
|
|
15
|
+
const response = await apiClient.listFixedAssetCategories(environment, tenant);
|
|
16
|
+
if (!response.success) {
|
|
17
|
+
if (options.json) {
|
|
18
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: 'Unknown error' } }, null, 2));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
console.error(chalk.red(`\n✗ Failed to list categories: ${response.error?.message || 'Unknown error'}`));
|
|
22
|
+
if (response.error?.code)
|
|
23
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
24
|
+
}
|
|
25
|
+
console.error();
|
|
26
|
+
process.exit(1);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (options.json) {
|
|
30
|
+
console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const rows = Array.isArray(response.data) ? response.data : [];
|
|
34
|
+
if (rows.length === 0) {
|
|
35
|
+
console.log(chalk.bold('\n📋 Fixed Asset Categories\n'));
|
|
36
|
+
console.log(chalk.gray(' No categories found\n'));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
console.log(chalk.bold('\n📋 Fixed Asset Categories\n'));
|
|
40
|
+
const table = new Table({
|
|
41
|
+
head: [chalk.bold('ID'), chalk.bold('Code'), chalk.bold('Name'), chalk.bold('Method'), chalk.bold('Life')],
|
|
42
|
+
colWidths: [25, 15, 25, 20, 10],
|
|
43
|
+
style: { head: [], border: [] },
|
|
44
|
+
});
|
|
45
|
+
for (const row of rows) {
|
|
46
|
+
table.push([
|
|
47
|
+
row.categoryId || '-',
|
|
48
|
+
row.categoryCode || '-',
|
|
49
|
+
row.categoryName || '-',
|
|
50
|
+
row.defaultMethod || '-',
|
|
51
|
+
row.defaultLifeMonths != null ? String(row.defaultLifeMonths) : '-',
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
console.log(table.toString());
|
|
55
|
+
console.log();
|
|
56
|
+
});
|
|
57
|
+
return listCommand;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/commands/liberica/finance/fixed-asset/category/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oCAAoC,IAAI,OAAO,CAkF9D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
export function createFinanceFixedAssetCreateCommand() {
|
|
6
|
+
const createCommand = new Command('create');
|
|
7
|
+
createCommand.description('Create fixed asset');
|
|
8
|
+
createCommand
|
|
9
|
+
.requiredOption('--category-id <string>', 'Asset category ID')
|
|
10
|
+
.requiredOption('--code <string>', 'Asset code (unique per tenant)')
|
|
11
|
+
.requiredOption('--name <string>', 'Asset name')
|
|
12
|
+
.requiredOption('--acquisition-type <string>', 'Acquisition type (PURCHASE|SELF_CONSTRUCT|DONATION|TRANSFER_IN)')
|
|
13
|
+
.requiredOption('--acquisition-date <number>', 'Acquisition date (epoch ms)')
|
|
14
|
+
.requiredOption('--original-cost <number>', 'Original cost (cents)')
|
|
15
|
+
.requiredOption('--salvage-value <number>', 'Estimated residual value (cents)')
|
|
16
|
+
.requiredOption('--useful-life <number>', 'Useful life in months')
|
|
17
|
+
.requiredOption('--depreciation-method <string>', 'Depreciation method (STRAIGHT_LINE|DOUBLE_DECLINING|UNITS_OF_PRODUCTION)')
|
|
18
|
+
.option('--total-estimated-units <number>', 'Total estimated units (required for UNITS_OF_PRODUCTION)')
|
|
19
|
+
.option('--asset-account-id <string>', 'Fixed asset CoA account ID')
|
|
20
|
+
.option('--accum-dep-account-id <string>', 'Accumulated depreciation CoA account ID')
|
|
21
|
+
.option('--dep-expense-account-id <string>', 'Depreciation expense CoA account ID')
|
|
22
|
+
.option('--impairment-account-id <string>', 'Impairment CoA account ID')
|
|
23
|
+
.option('--disposal-account-id <string>', 'Disposal CoA account ID')
|
|
24
|
+
.option('--location <string>', 'Physical location')
|
|
25
|
+
.option('--responsible-person <string>', 'Responsible person')
|
|
26
|
+
.option('--json', 'Output as JSON')
|
|
27
|
+
.action(async (options) => {
|
|
28
|
+
const context = configManager.getCurrentContext();
|
|
29
|
+
const environment = options.env || context.environment;
|
|
30
|
+
const tenant = options.tenant || context.tenant;
|
|
31
|
+
const data = {
|
|
32
|
+
categoryId: options.categoryId,
|
|
33
|
+
assetCode: options.code,
|
|
34
|
+
assetName: options.name,
|
|
35
|
+
acquisitionType: options.acquisitionType,
|
|
36
|
+
acquisitionDate: parseInt(options.acquisitionDate, 10),
|
|
37
|
+
originalCost: parseInt(options.originalCost, 10),
|
|
38
|
+
salvageValue: parseInt(options.salvageValue, 10),
|
|
39
|
+
usefulLifeMonths: parseInt(options.usefulLife, 10),
|
|
40
|
+
depreciationMethod: options.depreciationMethod,
|
|
41
|
+
};
|
|
42
|
+
if (options.totalEstimatedUnits)
|
|
43
|
+
data.totalEstimatedUnits = parseInt(options.totalEstimatedUnits, 10);
|
|
44
|
+
if (options.assetAccountId)
|
|
45
|
+
data.assetAccountId = options.assetAccountId;
|
|
46
|
+
if (options.accumDepAccountId)
|
|
47
|
+
data.accumDepAccountId = options.accumDepAccountId;
|
|
48
|
+
if (options.depExpenseAccountId)
|
|
49
|
+
data.depExpenseAccountId = options.depExpenseAccountId;
|
|
50
|
+
if (options.impairmentAccountId)
|
|
51
|
+
data.impairmentAccountId = options.impairmentAccountId;
|
|
52
|
+
if (options.disposalAccountId)
|
|
53
|
+
data.disposalAccountId = options.disposalAccountId;
|
|
54
|
+
if (options.location)
|
|
55
|
+
data.location = options.location;
|
|
56
|
+
if (options.responsiblePerson)
|
|
57
|
+
data.responsiblePerson = options.responsiblePerson;
|
|
58
|
+
const response = await apiClient.createFixedAsset(environment, tenant, data);
|
|
59
|
+
if (!response.success) {
|
|
60
|
+
if (options.json) {
|
|
61
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: 'Unknown error' } }, null, 2));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.error(chalk.red(`\n✗ Failed to create fixed asset: ${response.error?.message || 'Unknown error'}`));
|
|
65
|
+
if (response.error?.code) {
|
|
66
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
console.error();
|
|
70
|
+
process.exit(1);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const result = response.data;
|
|
74
|
+
if (options.json) {
|
|
75
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
console.log(chalk.green(`\n✓ Fixed asset created successfully`));
|
|
79
|
+
if (result) {
|
|
80
|
+
console.log(chalk.gray(` ID: ${result.assetId}`));
|
|
81
|
+
console.log(chalk.gray(` Code: ${result.assetCode}`));
|
|
82
|
+
console.log(chalk.gray(` Name: ${result.assetName}`));
|
|
83
|
+
console.log(chalk.gray(` Status: ${result.assetStatus}`));
|
|
84
|
+
}
|
|
85
|
+
console.log();
|
|
86
|
+
});
|
|
87
|
+
return createCommand;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depreciate.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/depreciate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,wCAAwC,IAAI,OAAO,CAkDlE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
export function createFinanceFixedAssetDepreciateCommand() {
|
|
6
|
+
const cmd = new Command('depreciate');
|
|
7
|
+
cmd.description('Run depreciation for a fiscal period');
|
|
8
|
+
cmd
|
|
9
|
+
.requiredOption('--period-id <string>', 'Fiscal period ID')
|
|
10
|
+
.requiredOption('--depreciation-date <number>', 'Depreciation date (epoch ms)')
|
|
11
|
+
.option('--force', 'Skip confirmation prompt')
|
|
12
|
+
.option('--json', 'Output as JSON')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
const context = configManager.getCurrentContext();
|
|
15
|
+
const environment = options.env || context.environment;
|
|
16
|
+
const tenant = options.tenant || context.tenant;
|
|
17
|
+
const data = {
|
|
18
|
+
fiscalPeriodId: options.periodId,
|
|
19
|
+
depreciationDate: parseInt(options.depreciationDate, 10),
|
|
20
|
+
};
|
|
21
|
+
const response = await apiClient.runFixedAssetDepreciation(environment, tenant, data);
|
|
22
|
+
if (!response.success) {
|
|
23
|
+
if (options.json) {
|
|
24
|
+
console.log(JSON.stringify({ success: false, error: response.error || { code: 'API_ERROR', message: 'Unknown error' } }, null, 2));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.error(chalk.red(`\n✗ Failed to run depreciation: ${response.error?.message || 'Unknown error'}`));
|
|
28
|
+
if (response.error?.code)
|
|
29
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
30
|
+
}
|
|
31
|
+
console.error();
|
|
32
|
+
process.exit(1);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const result = response.data;
|
|
36
|
+
if (options.json) {
|
|
37
|
+
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.log(chalk.green(`\n✓ Depreciation run completed`));
|
|
41
|
+
if (result) {
|
|
42
|
+
console.log(chalk.gray(` Assets depreciated: ${result.assetCount}`));
|
|
43
|
+
console.log(chalk.gray(` Total amount: ${result.totalDepreciationAmount}`));
|
|
44
|
+
if (result.voucherId)
|
|
45
|
+
console.log(chalk.gray(` Voucher ID: ${result.voucherId}`));
|
|
46
|
+
}
|
|
47
|
+
console.log();
|
|
48
|
+
});
|
|
49
|
+
return cmd;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=depreciate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depreciate.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/depreciate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"depreciation-schedule.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/finance/fixed-asset/depreciation-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,kDAAkD,IAAI,OAAO,CA+D5E"}
|