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.
Files changed (132) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/banks/add.d.ts +1 -1
  3. package/dist/commands/banks/add.d.ts.map +1 -1
  4. package/dist/commands/banks/add.js +43 -43
  5. package/dist/commands/banks/add.js.map +1 -1
  6. package/dist/commands/banks/list.d.ts +1 -1
  7. package/dist/commands/banks/list.d.ts.map +1 -1
  8. package/dist/commands/banks/list.js +19 -17
  9. package/dist/commands/banks/list.js.map +1 -1
  10. package/dist/commands/banks/remove.d.ts +1 -1
  11. package/dist/commands/banks/remove.d.ts.map +1 -1
  12. package/dist/commands/banks/remove.js +19 -19
  13. package/dist/commands/banks/remove.js.map +1 -1
  14. package/dist/commands/banks/toggle.d.ts +1 -1
  15. package/dist/commands/banks/toggle.d.ts.map +1 -1
  16. package/dist/commands/banks/toggle.js +12 -12
  17. package/dist/commands/banks/toggle.js.map +1 -1
  18. package/dist/commands/config/get.d.ts +1 -1
  19. package/dist/commands/config/get.d.ts.map +1 -1
  20. package/dist/commands/config/get.js +15 -12
  21. package/dist/commands/config/get.js.map +1 -1
  22. package/dist/commands/config/reset.d.ts +1 -1
  23. package/dist/commands/config/reset.d.ts.map +1 -1
  24. package/dist/commands/config/reset.js +12 -12
  25. package/dist/commands/config/reset.js.map +1 -1
  26. package/dist/commands/config/set.d.ts +1 -1
  27. package/dist/commands/config/set.d.ts.map +1 -1
  28. package/dist/commands/config/set.js +14 -11
  29. package/dist/commands/config/set.js.map +1 -1
  30. package/dist/commands/keys/create.d.ts +1 -1
  31. package/dist/commands/keys/create.d.ts.map +1 -1
  32. package/dist/commands/keys/create.js +38 -32
  33. package/dist/commands/keys/create.js.map +1 -1
  34. package/dist/commands/keys/list.d.ts +1 -1
  35. package/dist/commands/keys/list.d.ts.map +1 -1
  36. package/dist/commands/keys/list.js +15 -15
  37. package/dist/commands/keys/list.js.map +1 -1
  38. package/dist/commands/keys/revoke.d.ts +1 -1
  39. package/dist/commands/keys/revoke.d.ts.map +1 -1
  40. package/dist/commands/keys/revoke.js +25 -22
  41. package/dist/commands/keys/revoke.js.map +1 -1
  42. package/dist/commands/login.d.ts +2 -2
  43. package/dist/commands/login.d.ts.map +1 -1
  44. package/dist/commands/login.js +66 -55
  45. package/dist/commands/login.js.map +1 -1
  46. package/dist/commands/logout.d.ts +1 -1
  47. package/dist/commands/logout.d.ts.map +1 -1
  48. package/dist/commands/logout.js +12 -12
  49. package/dist/commands/logout.js.map +1 -1
  50. package/dist/commands/metrics/summary.d.ts +1 -1
  51. package/dist/commands/metrics/summary.d.ts.map +1 -1
  52. package/dist/commands/metrics/summary.js +17 -17
  53. package/dist/commands/metrics/summary.js.map +1 -1
  54. package/dist/commands/metrics/transactions.d.ts +1 -1
  55. package/dist/commands/metrics/transactions.d.ts.map +1 -1
  56. package/dist/commands/metrics/transactions.js +23 -20
  57. package/dist/commands/metrics/transactions.js.map +1 -1
  58. package/dist/commands/{init.d.ts → setup.d.ts} +4 -4
  59. package/dist/commands/setup.d.ts.map +1 -0
  60. package/dist/commands/setup.js +192 -0
  61. package/dist/commands/setup.js.map +1 -0
  62. package/dist/commands/status.d.ts +1 -1
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +42 -38
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/webhooks/add.d.ts +1 -1
  67. package/dist/commands/webhooks/add.d.ts.map +1 -1
  68. package/dist/commands/webhooks/add.js +34 -32
  69. package/dist/commands/webhooks/add.js.map +1 -1
  70. package/dist/commands/webhooks/history.d.ts +1 -1
  71. package/dist/commands/webhooks/history.d.ts.map +1 -1
  72. package/dist/commands/webhooks/history.js +19 -17
  73. package/dist/commands/webhooks/history.js.map +1 -1
  74. package/dist/commands/webhooks/list.d.ts +1 -1
  75. package/dist/commands/webhooks/list.d.ts.map +1 -1
  76. package/dist/commands/webhooks/list.js +20 -16
  77. package/dist/commands/webhooks/list.js.map +1 -1
  78. package/dist/commands/webhooks/remove.d.ts +1 -1
  79. package/dist/commands/webhooks/remove.d.ts.map +1 -1
  80. package/dist/commands/webhooks/remove.js +14 -14
  81. package/dist/commands/webhooks/remove.js.map +1 -1
  82. package/dist/commands/webhooks/resend.d.ts +1 -1
  83. package/dist/commands/webhooks/resend.d.ts.map +1 -1
  84. package/dist/commands/webhooks/resend.js +20 -11
  85. package/dist/commands/webhooks/resend.js.map +1 -1
  86. package/dist/commands/webhooks/toggle.d.ts +1 -1
  87. package/dist/commands/webhooks/toggle.d.ts.map +1 -1
  88. package/dist/commands/webhooks/toggle.js +12 -12
  89. package/dist/commands/webhooks/toggle.js.map +1 -1
  90. package/dist/commands/webhooks/update.d.ts +1 -1
  91. package/dist/commands/webhooks/update.d.ts.map +1 -1
  92. package/dist/commands/webhooks/update.js +17 -17
  93. package/dist/commands/webhooks/update.js.map +1 -1
  94. package/dist/commands/whoami.d.ts +1 -1
  95. package/dist/commands/whoami.d.ts.map +1 -1
  96. package/dist/commands/whoami.js +18 -18
  97. package/dist/commands/whoami.js.map +1 -1
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/lib/api-client.d.ts +1 -1
  103. package/dist/lib/api-client.d.ts.map +1 -1
  104. package/dist/lib/api-client.js +39 -34
  105. package/dist/lib/api-client.js.map +1 -1
  106. package/dist/lib/base-command.d.ts +3 -3
  107. package/dist/lib/base-command.d.ts.map +1 -1
  108. package/dist/lib/base-command.js +10 -10
  109. package/dist/lib/base-command.js.map +1 -1
  110. package/dist/lib/config.d.ts +2 -2
  111. package/dist/lib/config.d.ts.map +1 -1
  112. package/dist/lib/config.js +33 -34
  113. package/dist/lib/config.js.map +1 -1
  114. package/dist/lib/constants.js +11 -11
  115. package/dist/lib/constants.js.map +1 -1
  116. package/dist/lib/formatters.d.ts +2 -0
  117. package/dist/lib/formatters.d.ts.map +1 -1
  118. package/dist/lib/formatters.js +43 -37
  119. package/dist/lib/formatters.js.map +1 -1
  120. package/dist/lib/prompts.d.ts +1 -0
  121. package/dist/lib/prompts.d.ts.map +1 -1
  122. package/dist/lib/prompts.js +33 -18
  123. package/dist/lib/prompts.js.map +1 -1
  124. package/dist/lib/validators.d.ts +1 -0
  125. package/dist/lib/validators.d.ts.map +1 -1
  126. package/dist/lib/validators.js +49 -28
  127. package/dist/lib/validators.js.map +1 -1
  128. package/oclif.manifest.json +38 -38
  129. package/package.json +93 -82
  130. package/dist/commands/init.d.ts.map +0 -1
  131. package/dist/commands/init.js +0 -109
  132. package/dist/commands/init.js.map +0 -1
