@solidnumber/cli 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +24 -0
  2. package/dist/commands/agent.d.ts +9 -0
  3. package/dist/commands/agent.d.ts.map +1 -0
  4. package/dist/commands/agent.js +540 -0
  5. package/dist/commands/agent.js.map +1 -0
  6. package/dist/commands/ant.d.ts +8 -0
  7. package/dist/commands/ant.d.ts.map +1 -0
  8. package/dist/commands/ant.js +277 -0
  9. package/dist/commands/ant.js.map +1 -0
  10. package/dist/commands/auth.js +209 -25
  11. package/dist/commands/auth.js.map +1 -1
  12. package/dist/commands/blog.d.ts +8 -0
  13. package/dist/commands/blog.d.ts.map +1 -0
  14. package/dist/commands/blog.js +393 -0
  15. package/dist/commands/blog.js.map +1 -0
  16. package/dist/commands/brand.d.ts +8 -0
  17. package/dist/commands/brand.d.ts.map +1 -0
  18. package/dist/commands/brand.js +292 -0
  19. package/dist/commands/brand.js.map +1 -0
  20. package/dist/commands/clone.d.ts.map +1 -1
  21. package/dist/commands/clone.js.map +1 -1
  22. package/dist/commands/company.d.ts +11 -0
  23. package/dist/commands/company.d.ts.map +1 -0
  24. package/dist/commands/company.js +300 -0
  25. package/dist/commands/company.js.map +1 -0
  26. package/dist/commands/connect.d.ts +8 -0
  27. package/dist/commands/connect.d.ts.map +1 -0
  28. package/dist/commands/connect.js +632 -0
  29. package/dist/commands/connect.js.map +1 -0
  30. package/dist/commands/crm.d.ts +8 -0
  31. package/dist/commands/crm.d.ts.map +1 -0
  32. package/dist/commands/crm.js +493 -0
  33. package/dist/commands/crm.js.map +1 -0
  34. package/dist/commands/dev.d.ts.map +1 -1
  35. package/dist/commands/dev.js +11 -94
  36. package/dist/commands/dev.js.map +1 -1
  37. package/dist/commands/docs.d.ts.map +1 -1
  38. package/dist/commands/docs.js +48 -12
  39. package/dist/commands/docs.js.map +1 -1
  40. package/dist/commands/droplet.d.ts.map +1 -1
  41. package/dist/commands/droplet.js +21 -2
  42. package/dist/commands/droplet.js.map +1 -1
  43. package/dist/commands/explore.d.ts +23 -0
  44. package/dist/commands/explore.d.ts.map +1 -0
  45. package/dist/commands/explore.js +272 -0
  46. package/dist/commands/explore.js.map +1 -0
  47. package/dist/commands/flows.d.ts +8 -0
  48. package/dist/commands/flows.d.ts.map +1 -0
  49. package/dist/commands/flows.js +301 -0
  50. package/dist/commands/flows.js.map +1 -0
  51. package/dist/commands/inbox.d.ts +14 -0
  52. package/dist/commands/inbox.d.ts.map +1 -0
  53. package/dist/commands/inbox.js +397 -0
  54. package/dist/commands/inbox.js.map +1 -0
  55. package/dist/commands/inventory.d.ts +8 -0
  56. package/dist/commands/inventory.d.ts.map +1 -0
  57. package/dist/commands/inventory.js +263 -0
  58. package/dist/commands/inventory.js.map +1 -0
  59. package/dist/commands/pull.js +1 -1
  60. package/dist/commands/pull.js.map +1 -1
  61. package/dist/commands/reports.d.ts +8 -0
  62. package/dist/commands/reports.d.ts.map +1 -0
  63. package/dist/commands/reports.js +264 -0
  64. package/dist/commands/reports.js.map +1 -0
  65. package/dist/commands/schedule.d.ts +4 -0
  66. package/dist/commands/schedule.d.ts.map +1 -0
  67. package/dist/commands/schedule.js +249 -0
  68. package/dist/commands/schedule.js.map +1 -0
  69. package/dist/commands/services.js +4 -1
  70. package/dist/commands/services.js.map +1 -1
  71. package/dist/commands/switch.d.ts +10 -0
  72. package/dist/commands/switch.d.ts.map +1 -0
  73. package/dist/commands/switch.js +111 -0
  74. package/dist/commands/switch.js.map +1 -0
  75. package/dist/commands/train.js +3 -3
  76. package/dist/commands/train.js.map +1 -1
  77. package/dist/commands/voice.d.ts +9 -0
  78. package/dist/commands/voice.d.ts.map +1 -0
  79. package/dist/commands/voice.js +444 -0
  80. package/dist/commands/voice.js.map +1 -0
  81. package/dist/commands/widgets.d.ts +8 -0
  82. package/dist/commands/widgets.d.ts.map +1 -0
  83. package/dist/commands/widgets.js +205 -0
  84. package/dist/commands/widgets.js.map +1 -0
  85. package/dist/index.js +65 -11
  86. package/dist/index.js.map +1 -1
  87. package/dist/lib/api-client.d.ts +218 -0
  88. package/dist/lib/api-client.d.ts.map +1 -1
  89. package/dist/lib/api-client.js +133 -12
  90. package/dist/lib/api-client.js.map +1 -1
  91. package/dist/lib/config.d.ts +8 -0
  92. package/dist/lib/config.d.ts.map +1 -1
  93. package/dist/lib/config.js +15 -1
  94. package/dist/lib/config.js.map +1 -1
  95. package/package.json +6 -1
  96. package/platform-docs/ai.txt +324 -0
  97. package/platform-docs/llms.txt +191 -0
