apipay 0.1.0 → 0.3.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 +2 -7
- package/bin/dev.js +2 -0
- package/dist/commands/banks/add.d.ts +1 -1
- package/dist/commands/banks/add.d.ts.map +1 -1
- package/dist/commands/banks/add.js +43 -43
- package/dist/commands/banks/add.js.map +1 -1
- package/dist/commands/banks/list.d.ts +1 -1
- package/dist/commands/banks/list.d.ts.map +1 -1
- package/dist/commands/banks/list.js +19 -17
- package/dist/commands/banks/list.js.map +1 -1
- package/dist/commands/banks/remove-unconfirmed.d.ts +7 -0
- package/dist/commands/banks/remove-unconfirmed.d.ts.map +1 -0
- package/dist/commands/banks/remove-unconfirmed.js +41 -0
- package/dist/commands/banks/remove-unconfirmed.js.map +1 -0
- package/dist/commands/banks/remove.d.ts +1 -1
- package/dist/commands/banks/remove.d.ts.map +1 -1
- package/dist/commands/banks/remove.js +19 -19
- package/dist/commands/banks/remove.js.map +1 -1
- package/dist/commands/banks/toggle.d.ts +1 -1
- package/dist/commands/banks/toggle.d.ts.map +1 -1
- package/dist/commands/banks/toggle.js +13 -13
- package/dist/commands/banks/toggle.js.map +1 -1
- package/dist/commands/config/get.d.ts +1 -1
- package/dist/commands/config/get.d.ts.map +1 -1
- package/dist/commands/config/get.js +15 -12
- package/dist/commands/config/get.js.map +1 -1
- package/dist/commands/config/reset.d.ts +1 -1
- package/dist/commands/config/reset.d.ts.map +1 -1
- package/dist/commands/config/reset.js +12 -12
- package/dist/commands/config/reset.js.map +1 -1
- package/dist/commands/config/set.d.ts +2 -2
- package/dist/commands/config/set.d.ts.map +1 -1
- package/dist/commands/config/set.js +14 -13
- package/dist/commands/config/set.js.map +1 -1
- package/dist/commands/keys/create.d.ts +1 -1
- package/dist/commands/keys/create.d.ts.map +1 -1
- package/dist/commands/keys/create.js +43 -32
- package/dist/commands/keys/create.js.map +1 -1
- package/dist/commands/keys/list.d.ts +1 -1
- package/dist/commands/keys/list.d.ts.map +1 -1
- package/dist/commands/keys/list.js +15 -15
- package/dist/commands/keys/list.js.map +1 -1
- package/dist/commands/keys/revoke.d.ts +1 -1
- package/dist/commands/keys/revoke.d.ts.map +1 -1
- package/dist/commands/keys/revoke.js +25 -22
- package/dist/commands/keys/revoke.js.map +1 -1
- package/dist/commands/login.d.ts +2 -2
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +67 -56
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +12 -12
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/metrics/summary.d.ts +1 -1
- package/dist/commands/metrics/summary.d.ts.map +1 -1
- package/dist/commands/metrics/summary.js +17 -17
- package/dist/commands/metrics/summary.js.map +1 -1
- package/dist/commands/metrics/transactions.d.ts +1 -1
- package/dist/commands/metrics/transactions.d.ts.map +1 -1
- package/dist/commands/metrics/transactions.js +23 -20
- package/dist/commands/metrics/transactions.js.map +1 -1
- package/dist/commands/{init.d.ts → setup.d.ts} +4 -4
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +189 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +45 -45
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/webhooks/add.d.ts +1 -1
- package/dist/commands/webhooks/add.d.ts.map +1 -1
- package/dist/commands/webhooks/add.js +34 -32
- package/dist/commands/webhooks/add.js.map +1 -1
- package/dist/commands/webhooks/history.d.ts +1 -1
- package/dist/commands/webhooks/history.d.ts.map +1 -1
- package/dist/commands/webhooks/history.js +19 -17
- package/dist/commands/webhooks/history.js.map +1 -1
- package/dist/commands/webhooks/list.d.ts +1 -1
- package/dist/commands/webhooks/list.d.ts.map +1 -1
- package/dist/commands/webhooks/list.js +16 -16
- package/dist/commands/webhooks/list.js.map +1 -1
- package/dist/commands/webhooks/remove.d.ts +1 -1
- package/dist/commands/webhooks/remove.d.ts.map +1 -1
- package/dist/commands/webhooks/remove.js +14 -14
- package/dist/commands/webhooks/remove.js.map +1 -1
- package/dist/commands/webhooks/resend.d.ts +1 -1
- package/dist/commands/webhooks/resend.d.ts.map +1 -1
- package/dist/commands/webhooks/resend.js +20 -11
- package/dist/commands/webhooks/resend.js.map +1 -1
- package/dist/commands/webhooks/toggle.d.ts +1 -1
- package/dist/commands/webhooks/toggle.d.ts.map +1 -1
- package/dist/commands/webhooks/toggle.js +12 -12
- package/dist/commands/webhooks/toggle.js.map +1 -1
- package/dist/commands/webhooks/update.d.ts +1 -1
- package/dist/commands/webhooks/update.d.ts.map +1 -1
- package/dist/commands/webhooks/update.js +17 -17
- package/dist/commands/webhooks/update.js.map +1 -1
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +18 -18
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +39 -34
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/base-command.d.ts +3 -3
- package/dist/lib/base-command.d.ts.map +1 -1
- package/dist/lib/base-command.js +10 -10
- package/dist/lib/base-command.js.map +1 -1
- package/dist/lib/config.d.ts +4 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +44 -34
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +1 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +11 -11
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/formatters.d.ts +4 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +49 -37
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/prompts.d.ts +1 -0
- package/dist/lib/prompts.d.ts.map +1 -1
- package/dist/lib/prompts.js +33 -18
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/validators.d.ts +1 -0
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +51 -30
- package/dist/lib/validators.js.map +1 -1
- package/oclif.manifest.json +78 -43
- package/package.json +93 -82
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -109
- package/dist/commands/init.js.map +0 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ curl -fsSL https://apipay.vn/install | bash
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# Interactive setup wizard — walks you through everything
|
|
23
|
-
apipay
|
|
23
|
+
apipay setup
|
|
24
24
|
|
|
25
25
|
# Or step-by-step:
|
|
26
26
|
apipay login # Authenticate (magic link or email/password)
|
|
@@ -95,13 +95,8 @@ apipay webhooks:add # Register a webhook for notifications
|
|
|
95
95
|
|
|
96
96
|
## Configuration
|
|
97
97
|
|
|
98
|
-
Credentials and settings are stored in `~/.config/apipay/config.json`.
|
|
99
|
-
|
|
100
|
-
To connect to a staging API:
|
|
101
98
|
|
|
102
|
-
|
|
103
|
-
apipay config:set apiBaseUrl https://staging.apipay.vn/v1
|
|
104
|
-
```
|
|
99
|
+
Credentials and settings are stored in `~/.config/apipay/config.json`.
|
|
105
100
|
|
|
106
101
|
## Autocomplete
|
|
107
102
|
|
package/bin/dev.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
// APIPAY_DASHBOARD_URL=http://localhost:5501 APIPAY_API_URL=http://localhost:5500/v1 ./bin/dev.js setup
|
|
4
|
+
|
|
3
5
|
// Dev mode entry point — runs TypeScript directly
|
|
4
6
|
import { execute } from '@oclif/core';
|
|
5
7
|
await execute({ development: true, dir: import.meta.url });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/add.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAWxD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IAClD,OAAgB,WAAW,SAAmD;IAE9E,OAAgB,QAAQ,WAAmC;IAErD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4F1B"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { ApiKeyCommand } from
|
|
3
|
-
import { markStepComplete } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { markStepComplete } from "../../lib/config.js";
|
|
4
|
+
import { info, kvLine, success } from "../../lib/formatters.js";
|
|
5
|
+
import { promptAccountName, promptAccountNumber, promptBankSelection, promptMobile, promptOtp, } from "../../lib/prompts.js";
|
|
6
6
|
export default class BanksAdd extends ApiKeyCommand {
|
|
7
|
-
static description =
|
|
8
|
-
static examples = [
|
|
7
|
+
static description = "Add a bank account to your ApiPay integration";
|
|
8
|
+
static examples = ["<%= config.bin %> banks:add"];
|
|
9
9
|
async run() {
|
|
10
|
-
console.log(
|
|
11
|
-
console.log(chalk.bold(
|
|
12
|
-
console.log(chalk.gray(
|
|
13
|
-
console.log(
|
|
10
|
+
console.log("");
|
|
11
|
+
console.log(chalk.bold(" Add Bank Account"));
|
|
12
|
+
console.log(chalk.gray(" ────────────────"));
|
|
13
|
+
console.log("");
|
|
14
14
|
// Step 1: Select bank
|
|
15
15
|
const bankShortName = await promptBankSelection();
|
|
16
16
|
// Step 2: Account details
|
|
@@ -18,65 +18,65 @@ export default class BanksAdd extends ApiKeyCommand {
|
|
|
18
18
|
const accName = await promptAccountName();
|
|
19
19
|
const accMobile = await promptMobile();
|
|
20
20
|
// Step 3: Submit to API
|
|
21
|
-
this.spinner.start(
|
|
21
|
+
this.spinner.start("Adding bank account...");
|
|
22
22
|
try {
|
|
23
|
-
const data = await this.api.post(
|
|
24
|
-
type:
|
|
23
|
+
const data = await this.api.post("/client/banks", {
|
|
24
|
+
type: "openapi",
|
|
25
25
|
bankShortName,
|
|
26
26
|
accountNumber,
|
|
27
27
|
accName,
|
|
28
28
|
accMobile,
|
|
29
|
-
},
|
|
29
|
+
}, "apikey");
|
|
30
30
|
const bank = data?.data ?? data;
|
|
31
|
-
this.spinner.succeed(
|
|
31
|
+
this.spinner.succeed("Bank account submitted!");
|
|
32
32
|
// Check if OTP is required
|
|
33
|
-
if (bank?.
|
|
34
|
-
console.log(
|
|
35
|
-
info(`OTP verification required. Check your phone
|
|
36
|
-
console.log(
|
|
33
|
+
if (bank?.OTP === 1) {
|
|
34
|
+
console.log("");
|
|
35
|
+
info(`OTP verification required. Check your phone or your bank app for the code.`);
|
|
36
|
+
console.log("");
|
|
37
37
|
const otp = await promptOtp();
|
|
38
|
-
this.spinner.start(
|
|
38
|
+
this.spinner.start("Confirming OTP...");
|
|
39
39
|
try {
|
|
40
|
-
const otpResult = await this.api.post(
|
|
41
|
-
type:
|
|
40
|
+
const otpResult = await this.api.post("/client/banks/confirm-otp", {
|
|
41
|
+
type: "openapi",
|
|
42
42
|
bankShortName,
|
|
43
43
|
accountNumber,
|
|
44
44
|
otp,
|
|
45
|
-
},
|
|
45
|
+
}, "apikey");
|
|
46
46
|
const confirmed = otpResult?.data ?? otpResult;
|
|
47
|
-
this.spinner.succeed(
|
|
48
|
-
console.log(
|
|
49
|
-
kvLine(
|
|
50
|
-
kvLine(
|
|
51
|
-
kvLine(
|
|
47
|
+
this.spinner.succeed("Bank account verified!");
|
|
48
|
+
console.log("");
|
|
49
|
+
kvLine("Bank", bankShortName);
|
|
50
|
+
kvLine("Account", accountNumber);
|
|
51
|
+
kvLine("Name", accName);
|
|
52
52
|
if (confirmed?.vaNumber) {
|
|
53
|
-
kvLine(
|
|
53
|
+
kvLine("VA Number", chalk.cyan(confirmed.vaNumber));
|
|
54
54
|
}
|
|
55
|
-
kvLine(
|
|
56
|
-
console.log(
|
|
55
|
+
kvLine("Status", chalk.green("ACTIVE"));
|
|
56
|
+
console.log("");
|
|
57
57
|
}
|
|
58
58
|
catch (error) {
|
|
59
|
-
this.spinner.fail(
|
|
59
|
+
this.spinner.fail("OTP verification failed");
|
|
60
60
|
this.handleError(error);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
|
-
console.log(
|
|
65
|
-
kvLine(
|
|
66
|
-
kvLine(
|
|
67
|
-
kvLine(
|
|
68
|
-
kvLine(
|
|
69
|
-
kvLine(
|
|
70
|
-
console.log(
|
|
64
|
+
console.log("");
|
|
65
|
+
kvLine("Bank", bankShortName);
|
|
66
|
+
kvLine("Account", accountNumber);
|
|
67
|
+
kvLine("Name", accName);
|
|
68
|
+
kvLine("Public ID", bank?.publicId ?? "—");
|
|
69
|
+
kvLine("Status", chalk.green(bank?.status ?? "ACTIVE"));
|
|
70
|
+
console.log("");
|
|
71
71
|
}
|
|
72
|
-
markStepComplete(
|
|
73
|
-
success(
|
|
72
|
+
markStepComplete("bank");
|
|
73
|
+
success("Bank account added successfully.");
|
|
74
74
|
if (this.jsonOutput) {
|
|
75
75
|
this.outputJson(bank);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
catch (error) {
|
|
79
|
-
this.spinner.fail(
|
|
79
|
+
this.spinner.fail("Failed to add bank account. " + error?.message);
|
|
80
80
|
this.handleError(error);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/banks/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/banks/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/list.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAOxD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IACnD,OAAgB,WAAW,SAA6B;IAExD,OAAgB,QAAQ,WAAoC;IAEtD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwC1B"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { ApiKeyCommand } from
|
|
3
|
-
import { createTable, statusBadge } from
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { createTable, maskAccountNumber, statusBadge, } from "../../lib/formatters.js";
|
|
4
4
|
export default class BanksList extends ApiKeyCommand {
|
|
5
|
-
static description =
|
|
6
|
-
static examples = [
|
|
5
|
+
static description = "List your bank accounts";
|
|
6
|
+
static examples = ["<%= config.bin %> banks:list"];
|
|
7
7
|
async run() {
|
|
8
|
-
this.spinner.start(
|
|
8
|
+
this.spinner.start("Fetching bank accounts...");
|
|
9
9
|
try {
|
|
10
|
-
const data = await this.api.get(
|
|
11
|
-
const banks = data
|
|
10
|
+
const data = await this.api.get("/client/banks", "apikey");
|
|
11
|
+
const banks = Array.isArray(data)
|
|
12
|
+
? data
|
|
13
|
+
: (data?.message ?? data?.data ?? data);
|
|
12
14
|
this.spinner.stop();
|
|
13
15
|
if (!Array.isArray(banks) || banks.length === 0) {
|
|
14
|
-
this.log(`\n No bank accounts found. Run ${chalk.cyan(
|
|
16
|
+
this.log(`\n No bank accounts found. Run ${chalk.cyan("apipay banks:add")} to add one.\n`);
|
|
15
17
|
return;
|
|
16
18
|
}
|
|
17
|
-
console.log(
|
|
18
|
-
const table = createTable([
|
|
19
|
-
b.bankShortName ?? b.bankName ??
|
|
20
|
-
b.accountNumber
|
|
21
|
-
b.vaNumber ??
|
|
22
|
-
statusBadge(b.status ??
|
|
23
|
-
b.publicId
|
|
19
|
+
console.log("");
|
|
20
|
+
const table = createTable(["Bank", "Account #", "VA Number", "Status", "Public ID"], banks.map((b) => [
|
|
21
|
+
b.bankShortName ?? b.bankName ?? "—",
|
|
22
|
+
b.accountNumber ? maskAccountNumber(b.accountNumber) : "—",
|
|
23
|
+
b.vaNumber ?? "—",
|
|
24
|
+
statusBadge(b.status ?? "UNKNOWN"),
|
|
25
|
+
b.publicId ?? "—",
|
|
24
26
|
]));
|
|
25
27
|
console.log(table);
|
|
26
28
|
console.log(`\n ${chalk.gray(`${banks.length} bank account(s)`)}\n`);
|
|
@@ -29,7 +31,7 @@ export default class BanksList extends ApiKeyCommand {
|
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
catch (error) {
|
|
32
|
-
this.spinner.fail(
|
|
34
|
+
this.spinner.fail("Failed to fetch bank accounts");
|
|
33
35
|
this.handleError(error);
|
|
34
36
|
}
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/banks/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/banks/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,WAAW,GACX,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;IACnD,MAAM,CAAU,WAAW,GAAG,yBAAyB,CAAC;IAExD,MAAM,CAAU,QAAQ,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5D,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,GAAG,CACP,mCAAmC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CACjF,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,EACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACrB,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG;gBACpC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC1D,CAAC,CAAC,QAAQ,IAAI,GAAG;gBACjB,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;gBAClC,CAAC,CAAC,QAAQ,IAAI,GAAG;aACjB,CAAC,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-unconfirmed.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/remove-unconfirmed.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAQxD,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;IAChE,OAAgB,WAAW,SAC4B;IAEvD,OAAgB,QAAQ,WAAkD;IAEpE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C1B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { success } from "../../lib/formatters.js";
|
|
4
|
+
import { promptAccountNumber, promptBankSelection, promptConfirm, } from "../../lib/prompts.js";
|
|
5
|
+
export default class BanksRemoveUnconfirmed extends ApiKeyCommand {
|
|
6
|
+
static description = "Remove a bank account that hasn't confirmed OTP yet";
|
|
7
|
+
static examples = ["<%= config.bin %> banks:remove-unconfirmed"];
|
|
8
|
+
async run() {
|
|
9
|
+
console.log("");
|
|
10
|
+
console.log(chalk.bold(" Remove Unconfirmed Bank Account"));
|
|
11
|
+
console.log(chalk.gray(" ────────────────────────────────"));
|
|
12
|
+
console.log("");
|
|
13
|
+
// Step 1: Select bank
|
|
14
|
+
const bankShortName = await promptBankSelection();
|
|
15
|
+
// Step 2: Account details
|
|
16
|
+
const accountNumber = await promptAccountNumber(bankShortName);
|
|
17
|
+
const confirmed = await promptConfirm(`Remove unconfirmed ${chalk.bold(bankShortName)} account ${chalk.bold(accountNumber)}?`);
|
|
18
|
+
if (!confirmed) {
|
|
19
|
+
this.log("Cancelled.");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.spinner.start("Removing unconfirmed bank account...");
|
|
23
|
+
try {
|
|
24
|
+
const data = await this.api.post("/client/banks/remove-unconfirmed", {
|
|
25
|
+
bankShortName,
|
|
26
|
+
accountNumber,
|
|
27
|
+
}, "apikey");
|
|
28
|
+
const result = data?.data ?? data;
|
|
29
|
+
this.spinner.succeed("Unconfirmed bank account removed!");
|
|
30
|
+
success("Bank account has been removed.");
|
|
31
|
+
if (this.jsonOutput) {
|
|
32
|
+
this.outputJson(result);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
this.spinner.fail("Failed to remove unconfirmed bank account");
|
|
37
|
+
this.handleError(error);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=remove-unconfirmed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-unconfirmed.js","sourceRoot":"","sources":["../../../src/commands/banks/remove-unconfirmed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAChD,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;IAChE,MAAM,CAAU,WAAW,GAC1B,qDAAqD,CAAC;IAEvD,MAAM,CAAU,QAAQ,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1E,KAAK,CAAC,GAAG;QACR,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,sBAAsB;QACtB,MAAM,aAAa,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAElD,0BAA0B;QAC1B,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,MAAM,aAAa,CACpC,sBAAsB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CACvF,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAE3D,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC/B,kCAAkC,EAClC;gBACC,aAAa;gBACb,aAAa;aACb,EACD,QAAQ,CACR,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YAC1D,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/remove.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAIxD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACrD,OAAgB,WAAW,SAA2B;IAEtD,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAkD;IAEpE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8C1B"}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { Args } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { ApiKeyCommand } from
|
|
4
|
-
import { success, warn
|
|
5
|
-
import { promptConfirm, promptOtp } from
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
4
|
+
import { info, success, warn } from "../../lib/formatters.js";
|
|
5
|
+
import { promptConfirm, promptOtp } from "../../lib/prompts.js";
|
|
6
6
|
export default class BanksRemove extends ApiKeyCommand {
|
|
7
|
-
static description =
|
|
7
|
+
static description = "Remove a bank account";
|
|
8
8
|
static args = {
|
|
9
|
-
id: Args.string({ description:
|
|
9
|
+
id: Args.string({ description: "Bank public ID", required: true }),
|
|
10
10
|
};
|
|
11
|
-
static examples = [
|
|
11
|
+
static examples = ["<%= config.bin %> banks:remove <public-id>"];
|
|
12
12
|
async run() {
|
|
13
13
|
const { args } = await this.parse(BanksRemove);
|
|
14
|
-
warn(
|
|
14
|
+
warn("This will permanently disconnect this bank account from ApiPay.");
|
|
15
15
|
const confirmed = await promptConfirm(`Remove bank ${chalk.bold(args.id.slice(0, 8))}...?`);
|
|
16
16
|
if (!confirmed) {
|
|
17
|
-
this.log(
|
|
17
|
+
this.log("Cancelled.");
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
this.spinner.start(
|
|
20
|
+
this.spinner.start("Removing bank account...");
|
|
21
21
|
try {
|
|
22
|
-
const data = await this.api.delete(`/client/banks/${args.id}`,
|
|
22
|
+
const data = await this.api.delete(`/client/banks/${args.id}`, "apikey");
|
|
23
23
|
const result = data?.data ?? data;
|
|
24
24
|
// Some banks require OTP confirmation for deletion
|
|
25
25
|
if (result?.requiresOtp || result?.otpRequired) {
|
|
26
26
|
this.spinner.stop();
|
|
27
|
-
info(
|
|
27
|
+
info("OTP required to confirm deletion. Check your phone.");
|
|
28
28
|
const otp = await promptOtp();
|
|
29
|
-
this.spinner.start(
|
|
30
|
-
await this.api.post(`/client/banks/${args.id}/confirm-delete`, { otp },
|
|
31
|
-
this.spinner.succeed(
|
|
29
|
+
this.spinner.start("Confirming deletion...");
|
|
30
|
+
await this.api.post(`/client/banks/${args.id}/confirm-delete`, { otp }, "apikey");
|
|
31
|
+
this.spinner.succeed("Bank account removed");
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
this.spinner.succeed(
|
|
34
|
+
this.spinner.succeed("Bank account removed");
|
|
35
35
|
}
|
|
36
|
-
success(
|
|
36
|
+
success("Bank account has been disconnected.");
|
|
37
37
|
if (this.jsonOutput) {
|
|
38
38
|
this.outputJson({ success: true, id: args.id });
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
catch (error) {
|
|
42
|
-
this.spinner.fail(
|
|
42
|
+
this.spinner.fail("Failed to remove bank account");
|
|
43
43
|
this.handleError(error);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/banks/remove.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/banks/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACrD,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAC;IAEtD,MAAM,CAAU,IAAI,GAAG;QACtB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAChE,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1E,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,CAAC,iEAAiE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,MAAM,aAAa,CACpC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CACpD,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE/C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAElC,mDAAmD;YACnD,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBAE5D,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;gBAE9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAClB,iBAAiB,IAAI,CAAC,EAAE,iBAAiB,EACzC,EAAC,GAAG,EAAC,EACL,QAAQ,CACR,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,CAAC,qCAAqC,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/toggle.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/commands/banks/toggle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACrD,OAAgB,WAAW,SAC0B;IAErD,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAkD;IAEpE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyB1B"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { Args } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { ApiKeyCommand } from
|
|
4
|
-
import {
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
4
|
+
import { statusBadge, success } from "../../lib/formatters.js";
|
|
5
5
|
export default class BanksToggle extends ApiKeyCommand {
|
|
6
|
-
static description =
|
|
6
|
+
static description = "Toggle a bank account between ACTIVE and INACTIVE";
|
|
7
7
|
static args = {
|
|
8
|
-
id: Args.string({ description:
|
|
8
|
+
id: Args.string({ description: "Bank public ID", required: true }),
|
|
9
9
|
};
|
|
10
|
-
static examples = [
|
|
10
|
+
static examples = ["<%= config.bin %> banks:toggle <public-id>"];
|
|
11
11
|
async run() {
|
|
12
12
|
const { args } = await this.parse(BanksToggle);
|
|
13
|
-
this.spinner.start(
|
|
13
|
+
this.spinner.start("Toggling bank status...");
|
|
14
14
|
try {
|
|
15
|
-
const data = await this.api.patch(`/client/banks/${args.id}/status`, undefined,
|
|
16
|
-
const bank = data
|
|
17
|
-
this.spinner.succeed(
|
|
18
|
-
success(`Bank ${chalk.bold(args.id.slice(0, 8))}... is now ${statusBadge(bank
|
|
15
|
+
const data = await this.api.patch(`/client/banks/${args.id}/status`, undefined, "apikey");
|
|
16
|
+
const bank = data;
|
|
17
|
+
this.spinner.succeed("Bank status updated");
|
|
18
|
+
success(`Bank ${chalk.bold(args.id.slice(0, 8))}... is now ${statusBadge(bank.newStatus === 1 ? "ACTIVE" : "INACTIVE")}`);
|
|
19
19
|
if (this.jsonOutput) {
|
|
20
20
|
this.outputJson(bank);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
catch (error) {
|
|
24
|
-
this.spinner.fail(
|
|
24
|
+
this.spinner.fail("Failed to toggle bank status");
|
|
25
25
|
this.handleError(error);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/commands/banks/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/commands/banks/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACrD,MAAM,CAAU,WAAW,GAC1B,mDAAmD,CAAC;IAErD,MAAM,CAAU,IAAI,GAAG;QACtB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAChE,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE1E,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAChC,iBAAiB,IAAI,CAAC,EAAE,SAAS,EACjC,SAAS,EACT,QAAQ,CACR,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,CACN,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,WAAW,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAChH,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IACjD,OAAgB,WAAW,SAAmC;IAE9D,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,QAAQ,WAGtB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqC1B"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { Args } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { BaseCommand } from
|
|
4
|
-
import { getStore } from
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { BaseCommand } from "../../lib/base-command.js";
|
|
4
|
+
import { getStore } from "../../lib/config.js";
|
|
5
5
|
export default class ConfigGet extends BaseCommand {
|
|
6
|
-
static description =
|
|
6
|
+
static description = "Get a CLI configuration value";
|
|
7
7
|
static args = {
|
|
8
|
-
key: Args.string({
|
|
8
|
+
key: Args.string({
|
|
9
|
+
description: "Config key (e.g., apiBaseUrl, dashboardUrl)",
|
|
10
|
+
required: false,
|
|
11
|
+
}),
|
|
9
12
|
};
|
|
10
13
|
static examples = [
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
"<%= config.bin %> config:get apiBaseUrl",
|
|
15
|
+
"<%= config.bin %> config:get",
|
|
13
16
|
];
|
|
14
17
|
async run() {
|
|
15
18
|
const { args } = await this.parse(ConfigGet);
|
|
@@ -19,7 +22,7 @@ export default class ConfigGet extends BaseCommand {
|
|
|
19
22
|
if (value === undefined) {
|
|
20
23
|
this.error(`Key ${chalk.bold(args.key)} is not set.`, { exit: 1 });
|
|
21
24
|
}
|
|
22
|
-
if (typeof value ===
|
|
25
|
+
if (typeof value === "object") {
|
|
23
26
|
console.log(JSON.stringify(value, null, 2));
|
|
24
27
|
}
|
|
25
28
|
else {
|
|
@@ -33,14 +36,14 @@ export default class ConfigGet extends BaseCommand {
|
|
|
33
36
|
if (safe.auth?.accessToken) {
|
|
34
37
|
safe.auth = {
|
|
35
38
|
...safe.auth,
|
|
36
|
-
accessToken: safe.auth.accessToken.slice(0, 20) +
|
|
37
|
-
refreshToken: safe.auth.refreshToken?.slice(0, 20) +
|
|
39
|
+
accessToken: safe.auth.accessToken.slice(0, 20) + "...",
|
|
40
|
+
refreshToken: safe.auth.refreshToken?.slice(0, 20) + "...",
|
|
38
41
|
};
|
|
39
42
|
}
|
|
40
43
|
if (safe.apiKey?.secretKey) {
|
|
41
44
|
safe.apiKey = {
|
|
42
45
|
...safe.apiKey,
|
|
43
|
-
secretKey:
|
|
46
|
+
secretKey: "****",
|
|
44
47
|
};
|
|
45
48
|
}
|
|
46
49
|
console.log(JSON.stringify(safe, null, 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IACjD,MAAM,CAAU,WAAW,GAAG,+BAA+B,CAAC;IAE9D,MAAM,CAAU,IAAI,GAAG;QACtB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,6CAA6C;YAC1D,QAAQ,EAAE,KAAK;SACf,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG;QAC1B,yCAAyC;QACzC,8BAA8B;KAC9B,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;aAAM,CAAC;YACP,2CAA2C;YAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YACxB,MAAM,IAAI,GAAG,EAAC,GAAG,GAAG,EAAQ,CAAC;YAE7B,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,GAAG;oBACX,GAAG,IAAI,CAAC,IAAI;oBACZ,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oBACvD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;iBAC1D,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG;oBACb,GAAG,IAAI,CAAC,MAAM;oBACd,SAAS,EAAE,MAAM;iBACjB,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/commands/config/reset.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/commands/config/reset.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAKtD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IACnD,OAAgB,WAAW,SAC2B;IAEtD,OAAgB,QAAQ,WAAsC;IAExD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB1B"}
|