@@ -1,88 +1,92 @@
1
- import chalk from 'chalk';
2
- import { BaseCommand } from '../lib/base-command.js';
3
- import { isLoggedIn, getAuth, getApiKey, getCompletedSteps, getApiBaseUrl, } from '../lib/config.js';
4
- import { SETUP_STEPS } from '../lib/constants.js';
5
- import { kvLine, info } from '../lib/formatters.js';
1
+ import chalk from "chalk";
2
+ import { BaseCommand } from "../lib/base-command.js";
3
+ import { getApiBaseUrl, getApiKey, getAuth, getCompletedSteps, isLoggedIn, } from "../lib/config.js";
4
+ import { SETUP_STEPS } from "../lib/constants.js";
5
+ import { info, kvLine, maskSecret } from "../lib/formatters.js";
6
6
  export default class Status extends BaseCommand {
7
- static description = 'Show current setup status and configuration';
8
- static examples = ['<%= config.bin %> status'];
7
+ static description = "Show current setup status and configuration";
8
+ static examples = ["<%= config.bin %> status"];
9
9
  async run() {
10
10
  const auth = getAuth();
11
11
  const apiKey = getApiKey();
12
12
  const completed = getCompletedSteps();
13
13
  const allDone = SETUP_STEPS.every((s) => completed.includes(s));
14
- console.log('');
15
- console.log(chalk.bold(' ApiPay CLI Status'));
16
- console.log(chalk.gray(' ─────────────────'));
17
- console.log('');
14
+ console.log("");
15
+ console.log(chalk.bold(" ApiPay CLI Status"));
16
+ console.log(chalk.gray(" ─────────────────"));
17
+ console.log("");
18
18
  // Auth
19
19
  if (isLoggedIn() && auth) {
20
- kvLine('Login', `${chalk.green('')} ${auth.email}`);
20
+ kvLine("Login", `${chalk.green("")} ${auth.email}`);
21
21
  }
22
22
  else {
23
- kvLine('Login', `${chalk.red('')} Not logged in`);
23
+ kvLine("Login", `${chalk.red("")} Not logged in`);
24
24
  }
25
25
  // API Key
26
26
  if (apiKey?.accessKey) {
27
- kvLine('API Key', `${chalk.green('')} ${apiKey.accessKey.slice(0, 16)}...`);
27
+ kvLine("API Key", `${chalk.green("")} ${maskSecret(apiKey.accessKey)}`);
28
28
  }
29
29
  else {
30
- kvLine('API Key', `${chalk.red('')} Not configured`);
30
+ kvLine("API Key", `${chalk.red("")} Not configured`);
31
31
  }
32
32
  // Banks & Webhooks — fetch from API if authenticated
33
33
  if (apiKey?.accessKey && apiKey?.secretKey) {
34
34
  try {
35
- const bankData = await this.api.get('/client/banks', 'apikey');
36
- const banks = bankData?.data ?? bankData;
35
+ const bankData = await this.api.get("/client/banks", "apikey");
36
+ const banks = Array.isArray(bankData)
37
+ ? bankData
38
+ : (bankData?.message ?? bankData?.data ?? bankData);
37
39
  if (Array.isArray(banks)) {
38
- const active = banks.filter((b) => b.status === 'ACTIVE').length;
39
- const pending = banks.filter((b) => b.status === 'PENDING').length;
40
- kvLine('Banks', `${chalk.green('')} ${active} active${pending ? `, ${pending} pending` : ''}`);
40
+ const active = banks.filter((b) => b.status === "ACTIVE").length;
41
+ const pending = banks.filter((b) => b.status === "PENDING").length;
42
+ kvLine("Banks", `${chalk.green("")} ${active} active${pending ? `, ${pending} pending` : ""}`);
41
43
  }
42
44
  else {
43
- kvLine('Banks', `${chalk.gray('')} 0`);
45
+ kvLine("Banks", `${chalk.gray("")} 0`);
44
46
  }
45
47
  }
46
48
  catch {
47
- kvLine('Banks', chalk.gray('Unable to fetch'));
49
+ kvLine("Banks", chalk.gray("Unable to fetch"));
48
50
  }
49
51
  try {
50
- const whData = await this.api.get('/client/webhooks', 'apikey');
52
+ const whData = await this.api.get("/client/webhooks", "apikey");
51
53
  const webhooks = whData?.data ?? whData;
52
54
  if (Array.isArray(webhooks)) {
53
55
  const active = webhooks.filter((w) => w.isActive).length;
54
- kvLine('Webhooks', `${chalk.green('')} ${active} active`);
56
+ kvLine("Webhooks", `${chalk.green("")} ${active} active`);
55
57
  }
56
58
  else {
57
- kvLine('Webhooks', `${chalk.gray('')} 0`);
59
+ kvLine("Webhooks", `${chalk.gray("")} 0`);
58
60
  }
59
61
  }
60
62
  catch {
61
- kvLine('Webhooks', chalk.gray('Unable to fetch'));
63
+ kvLine("Webhooks", chalk.gray("Unable to fetch"));
62
64
  }
63
65
  }
64
66
  else {
65
- kvLine('Banks', `${chalk.gray('')} Requires API key`);
66
- kvLine('Webhooks', `${chalk.gray('')} Requires API key`);
67
+ kvLine("Banks", `${chalk.gray("")} Requires API key`);
68
+ kvLine("Webhooks", `${chalk.gray("")} Requires API key`);
67
69
  }
68
- console.log('');
70
+ console.log("");
69
71
  // Setup progress
70
- kvLine('Setup', allDone ? chalk.green('Complete') : `${completed.length}/${SETUP_STEPS.length} steps`);
71
- kvLine('API Endpoint', getApiBaseUrl());
72
- console.log('');
72
+ kvLine("Setup", allDone
73
+ ? chalk.green("Complete")
74
+ : `${completed.length}/${SETUP_STEPS.length} steps`);
75
+ kvLine("API Endpoint", getApiBaseUrl());
76
+ console.log("");
73
77
  if (!allDone) {
74
78
  const next = SETUP_STEPS.find((s) => !completed.includes(s));
75
79
  const hints = {
76
- login: 'apipay login',
77
- 'api-key': 'apipay keys:create',
78
- bank: 'apipay banks:add',
79
- webhook: 'apipay webhooks:add',
80
+ login: "apipay login",
81
+ "api-key": "apipay keys:create",
82
+ bank: "apipay banks:add",
83
+ webhook: "apipay webhooks:add",
80
84
  };
81
85
  if (next) {
82
86
  info(`Next step: ${chalk.cyan(hints[next])}`);
83
87
  }
84
- info(`Or run ${chalk.cyan('apipay init')} to continue the guided setup.`);
85
- console.log('');
88
+ info(`Or run ${chalk.cyan("apipay setup")} to continue the guided setup.`);
89
+ console.log("");
86
90
  }
87
91
  if (this.jsonOutput) {
88
92
  this.outputJson({
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ApiKeyCommand } from '../../lib/base-command.js';
1
+ import { ApiKeyCommand } from "../../lib/base-command.js";
2
2
  export default class WebhooksAdd extends ApiKeyCommand {
3
3
  static description: string;
4
4
  static examples: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1D,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACpD,OAAgB,WAAW,SAAsD;IAEjF,OAAgB,QAAQ,WAAsC;IAExD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwE3B"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AASxD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACrD,OAAgB,WAAW,SACyB;IAEpD,OAAgB,QAAQ,WAAsC;IAExD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0E1B"}
@@ -1,29 +1,31 @@
1
- import chalk from 'chalk';
2
- import { ApiKeyCommand } from '../../lib/base-command.js';
3
- import { markStepComplete } from '../../lib/config.js';
4
- import { success, kvLine, warn } from '../../lib/formatters.js';
5
- import { promptWebhookUrl, promptWebhookType, promptBankFromList } from '../../lib/prompts.js';
1
+ import chalk from "chalk";
2
+ import { ApiKeyCommand } from "../../lib/base-command.js";
3
+ import { markStepComplete } from "../../lib/config.js";
4
+ import { kvLine, success, warn } from "../../lib/formatters.js";
5
+ import { promptBankFromList, promptWebhookType, promptWebhookUrl, } from "../../lib/prompts.js";
6
6
  export default class WebhooksAdd extends ApiKeyCommand {
7
- static description = 'Register a webhook for transaction notifications';
8
- static examples = ['<%= config.bin %> webhooks:add'];
7
+ static description = "Register a webhook for transaction notifications";
8
+ static examples = ["<%= config.bin %> webhooks:add"];
9
9
  async run() {
10
- console.log('');
11
- console.log(chalk.bold(' Add Webhook'));
12
- console.log(chalk.gray(' ──────────'));
13
- console.log('');
10
+ console.log("");
11
+ console.log(chalk.bold(" Add Webhook"));
12
+ console.log(chalk.gray(" ──────────"));
13
+ console.log("");
14
14
  // Step 1: Fetch banks to select from
15
- this.spinner.start('Loading your bank accounts...');
15
+ this.spinner.start("Loading your bank accounts...");
16
16
  let banks;
17
17
  try {
18
- const data = await this.api.get('/client/banks', 'apikey');
19
- banks = data?.data ?? data;
18
+ const data = await this.api.get("/client/banks", "apikey");
19
+ banks = Array.isArray(data)
20
+ ? data
21
+ : (data?.message ?? data?.data ?? data);
20
22
  this.spinner.stop();
21
23
  if (!Array.isArray(banks) || banks.length === 0) {
22
- this.error(`No bank accounts found. Run ${chalk.cyan('apipay banks:add')} first.`, { exit: 1 });
24
+ this.error(`No bank accounts found. Run ${chalk.cyan("apipay banks:add")} first.`, { exit: 1 });
23
25
  }
24
26
  }
25
27
  catch (error) {
26
- this.spinner.fail('Failed to load banks');
28
+ this.spinner.fail("Failed to load banks");
27
29
  this.handleError(error);
28
30
  return; // unreachable, handleError throws
29
31
  }
@@ -34,31 +36,31 @@ export default class WebhooksAdd extends ApiKeyCommand {
34
36
  // Step 4: Type
35
37
  const type = await promptWebhookType();
36
38
  // Step 5: Create
37
- this.spinner.start('Creating webhook...');
39
+ this.spinner.start("Creating webhook...");
38
40
  try {
39
- const data = await this.api.post('/client/webhooks', { webhookUrl, bankPublicId, type }, 'apikey');
41
+ const data = await this.api.post("/client/webhooks", { webhookUrl, bankPublicId, type }, "apikey");
40
42
  const webhook = data?.data ?? data;
41
- this.spinner.succeed('Webhook created!');
42
- console.log('');
43
- kvLine('Webhook URL', webhookUrl);
44
- kvLine('Type', type);
45
- kvLine('Bank', bankPublicId.slice(0, 8) + '...');
43
+ this.spinner.succeed("Webhook created!");
44
+ console.log("");
45
+ kvLine("Webhook URL", webhookUrl);
46
+ kvLine("Type", type);
47
+ kvLine("Bank", bankPublicId.slice(0, 8) + "...");
46
48
  if (webhook?.secret) {
47
- kvLine('HMAC Secret', chalk.yellow(webhook.secret));
48
- console.log('');
49
- warn('Save your HMAC secret — use it to verify webhook signatures.');
50
- console.log(` Header: ${chalk.cyan('ApiPay-Signature')}`);
49
+ kvLine("HMAC Secret", chalk.yellow(webhook.secret));
50
+ console.log("");
51
+ warn("Save your HMAC secret — use it to verify webhook signatures.");
52
+ console.log(` Header: ${chalk.cyan("ApiPay-Signature")}`);
51
53
  }
52
- kvLine('Status', chalk.green('ACTIVE'));
53
- console.log('');
54
- markStepComplete('webhook');
55
- success('Webhook registered successfully.');
54
+ kvLine("Status", chalk.green("ACTIVE"));
55
+ console.log("");
56
+ markStepComplete("webhook");
57
+ success("Webhook registered successfully.");
56
58
  if (this.jsonOutput) {
57
59
  this.outputJson(webhook);
58
60
  }
59
61
  }
60
62
  catch (error) {
61
- this.spinner.fail('Failed to create webhook');
63
+ this.spinner.fail("Failed to create webhook");
62
64
  this.handleError(error);
63
65
  }
64
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/webhooks/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACpD,MAAM,CAAU,WAAW,GAAG,kDAAkD,CAAC;IAEjF,MAAM,CAAU,QAAQ,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9D,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,qCAAqC;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpD,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC3D,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,KAAK,CACR,+BAA+B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EACtE,EAAE,IAAI,EAAE,CAAC,EAAE,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,kCAAkC;QAC5C,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAErD,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAE5C,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAEvC,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,kBAAkB,EAClB,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAClC,QAAQ,CACT,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,CAAC,8DAA8D,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,CAAC,kCAAkC,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/webhooks/add.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ApiKeyCommand } from '../../lib/base-command.js';
1
+ import { ApiKeyCommand } from "../../lib/base-command.js";
2
2
  export default class WebhooksHistory extends ApiKeyCommand {
3
3
  static description: string;
4
4
  static args: {
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IACxD,OAAgB,WAAW,SAAyC;IAEpE,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAuD;IAEzE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC3B"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IACzD,OAAgB,WAAW,SAAyC;IAEpE,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAEtB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyC1B"}
@@ -1,30 +1,32 @@
1
- import { Args } from '@oclif/core';
2
- import chalk from 'chalk';
3
- import { ApiKeyCommand } from '../../lib/base-command.js';
4
- import { createTable, formatDate, statusBadge } from '../../lib/formatters.js';
1
+ import { Args } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { ApiKeyCommand } from "../../lib/base-command.js";
4
+ import { createTable, formatDate, statusBadge } from "../../lib/formatters.js";
5
5
  export default class WebhooksHistory extends ApiKeyCommand {
6
- static description = 'View delivery history for a webhook';
6
+ static description = "View delivery history for a webhook";
7
7
  static args = {
8
- id: Args.string({ description: 'Webhook ID', required: true }),
8
+ id: Args.string({ description: "Webhook ID", required: true }),
9
9
  };
10
- static examples = ['<%= config.bin %> webhooks:history <webhook-id>'];
10
+ static examples = [
11
+ "<%= config.bin %> webhooks:history <webhook-id>",
12
+ ];
11
13
  async run() {
12
14
  const { args } = await this.parse(WebhooksHistory);
13
- this.spinner.start('Fetching delivery history...');
15
+ this.spinner.start("Fetching delivery history...");
14
16
  try {
15
- const data = await this.api.get(`/client/webhooks/${args.id}/history`, 'apikey');
17
+ const data = await this.api.get(`/client/webhooks/${args.id}/history`, "apikey");
16
18
  const deliveries = data?.data ?? data;
17
19
  this.spinner.stop();
18
20
  if (!Array.isArray(deliveries) || deliveries.length === 0) {
19
- this.log('\n No delivery history yet.\n');
21
+ this.log("\n No delivery history yet.\n");
20
22
  return;
21
23
  }
22
- console.log('');
23
- const table = createTable(['ID', 'Status', 'HTTP Code', 'Retries', 'Created'], deliveries.map((d) => [
24
- d.id ? d.id.slice(0, 8) + '...' : '',
25
- statusBadge(d.status ?? 'UNKNOWN'),
26
- d.responseCode?.toString() ?? '',
27
- d.retryCount?.toString() ?? '0',
24
+ console.log("");
25
+ const table = createTable(["ID", "Status", "HTTP Code", "Retries", "Created"], deliveries.map((d) => [
26
+ d.id ? d.id.slice(0, 8) + "..." : "",
27
+ statusBadge(d.status ?? "UNKNOWN"),
28
+ d.responseCode?.toString() ?? "",
29
+ d.retryCount?.toString() ?? "0",
28
30
  formatDate(d.createdAt),
29
31
  ]));
30
32
  console.log(table);
@@ -34,7 +36,7 @@ export default class WebhooksHistory extends ApiKeyCommand {
34
36
  }
35
37
  }
36
38
  catch (error) {
37
- this.spinner.fail('Failed to fetch history');
39
+ this.spinner.fail("Failed to fetch history");
38
40
  this.handleError(error);
39
41
  }
40
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/commands/webhooks/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,qCAAqC,CAAC;IAEpE,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC/D,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAE/E,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACvB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EACnD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACzB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG;gBACrC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;gBAClC,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG;gBACjC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG;gBAC/B,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;aACxB,CAAC,CACH,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/commands/webhooks/history.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,UAAU,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAE7E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IACzD,MAAM,CAAU,WAAW,GAAG,qCAAqC,CAAC;IAEpE,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;QAC1B,iDAAiD;KACjD,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEnD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC9B,oBAAoB,IAAI,CAAC,EAAE,UAAU,EACrC,QAAQ,CACR,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAC3C,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EACnD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG;gBACrC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;gBAClC,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG;gBACjC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG;gBAC/B,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;aACvB,CAAC,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC7B,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"}
@@ -1,4 +1,4 @@
1
- import { ApiKeyCommand } from '../../lib/base-command.js';
1
+ import { ApiKeyCommand } from "../../lib/base-command.js";
2
2
  export default class WebhooksList extends ApiKeyCommand {
3
3
  static description: string;
4
4
  static examples: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACrD,OAAgB,WAAW,SAAmC;IAE9D,OAAgB,QAAQ,WAAuC;IAEzD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC3B"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACtD,OAAgB,WAAW,SAAmC;IAE9D,OAAgB,QAAQ,WAAuC;IAEzD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0C1B"}
@@ -1,26 +1,30 @@
1
- import chalk from 'chalk';
2
- import { ApiKeyCommand } from '../../lib/base-command.js';
3
- import { createTable, statusBadge } from '../../lib/formatters.js';
1
+ import chalk from "chalk";
2
+ import { ApiKeyCommand } from "../../lib/base-command.js";
3
+ import { createTable, statusBadge } from "../../lib/formatters.js";
4
4
  export default class WebhooksList extends ApiKeyCommand {
5
- static description = 'List your registered webhooks';
6
- static examples = ['<%= config.bin %> webhooks:list'];
5
+ static description = "List your registered webhooks";
6
+ static examples = ["<%= config.bin %> webhooks:list"];
7
7
  async run() {
8
- this.spinner.start('Fetching webhooks...');
8
+ this.spinner.start("Fetching webhooks...");
9
9
  try {
10
- const data = await this.api.get('/client/webhooks', 'apikey');
10
+ const data = await this.api.get("/client/webhooks", "apikey");
11
11
  const webhooks = data?.data ?? data;
12
12
  this.spinner.stop();
13
13
  if (!Array.isArray(webhooks) || webhooks.length === 0) {
14
- this.log(`\n No webhooks found. Run ${chalk.cyan('apipay webhooks:add')} to register one.\n`);
14
+ this.log(`\n No webhooks found. Run ${chalk.cyan("apipay webhooks:add")} to register one.\n`);
15
15
  return;
16
16
  }
17
- console.log('');
18
- const table = createTable(['ID', 'URL', 'Type', 'Status', 'Bank'], webhooks.map((w) => [
19
- w.id ? w.id.slice(0, 8) + '...' : '',
20
- w.webhookUrl ? (w.webhookUrl.length > 40 ? w.webhookUrl.slice(0, 40) + '...' : w.webhookUrl) : '—',
21
- w.type ?? '—',
22
- statusBadge(w.isActive ? 'ACTIVE' : 'INACTIVE'),
23
- w.bankAccount?.bankShortName ?? w.bankAccountId?.toString() ?? '—',
17
+ console.log("");
18
+ const table = createTable(["ID", "URL", "Type", "Status", "Bank"], webhooks.map((w) => [
19
+ w.id ? w.id.slice(0, 8) + "..." : "",
20
+ w.webhookUrl
21
+ ? w.webhookUrl.length > 40
22
+ ? w.webhookUrl.slice(0, 40) + "..."
23
+ : w.webhookUrl
24
+ : "—",
25
+ w.type ?? "—",
26
+ statusBadge(w.isActive ? "ACTIVE" : "INACTIVE"),
27
+ w.bankAccount?.bankShortName ?? w.bankAccountId?.toString() ?? "—",
24
28
  ]));
25
29
  console.log(table);
26
30
  console.log(`\n ${chalk.gray(`${webhooks.length} webhook(s)`)}\n`);
@@ -29,7 +33,7 @@ export default class WebhooksList extends ApiKeyCommand {
29
33
  }
30
34
  }
31
35
  catch (error) {
32
- this.spinner.fail('Failed to fetch webhooks');
36
+ this.spinner.fail("Failed to fetch webhooks");
33
37
  this.handleError(error);
34
38
  }
35
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/webhooks/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACrD,MAAM,CAAU,WAAW,GAAG,+BAA+B,CAAC;IAE9D,MAAM,CAAU,QAAQ,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/D,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,GAAG,CACN,8BAA8B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CACrF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACvB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG;gBACrC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;gBAClG,CAAC,CAAC,IAAI,IAAI,GAAG;gBACb,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC/C,CAAC,CAAC,WAAW,EAAE,aAAa,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,GAAG;aACnE,CAAC,CACH,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/webhooks/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa;IACtD,MAAM,CAAU,WAAW,GAAG,+BAA+B,CAAC;IAE9D,MAAM,CAAU,QAAQ,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/D,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAEpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,GAAG,CACP,8BAA8B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CACpF,CAAC;gBACF,OAAO;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CACxB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACxB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG;gBACrC,CAAC,CAAC,UAAU;oBACX,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE;wBACzB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBACnC,CAAC,CAAC,CAAC,CAAC,UAAU;oBACf,CAAC,CAAC,GAAG;gBACN,CAAC,CAAC,IAAI,IAAI,GAAG;gBACb,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC/C,CAAC,CAAC,WAAW,EAAE,aAAa,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,GAAG;aAClE,CAAC,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3B,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,4 +1,4 @@
1
- import { ApiKeyCommand } from '../../lib/base-command.js';
1
+ import { ApiKeyCommand } from "../../lib/base-command.js";
2
2
  export default class WebhooksRemove extends ApiKeyCommand {
3
3
  static description: string;
4
4
  static args: {
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACvD,OAAgB,WAAW,SAAsB;IAEjD,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAIxD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,OAAgB,WAAW,SAAsB;IAEjD,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B1B"}
@@ -1,32 +1,32 @@
1
- import { Args } from '@oclif/core';
2
- import chalk from 'chalk';
3
- import { ApiKeyCommand } from '../../lib/base-command.js';
4
- import { success } from '../../lib/formatters.js';
5
- import { promptConfirm } from '../../lib/prompts.js';
1
+ import { Args } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { ApiKeyCommand } from "../../lib/base-command.js";
4
+ import { success } from "../../lib/formatters.js";
5
+ import { promptConfirm } from "../../lib/prompts.js";
6
6
  export default class WebhooksRemove extends ApiKeyCommand {
7
- static description = 'Remove a webhook';
7
+ static description = "Remove a webhook";
8
8
  static args = {
9
- id: Args.string({ description: 'Webhook ID', required: true }),
9
+ id: Args.string({ description: "Webhook ID", required: true }),
10
10
  };
11
- static examples = ['<%= config.bin %> webhooks:remove <webhook-id>'];
11
+ static examples = ["<%= config.bin %> webhooks:remove <webhook-id>"];
12
12
  async run() {
13
13
  const { args } = await this.parse(WebhooksRemove);
14
14
  const confirmed = await promptConfirm(`Remove webhook ${chalk.bold(args.id.slice(0, 8))}...? This cannot be undone.`);
15
15
  if (!confirmed) {
16
- this.log('Cancelled.');
16
+ this.log("Cancelled.");
17
17
  return;
18
18
  }
19
- this.spinner.start('Removing webhook...');
19
+ this.spinner.start("Removing webhook...");
20
20
  try {
21
- await this.api.delete(`/client/webhooks/${args.id}`, 'apikey');
22
- this.spinner.succeed('Webhook removed');
23
- success('Webhook has been permanently deleted.');
21
+ await this.api.delete(`/client/webhooks/${args.id}`, "apikey");
22
+ this.spinner.succeed("Webhook removed");
23
+ success("Webhook has been permanently deleted.");
24
24
  if (this.jsonOutput) {
25
25
  this.outputJson({ success: true, id: args.id });
26
26
  }
27
27
  }
28
28
  catch (error) {
29
- this.spinner.fail('Failed to remove webhook');
29
+ this.spinner.fail("Failed to remove webhook");
30
30
  this.handleError(error);
31
31
  }
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/webhooks/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACvD,MAAM,CAAU,WAAW,GAAG,kBAAkB,CAAC;IAEjD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC/D,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9E,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAC/E,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/webhooks/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,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,kBAAkB,CAAC;IAEjD,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,MAAM,SAAS,GAAG,MAAM,aAAa,CACpC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAC9E,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,qBAAqB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YAEjD,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,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ApiKeyCommand } from '../../lib/base-command.js';
1
+ import { ApiKeyCommand } from "../../lib/base-command.js";
2
2
  export default class WebhooksResend extends ApiKeyCommand {
3
3
  static description: string;
4
4
  static args: {
@@ -1 +1 @@
1
- {"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/resend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACvD,OAAgB,WAAW,SAAsC;IAEjE,OAAgB,IAAI;;MAElB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
1
+ {"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../../src/commands/webhooks/resend.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAIxD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,OAAgB,WAAW,SAAsC;IAEjE,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,QAAQ,WAAsD;IAExE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC1B"}
@@ -1,26 +1,35 @@
1
- import { Args } from '@oclif/core';
2
- import { ApiKeyCommand } from '../../lib/base-command.js';
3
- import { success } from '../../lib/formatters.js';
1
+ import { Args } from "@oclif/core";
2
+ import { ApiKeyCommand } from "../../lib/base-command.js";
3
+ import { success } from "../../lib/formatters.js";
4
+ import { promptConfirm } from "../../lib/prompts.js";
4
5
  export default class WebhooksResend extends ApiKeyCommand {
5
- static description = 'Resend a failed webhook delivery';
6
+ static description = "Resend a failed webhook delivery";
6
7
  static args = {
7
- historyId: Args.string({ description: 'Delivery history ID', required: true }),
8
+ historyId: Args.string({
9
+ description: "Delivery history ID",
10
+ required: true,
11
+ }),
8
12
  };
9
- static examples = ['<%= config.bin %> webhooks:resend <history-id>'];
13
+ static examples = ["<%= config.bin %> webhooks:resend <history-id>"];
10
14
  async run() {
11
15
  const { args } = await this.parse(WebhooksResend);
12
- this.spinner.start('Resending webhook...');
16
+ const confirmed = await promptConfirm(`Resend delivery ${args.historyId.slice(0, 8)}...? This will fire a real HTTP request to the webhook endpoint.`);
17
+ if (!confirmed) {
18
+ this.log("Cancelled.");
19
+ return;
20
+ }
21
+ this.spinner.start("Resending webhook...");
13
22
  try {
14
- const data = await this.api.post(`/client/webhooks/history/${args.historyId}/resend`, undefined, 'apikey');
23
+ const data = await this.api.post(`/client/webhooks/history/${args.historyId}/resend`, undefined, "apikey");
15
24
  const result = data?.data ?? data;
16
- this.spinner.succeed('Webhook resent');
17
- success('Delivery has been re-queued.');
25
+ this.spinner.succeed("Webhook resent");
26
+ success("Delivery has been re-queued.");
18
27
  if (this.jsonOutput) {
19
28
  this.outputJson(result);
20
29
  }
21
30
  }
22
31
  catch (error) {
23
- this.spinner.fail('Failed to resend webhook');
32
+ this.spinner.fail("Failed to resend webhook");
24
33
  this.handleError(error);
25
34
  }
26
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resend.js","sourceRoot":"","sources":["../../../src/commands/webhooks/resend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACvD,MAAM,CAAU,WAAW,GAAG,kCAAkC,CAAC;IAEjE,MAAM,CAAU,IAAI,GAAG;QACrB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC/E,CAAC;IAEF,MAAM,CAAU,QAAQ,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9E,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC9B,4BAA4B,IAAI,CAAC,SAAS,SAAS,EACnD,SAAS,EACT,QAAQ,CACT,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACvC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"resend.js","sourceRoot":"","sources":["../../../src/commands/webhooks/resend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IACxD,MAAM,CAAU,WAAW,GAAG,kCAAkC,CAAC;IAEjE,MAAM,CAAU,IAAI,GAAG;QACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACd,CAAC;KACF,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,MAAM,SAAS,GAAG,MAAM,aAAa,CACpC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kEAAkE,CAC/G,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,sBAAsB,CAAC,CAAC;QAE3C,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC/B,4BAA4B,IAAI,CAAC,SAAS,SAAS,EACnD,SAAS,EACT,QAAQ,CACR,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACvC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAExC,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,0BAA0B,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACF,CAAC"}