@solidnumber/cli 1.4.0 → 1.4.2

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 (41) hide show
  1. package/README.md +37 -3
  2. package/dist/commands/accounting.d.ts +6 -0
  3. package/dist/commands/accounting.d.ts.map +1 -0
  4. package/dist/commands/accounting.js +147 -0
  5. package/dist/commands/accounting.js.map +1 -0
  6. package/dist/commands/analytics.d.ts +8 -0
  7. package/dist/commands/analytics.d.ts.map +1 -0
  8. package/dist/commands/analytics.js +136 -0
  9. package/dist/commands/analytics.js.map +1 -0
  10. package/dist/commands/docs.d.ts.map +1 -1
  11. package/dist/commands/docs.js +53 -0
  12. package/dist/commands/docs.js.map +1 -1
  13. package/dist/commands/export.d.ts +6 -0
  14. package/dist/commands/export.d.ts.map +1 -0
  15. package/dist/commands/export.js +145 -0
  16. package/dist/commands/export.js.map +1 -0
  17. package/dist/commands/insights.d.ts +9 -0
  18. package/dist/commands/insights.d.ts.map +1 -0
  19. package/dist/commands/insights.js +175 -0
  20. package/dist/commands/insights.js.map +1 -0
  21. package/dist/commands/llms.d.ts +12 -0
  22. package/dist/commands/llms.d.ts.map +1 -0
  23. package/dist/commands/llms.js +227 -0
  24. package/dist/commands/llms.js.map +1 -0
  25. package/dist/commands/seo.d.ts +8 -0
  26. package/dist/commands/seo.d.ts.map +1 -0
  27. package/dist/commands/seo.js +220 -0
  28. package/dist/commands/seo.js.map +1 -0
  29. package/dist/commands/support.d.ts +6 -0
  30. package/dist/commands/support.d.ts.map +1 -0
  31. package/dist/commands/support.js +127 -0
  32. package/dist/commands/support.js.map +1 -0
  33. package/dist/commands/webhooks.d.ts +6 -0
  34. package/dist/commands/webhooks.d.ts.map +1 -0
  35. package/dist/commands/webhooks.js +129 -0
  36. package/dist/commands/webhooks.js.map +1 -0
  37. package/dist/index.js +33 -5
  38. package/dist/index.js.map +1 -1
  39. package/package.json +1 -1
  40. package/platform-docs/ai.txt +3 -0
  41. package/platform-docs/llms.txt +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,eAAe,SAIxB,CAAC"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * Insights command for Solid CLI
