@solidnumber/cli 1.4.2 → 1.4.4

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 CHANGED
@@ -109,6 +109,16 @@ solid agent mission "Create a Valentine's campaign for VIP customers"
109
109
  | `solid insights list` | AI-generated conversation insights |
110
110
  | `solid insights approve <id>` | Approve and apply to KB |
111
111
 
112
+ ### Operations
113
+ | Command | Description |
114
+ |---------|-------------|
115
+ | `solid accounting sync` | QuickBooks/Xero sync |
116
+ | `solid accounting status` | Sync connection status |
117
+ | `solid webhooks list` | List webhooks |
118
+ | `solid webhooks create <url>` | Create webhook |
119
+ | `solid support list` | Support tickets |
120
+ | `solid export` | Export all data (GDPR/backup) |
121
+
112
122
  ### Platform
113
123
  | Command | Description |
114
124
  |---------|-------------|
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const auditCommand: Command;
3
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAiCrB,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.auditCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const config_1 = require("../lib/config");
43
+ const api_client_1 = require("../lib/api-client");
44
+ const ui_1 = require("../lib/ui");
45
+ exports.auditCommand = new commander_1.Command('audit')
46
+ .description('Activity log — who changed what, when')
47
+ .option('--limit <n>', 'Number of entries', '20')
48
+ .option('--user <email>', 'Filter by user email')
49
+ .option('--action <type>', 'Filter by action (create, update, delete)')
50
+ .option('--json', 'JSON output')
51
+ .action(async (options) => {
52
+ if (!config_1.config.isLoggedIn()) {
53
+ console.error(chalk_1.default.red('Not logged in.'));
54
+ process.exit(1);
55
+ }
56
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
57
+ const spinner = ora('Loading audit log...').start();
58
+ try {
59
+ const params = { limit: options.limit };
60
+ if (options.user)
61
+ params.user_email = options.user;
62
+ if (options.action)
63
+ params.action_type = options.action;
64
+ const res = await api_client_1.apiClient.get('/api/v1/audit/log', { params });
65
+ spinner.stop();
66
+ if (options.json) {
67
+ console.log(JSON.stringify(res.data, null, 2));
68
+ return;
69
+ }
70
+ const entries = res.data.entries || res.data.logs || res.data.items || [];
71
+ console.log('');
72
+ console.log(ui_1.ui.header(`Audit Log (${entries.length})`));
73
+ if (entries.length === 0) {
74
+ console.log(chalk_1.default.dim(' No activity recorded yet.'));
75
+ }
76
+ else {
77
+ for (const entry of entries) {
78
+ const action = entry.action || entry.action_type || '';
79
+ const color = action === 'delete' ? chalk_1.default.red : action === 'create' ? chalk_1.default.green : chalk_1.default.yellow;
80
+ const user = entry.user_email || entry.user || '';
81
+ const entity = entry.entity_type || entry.resource || '';
82
+ const time = entry.created_at || entry.timestamp || '';
83
+ console.log(` ${chalk_1.default.dim(time)} ${color(action.padEnd(8))} ${entity} ${chalk_1.default.dim(user)}`);
84
+ }
85
+ }
86
+ console.log('');
87
+ }
88
+ catch (e) {
89
+ spinner.fail(chalk_1.default.red('Failed'));
90
+ console.error((0, api_client_1.handleApiError)(e).message);
91
+ }
92
+ });
93
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const billingCommand: Command;
3
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,cAAc,SAE4B,CAAC"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.billingCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const config_1 = require("../lib/config");
43
+ const api_client_1 = require("../lib/api-client");
44
+ const ui_1 = require("../lib/ui");
45
+ exports.billingCommand = new commander_1.Command('billing')
46
+ .description('Subscription, usage, and invoices')
47
+ .action(async () => { exports.billingCommand.outputHelp(); });
48
+ exports.billingCommand.command('status').description('Current subscription and usage')
49
+ .option('--json', 'JSON output')
50
+ .action(async (options) => {
51
+ if (!config_1.config.isLoggedIn()) {
52
+ console.error(chalk_1.default.red('Not logged in.'));
53
+ process.exit(1);
54
+ }
55
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
56
+ const spinner = ora('Loading billing...').start();
57
+ try {
58
+ const res = await api_client_1.apiClient.get('/api/v1/billing/subscription');
59
+ spinner.stop();
60
+ if (options.json) {
61
+ console.log(JSON.stringify(res.data, null, 2));
62
+ return;
63
+ }
64
+ const d = res.data;
65
+ console.log('');
66
+ console.log(ui_1.ui.header('Subscription'));
67
+ if (d.tier || d.plan)
68
+ console.log(ui_1.ui.label('Tier', chalk_1.default.hex('#818cf8')(d.tier || d.plan)));
69
+ if (d.status)
70
+ console.log(ui_1.ui.label('Status', d.status === 'active' ? chalk_1.default.green(d.status) : chalk_1.default.yellow(d.status)));
71
+ if (d.current_period_end)
72
+ console.log(ui_1.ui.label('Renews', d.current_period_end));
73
+ if (d.amount)
74
+ console.log(ui_1.ui.label('Amount', chalk_1.default.green(`$${d.amount}/mo`)));
75
+ console.log('');
76
+ }
77
+ catch (e) {
78
+ spinner.fail(chalk_1.default.red('Failed'));
79
+ console.error((0, api_client_1.handleApiError)(e).message);
80
+ }
81
+ });
82
+ exports.billingCommand.command('usage').description('Current period usage (tokens, storage, API calls)')
83
+ .option('--json', 'JSON output')
84
+ .action(async (options) => {
85
+ if (!config_1.config.isLoggedIn()) {
86
+ console.error(chalk_1.default.red('Not logged in.'));
87
+ process.exit(1);
88
+ }
89
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
90
+ const spinner = ora('Loading usage...').start();
91
+ try {
92
+ const res = await api_client_1.apiClient.get('/api/v1/billing/usage');
93
+ spinner.stop();
94
+ if (options.json) {
95
+ console.log(JSON.stringify(res.data, null, 2));
96
+ return;
97
+ }
98
+ const d = res.data;
99
+ console.log('');
100
+ console.log(ui_1.ui.header('Usage This Period'));
101
+ if (d.tokens_used !== undefined)
102
+ console.log(ui_1.ui.label('AI Tokens', d.tokens_used.toLocaleString()));
103
+ if (d.token_limit !== undefined)
104
+ console.log(ui_1.ui.label('Token Limit', d.token_limit.toLocaleString()));
105
+ if (d.api_calls !== undefined)
106
+ console.log(ui_1.ui.label('API Calls', d.api_calls.toLocaleString()));
107
+ if (d.storage_mb !== undefined)
108
+ console.log(ui_1.ui.label('Storage', `${d.storage_mb} MB`));
109
+ if (d.voice_minutes !== undefined)
110
+ console.log(ui_1.ui.label('Voice Min', String(d.voice_minutes)));
111
+ console.log('');
112
+ }
113
+ catch (e) {
114
+ spinner.fail(chalk_1.default.red('Failed'));
115
+ console.error((0, api_client_1.handleApiError)(e).message);
116
+ }
117
+ });
118
+ exports.billingCommand.command('invoices').description('List invoices')
119
+ .option('--limit <n>', 'Count', '10').option('--json', 'JSON output')
120
+ .action(async (options) => {
121
+ if (!config_1.config.isLoggedIn()) {
122
+ console.error(chalk_1.default.red('Not logged in.'));
123
+ process.exit(1);
124
+ }
125
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
126
+ const spinner = ora('Loading invoices...').start();
127
+ try {
128
+ const res = await api_client_1.apiClient.get('/api/v1/billing/invoices', { params: { limit: options.limit } });
129
+ spinner.stop();
130
+ if (options.json) {
131
+ console.log(JSON.stringify(res.data, null, 2));
132
+ return;
133
+ }
134
+ const invoices = res.data.invoices || res.data.items || [];
135
+ console.log('');
136
+ console.log(ui_1.ui.header(`Invoices (${invoices.length})`));
137
+ if (invoices.length === 0) {
138
+ console.log(chalk_1.default.dim(' No invoices yet.'));
139
+ }
140
+ else {
141
+ for (const inv of invoices) {
142
+ const status = inv.status === 'paid' ? chalk_1.default.green('paid') : chalk_1.default.yellow(inv.status);
143
+ console.log(` ${inv.date || inv.created_at} $${inv.amount || inv.total} ${status}`);
144
+ }
145
+ }
146
+ console.log('');
147
+ }
148
+ catch (e) {
149
+ spinner.fail(chalk_1.default.red('Failed'));
150
+ console.error((0, api_client_1.handleApiError)(e).message);
151
+ }
152
+ });
153
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA02BpC,eAAO,MAAM,WAAW,SAuCpB,CAAC"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA04BpC,eAAO,MAAM,WAAW,SAuCpB,CAAC"}
@@ -878,6 +878,38 @@ solid insights approve <id> # Approve (add --apply to push to KB)
878
878
  solid insights reject <id> # Reject
