@xbongbong/xbbcli 2.0.0 → 2.2.0
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/README.md +101 -2
- package/ai-call-add-task.js +3 -6
- package/ai-word-list.js +3 -6
- package/bin/xbbcli.js +20 -2
- package/buyer-inquiry-detail.js +2 -5
- package/buyer-inquiry-list.js +2 -5
- package/clue-add-couser.js +2 -5
- package/clue-add.js +2 -5
- package/clue-back.js +2 -5
- package/clue-del.js +2 -5
- package/clue-delete-couser.js +2 -5
- package/clue-delete-mainuser.js +2 -5
- package/clue-detail.js +2 -5
- package/clue-distribution.js +2 -5
- package/clue-edit.js +2 -5
- package/clue-handover.js +3 -6
- package/clue-list.js +2 -5
- package/clue-thorough-delete.js +2 -5
- package/communicate-add.js +2 -5
- package/communicate-del.js +2 -5
- package/communicate-detail.js +2 -5
- package/communicate-edit.js +2 -5
- package/communicate-list.js +2 -5
- package/communicate-plan-add.js +2 -5
- package/communicate-plan-cancel.js +2 -5
- package/communicate-plan-del.js +2 -5
- package/communicate-plan-detail.js +2 -5
- package/communicate-plan-list.js +2 -5
- package/communicate-plan-single-operate.js +2 -5
- package/contact-add-couser.js +2 -5
- package/contact-add-mainuser.js +2 -5
- package/contact-add.js +2 -5
- package/contact-del.js +2 -1
- package/contact-delete-couser.js +2 -5
- package/contact-delete-mainuser.js +2 -5
- package/contact-detail.js +2 -1
- package/contact-edit.js +2 -5
- package/contact-handover.js +2 -5
- package/contact-list.js +2 -5
- package/contract-add-couser.js +2 -5
- package/contract-add-mainuser.js +2 -5
- package/contract-add.js +2 -5
- package/contract-del.js +2 -5
- package/contract-delete-couser.js +2 -5
- package/contract-delete-mainuser.js +2 -5
- package/contract-detail.js +2 -5
- package/contract-edit.js +2 -5
- package/contract-handover.js +2 -5
- package/contract-list.js +2 -5
- package/contract-outstock-add.js +2 -5
- package/contract-outstock-del.js +2 -5
- package/contract-outstock-detail.js +2 -5
- package/contract-outstock-edit.js +2 -5
- package/contract-outstock-list.js +2 -5
- package/customer-add-couser.js +2 -5
- package/customer-add.js +2 -5
- package/customer-back.js +2 -5
- package/customer-del.js +2 -5
- package/customer-delete-couser.js +2 -5
- package/customer-delete-mainuser.js +2 -5
- package/customer-detail.js +2 -5
- package/customer-distribution.js +2 -5
- package/customer-edit.js +2 -5
- package/customer-handover.js +2 -5
- package/customer-invoice-address-add.js +2 -5
- package/customer-invoice-address-edit.js +2 -5
- package/customer-invoice-address.js +2 -5
- package/customer-invoice-info-add.js +2 -5
- package/customer-invoice-info-edit.js +2 -5
- package/customer-invoice-info.js +2 -5
- package/customer-list.js +2 -5
- package/department-add.js +2 -5
- package/department-del.js +2 -5
- package/department-edit.js +2 -5
- package/department-list.js +2 -5
- package/form-data-add-couser.js +2 -5
- package/form-data-add-mainuser.js +2 -5
- package/form-data-add.js +2 -5
- package/form-data-del.js +2 -5
- package/form-data-delete-couser.js +2 -5
- package/form-data-delete-mainuser.js +2 -5
- package/form-data-detail.js +2 -5
- package/form-data-edit.js +2 -5
- package/form-data-handover.js +2 -5
- package/form-data-list.js +2 -5
- package/form-get.js +2 -5
- package/form-list.js +2 -5
- package/invoice-add.js +3 -6
- package/invoice-cancel.js +3 -6
- package/invoice-del.js +3 -6
- package/invoice-detail.js +3 -6
- package/invoice-edit.js +3 -6
- package/invoice-get-amount-detail.js +3 -6
- package/invoice-list.js +3 -6
- package/invoice-red.js +3 -6
- package/label-add.js +3 -6
- package/label-all-list.js +3 -6
- package/label-batch-add.js +3 -6
- package/label-batch-remove.js +3 -6
- package/label-del-completely.js +3 -6
- package/label-del.js +3 -6
- package/label-edit.js +3 -6
- package/label-group-add.js +3 -6
- package/label-group-del.js +3 -6
- package/label-group-list.js +3 -6
- package/label-group-update.js +3 -6
- package/label-list.js +3 -6
- package/label-reduction.js +3 -6
- package/label-repeat.js +3 -6
- package/market-activity-add.js +2 -5
- package/market-activity-del.js +2 -5
- package/market-activity-detail.js +2 -5
- package/market-activity-edit.js +2 -5
- package/market-activity-handover.js +2 -5
- package/market-activity-list.js +2 -5
- package/opportunity-add-couser.js +2 -5
- package/opportunity-add-mainuser.js +2 -5
- package/opportunity-add.js +2 -5
- package/opportunity-del.js +2 -5
- package/opportunity-delete-couser.js +2 -5
- package/opportunity-delete-mainuser.js +2 -5
- package/opportunity-detail.js +2 -5
- package/opportunity-edit.js +2 -5
- package/opportunity-handover.js +2 -5
- package/opportunity-list.js +2 -5
- package/package.json +1 -1
- package/pay-plan-add-couser.js +2 -5
- package/pay-plan-add-mainuser.js +2 -5
- package/pay-plan-add.js +2 -5
- package/pay-plan-delete-couser.js +2 -5
- package/pay-plan-delete-mainuser.js +2 -5
- package/pay-plan-handover.js +2 -5
- package/pay-sheet-add-bad.js +2 -5
- package/pay-sheet-add-couser.js +2 -5
- package/pay-sheet-add-mainuser.js +2 -5
- package/pay-sheet-add-red.js +2 -5
- package/pay-sheet-add-write-off.js +2 -5
- package/pay-sheet-del.js +2 -5
- package/pay-sheet-delete-couser.js +2 -5
- package/pay-sheet-delete-mainuser.js +2 -5
- package/pay-sheet-detail.js +2 -5
- package/pay-sheet-edit-bad.js +2 -5
- package/pay-sheet-edit-red.js +2 -5
- package/pay-sheet-edit-write-off.js +2 -5
- package/pay-sheet-get-amount-detail.js +2 -5
- package/pay-sheet-list.js +2 -5
- package/payment-add-couser.js +2 -5
- package/payment-add-mainuser.js +2 -5
- package/payment-add.js +2 -5
- package/payment-del.js +2 -5
- package/payment-delete-couser.js +2 -5
- package/payment-delete-mainuser.js +2 -5
- package/payment-detail.js +2 -5
- package/payment-edit.js +2 -5
- package/payment-handover.js +2 -5
- package/payment-list.js +2 -5
- package/payment-sheet-add-bad-debt.js +2 -5
- package/payment-sheet-add-pre.js +2 -5
- package/payment-sheet-add-red.js +2 -5
- package/payment-sheet-add-write-off.js +2 -5
- package/payment-sheet-del.js +2 -5
- package/payment-sheet-detail.js +2 -5
- package/payment-sheet-edit-bad-debt.js +2 -5
- package/payment-sheet-edit-red.js +2 -5
- package/payment-sheet-edit-write-off.js +2 -5
- package/payment-sheet-get-amount-detail.js +2 -5
- package/payment-sheet-handover.js +2 -5
- package/payment-sheet-list.js +2 -5
- package/product-add.js +2 -5
- package/product-category-add.js +2 -5
- package/product-category-del.js +2 -5
- package/product-category-list.js +2 -5
- package/product-category-update.js +2 -5
- package/product-del.js +2 -5
- package/product-detail.js +2 -5
- package/product-edit.js +2 -5
- package/product-list.js +2 -5
- package/product-online.js +2 -5
- package/quotation-add-couser.js +3 -6
- package/quotation-add-mainuser.js +3 -6
- package/quotation-add.js +3 -6
- package/quotation-del.js +3 -6
- package/quotation-delete-couser.js +3 -6
- package/quotation-delete-mainuser.js +3 -6
- package/quotation-detail.js +3 -6
- package/quotation-edit.js +3 -6
- package/quotation-handover.js +2 -5
- package/quotation-list.js +3 -6
- package/refund-add.js +4 -1
- package/refund-del.js +4 -1
- package/refund-detail.js +4 -1
- package/refund-edit.js +4 -1
- package/refund-list.js +2 -5
- package/role-list.js +2 -5
- package/sign-in-list.js +2 -5
- package/stage-get.js +2 -5
- package/stage-jump.js +2 -5
- package/supplier-add.js +2 -5
- package/token-del.js +106 -0
- package/token-generate.js +2 -5
- package/token-list.js +119 -0
- package/token-set.js +191 -10
- package/token-use.js +102 -0
- package/user-add.js +2 -5
- package/user-del.js +2 -5
- package/user-edit.js +2 -5
- package/user-handover.js +2 -5
- package/user-list.js +5 -8
- package/work-order-add.js +2 -5
- package/work-order-asset-add-couser.js +3 -6
- package/work-order-asset-add-mainuser.js +3 -6
- package/work-order-asset-add.js +3 -6
- package/work-order-asset-del-couser.js +3 -6
- package/work-order-asset-del-mainuser.js +3 -6
- package/work-order-asset-del.js +3 -6
- package/work-order-asset-detail.js +3 -6
- package/work-order-asset-edit.js +3 -6
- package/work-order-asset-handover.js +3 -6
- package/work-order-asset-list.js +3 -6
- package/work-order-del.js +2 -5
- package/work-order-detail.js +2 -5
- package/work-order-dynamic-list.js +2 -5
- package/work-order-edit.js +2 -5
- package/work-order-list.js +2 -5
- package/work-order-operate.js +2 -5
- package/work-order-template-detail.js +2 -5
- package/work-order-template-list.js +2 -5
- package/work-report-daily-add.js +2 -5
- package/work-report-daily-del.js +2 -5
- package/work-report-daily-detail.js +2 -5
- package/work-report-daily-edit.js +2 -5
- package/work-report-daily-get-work-plan.js +2 -5
- package/work-report-daily-list.js +2 -5
- package/work-report-monthly-add.js +2 -5
- package/work-report-monthly-del.js +2 -5
- package/work-report-monthly-detail.js +2 -5
- package/work-report-monthly-edit.js +2 -5
- package/work-report-monthly-list.js +2 -5
- package/work-report-weekly-add.js +2 -5
- package/work-report-weekly-del.js +2 -5
- package/work-report-weekly-detail.js +2 -5
- package/work-report-weekly-edit.js +2 -5
- package/work-report-weekly-list.js +2 -5
- package/work-task-add-couser.js +2 -5
- package/work-task-add.js +2 -5
- package/work-task-delete-couser.js +2 -5
- package/work-task-detail.js +2 -5
- package/work-task-edit.js +2 -5
- package/work-task-handover.js +2 -5
- package/workorder-add-couser.js +2 -5
- package/workorder-delete-couser.js +2 -5
- package/workorder-handover.js +2 -5
- package/workorderlist.js +2 -5
- package/workorderproductlist.js +2 -5
- package/worktimerecorddetail.js +2 -5
- package/worktimerecordlist.js +2 -5
- package/xbb-config.js +113 -0
- package/version.js +0 -18
package/product-del.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
@@ -10,11 +11,7 @@ const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/product/del';
|
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/product-detail.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const PRODUCT_DETAIL_API_URL = 'https://proapi.xbongbong.com/pro/v2/api/product/detail';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/product-edit.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
@@ -10,11 +11,7 @@ const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/product/edit';
|
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/product-list.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const PRODUCT_LIST_API_URL = 'https://proapi.xbongbong.com/pro/v2/api/product/list';
|
|
@@ -11,11 +12,7 @@ const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --co
|
|
|
11
12
|
let lastPagination = null;
|
|
12
13
|
|
|
13
14
|
function readConfig() {
|
|
14
|
-
|
|
15
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
16
|
-
} catch {
|
|
17
|
-
return {};
|
|
18
|
-
}
|
|
15
|
+
return readActiveConfig();
|
|
19
16
|
}
|
|
20
17
|
|
|
21
18
|
function getRuntimeConfig() {
|
package/product-online.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
@@ -10,11 +11,7 @@ const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/product/online';
|
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-add-couser.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/addCoUser';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/addMainUser';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-add.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/add';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-del.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/del';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/deleteCoUser';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/deleteMainUser';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-detail.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/detail';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-edit.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/edit';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-handover.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/handover';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/quotation-list.js
CHANGED
|
@@ -2,7 +2,8 @@ import crypto from 'node:crypto';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.opencli', 'xbb', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/quotation/list';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 opencli xbb token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/refund-add.js
CHANGED
|
@@ -3,13 +3,16 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
9
10
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/refund/add';
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
|
-
function readConfig() {
|
|
13
|
+
function readConfig() {
|
|
14
|
+
return readActiveConfig();
|
|
15
|
+
}
|
|
13
16
|
function getRuntimeConfig() {
|
|
14
17
|
const config = readConfig();
|
|
15
18
|
return { corpid: String(config.corpid || '').trim(), token: String(config.token || '').trim(), baseUrl: String(config.baseurl || DEFAULT_BASE_URL).trim(), userId: String(config.userId || '').trim() };
|
package/refund-del.js
CHANGED
|
@@ -3,13 +3,16 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
9
10
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/refund/del';
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
|
-
function readConfig() {
|
|
13
|
+
function readConfig() {
|
|
14
|
+
return readActiveConfig();
|
|
15
|
+
}
|
|
13
16
|
function getRuntimeConfig() {
|
|
14
17
|
const config = readConfig();
|
|
15
18
|
return { corpid: String(config.corpid || '').trim(), token: String(config.token || '').trim(), baseUrl: String(config.baseurl || DEFAULT_BASE_URL).trim(), userId: String(config.userId || '').trim() };
|
package/refund-detail.js
CHANGED
|
@@ -3,13 +3,16 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
9
10
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/refund/detail';
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
|
-
function readConfig() {
|
|
13
|
+
function readConfig() {
|
|
14
|
+
return readActiveConfig();
|
|
15
|
+
}
|
|
13
16
|
function getRuntimeConfig() {
|
|
14
17
|
const config = readConfig();
|
|
15
18
|
return { corpid: String(config.corpid || '').trim(), token: String(config.token || '').trim(), baseUrl: String(config.baseurl || DEFAULT_BASE_URL).trim(), userId: String(config.userId || '').trim() };
|
package/refund-edit.js
CHANGED
|
@@ -3,13 +3,16 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
9
10
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/refund/edit';
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
|
-
function readConfig() {
|
|
13
|
+
function readConfig() {
|
|
14
|
+
return readActiveConfig();
|
|
15
|
+
}
|
|
13
16
|
function getRuntimeConfig() {
|
|
14
17
|
const config = readConfig();
|
|
15
18
|
return { corpid: String(config.corpid || '').trim(), token: String(config.token || '').trim(), baseUrl: String(config.baseurl || DEFAULT_BASE_URL).trim(), userId: String(config.userId || '').trim() };
|
package/refund-list.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const REFUND_LIST_API_URL = 'https://proapi.xbongbong.com/pro/v2/api/refund/list';
|
|
@@ -11,11 +12,7 @@ const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --co
|
|
|
11
12
|
let lastPagination = null;
|
|
12
13
|
|
|
13
14
|
function readConfig() {
|
|
14
|
-
|
|
15
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
16
|
-
} catch {
|
|
17
|
-
return {};
|
|
18
|
-
}
|
|
15
|
+
return readActiveConfig();
|
|
19
16
|
}
|
|
20
17
|
|
|
21
18
|
function getRuntimeConfig() {
|
package/role-list.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/role/list';
|
|
@@ -11,11 +12,7 @@ const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --co
|
|
|
11
12
|
let lastPagination = null;
|
|
12
13
|
|
|
13
14
|
function readConfig() {
|
|
14
|
-
|
|
15
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
16
|
-
} catch {
|
|
17
|
-
return {};
|
|
18
|
-
}
|
|
15
|
+
return readActiveConfig();
|
|
19
16
|
}
|
|
20
17
|
|
|
21
18
|
function getRuntimeConfig() {
|
package/sign-in-list.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/signIn/list';
|
|
@@ -11,11 +12,7 @@ const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --co
|
|
|
11
12
|
let lastPagination = null;
|
|
12
13
|
|
|
13
14
|
function readConfig() {
|
|
14
|
-
|
|
15
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
16
|
-
} catch {
|
|
17
|
-
return {};
|
|
18
|
-
}
|
|
15
|
+
return readActiveConfig();
|
|
19
16
|
}
|
|
20
17
|
|
|
21
18
|
function getRuntimeConfig() {
|
package/stage-get.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/stage/get';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/stage-jump.js
CHANGED
|
@@ -3,6 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_FILE = path.join(os.homedir(), '.xbbcli', 'config.env');
|
|
8
9
|
const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/stage/jump';
|
|
@@ -10,11 +11,7 @@ const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
|
10
11
|
const MISSING_TOKEN_MESSAGE = '缺少 token;请先执行 xbbcli token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/supplier-add.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import crypto from 'node:crypto';
|
|
5
5
|
import { cli, Strategy } from './xbb-registry.js';
|
|
6
|
+
import { readActiveConfig } from './xbb-config.js';
|
|
6
7
|
|
|
7
8
|
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
9
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
@@ -10,11 +11,7 @@ const API_URL = 'https://proapi.xbongbong.com/pro/v2/api/supplier/add';
|
|
|
10
11
|
const DEFAULT_BASE_URL = 'https://proapi.xbongbong.com';
|
|
11
12
|
|
|
12
13
|
function readConfig() {
|
|
13
|
-
|
|
14
|
-
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
15
|
-
} catch {
|
|
16
|
-
return {};
|
|
17
|
-
}
|
|
14
|
+
return readActiveConfig();
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function getRuntimeConfig() {
|
package/token-del.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { cli, Strategy } from './xbb-registry.js';
|
|
5
|
+
import { isEnvActive, isEnvOnly, getEnvVarNames } from './xbb-config.js';
|
|
6
|
+
|
|
7
|
+
const CONFIG_DIR = path.join(os.homedir(), '.xbbcli');
|
|
8
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.env');
|
|
9
|
+
|
|
10
|
+
function readCompanies() {
|
|
11
|
+
try {
|
|
12
|
+
const parsed = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
13
|
+
return normalizeCompanies(parsed);
|
|
14
|
+
} catch {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function normalizeCompanies(parsed) {
|
|
20
|
+
if (Array.isArray(parsed)) {
|
|
21
|
+
return parsed.filter((item) => item && typeof item === 'object');
|
|
22
|
+
}
|
|
23
|
+
if (parsed && Array.isArray(parsed.companies)) {
|
|
24
|
+
return parsed.companies.filter((item) => item && typeof item === 'object');
|
|
25
|
+
}
|
|
26
|
+
if (parsed && parsed.corpid) {
|
|
27
|
+
const { corpid, token, baseurl, userId } = parsed;
|
|
28
|
+
return [{ corpid, token, baseurl, userId, enable: true }];
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function writeCompanies(companies) {
|
|
34
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
35
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(companies, null, 2) + '\n', 'utf8');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function enableOnly(companies, index) {
|
|
39
|
+
return companies.map((item, itemIndex) => ({ ...item, enable: itemIndex === index }));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function enableSingle(companies) {
|
|
43
|
+
const enabledIndex = companies.findIndex((item) => item.enable === true);
|
|
44
|
+
return enableOnly(companies, enabledIndex === -1 ? 0 : enabledIndex);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function maskToken(token) {
|
|
48
|
+
const value = String(token || '').trim();
|
|
49
|
+
if (!value) return '';
|
|
50
|
+
if (value.length <= 12) return `${value.slice(0, 4)}****`;
|
|
51
|
+
return `${value.slice(0, 8)}****${value.slice(-4)}`;
|
|
52
|
+
}
|
|
53
|
+
function createResult(status, message, corpid, enable, companyCount) {
|
|
54
|
+
return [{
|
|
55
|
+
status,
|
|
56
|
+
message,
|
|
57
|
+
configFile: CONFIG_FILE,
|
|
58
|
+
corpid,
|
|
59
|
+
enable,
|
|
60
|
+
companyCount,
|
|
61
|
+
}];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async function delCompany(kwargs) {
|
|
65
|
+
const corpid = String(kwargs.corpid || '').trim();
|
|
66
|
+
if (!corpid) {
|
|
67
|
+
return createResult('error', '缺少 --corpid', '', '', '');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (isEnvOnly() || isEnvActive()) {
|
|
71
|
+
return createResult('error', `当前为环境变量模式(${getEnvVarNames().join(', ')}),不支持删除公司配置;如需多公司请改用 config.env`, corpid, '', '');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const companies = readCompanies();
|
|
75
|
+
if (!companies.length) {
|
|
76
|
+
return createResult('error', '缺少本地配置;请先执行 xbbcli token-set --corpid <CORPID> --token <TOKEN> --userId <USERID>', corpid, '', 0);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const remaining = companies.filter((item) => String(item.corpid || '').trim() !== corpid);
|
|
80
|
+
if (remaining.length === companies.length) {
|
|
81
|
+
return createResult('error', `未找到 corpid=${corpid} 的本地配置`, corpid, '', companies.length);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const next = remaining.length ? enableSingle(remaining) : [];
|
|
85
|
+
writeCompanies(next);
|
|
86
|
+
const enabledCorpid = next.find((item) => item.enable === true)?.corpid || '';
|
|
87
|
+
const message = next.length
|
|
88
|
+
? `已删除 corpid=${corpid},剩余 ${next.length} 家公司,当前启用 corpid=${enabledCorpid}`
|
|
89
|
+
: `已删除 corpid=${corpid},本地已无公司配置`;
|
|
90
|
+
return createResult('ok', message, corpid, next.length ? 'true' : '', next.length);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
cli({
|
|
94
|
+
site: 'xbb',
|
|
95
|
+
name: 'token-del',
|
|
96
|
+
description: '删除指定的已保存公司配置,并保证剩余配置中仅且只有一个被启用',
|
|
97
|
+
strategy: Strategy.PUBLIC,
|
|
98
|
+
access: 'write',
|
|
99
|
+
browser: false,
|
|
100
|
+
domain: 'proapi.xbongbong.com',
|
|
101
|
+
args: [
|
|
102
|
+
{ name: 'corpid', type: 'str', help: '要删除的公司 id,必须是已保存的 corpid(必填)' },
|
|
103
|
+
],
|
|
104
|
+
columns: ['status', 'message', 'configFile', 'corpid', 'enable', 'companyCount'],
|
|
105
|
+
func: delCompany,
|
|
106
|
+
});
|