4
+ *
5
+ * AI-generated conversation insights — patterns, suggestions,
6
+ * and KB recommendations from customer interactions.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.insightsCommand = void 0;
46
+ const commander_1 = require("commander");
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const config_1 = require("../lib/config");
49
+ const api_client_1 = require("../lib/api-client");
50
+ const ui_1 = require("../lib/ui");
51
+ exports.insightsCommand = new commander_1.Command('insights')
52
+ .description('AI-generated conversation insights')
53
+ .action(async () => {
54
+ exports.insightsCommand.outputHelp();
55
+ });
56
+ exports.insightsCommand
57
+ .command('list')
58
+ .description('List pending conversation insights')
59
+ .option('--json', 'JSON output')
60
+ .action(async (options) => {
61
+ if (!config_1.config.isLoggedIn()) {
62
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
63
+ process.exit(1);
64
+ }
65
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
66
+ const spinner = ora('Loading insights...').start();
67
+ try {
68
+ const response = await api_client_1.apiClient.get('/api/v1/insights/pending');
69
+ spinner.stop();
70
+ if (options.json) {
71
+ console.log(JSON.stringify(response.data, null, 2));
72
+ return;
73
+ }
74
+ const d = response.data;
75
+ const insights = d.insights || d.items || [];
76
+ console.log('');
77
+ console.log(ui_1.ui.header(`Pending Insights (${insights.length})`));
78
+ if (insights.length === 0) {
79
+ console.log(chalk_1.default.dim(' No pending insights. Your AI agents are learning!'));
80
+ }
81
+ else {
82
+ for (const insight of insights) {
83
+ const type = insight.insight_type || insight.type || 'suggestion';
84
+ const color = type === 'kb_gap' ? chalk_1.default.yellow : type === 'pattern' ? chalk_1.default.cyan : chalk_1.default.white;
85
+ console.log(` ${color('●')} [${type}] ${insight.title || insight.summary}`);
86
+ if (insight.recommendation) {
87
+ console.log(chalk_1.default.dim(` → ${insight.recommendation}`));
88
+ }
89
+ }
90
+ }
91
+ console.log('');
92
+ }
93
+ catch (error) {
94
+ spinner.fail(chalk_1.default.red('Failed to load insights'));
95
+ console.error((0, api_client_1.handleApiError)(error).message);
96
+ }
97
+ });
98
+ exports.insightsCommand
99
+ .command('stats')
100
+ .description('Insight statistics overview')
101
+ .option('--json', 'JSON output')
102
+ .action(async (options) => {
103
+ if (!config_1.config.isLoggedIn()) {
104
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
105
+ process.exit(1);
106
+ }
107
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
108
+ const spinner = ora('Loading insight stats...').start();
109
+ try {
110
+ const response = await api_client_1.apiClient.get('/api/v1/insights/stats');
111
+ spinner.stop();
112
+ if (options.json) {
113
+ console.log(JSON.stringify(response.data, null, 2));
114
+ return;
115
+ }
116
+ const d = response.data;
117
+ console.log('');
118
+ console.log(ui_1.ui.header('Insight Statistics'));
119
+ if (d.total !== undefined)
120
+ console.log(ui_1.ui.label('Total', String(d.total)));
121
+ if (d.pending !== undefined)
122
+ console.log(ui_1.ui.label('Pending', chalk_1.default.yellow(String(d.pending))));
123
+ if (d.applied !== undefined)
124
+ console.log(ui_1.ui.label('Applied', chalk_1.default.green(String(d.applied))));
125
+ if (d.rejected !== undefined)
126
+ console.log(ui_1.ui.label('Rejected', chalk_1.default.dim(String(d.rejected))));
127
+ console.log('');
128
+ }
129
+ catch (error) {
130
+ spinner.fail(chalk_1.default.red('Failed to load insight stats'));
131
+ console.error((0, api_client_1.handleApiError)(error).message);
132
+ }
133
+ });
134
+ exports.insightsCommand
135
+ .command('approve <id>')
136
+ .description('Approve an insight (optionally apply to KB)')
137
+ .option('--apply', 'Also apply the insight to knowledge base')
138
+ .action(async (id, options) => {
139
+ if (!config_1.config.isLoggedIn()) {
140
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
141
+ process.exit(1);
142
+ }
143
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
144
+ const spinner = ora('Approving insight...').start();
145
+ try {
146
+ await api_client_1.apiClient.post(`/api/v1/insights/${id}/approve`, {
147
+ apply_to_kb: !!options.apply,
148
+ });
149
+ spinner.succeed(chalk_1.default.green(`Insight ${id} approved${options.apply ? ' and applied to KB' : ''}`));
150
+ }
151
+ catch (error) {
152
+ spinner.fail(chalk_1.default.red('Failed to approve insight'));
153
+ console.error((0, api_client_1.handleApiError)(error).message);
154
+ }
155
+ });
156
+ exports.insightsCommand
157
+ .command('reject <id>')
158
+ .description('Reject an insight')
159
+ .action(async (id) => {
160
+ if (!config_1.config.isLoggedIn()) {
161
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
162
+ process.exit(1);
163
+ }
164
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
165
+ const spinner = ora('Rejecting insight...').start();
166
+ try {
167
+ await api_client_1.apiClient.post(`/api/v1/insights/${id}/reject`);
168
+ spinner.succeed(chalk_1.default.green(`Insight ${id} rejected`));
169
+ }
170
+ catch (error) {
171
+ spinner.fail(chalk_1.default.red('Failed to reject insight'));
172
+ console.error((0, api_client_1.handleApiError)(error).message);
173
+ }
174
+ });
175
+ //# sourceMappingURL=insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * LLMs command for Solid CLI
3
+ *
4
+ * Manage and preview the llms.txt AI discovery file for your company.
5
+ * This file tells AI shopping agents (ChatGPT, Alexa, Perplexity, Claude)
6
+ * what your business sells, current prices, and how to book/purchase.
7
+ *
8
+ * Every Solid# company gets llms.txt at {slug}.solidnumber.com/llms.txt
9
+ */
10
+ import { Command } from 'commander';
11
+ export declare const llmsCommand: Command;
12
+ //# sourceMappingURL=llms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../../src/commands/llms.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,WAAW,SAIpB,CAAC"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * LLMs command for Solid CLI
4
+ *
5
+ * Manage and preview the llms.txt AI discovery file for your company.
6
+ * This file tells AI shopping agents (ChatGPT, Alexa, Perplexity, Claude)
7
+ * what your business sells, current prices, and how to book/purchase.
8
+ *
9
+ * Every Solid# company gets llms.txt at {slug}.solidnumber.com/llms.txt
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.llmsCommand = void 0;
49
+ const commander_1 = require("commander");
50
+ const chalk_1 = __importDefault(require("chalk"));
51
+ const config_1 = require("../lib/config");
52
+ const api_client_1 = require("../lib/api-client");
53
+ const ui_1 = require("../lib/ui");
54
+ exports.llmsCommand = new commander_1.Command('llms')
55
+ .description('AI discovery — manage your llms.txt for AI shopping agents')
56
+ .action(async () => {
57
+ exports.llmsCommand.outputHelp();
58
+ });
59
+ exports.llmsCommand
60
+ .command('preview')
61
+ .description('Preview your llms.txt (what AI agents see)')
62
+ .option('--json', 'Output the raw data instead of llms.txt')
63
+ .action(async (options) => {
64
+ if (!config_1.config.isLoggedIn()) {
65
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
66
+ process.exit(1);
67
+ }
68
+ const companyId = config_1.config.companyId;
69
+ if (!companyId) {
70
+ console.error(chalk_1.default.red('No company selected.'));
71
+ process.exit(1);
72
+ }
73
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
74
+ const spinner = ora('Fetching llms.txt...').start();
75
+ try {
76
+ const response = await api_client_1.apiClient.get(`/api/v1/cms/pages/public/llms.txt`, {
77
+ params: { company_id: companyId },
78
+ });
79
+ spinner.stop();
80
+ if (options.json) {
81
+ console.log(JSON.stringify(response.data, null, 2));
82
+ return;
83
+ }
84
+ const content = typeof response.data === 'string' ? response.data : JSON.stringify(response.data, null, 2);
85
+ console.log('');
86
+ console.log(ui_1.ui.header('llms.txt Preview'));
87
+ console.log(chalk_1.default.dim(' This is what AI agents see when they crawl your site.'));
88
+ console.log('');
89
+ console.log(chalk_1.default.dim(' ─'.repeat(36)));
90
+ console.log('');
91
+ // Print with indentation
92
+ for (const line of content.split('\n')) {
93
+ if (line.startsWith('# ')) {
94
+ console.log(chalk_1.default.bold.hex('#818cf8')(` ${line}`));
95
+ }
96
+ else if (line.startsWith('## ')) {
97
+ console.log(chalk_1.default.bold(` ${line}`));
98
+ }
99
+ else if (line.startsWith('- ')) {
100
+ console.log(` ${line}`);
101
+ }
102
+ else {
103
+ console.log(chalk_1.default.dim(` ${line}`));
104
+ }
105
+ }
106
+ console.log('');
107
+ console.log(chalk_1.default.dim(' ─'.repeat(36)));
108
+ console.log('');
109
+ // Show the URL
110
+ const infoRes = await api_client_1.apiClient.companyInfo();
111
+ const company = infoRes.data.company;
112
+ const slug = company?.slug;
113
+ if (slug) {
114
+ console.log(ui_1.ui.label('Live URL', chalk_1.default.cyan(`https://${slug}.solidnumber.com/llms.txt`)));
115
+ }
116
+ console.log(ui_1.ui.label('Backend', chalk_1.default.dim(`/api/v1/cms/pages/public/llms.txt?company_id=${companyId}`)));
117
+ console.log('');
118
+ }
119
+ catch (error) {
120
+ spinner.fail(chalk_1.default.red('Failed to fetch llms.txt'));
121
+ console.error((0, api_client_1.handleApiError)(error).message);
122
+ }
123
+ });
124
+ exports.llmsCommand
125
+ .command('check')
126
+ .description('Check what AI crawlers can see — products, services, actions')
127
+ .action(async () => {
128
+ if (!config_1.config.isLoggedIn()) {
129
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
130
+ process.exit(1);
131
+ }
132
+ const companyId = config_1.config.companyId;
133
+ if (!companyId) {
134
+ console.error(chalk_1.default.red('No company selected.'));
135
+ process.exit(1);
136
+ }
137
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
138
+ const spinner = ora('Checking AI discoverability...').start();
139
+ try {
140
+ // Fetch products, services, and company info in parallel
141
+ const [prodRes, svcRes, infoRes] = await Promise.allSettled([
142
+ api_client_1.apiClient.productsList(),
143
+ api_client_1.apiClient.servicesList(),
144
+ api_client_1.apiClient.companyInfo(),
145
+ ]);
146
+ spinner.stop();
147
+ const products = prodRes.status === 'fulfilled' ? (prodRes.value.data.items || []) : [];
148
+ const services = svcRes.status === 'fulfilled' ? (svcRes.value.data.items || []) : [];
149
+ const company = infoRes.status === 'fulfilled' ? infoRes.value.data.company : null;
150
+ console.log('');
151
+ console.log(ui_1.ui.header('AI Commerce Readiness'));
152
+ // Company basics
153
+ const hasPhone = !!company?.contact_phone;
154
+ const hasEmail = !!company?.contact_email;
155
+ const hasAddress = !!company?.location;
156
+ const hasHours = !!company?.business_hours;
157
+ const hasSlug = !!company?.slug;
158
+ console.log(ui_1.ui.label('Phone', hasPhone ? chalk_1.default.green('✓') : chalk_1.default.red('✗ Missing — AI can\'t tell users how to call')));
159
+ console.log(ui_1.ui.label('Email', hasEmail ? chalk_1.default.green('✓') : chalk_1.default.yellow('○ Optional')));
160
+ console.log(ui_1.ui.label('Address', hasAddress ? chalk_1.default.green('✓') : chalk_1.default.red('✗ Missing — AI can\'t show location')));
161
+ console.log(ui_1.ui.label('Hours', hasHours ? chalk_1.default.green('✓') : chalk_1.default.yellow('○ Optional')));
162
+ console.log(ui_1.ui.label('Website Slug', hasSlug ? chalk_1.default.green(`✓ ${company.slug}.solidnumber.com`) : chalk_1.default.red('✗ Missing — no llms.txt URL')));
163
+ // Products
164
+ console.log('');
165
+ console.log(ui_1.ui.header('Products'));
166
+ if (products.length === 0) {
167
+ console.log(chalk_1.default.yellow(' ○ No products — AI shopping agents have nothing to recommend'));
168
+ }
169
+ else {
170
+ const withPrice = products.filter((p) => p.price).length;
171
+ const withDesc = products.filter((p) => p.description).length;
172
+ console.log(ui_1.ui.label('Total', chalk_1.default.green(String(products.length))));
173
+ console.log(ui_1.ui.label('With Price', withPrice === products.length ? chalk_1.default.green(`${withPrice}/${products.length}`) : chalk_1.default.yellow(`${withPrice}/${products.length}`)));
174
+ console.log(ui_1.ui.label('With Desc', withDesc === products.length ? chalk_1.default.green(`${withDesc}/${products.length}`) : chalk_1.default.yellow(`${withDesc}/${products.length}`)));
175
+ }
176
+ // Services
177
+ console.log('');
178
+ console.log(ui_1.ui.header('Services'));
179
+ if (services.length === 0) {
180
+ console.log(chalk_1.default.yellow(' ○ No services — AI can\'t tell users what you offer'));
181
+ }
182
+ else {
183
+ const withPrice = services.filter((s) => s.price).length;
184
+ console.log(ui_1.ui.label('Total', chalk_1.default.green(String(services.length))));
185
+ console.log(ui_1.ui.label('With Price', withPrice === services.length ? chalk_1.default.green(`${withPrice}/${services.length}`) : chalk_1.default.yellow(`${withPrice}/${services.length}`)));
186
+ }
187
+ // Score
188
+ let score = 0;
189
+ if (hasPhone)
190
+ score += 15;
191
+ if (hasAddress)
192
+ score += 15;
193
+ if (hasSlug)
194
+ score += 10;
195
+ if (hasHours)
196
+ score += 5;
197
+ if (hasEmail)
198
+ score += 5;
199
+ if (products.length > 0)
200
+ score += 20;
201
+ if (services.length > 0)
202
+ score += 20;
203
+ if (products.filter((p) => p.price).length === products.length && products.length > 0)
204
+ score += 10;
205
+ console.log('');
206
+ const scoreColor = score >= 80 ? chalk_1.default.green : score >= 50 ? chalk_1.default.yellow : chalk_1.default.red;
207
+ console.log(ui_1.ui.label('AI Readiness', scoreColor(`${score}/100`)));
208
+ if (score < 80) {
209
+ console.log('');
210
+ console.log(chalk_1.default.dim(' Improve your score:'));
211
+ if (!hasPhone)
212
+ console.log(chalk_1.default.dim(' • Add a phone number (solid.config.json)'));
213
+ if (!hasAddress)
214
+ console.log(chalk_1.default.dim(' • Add your address'));
215
+ if (products.length === 0)
216
+ console.log(chalk_1.default.dim(' • Add products so AI can recommend them'));
217
+ if (services.length === 0)
218
+ console.log(chalk_1.default.dim(' • Add services so AI knows what you offer'));
219
+ }
220
+ console.log('');
221
+ }
222
+ catch (error) {
223
+ spinner.fail(chalk_1.default.red('Failed to check discoverability'));
224
+ console.error((0, api_client_1.handleApiError)(error).message);
225
+ }
226
+ });
227
+ //# sourceMappingURL=llms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","sourceRoot":"","sources":["../../src/commands/llms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SEO command for Solid CLI
3
+ *
4
+ * Local SEO audit, rank tracking, and citation management.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const seoCommand: Command;
8
+ //# sourceMappingURL=seo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/commands/seo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,UAAU,SAInB,CAAC"}