@@ -0,0 +1,397 @@
1
+ "use strict";
2
+ /**
3
+ * Unified inbox commands for Solid CLI
4
+ *
5
+ * Manage messages, emails, and campaigns across all channels:
6
+ * - View unified inbox with recent messages
7
+ * - Send messages to contacts (auto-selects best channel)
8
+ * - Manage email (list, send, reply, threads)
9
+ * - Run and track email campaigns
10
+ *
11
+ * All operations are scoped to the authenticated company_id.
12
+ */
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.inboxCommand = void 0;
18
+ const commander_1 = require("commander");
19
+ const ora_1 = __importDefault(require("ora"));
20
+ const chalk_1 = __importDefault(require("chalk"));
21
+ const config_1 = require("../lib/config");
22
+ const api_client_1 = require("../lib/api-client");
23
+ // ── Helpers ──────────────────────────────────────────────────────────
24
+ function requireAuth() {
25
+ if (!config_1.config.isLoggedIn()) {
26
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
27
+ process.exit(1);
28
+ }
29
+ return true;
30
+ }
31
+ function truncate(text, len) {
32
+ if (!text)
33
+ return '';
34
+ const clean = text.replace(/\n/g, ' ').trim();
35
+ return clean.length > len ? clean.substring(0, len) + '...' : clean;
36
+ }
37
+ function formatDate(dateStr) {
38
+ if (!dateStr)
39
+ return chalk_1.default.dim('—');
40
+ const d = new Date(dateStr);
41
+ return chalk_1.default.dim(d.toLocaleDateString() + ' ' + d.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }));
42
+ }
43
+ // ── Main Command ─────────────────────────────────────────────────────
44
+ exports.inboxCommand = new commander_1.Command('inbox')
45
+ .description('Unified inbox — messages, email, and campaigns')
46
+ .option('--limit <n>', 'Number of messages to show', '20')
47
+ .option('--json', 'Output as JSON')
48
+ .action(async (options) => {
49
+ requireAuth();
50
+ const spinner = (0, ora_1.default)('Loading inbox...').start();
51
+ try {
52
+ const response = await api_client_1.apiClient.get('/api/v1/communications/inbox', {
53
+ params: { limit: parseInt(options.limit) },
54
+ });
55
+ if (options.json) {
56
+ spinner.stop();
57
+ console.log(JSON.stringify(response.data, null, 2));
58
+ return;
59
+ }
60
+ const data = response.data;
61
+ const messages = data?.items || data || [];
62
+ spinner.succeed(chalk_1.default.green(`${messages.length} messages`));
63
+ if (messages.length === 0) {
64
+ console.log(chalk_1.default.dim(' Inbox is empty.'));
65
+ return;
66
+ }
67
+ console.log('');
68
+ for (const msg of messages) {
69
+ const channel = msg.channel ? chalk_1.default.cyan(`[${msg.channel}]`) : '';
70
+ const direction = msg.direction === 'inbound' ? chalk_1.default.yellow('←') : chalk_1.default.blue('→');
71
+ const contact = msg.contact_name || msg.contact_id || 'Unknown';
72
+ console.log(` ${direction} ${channel} ${chalk_1.default.bold(contact)} ${formatDate(msg.created_at)}`);
73
+ console.log(chalk_1.default.dim(` ${truncate(msg.message || msg.body || msg.subject, 80)}`));
74
+ }
75
+ }
76
+ catch (error) {
77
+ spinner.fail(chalk_1.default.red('Failed to load inbox'));
78
+ const apiError = (0, api_client_1.handleApiError)(error);
79
+ console.error(chalk_1.default.red(` ${apiError.message}`));
80
+ }
81
+ });
82
+ // ── Stats ────────────────────────────────────────────────────────────
83
+ exports.inboxCommand
84
+ .command('stats')
85
+ .description('Inbox statistics and message counts')
86
+ .option('--json', 'Output as JSON')
87
+ .action(async (options) => {
88
+ requireAuth();
89
+ const spinner = (0, ora_1.default)('Loading inbox stats...').start();
90
+ try {
91
+ const response = await api_client_1.apiClient.get('/api/v1/communications/inbox/counts');
92
+ if (options.json) {
93
+ spinner.stop();
94
+ console.log(JSON.stringify(response.data, null, 2));
95
+ return;
96
+ }
97
+ const counts = response.data || {};
98
+ spinner.succeed(chalk_1.default.green('Inbox Statistics'));
99
+ console.log('');
100
+ for (const [key, value] of Object.entries(counts)) {
101
+ const label = key.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
102
+ console.log(` ${chalk_1.default.bold(label)}: ${chalk_1.default.cyan(String(value))}`);
103
+ }
104
+ }
105
+ catch (error) {
106
+ spinner.fail(chalk_1.default.red('Failed to load inbox stats'));
107
+ const apiError = (0, api_client_1.handleApiError)(error);
108
+ console.error(chalk_1.default.red(` ${apiError.message}`));
109
+ }
110
+ });
111
+ // ── Send Message ─────────────────────────────────────────────────────
112
+ exports.inboxCommand
113
+ .command('send <contact_id> <message>')
114
+ .description('Send a message to a contact (auto-selects best channel)')
115
+ .action(async (contactId, message) => {
116
+ requireAuth();
117
+ const spinner = (0, ora_1.default)('Sending message...').start();
118
+ try {
119
+ const response = await api_client_1.apiClient.post('/api/v1/communications/send', {
120
+ contact_id: parseInt(contactId),
121
+ message,
122
+ });
123
+ const result = response.data || {};
124
+ const channel = result.channel || 'auto';
125
+ spinner.succeed(chalk_1.default.green(`Message sent via ${channel}`));
126
+ }
127
+ catch (error) {
128
+ spinner.fail(chalk_1.default.red('Failed to send message'));
129
+ const apiError = (0, api_client_1.handleApiError)(error);
130
+ console.error(chalk_1.default.red(` ${apiError.message}`));
131
+ }
132
+ });
133
+ // ── Email Subcommands ────────────────────────────────────────────────
134
+ const emailCmd = exports.inboxCommand
135
+ .command('email')
136
+ .description('Email management');
137
+ emailCmd
138
+ .command('list')
139
+ .description('List emails')
140
+ .option('--direction <dir>', 'Filter: inbound or outbound')
141
+ .option('--limit <n>', 'Number of emails', '20')
142
+ .option('--json', 'Output as JSON')
143
+ .action(async (options) => {
144
+ requireAuth();
145
+ const spinner = (0, ora_1.default)('Loading emails...').start();
146
+ try {
147
+ const params = { page: 1, page_size: parseInt(options.limit) };
148
+ if (options.direction)
149
+ params.direction = options.direction;
150
+ const response = await api_client_1.apiClient.get('/api/v1/crm/emails', { params });
151
+ if (options.json) {
152
+ spinner.stop();
153
+ console.log(JSON.stringify(response.data, null, 2));
154
+ return;
155
+ }
156
+ const edata = response.data;
157
+ const emails = edata?.items || edata || [];
158
+ spinner.succeed(chalk_1.default.green(`${emails.length} emails`));
159
+ if (emails.length === 0) {
160
+ console.log(chalk_1.default.dim(' No emails found.'));
161
+ return;
162
+ }
163
+ console.log('');
164
+ for (const email of emails) {
165
+ const dir = email.direction === 'inbound' ? chalk_1.default.yellow('←') : chalk_1.default.blue('→');
166
+ const from = email.from_address || email.from || '';
167
+ const to = email.to_address || email.to || '';
168
+ const addr = email.direction === 'inbound' ? from : to;
169
+ console.log(` ${dir} ${chalk_1.default.bold(truncate(email.subject, 50))} ${formatDate(email.created_at)}`);
170
+ console.log(chalk_1.default.dim(` ${addr}`));
171
+ }
172
+ }
173
+ catch (error) {
174
+ spinner.fail(chalk_1.default.red('Failed to load emails'));
175
+ const apiError = (0, api_client_1.handleApiError)(error);
176
+ console.error(chalk_1.default.red(` ${apiError.message}`));
177
+ }
178
+ });
179
+ emailCmd
180
+ .command('get <id>')
181
+ .description('Get email details')
182
+ .option('--json', 'Output as JSON')
183
+ .action(async (id, options) => {
184
+ requireAuth();
185
+ const spinner = (0, ora_1.default)('Loading email...').start();
186
+ try {
187
+ const response = await api_client_1.apiClient.get(`/api/v1/crm/emails/${id}`);
188
+ if (options.json) {
189
+ spinner.stop();
190
+ console.log(JSON.stringify(response.data, null, 2));
191
+ return;
192
+ }
193
+ const email = response.data || {};
194
+ spinner.succeed(chalk_1.default.green('Email loaded'));
195
+ console.log('');
196
+ console.log(` ${chalk_1.default.bold('Subject:')} ${email.subject || '(no subject)'}`);
197
+ console.log(` ${chalk_1.default.bold('From:')} ${email.from_address || email.from || '—'}`);
198
+ console.log(` ${chalk_1.default.bold('To:')} ${email.to_address || email.to || '—'}`);
199
+ console.log(` ${chalk_1.default.bold('Date:')} ${formatDate(email.created_at)}`);
200
+ if (email.thread_id) {
201
+ console.log(` ${chalk_1.default.bold('Thread:')} ${email.thread_id}`);
202
+ }
203
+ console.log('');
204
+ console.log(email.body || email.text || chalk_1.default.dim('(empty body)'));
205
+ }
206
+ catch (error) {
207
+ spinner.fail(chalk_1.default.red('Failed to load email'));
208
+ const apiError = (0, api_client_1.handleApiError)(error);
209
+ console.error(chalk_1.default.red(` ${apiError.message}`));
210
+ }
211
+ });
212
+ emailCmd
213
+ .command('send')
214
+ .description('Send an email')
215
+ .requiredOption('--to <address>', 'Recipient email address')
216
+ .requiredOption('--subject <subject>', 'Email subject')
217
+ .requiredOption('--body <body>', 'Email body')
218
+ .action(async (options) => {
219
+ requireAuth();
220
+ const spinner = (0, ora_1.default)('Sending email...').start();
221
+ try {
222
+ await api_client_1.apiClient.post('/api/v1/crm/emails/send', {
223
+ to: options.to,
224
+ subject: options.subject,
225
+ body: options.body,
226
+ });
227
+ spinner.succeed(chalk_1.default.green(`Email sent to ${options.to}`));
228
+ }
229
+ catch (error) {
230
+ spinner.fail(chalk_1.default.red('Failed to send email'));
231
+ const apiError = (0, api_client_1.handleApiError)(error);
232
+ console.error(chalk_1.default.red(` ${apiError.message}`));
233
+ }
234
+ });
235
+ emailCmd
236
+ .command('reply <id> <body>')
237
+ .description('Reply to an email')
238
+ .action(async (id, body) => {
239
+ requireAuth();
240
+ const spinner = (0, ora_1.default)('Sending reply...').start();
241
+ try {
242
+ await api_client_1.apiClient.post(`/api/v1/crm/emails/${id}/reply`, { body });
243
+ spinner.succeed(chalk_1.default.green('Reply sent'));
244
+ }
245
+ catch (error) {
246
+ spinner.fail(chalk_1.default.red('Failed to send reply'));
247
+ const apiError = (0, api_client_1.handleApiError)(error);
248
+ console.error(chalk_1.default.red(` ${apiError.message}`));
249
+ }
250
+ });
251
+ emailCmd
252
+ .command('thread <thread_id>')
253
+ .description('View an email thread')
254
+ .option('--json', 'Output as JSON')
255
+ .action(async (threadId, options) => {
256
+ requireAuth();
257
+ const spinner = (0, ora_1.default)('Loading thread...').start();
258
+ try {
259
+ const response = await api_client_1.apiClient.get(`/api/v1/crm/emails/threads/${threadId}`);
260
+ if (options.json) {
261
+ spinner.stop();
262
+ console.log(JSON.stringify(response.data, null, 2));
263
+ return;
264
+ }
265
+ const tdata = response.data;
266
+ const emails = tdata?.items || tdata || [];
267
+ spinner.succeed(chalk_1.default.green(`Thread: ${emails.length} messages`));
268
+ console.log('');
269
+ for (const email of emails) {
270
+ const dir = email.direction === 'inbound' ? chalk_1.default.yellow('← IN') : chalk_1.default.blue('→ OUT');
271
+ console.log(` ${dir} ${formatDate(email.created_at)}`);
272
+ console.log(` ${chalk_1.default.bold(email.subject || '(no subject)')}`);
273
+ console.log(chalk_1.default.dim(` ${truncate(email.body || email.text, 120)}`));
274
+ console.log('');
275
+ }
276
+ }
277
+ catch (error) {
278
+ spinner.fail(chalk_1.default.red('Failed to load thread'));
279
+ const apiError = (0, api_client_1.handleApiError)(error);
280
+ console.error(chalk_1.default.red(` ${apiError.message}`));
281
+ }
282
+ });
283
+ // ── Campaign Subcommands ─────────────────────────────────────────────
284
+ const campaignsCmd = exports.inboxCommand
285
+ .command('campaigns')
286
+ .description('Email campaign management')
287
+ .option('--status <status>', 'Filter by status')
288
+ .option('--json', 'Output as JSON')
289
+ .action(async (options) => {
290
+ requireAuth();
291
+ const spinner = (0, ora_1.default)('Loading campaigns...').start();
292
+ try {
293
+ const params = {};
294
+ if (options.status)
295
+ params.status = options.status;
296
+ const response = await api_client_1.apiClient.get('/api/v1/crm/campaigns', { params });
297
+ if (options.json) {
298
+ spinner.stop();
299
+ console.log(JSON.stringify(response.data, null, 2));
300
+ return;
301
+ }
302
+ const cdata = response.data;
303
+ const campaigns = cdata?.items || cdata || [];
304
+ spinner.succeed(chalk_1.default.green(`${campaigns.length} campaigns`));
305
+ if (campaigns.length === 0) {
306
+ console.log(chalk_1.default.dim(' No campaigns found.'));
307
+ return;
308
+ }
309
+ console.log('');
310
+ for (const c of campaigns) {
311
+ const status = c.status === 'sent'
312
+ ? chalk_1.default.green(c.status)
313
+ : c.status === 'draft'
314
+ ? chalk_1.default.yellow(c.status)
315
+ : chalk_1.default.dim(c.status || 'unknown');
316
+ console.log(` ${chalk_1.default.bold(c.name || c.subject || `Campaign #${c.id}`)} [${status}] ${formatDate(c.created_at)}`);
317
+ if (c.subject)
318
+ console.log(chalk_1.default.dim(` Subject: ${truncate(c.subject, 60)}`));
319
+ }
320
+ }
321
+ catch (error) {
322
+ spinner.fail(chalk_1.default.red('Failed to load campaigns'));
323
+ const apiError = (0, api_client_1.handleApiError)(error);
324
+ console.error(chalk_1.default.red(` ${apiError.message}`));
325
+ }
326
+ });
327
+ campaignsCmd
328
+ .command('create')
329
+ .description('Create a new campaign')
330
+ .requiredOption('--name <name>', 'Campaign name')
331
+ .requiredOption('--subject <subject>', 'Email subject line')
332
+ .requiredOption('--body <body>', 'Email body content')
333
+ .action(async (options) => {
334
+ requireAuth();
335
+ const spinner = (0, ora_1.default)('Creating campaign...').start();
336
+ try {
337
+ const response = await api_client_1.apiClient.post('/api/v1/crm/campaigns', {
338
+ name: options.name,
339
+ subject: options.subject,
340
+ body: options.body,
341
+ });
342
+ const campaign = response.data || {};
343
+ spinner.succeed(chalk_1.default.green(`Campaign created: ${campaign.id || campaign.name || 'OK'}`));
344
+ }
345
+ catch (error) {
346
+ spinner.fail(chalk_1.default.red('Failed to create campaign'));
347
+ const apiError = (0, api_client_1.handleApiError)(error);
348
+ console.error(chalk_1.default.red(` ${apiError.message}`));
349
+ }
350
+ });
351
+ campaignsCmd
352
+ .command('send <id>')
353
+ .description('Send a campaign')
354
+ .action(async (id) => {
355
+ requireAuth();
356
+ const spinner = (0, ora_1.default)('Sending campaign...').start();
357
+ try {
358
+ await api_client_1.apiClient.post(`/api/v1/crm/campaigns/${id}/send`);
359
+ spinner.succeed(chalk_1.default.green(`Campaign ${id} sent`));
360
+ }
361
+ catch (error) {
362
+ spinner.fail(chalk_1.default.red('Failed to send campaign'));
363
+ const apiError = (0, api_client_1.handleApiError)(error);
364
+ console.error(chalk_1.default.red(` ${apiError.message}`));
365
+ }
366
+ });
367
+ campaignsCmd
368
+ .command('stats <id>')
369
+ .description('View campaign performance stats')
370
+ .option('--json', 'Output as JSON')
371
+ .action(async (id, options) => {
372
+ requireAuth();
373
+ const spinner = (0, ora_1.default)('Loading campaign stats...').start();
374
+ try {
375
+ const response = await api_client_1.apiClient.get(`/api/v1/crm/campaigns/${id}/stats`);
376
+ if (options.json) {
377
+ spinner.stop();
378
+ console.log(JSON.stringify(response.data, null, 2));
379
+ return;
380
+ }
381
+ const stats = response.data || {};
382
+ spinner.succeed(chalk_1.default.green(`Campaign ${id} Stats`));
383
+ console.log('');
384
+ for (const [key, value] of Object.entries(stats)) {
385
+ if (key === 'id' || key === 'campaign_id')
386
+ continue;
387
+ const label = key.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
388
+ console.log(` ${chalk_1.default.bold(label)}: ${chalk_1.default.cyan(String(value))}`);
389
+ }
390
+ }
391
+ catch (error) {
392
+ spinner.fail(chalk_1.default.red('Failed to load campaign stats'));
393
+ const apiError = (0, api_client_1.handleApiError)(error);
394
+ console.error(chalk_1.default.red(` ${apiError.message}`));
395
+ }
396
+ });
397
+ //# sourceMappingURL=inbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Inventory management commands for Solid CLI
3
+ *
4
+ * All operations are scoped to the authenticated company.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const inventoryCommand: Command;
8
+ //# sourceMappingURL=inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/commands/inventory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,gBAAgB,SACiB,CAAC"}