apipay 0.1.0 → 0.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 +1 -1
- 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.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 +12 -12
- 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 +1 -1
- package/dist/commands/config/set.d.ts.map +1 -1
- package/dist/commands/config/set.js +14 -11
- 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 +38 -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 +66 -55
- 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 +192 -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 +42 -38
- 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 +20 -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 +2 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +33 -34
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.js +11 -11
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/formatters.d.ts +2 -0
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +43 -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 +49 -28
- package/dist/lib/validators.js.map +1 -1
- package/oclif.manifest.json +38 -38
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/toggle.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/toggle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B1B"}
|
|
@@ -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 WebhooksToggle extends ApiKeyCommand {
|
|
6
|
-
static description =
|
|
6
|
+
static description = "Toggle a webhook between active and inactive";
|
|
7
7
|
static args = {
|
|
8
|
-
id: Args.string({ description:
|
|
8
|
+
id: Args.string({ description: "Webhook ID", required: true }),
|
|
9
9
|
};
|
|
10
|
-
static examples = [
|
|
10
|
+
static examples = ["<%= config.bin %> webhooks:toggle <webhook-id>"];
|
|
11
11
|
async run() {
|
|
12
12
|
const { args } = await this.parse(WebhooksToggle);
|
|
13
|
-
this.spinner.start(
|
|
13
|
+
this.spinner.start("Toggling webhook...");
|
|
14
14
|
try {
|
|
15
|
-
const data = await this.api.patch(`/client/webhooks/${args.id}/toggle`, undefined,
|
|
15
|
+
const data = await this.api.patch(`/client/webhooks/${args.id}/toggle`, undefined, "apikey");
|
|
16
16
|
const webhook = data?.data ?? data;
|
|
17
|
-
this.spinner.succeed(
|
|
18
|
-
success(`Webhook ${chalk.bold(args.id.slice(0, 8))}... is now ${statusBadge(webhook?.isActive ?
|
|
17
|
+
this.spinner.succeed("Webhook toggled");
|
|
18
|
+
success(`Webhook ${chalk.bold(args.id.slice(0, 8))}... is now ${statusBadge(webhook?.isActive ? "ACTIVE" : "INACTIVE")}`);
|
|
19
19
|
if (this.jsonOutput) {
|
|
20
20
|
this.outputJson(webhook);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
catch (error) {
|
|
24
|
-
this.spinner.fail(
|
|
24
|
+
this.spinner.fail("Failed to toggle webhook");
|
|
25
25
|
this.handleError(error);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/commands/webhooks/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/commands/webhooks/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,cAAe,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,8CAA8C,CAAC;IAE7E,MAAM,CAAU,IAAI,GAAG;QACtB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC5D,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9E,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAChC,oBAAoB,IAAI,CAAC,EAAE,SAAS,EACpC,SAAS,EACT,QAAQ,CACR,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,CACN,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAChH,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/update.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAIxD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,OAAgB,WAAW,SAA8C;IAEzE,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC1B"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Args } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { ApiKeyCommand } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { Args } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { ApiKeyCommand } from "../../lib/base-command.js";
|
|
4
|
+
import { kvLine, success } from "../../lib/formatters.js";
|
|
5
|
+
import { promptWebhookType, promptWebhookUrl } from "../../lib/prompts.js";
|
|
6
6
|
export default class WebhooksUpdate extends ApiKeyCommand {
|
|
7
|
-
static description =
|
|
7
|
+
static description = "Update a webhook URL or transaction type";
|
|
8
8
|
static args = {
|
|
9
|
-
id: Args.string({ description:
|
|
9
|
+
id: Args.string({ description: "Webhook ID", required: true }),
|
|
10
10
|
};
|
|
11
|
-
static examples = [
|
|
11
|
+
static examples = ["<%= config.bin %> webhooks:update <webhook-id>"];
|
|
12
12
|
async run() {
|
|
13
13
|
const { args } = await this.parse(WebhooksUpdate);
|
|
14
14
|
console.log(`\n Updating webhook ${chalk.cyan(args.id.slice(0, 8))}...\n`);
|
|
15
|
-
console.log(
|
|
15
|
+
console.log(" Leave blank to keep the current value.\n");
|
|
16
16
|
const webhookUrl = await promptWebhookUrl();
|
|
17
17
|
const type = await promptWebhookType();
|
|
18
|
-
this.spinner.start(
|
|
18
|
+
this.spinner.start("Updating webhook...");
|
|
19
19
|
try {
|
|
20
20
|
const body = {};
|
|
21
21
|
if (webhookUrl)
|
|
22
22
|
body.webhookUrl = webhookUrl;
|
|
23
23
|
if (type)
|
|
24
24
|
body.type = type;
|
|
25
|
-
const data = await this.api.patch(`/client/webhooks/${args.id}`, body,
|
|
25
|
+
const data = await this.api.patch(`/client/webhooks/${args.id}`, body, "apikey");
|
|
26
26
|
const webhook = data?.data ?? data;
|
|
27
|
-
this.spinner.succeed(
|
|
28
|
-
kvLine(
|
|
29
|
-
kvLine(
|
|
30
|
-
console.log(
|
|
31
|
-
success(
|
|
27
|
+
this.spinner.succeed("Webhook updated!");
|
|
28
|
+
kvLine("URL", webhook?.webhookUrl ?? webhookUrl);
|
|
29
|
+
kvLine("Type", webhook?.type ?? type);
|
|
30
|
+
console.log("");
|
|
31
|
+
success("Webhook configuration updated.");
|
|
32
32
|
if (this.jsonOutput) {
|
|
33
33
|
this.outputJson(webhook);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
catch (error) {
|
|
37
|
-
this.spinner.fail(
|
|
37
|
+
this.spinner.fail("Failed to update webhook");
|
|
38
38
|
this.handleError(error);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/webhooks/update.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/webhooks/update.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,MAAM,EAAE,OAAO,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAC;IAEzE,MAAM,CAAU,IAAI,GAAG;QACtB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC5D,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9E,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,MAAM,IAAI,GAA2B,EAAE,CAAC;YACxC,IAAI,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7C,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAE3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAChC,oBAAoB,IAAI,CAAC,EAAE,EAAE,EAC7B,IAAI,EACJ,QAAQ,CACR,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAI5D,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,oBAAoB;IACvD,OAAgB,WAAW,SAA8C;IAEzE,OAAgB,QAAQ,WAAgC;IAElD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B1B"}
|
package/dist/commands/whoami.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { AuthenticatedCommand } from
|
|
3
|
-
import { getAuth } from
|
|
4
|
-
import { kvLine } from
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { AuthenticatedCommand } from "../lib/base-command.js";
|
|
3
|
+
import { getAuth } from "../lib/config.js";
|
|
4
|
+
import { kvLine } from "../lib/formatters.js";
|
|
5
5
|
export default class Whoami extends AuthenticatedCommand {
|
|
6
|
-
static description =
|
|
7
|
-
static examples = [
|
|
6
|
+
static description = "Display the currently authenticated user";
|
|
7
|
+
static examples = ["<%= config.bin %> whoami"];
|
|
8
8
|
async run() {
|
|
9
|
-
this.spinner.start(
|
|
9
|
+
this.spinner.start("Fetching profile...");
|
|
10
10
|
try {
|
|
11
|
-
const data = await this.api.post(
|
|
11
|
+
const data = await this.api.post("/auth/me", undefined, "jwt");
|
|
12
12
|
const user = data?.data ?? data;
|
|
13
13
|
this.spinner.stop();
|
|
14
|
-
console.log(
|
|
15
|
-
console.log(chalk.bold(
|
|
16
|
-
console.log(chalk.gray(
|
|
17
|
-
kvLine(
|
|
18
|
-
kvLine(
|
|
19
|
-
kvLine(
|
|
20
|
-
kvLine(
|
|
21
|
-
kvLine(
|
|
22
|
-
console.log(
|
|
14
|
+
console.log("");
|
|
15
|
+
console.log(chalk.bold(" Current User"));
|
|
16
|
+
console.log(chalk.gray(" ────────────"));
|
|
17
|
+
kvLine("Email", user?.email ?? getAuth()?.email ?? "unknown");
|
|
18
|
+
kvLine("Name", user?.name ?? "—");
|
|
19
|
+
kvLine("Role", user?.role ?? "USER");
|
|
20
|
+
kvLine("Active", user?.isActive ? chalk.green("Yes") : chalk.red("No"));
|
|
21
|
+
kvLine("User ID", user?.id ?? "");
|
|
22
|
+
console.log("");
|
|
23
23
|
if (this.jsonOutput) {
|
|
24
24
|
this.outputJson(user);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
catch (error) {
|
|
28
|
-
this.spinner.fail(
|
|
28
|
+
this.spinner.fail("Failed to fetch profile");
|
|
29
29
|
this.handleError(error);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,oBAAoB;IACvD,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAC;IAEzE,MAAM,CAAU,QAAQ,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExD,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;YACrC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,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,yBAAyB,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ApiKeyCommand, AuthenticatedCommand, BaseCommand, } from "./lib/base-command.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,WAAW,GACX,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ApiKeyCommand, AuthenticatedCommand, BaseCommand, } from "./lib/base-command.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,WAAW,GACX,MAAM,uBAAuB,CAAC"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare class ApiError extends Error {
|
|
|
6
6
|
body: any;
|
|
7
7
|
constructor(statusCode: number, body: any);
|
|
8
8
|
}
|
|
9
|
-
type AuthMode =
|
|
9
|
+
type AuthMode = "jwt" | "apikey" | "none";
|
|
10
10
|
/**
|
|
11
11
|
* API Client
|
|
12
12
|
* Wraps fetch with auth, retry, and token refresh logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAE1B,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,GAAG;gBADT,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG;CAWjB;AAED,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C;;;GAGG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM;IAI5B,OAAO,CAAC,UAAU;IA2BlB;;OAEG;YACW,YAAY;IAmC1B;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACR,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KACZ,GACJ,OAAO,CAAC,CAAC,CAAC;IAsDb,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB;IAItD,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAE,QAAiB;IAInE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAE,QAAiB;IAIpE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB;CAGzD;AAID;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAKxC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA0BrD"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { getApiBaseUrl, getApiKey, getAuth, setAuth } from
|
|
3
|
-
import { MAX_RETRIES, RETRY_DELAY_MS } from
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { getApiBaseUrl, getApiKey, getAuth, setAuth } from "./config.js";
|
|
3
|
+
import { MAX_RETRIES, RETRY_DELAY_MS } from "./constants.js";
|
|
4
4
|
/**
|
|
5
5
|
* API error structure
|
|
6
6
|
*/
|
|
@@ -8,15 +8,15 @@ export class ApiError extends Error {
|
|
|
8
8
|
statusCode;
|
|
9
9
|
body;
|
|
10
10
|
constructor(statusCode, body) {
|
|
11
|
-
const msg = typeof body?.message ===
|
|
11
|
+
const msg = typeof body?.message === "string"
|
|
12
12
|
? body.message
|
|
13
|
-
: typeof body?.data?.message ===
|
|
13
|
+
: typeof body?.data?.message === "string"
|
|
14
14
|
? body.data.message
|
|
15
15
|
: `API request failed with status ${statusCode}`;
|
|
16
16
|
super(msg);
|
|
17
17
|
this.statusCode = statusCode;
|
|
18
18
|
this.body = body;
|
|
19
|
-
this.name =
|
|
19
|
+
this.name = "ApiError";
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
@@ -28,21 +28,23 @@ export class ApiClient {
|
|
|
28
28
|
constructor(baseUrl) {
|
|
29
29
|
this.baseUrl = baseUrl ?? getApiBaseUrl();
|
|
30
30
|
}
|
|
31
|
-
getHeaders(authMode) {
|
|
31
|
+
getHeaders(authMode, hasBody = false) {
|
|
32
32
|
const headers = {
|
|
33
|
-
|
|
34
|
-
Accept: 'application/json',
|
|
33
|
+
Accept: "application/json",
|
|
35
34
|
};
|
|
36
|
-
if (
|
|
35
|
+
if (hasBody) {
|
|
36
|
+
headers["Content-Type"] = "application/json";
|
|
37
|
+
}
|
|
38
|
+
if (authMode === "jwt") {
|
|
37
39
|
const auth = getAuth();
|
|
38
40
|
if (auth?.accessToken) {
|
|
39
|
-
headers[
|
|
41
|
+
headers["Authorization"] = `Bearer ${auth.accessToken}`;
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
|
-
else if (authMode ===
|
|
44
|
+
else if (authMode === "apikey") {
|
|
43
45
|
const key = getApiKey();
|
|
44
46
|
if (key?.accessKey && key?.secretKey) {
|
|
45
|
-
headers[
|
|
47
|
+
headers["Authorization"] = `Bearer ${key.accessKey}:${key.secretKey}`;
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
return headers;
|
|
@@ -56,9 +58,9 @@ export class ApiClient {
|
|
|
56
58
|
return false;
|
|
57
59
|
try {
|
|
58
60
|
const res = await fetch(`${this.baseUrl}/auth/refresh`, {
|
|
59
|
-
method:
|
|
61
|
+
method: "POST",
|
|
60
62
|
headers: {
|
|
61
|
-
|
|
63
|
+
"Content-Type": "application/json",
|
|
62
64
|
Authorization: `Bearer ${auth.accessToken}`,
|
|
63
65
|
},
|
|
64
66
|
body: JSON.stringify({ refreshToken: auth.refreshToken }),
|
|
@@ -86,18 +88,18 @@ export class ApiClient {
|
|
|
86
88
|
* Core request method with retry and auto-refresh.
|
|
87
89
|
*/
|
|
88
90
|
async request(method, path, options = {}) {
|
|
89
|
-
const { body, authMode =
|
|
91
|
+
const { body, authMode = "none", retries = MAX_RETRIES } = options;
|
|
90
92
|
const url = `${this.baseUrl}${path}`;
|
|
91
93
|
let lastError = null;
|
|
92
94
|
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
93
95
|
try {
|
|
94
96
|
const res = await fetch(url, {
|
|
95
97
|
method,
|
|
96
|
-
headers: this.getHeaders(authMode),
|
|
98
|
+
headers: this.getHeaders(authMode, !!body),
|
|
97
99
|
body: body ? JSON.stringify(body) : undefined,
|
|
98
100
|
});
|
|
99
101
|
// Auto-refresh on 401 for JWT
|
|
100
|
-
if (res.status === 401 && authMode ===
|
|
102
|
+
if (res.status === 401 && authMode === "jwt" && attempt === 0) {
|
|
101
103
|
const refreshed = await this.refreshToken();
|
|
102
104
|
if (refreshed)
|
|
103
105
|
continue;
|
|
@@ -113,7 +115,9 @@ export class ApiClient {
|
|
|
113
115
|
lastError = error;
|
|
114
116
|
if (error instanceof ApiError) {
|
|
115
117
|
// Don't retry client errors (4xx) except 429
|
|
116
|
-
if (error.statusCode >= 400 &&
|
|
118
|
+
if (error.statusCode >= 400 &&
|
|
119
|
+
error.statusCode < 500 &&
|
|
120
|
+
error.statusCode !== 429) {
|
|
117
121
|
throw error;
|
|
118
122
|
}
|
|
119
123
|
}
|
|
@@ -123,20 +127,20 @@ export class ApiClient {
|
|
|
123
127
|
}
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
|
-
throw lastError ?? new Error(
|
|
130
|
+
throw lastError ?? new Error("Request failed");
|
|
127
131
|
}
|
|
128
132
|
/* ===== Convenience methods ===== */
|
|
129
|
-
get(path, authMode =
|
|
130
|
-
return this.request(
|
|
133
|
+
get(path, authMode = "none") {
|
|
134
|
+
return this.request("GET", path, { authMode });
|
|
131
135
|
}
|
|
132
|
-
post(path, body, authMode =
|
|
133
|
-
return this.request(
|
|
136
|
+
post(path, body, authMode = "none") {
|
|
137
|
+
return this.request("POST", path, { body, authMode });
|
|
134
138
|
}
|
|
135
|
-
patch(path, body, authMode =
|
|
136
|
-
return this.request(
|
|
139
|
+
patch(path, body, authMode = "none") {
|
|
140
|
+
return this.request("PATCH", path, { body, authMode });
|
|
137
141
|
}
|
|
138
|
-
delete(path, authMode =
|
|
139
|
-
return this.request(
|
|
142
|
+
delete(path, authMode = "none") {
|
|
143
|
+
return this.request("DELETE", path, { authMode });
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
146
|
let _client = null;
|
|
@@ -156,21 +160,22 @@ export function formatApiError(error) {
|
|
|
156
160
|
if (error instanceof ApiError) {
|
|
157
161
|
switch (error.statusCode) {
|
|
158
162
|
case 401:
|
|
159
|
-
return `${chalk.red(
|
|
163
|
+
return `${chalk.red("Authentication failed.")} Run ${chalk.cyan("apipay login")} to sign in.`;
|
|
160
164
|
case 403:
|
|
161
|
-
return `${chalk.red(
|
|
165
|
+
return `${chalk.red("Permission denied.")} You don't have access to this resource.`;
|
|
162
166
|
case 404:
|
|
163
|
-
return chalk.red(
|
|
167
|
+
return chalk.red("Resource not found.");
|
|
164
168
|
case 409:
|
|
165
169
|
return chalk.red(error.message);
|
|
166
170
|
case 429:
|
|
167
|
-
return chalk.yellow(
|
|
171
|
+
return chalk.yellow("Rate limit exceeded. Please wait and try again.");
|
|
168
172
|
default:
|
|
169
173
|
return chalk.red(error.message);
|
|
170
174
|
}
|
|
171
175
|
}
|
|
172
|
-
if (error instanceof TypeError &&
|
|
173
|
-
|
|
176
|
+
if (error instanceof TypeError &&
|
|
177
|
+
error.cause?.code === "ECONNREFUSED") {
|
|
178
|
+
return `${chalk.red("Cannot reach the API server.")} Check your connection or run ${chalk.cyan("apipay config:set apiBaseUrl <url>")} to update the endpoint.`;
|
|
174
179
|
}
|
|
175
180
|
return chalk.red(String(error));
|
|
176
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Command } from
|
|
2
|
-
import { type Ora } from
|
|
3
|
-
import { ApiClient } from
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
import { type Ora } from "ora";
|
|
3
|
+
import { ApiClient } from "./api-client.js";
|
|
4
4
|
/**
|
|
5
5
|
* BaseCommand
|
|
6
6
|
* Shared base for all apipay CLI commands.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../../src/lib/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../../src/lib/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAQ,MAAM,aAAa,CAAC;AAE3C,OAAY,EAAC,KAAK,GAAG,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,EAAC,SAAS,EAA+B,MAAM,iBAAiB,CAAC;AAGxE;;;;GAIG;AACH,8BAAsB,WAAY,SAAQ,OAAO;IAChD,MAAM,CAAC,SAAS;;;MAUd;IAEF,SAAS,CAAC,GAAG,EAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAG,GAAG,CAAC;IACxB,SAAS,CAAC,UAAU,UAAS;IAC7B,SAAS,CAAC,WAAW,UAAS;IAExB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,2DAA2D;IAC3D,SAAS,CAAC,WAAW,IAAI,IAAI;IAS7B,2DAA2D;IAC3D,SAAS,CAAC,aAAa,IAAI,IAAI;IAU/B,yCAAyC;IACzC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAMrC,oDAAoD;IACpD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK;CAI5C;AAED;;;GAGG;AACH,8BAAsB,oBAAqB,SAAQ,WAAW;IACvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI3B;AAED;;;GAGG;AACH,8BAAsB,aAAc,SAAQ,WAAW;IAChD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B"}
|
package/dist/lib/base-command.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Command, Flags } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import ora from
|
|
4
|
-
import { formatApiError, getApiClient } from
|
|
5
|
-
import {
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { formatApiError, getApiClient } from "./api-client.js";
|
|
5
|
+
import { getApiKey, isLoggedIn } from "./config.js";
|
|
6
6
|
/**
|
|
7
7
|
* BaseCommand
|
|
8
8
|
* Shared base for all apipay CLI commands.
|
|
@@ -11,12 +11,12 @@ import { isLoggedIn, getApiKey } from './config.js';
|
|
|
11
11
|
export class BaseCommand extends Command {
|
|
12
12
|
static baseFlags = {
|
|
13
13
|
json: Flags.boolean({
|
|
14
|
-
description:
|
|
14
|
+
description: "Output raw JSON (for scripting/CI)",
|
|
15
15
|
default: false,
|
|
16
16
|
}),
|
|
17
17
|
quiet: Flags.boolean({
|
|
18
|
-
char:
|
|
19
|
-
description:
|
|
18
|
+
char: "q",
|
|
19
|
+
description: "Suppress interactive output",
|
|
20
20
|
default: false,
|
|
21
21
|
}),
|
|
22
22
|
};
|
|
@@ -35,14 +35,14 @@ export class BaseCommand extends Command {
|
|
|
35
35
|
/** Require JWT auth — exits with error if not logged in */
|
|
36
36
|
requireAuth() {
|
|
37
37
|
if (!isLoggedIn()) {
|
|
38
|
-
this.error(`${chalk.red(
|
|
38
|
+
this.error(`${chalk.red("Not logged in.")} Run ${chalk.cyan("apipay login")} first.`, { exit: 1 });
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
/** Require API key — exits with error if not configured */
|
|
42
42
|
requireApiKey() {
|
|
43
43
|
const key = getApiKey();
|
|
44
44
|
if (!key?.accessKey || !key?.secretKey) {
|
|
45
|
-
this.error(`${chalk.red(
|
|
45
|
+
this.error(`${chalk.red("No API key configured.")} Run ${chalk.cyan("apipay keys:create")} first.`, { exit: 1 });
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
/** Output JSON data or formatted text */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../src/lib/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../src/lib/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAe,MAAM,KAAK,CAAC;AAClC,OAAO,EAAY,cAAc,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,OAAO;IAChD,MAAM,CAAC,SAAS,GAAG;QAClB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE,KAAK;SACd,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,KAAK;SACd,CAAC;KACF,CAAC;IAEQ,GAAG,CAAa;IAChB,OAAO,CAAO;IACd,UAAU,GAAG,KAAK,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;IAE9B,KAAK,CAAC,IAAI;QACT,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAI,KAAa,CAAC,IAAI,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAI,KAAa,CAAC,KAAK,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC;IACrE,CAAC;IAED,2DAA2D;IACjD,WAAW;QACpB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CACT,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EACzE,EAAC,IAAI,EAAE,CAAC,EAAC,CACT,CAAC;QACH,CAAC;IACF,CAAC;IAED,2DAA2D;IACjD,aAAa;QACtB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CACT,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EACvF,EAAC,IAAI,EAAE,CAAC,EAAC,CACT,CAAC;QACH,CAAC;IACF,CAAC;IAED,yCAAyC;IAC/B,UAAU,CAAC,IAAS;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;IAED,oDAAoD;IAC1C,WAAW,CAAC,KAAc;QACnC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5B,CAAC;;AAGF;;;GAGG;AACH,MAAM,OAAgB,oBAAqB,SAAQ,WAAW;IAC7D,KAAK,CAAC,IAAI;QACT,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAgB,aAAc,SAAQ,WAAW;IACtD,KAAK,CAAC,IAAI;QACT,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;CACD"}
|
package/dist/lib/config.d.ts
CHANGED
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAe,KAAK,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE;QACN,cAAc,EAAE,SAAS,EAAE,CAAC;KAC5B,CAAC;CACF;AAyCD;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAQ1C;AAID,wBAAgB,OAAO,IAAI,UAAU,GAAG,SAAS,CAEhD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG9C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAGhC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAID,wBAAgB,SAAS,IAAI,YAAY,GAAG,SAAS,CAEpD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAGjD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAID,wBAAgB,iBAAiB,IAAI,SAAS,EAAE,CAK/C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAMtD;AAED,wBAAgB,qBAAqB,IAAI,SAAS,GAAG,IAAI,CAIxD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B"}
|