879
879
  \`\`\`
880
880
 
881
+ ## Accounting
882
+
883
+ \`\`\`bash
884
+ solid accounting sync # Trigger QuickBooks/Xero sync
885
+ solid accounting status # Check sync connection
886
+ solid accounting history # View sync history
887
+ \`\`\`
888
+
889
+ ## Webhooks
890
+
891
+ \`\`\`bash
892
+ solid webhooks list # List configured webhooks
893
+ solid webhooks create <url> -e order.created # Create with events
894
+ solid webhooks delete <id> # Delete a webhook
895
+ \`\`\`
896
+
897
+ ## Support
898
+
899
+ \`\`\`bash
900
+ solid support list # List support tickets
901
+ solid support list --status open # Filter by status
902
+ solid support get <id> # View ticket details
903
+ \`\`\`
904
+
905
+ ## Export
906
+
907
+ \`\`\`bash
908
+ solid export # Export all company data
909
+ solid export -d ./backup # To specific directory
910
+ solid export --contacts-only # CRM contacts only (GDPR)
911
+ \`\`\`
912
+
881
913
  ## Health & Diagnostics
882
914
 
883
915
  \`\`\`bash
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const domainsCommand: Command;
3
+ //# sourceMappingURL=domains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/commands/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,cAAc,SAE4B,CAAC"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.domainsCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const config_1 = require("../lib/config");
43
+ const api_client_1 = require("../lib/api-client");
44
+ const ui_1 = require("../lib/ui");
45
+ exports.domainsCommand = new commander_1.Command('domains')
46
+ .description('Custom domain management')
47
+ .action(async () => { exports.domainsCommand.outputHelp(); });
48
+ exports.domainsCommand.command('list').description('List configured domains')
49
+ .option('--json', 'JSON output')
50
+ .action(async (options) => {
51
+ if (!config_1.config.isLoggedIn()) {
52
+ console.error(chalk_1.default.red('Not logged in.'));
53
+ process.exit(1);
54
+ }
55
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
56
+ const spinner = ora('Loading domains...').start();
57
+ try {
58
+ const res = await api_client_1.apiClient.get('/api/v1/domains');
59
+ spinner.stop();
60
+ if (options.json) {
61
+ console.log(JSON.stringify(res.data, null, 2));
62
+ return;
63
+ }
64
+ const domains = res.data.domains || res.data.items || [];
65
+ console.log('');
66
+ console.log(ui_1.ui.header(`Domains (${domains.length})`));
67
+ if (domains.length === 0) {
68
+ console.log(chalk_1.default.dim(' No custom domains. Use `solid domains add <domain>` to connect one.'));
69
+ }
70
+ else {
71
+ for (const d of domains) {
72
+ const ssl = d.ssl_active ? chalk_1.default.green('SSL ✓') : chalk_1.default.yellow('SSL pending');
73
+ const primary = d.is_primary ? chalk_1.default.hex('#818cf8')(' [primary]') : '';
74
+ console.log(` ${chalk_1.default.bold(d.domain)}${primary} ${ssl}`);
75
+ }
76
+ }
77
+ console.log('');
78
+ }
79
+ catch (e) {
80
+ spinner.fail(chalk_1.default.red('Failed'));
81
+ console.error((0, api_client_1.handleApiError)(e).message);
82
+ }
83
+ });
84
+ exports.domainsCommand.command('add <domain>').description('Add a custom domain')
85
+ .action(async (domain) => {
86
+ if (!config_1.config.isLoggedIn()) {
87
+ console.error(chalk_1.default.red('Not logged in.'));
88
+ process.exit(1);
89
+ }
90
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
91
+ const spinner = ora(`Adding ${domain}...`).start();
92
+ try {
93
+ const res = await api_client_1.apiClient.post('/api/v1/domains', { domain });
94
+ spinner.stop();
95
+ const d = res.data;
96
+ console.log('');
97
+ console.log(ui_1.ui.successBox('Domain Added', [
98
+ `${chalk_1.default.dim('Domain:')} ${domain}`,
99
+ '', chalk_1.default.dim('Add this CNAME record to your DNS:'),
100
+ ` ${chalk_1.default.cyan(d.cname_target || d.dns_target || '{slug}.solidnumber.com')}`,
101
+ ]));
102
+ console.log('');
103
+ }
104
+ catch (e) {
105
+ spinner.fail(chalk_1.default.red('Failed'));
106
+ console.error((0, api_client_1.handleApiError)(e).message);
107
+ }
108
+ });
109
+ exports.domainsCommand.command('remove <domain>').description('Remove a domain')
110
+ .action(async (domain) => {
111
+ if (!config_1.config.isLoggedIn()) {
112
+ console.error(chalk_1.default.red('Not logged in.'));
113
+ process.exit(1);
114
+ }
115
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
116
+ const spinner = ora(`Removing ${domain}...`).start();
117
+ try {
118
+ await api_client_1.apiClient.delete('/api/v1/domains', { params: { domain } });
119
+ spinner.succeed(chalk_1.default.green(`${domain} removed`));
120
+ }
121
+ catch (e) {
122
+ spinner.fail(chalk_1.default.red('Failed'));
123
+ console.error((0, api_client_1.handleApiError)(e).message);
124
+ }
125
+ });
126
+ exports.domainsCommand.command('verify <domain>').description('Check DNS status')
127
+ .action(async (domain) => {
128
+ if (!config_1.config.isLoggedIn()) {
129
+ console.error(chalk_1.default.red('Not logged in.'));
130
+ process.exit(1);
131
+ }
132
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
133
+ const spinner = ora(`Checking ${domain}...`).start();
134
+ try {
135
+ const res = await api_client_1.apiClient.get('/api/v1/domains/verify', { params: { domain } });
136
+ spinner.stop();
137
+ const d = res.data;
138
+ if (d.verified || d.dns_verified) {
139
+ console.log(chalk_1.default.green(` ✓ ${domain} — verified`));
140
+ }
141
+ else {
142
+ console.log(chalk_1.default.yellow(` ○ ${domain} — DNS not yet propagated`));
143
+ }
144
+ }
145
+ catch (e) {
146
+ spinner.fail(chalk_1.default.red('Failed'));
147
+ console.error((0, api_client_1.handleApiError)(e).message);
148
+ }
149
+ });
150
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/commands/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const notificationsCommand: Command;
3
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/commands/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,oBAAoB,SAE4B,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.notificationsCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const config_1 = require("../lib/config");
43
+ const api_client_1 = require("../lib/api-client");
44
+ const ui_1 = require("../lib/ui");
45
+ exports.notificationsCommand = new commander_1.Command('notifications')
46
+ .description('View and manage notifications')
47
+ .action(async () => { exports.notificationsCommand.outputHelp(); });
48
+ exports.notificationsCommand.command('list').description('List recent notifications')
49
+ .option('--unread', 'Only unread').option('--limit <n>', 'Count', '20').option('--json', 'JSON output')
50
+ .action(async (options) => {
51
+ if (!config_1.config.isLoggedIn()) {
52
+ console.error(chalk_1.default.red('Not logged in.'));
53
+ process.exit(1);
54
+ }
55
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
56
+ const spinner = ora('Loading notifications...').start();
57
+ try {
58
+ const params = { limit: options.limit };
59
+ if (options.unread)
60
+ params.unread_only = true;
61
+ const res = await api_client_1.apiClient.get('/api/v1/notifications', { params });
62
+ spinner.stop();
63
+ if (options.json) {
64
+ console.log(JSON.stringify(res.data, null, 2));
65
+ return;
66
+ }
67
+ const items = res.data.notifications || res.data.items || [];
68
+ console.log('');
69
+ console.log(ui_1.ui.header(`Notifications (${items.length})`));
70
+ if (items.length === 0) {
71
+ console.log(chalk_1.default.dim(' No notifications.'));
72
+ }
73
+ else {
74
+ for (const n of items) {
75
+ const read = n.is_read ? chalk_1.default.dim('○') : chalk_1.default.blue('●');
76
+ console.log(` ${read} ${n.title || n.message}`);
77
+ if (n.created_at)
78
+ console.log(chalk_1.default.dim(` ${n.created_at}`));
79
+ }
80
+ }
81
+ console.log('');
82
+ }
83
+ catch (e) {
84
+ spinner.fail(chalk_1.default.red('Failed'));
85
+ console.error((0, api_client_1.handleApiError)(e).message);
86
+ }
87
+ });
88
+ exports.notificationsCommand.command('read-all').description('Mark all as read')
89
+ .action(async () => {
90
+ if (!config_1.config.isLoggedIn()) {
91
+ console.error(chalk_1.default.red('Not logged in.'));
92
+ process.exit(1);
93
+ }
94
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
95
+ const spinner = ora('Marking all as read...').start();
96
+ try {
97
+ await api_client_1.apiClient.post('/api/v1/notifications/read-all');
98
+ spinner.succeed(chalk_1.default.green('All notifications marked as read'));
99
+ }
100
+ catch (e) {
101
+ spinner.fail(chalk_1.default.red('Failed'));
102
+ console.error((0, api_client_1.handleApiError)(e).message);
103
+ }
104
+ });
105
+ //# sourceMappingURL=notifications.js.map