@edtools/cli 0.4.1 → 0.5.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.
@@ -1,10 +1,12 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
2
  import OpenAI from 'openai';
3
3
  import path from 'path';
4
+ import { fileURLToPath } from 'url';
4
5
  import fs from 'fs-extra';
5
6
  import slugify from 'slugify';
6
7
  import { AdapterRegistry } from '../types/adapter.js';
7
8
  import { HTMLAdapter } from '../adapters/html/index.js';
9
+ import { generateUUID, calculateWordCount, calculateReadTime, extractShortDescription, generateTimestamp, } from '../utils/content-helpers.js';
8
10
  export class ContentGenerator {
9
11
  anthropic = null;
10
12
  openai = null;
@@ -32,6 +34,7 @@ export class ContentGenerator {
32
34
  warnings: [],
33
35
  errors: [],
34
36
  };
37
+ const allPostsContent = [];
35
38
  try {
36
39
  const adapter = await this.adapters.detectAdapter(config.projectPath);
37
40
  if (!adapter) {
@@ -48,11 +51,16 @@ export class ContentGenerator {
48
51
  const fileName = adapter.transformPath?.(slug) || `${slug}/index${adapter.getFileExtension()}`;
49
52
  const outputPath = path.join(config.outputDir, fileName);
50
53
  await adapter.write(output, outputPath);
54
+ allPostsContent.push(content);
51
55
  results.posts.push({
56
+ id: content.metadata.id,
52
57
  title: content.metadata.title,
53
58
  slug,
54
59
  path: outputPath,
60
+ url: content.metadata.url,
55
61
  seoScore: content.seo.score,
62
+ readTime: content.metadata.readTime,
63
+ wordCount: content.metadata.wordCount,
56
64
  });
57
65
  console.log(`✓ Generated: ${outputPath}`);
58
66
  console.log(` SEO Score: ${content.seo.score}/100`);
@@ -62,8 +70,10 @@ export class ContentGenerator {
62
70
  results.success = false;
63
71
  }
64
72
  }
65
- if (results.posts.length > 0) {
66
- await this.updateSitemap(config.projectPath, config.outputDir, results.posts);
73
+ if (results.posts.length > 0 && allPostsContent.length > 0) {
74
+ await this.generateManifest(config.outputDir, config.productInfo, allPostsContent);
75
+ await this.generateBlogIndex(config.outputDir, config.productInfo);
76
+ await this.updateSitemap(config.projectPath, config.outputDir, allPostsContent);
67
77
  }
68
78
  }
69
79
  catch (error) {
@@ -84,19 +94,43 @@ export class ContentGenerator {
84
94
  else {
85
95
  throw new Error(`Unsupported provider: ${this.provider}`);
86
96
  }
97
+ const id = generateUUID();
87
98
  const slug = slugify(contentData.metadata.title, { lower: true, strict: true });
99
+ const datePublished = generateTimestamp();
100
+ const url = `/blog/${slug}.html`;
101
+ const fullContent = [
102
+ contentData.content.intro,
103
+ ...contentData.content.sections.map((s) => s.content),
104
+ contentData.content.conclusion
105
+ ].join(' ');
106
+ const wordCount = calculateWordCount(fullContent);
107
+ const readTime = calculateReadTime(wordCount);
108
+ const shortDescription = extractShortDescription(contentData.content.intro);
109
+ const tags = contentData.metadata.keywords.slice(0, 5);
88
110
  const content = {
89
111
  metadata: {
112
+ id,
90
113
  ...contentData.metadata,
91
114
  slug,
92
- datePublished: new Date().toISOString(),
115
+ url,
116
+ datePublished,
93
117
  author: productInfo.name,
118
+ readTime,
119
+ wordCount,
120
+ tags,
121
+ shortDescription,
122
+ fullDescription: contentData.content.intro,
94
123
  },
95
124
  schemaOrg: this.generateSchemaOrg({
125
+ id,
96
126
  ...contentData.metadata,
97
127
  slug,
98
- datePublished: new Date().toISOString(),
128
+ url,
129
+ datePublished,
99
130
  author: productInfo.name,
131
+ readTime,
132
+ wordCount,
133
+ tags,
100
134
  }, productInfo),
101
135
  content: contentData.content,
102
136
  relatedPosts: [],
@@ -294,22 +328,100 @@ Output ONLY a JSON array of topic strings, no markdown:
294
328
  `${productInfo.name} vs alternatives: Complete comparison`,
295
329
  ];
296
330
  }
331
+ async generateManifest(outputDir, productInfo, posts) {
332
+ const { calculateAvgReadTime } = await import('../utils/content-helpers.js');
333
+ const manifestPosts = posts.map(post => ({
334
+ id: post.metadata.id,
335
+ slug: post.metadata.slug,
336
+ url: post.metadata.url,
337
+ title: post.metadata.title,
338
+ shortDescription: post.metadata.shortDescription || post.metadata.description,
339
+ fullDescription: post.metadata.fullDescription || post.content.intro,
340
+ publishDate: post.metadata.datePublished,
341
+ readTime: post.metadata.readTime,
342
+ wordCount: post.metadata.wordCount,
343
+ tags: post.metadata.tags,
344
+ category: post.metadata.category,
345
+ seo: {
346
+ metaTitle: post.metadata.title,
347
+ metaDescription: post.metadata.description,
348
+ keywords: post.metadata.keywords,
349
+ seoScore: post.seo.score,
350
+ },
351
+ }));
352
+ const totalWords = posts.reduce((sum, post) => sum + post.metadata.wordCount, 0);
353
+ const wordCounts = posts.map(post => post.metadata.wordCount);
354
+ const avgReadTime = calculateAvgReadTime(wordCounts);
355
+ const manifest = {
356
+ version: '1.0.0',
357
+ generated: generateTimestamp(),
358
+ site: {
359
+ name: `${productInfo.name} Blog`,
360
+ url: productInfo.websiteUrl + '/blog',
361
+ description: productInfo.description || `Insights on ${productInfo.category}`,
362
+ },
363
+ posts: manifestPosts,
364
+ stats: {
365
+ totalPosts: posts.length,
366
+ totalWords,
367
+ avgReadTime,
368
+ },
369
+ };
370
+ const manifestPath = path.join(outputDir, 'index.json');
371
+ await fs.writeJson(manifestPath, manifest, { spaces: 2 });
372
+ console.log(`✓ Generated blog manifest: ${manifestPath}`);
373
+ }
374
+ async generateBlogIndex(outputDir, productInfo) {
375
+ const ejs = await import('ejs');
376
+ const possiblePaths = [
377
+ path.join(path.dirname(fileURLToPath(import.meta.url)), '../adapters/html/templates/blog-index.html.ejs'),
378
+ path.join(path.dirname(fileURLToPath(import.meta.url)), '../../adapters/html/templates/blog-index.html.ejs'),
379
+ path.join(path.dirname(fileURLToPath(import.meta.url)), 'adapters/html/templates/blog-index.html.ejs'),
380
+ ];
381
+ let templatePath = null;
382
+ for (const p of possiblePaths) {
383
+ if (await fs.pathExists(p)) {
384
+ templatePath = p;
385
+ break;
386
+ }
387
+ }
388
+ if (!templatePath) {
389
+ console.warn(`Blog index template not found in any of the expected locations. Skipping blog index generation.`);
390
+ return;
391
+ }
392
+ const template = await fs.readFile(templatePath, 'utf-8');
393
+ const html = ejs.render(template, {
394
+ siteName: `${productInfo.name} Blog`,
395
+ siteDescription: productInfo.description || `Insights on ${productInfo.category}`,
396
+ siteUrl: productInfo.websiteUrl + '/blog',
397
+ });
398
+ const indexPath = path.join(outputDir, 'index.html');
399
+ await fs.writeFile(indexPath, html, 'utf-8');
400
+ console.log(`✓ Generated blog index: ${indexPath}`);
401
+ }
297
402
  async updateSitemap(projectPath, blogDir, posts) {
298
- const sitemapPath = path.join(projectPath, 'sitemap.xml');
403
+ const sitemapPath = path.join(blogDir, 'sitemap.xml');
299
404
  const urls = posts.map(post => {
300
405
  return ` <url>
301
- <loc>${post.slug}/</loc>
302
- <lastmod>${new Date().toISOString().split('T')[0]}</lastmod>
406
+ <loc>${post.metadata.url}</loc>
407
+ <lastmod>${post.metadata.datePublished.split('T')[0]}</lastmod>
303
408
  <changefreq>weekly</changefreq>
304
409
  <priority>0.8</priority>
305
410
  </url>`;
306
411
  }).join('\n');
412
+ const blogIndexUrl = ` <url>
413
+ <loc>/blog/</loc>
414
+ <lastmod>${new Date().toISOString().split('T')[0]}</lastmod>
415
+ <changefreq>daily</changefreq>
416
+ <priority>1.0</priority>
417
+ </url>`;
307
418
  const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
308
419
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
420
+ ${blogIndexUrl}
309
421
  ${urls}
310
422
  </urlset>`;
311
423
  await fs.writeFile(sitemapPath, sitemap, 'utf-8');
312
- console.log(`\n✓ Updated sitemap.xml`);
424
+ console.log(`✓ Generated sitemap: ${sitemapPath}`);
313
425
  }
314
426
  }
315
427
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,19 @@
1
1
  type AIProvider = 'anthropic' | 'openai';
2
2
  interface BlogPostMetadata {
3
+ id: string;
3
4
  title: string;
4
5
  description: string;
6
+ shortDescription?: string;
7
+ fullDescription?: string;
5
8
  keywords: string[];
6
9
  author: string;
7
10
  datePublished: string;
8
11
  category: string;
9
12
  slug: string;
13
+ url: string;
14
+ readTime: string;
15
+ wordCount: number;
16
+ tags: string[];
10
17
  }
11
18
  interface SchemaOrgData {
12
19
  '@context': string;
@@ -111,14 +118,52 @@ interface GenerateConfig {
111
118
  interface GenerateResult {
112
119
  success: boolean;
113
120
  posts: Array<{
121
+ id: string;
114
122
  title: string;
115
123
  slug: string;
116
124
  path: string;
125
+ url: string;
117
126
  seoScore: number;
127
+ readTime: string;
128
+ wordCount: number;
118
129
  }>;
119
130
  warnings?: string[];
120
131
  errors?: string[];
121
132
  }
133
+ interface BlogManifest {
134
+ version: string;
135
+ generated: string;
136
+ site: {
137
+ name: string;
138
+ url: string;
139
+ description: string;
140
+ };
141
+ posts: BlogManifestPost[];
142
+ stats: {
143
+ totalPosts: number;
144
+ totalWords: number;
145
+ avgReadTime: string;
146
+ };
147
+ }
148
+ interface BlogManifestPost {
149
+ id: string;
150
+ slug: string;
151
+ url: string;
152
+ title: string;
153
+ shortDescription: string;
154
+ fullDescription: string;
155
+ publishDate: string;
156
+ readTime: string;
157
+ wordCount: number;
158
+ tags: string[];
159
+ category: string;
160
+ seo: {
161
+ metaTitle: string;
162
+ metaDescription: string;
163
+ keywords: string[];
164
+ seoScore: number;
165
+ };
166
+ }
122
167
 
123
168
  interface Adapter {
124
169
  name: string;
@@ -192,6 +237,8 @@ declare class ContentGenerator {
192
237
  private generateSchemaOrg;
193
238
  private calculateSEOScore;
194
239
  private generateTopics;
240
+ private generateManifest;
241
+ private generateBlogIndex;
195
242
  private updateSitemap;
196
243
  }
197
244
 
@@ -210,4 +257,4 @@ declare class HTMLAdapter implements Adapter {
210
257
  private escapeHtml;
211
258
  }
212
259
 
213
- export { type AIProvider, type Adapter, type AdapterConfig, AdapterRegistry, type BlogPostContent, type BlogPostMetadata, type CTAData, type CodeData, type ComparisonData, ContentGenerator, type ContentOpportunity, type ContentSection, type GSCAnalysisResult, type GSCKeywordData, type GenerateConfig, type GenerateResult, HTMLAdapter, type ListData, type OpportunityConfig, type ProductInfo, type RelatedPost, type SEOData, type SchemaOrgData };
260
+ export { type AIProvider, type Adapter, type AdapterConfig, AdapterRegistry, type BlogManifest, type BlogManifestPost, type BlogPostContent, type BlogPostMetadata, type CTAData, type CodeData, type ComparisonData, ContentGenerator, type ContentOpportunity, type ContentSection, type GSCAnalysisResult, type GSCKeywordData, type GenerateConfig, type GenerateResult, HTMLAdapter, type ListData, type OpportunityConfig, type ProductInfo, type RelatedPost, type SEOData, type SchemaOrgData };
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@ import {
2
2
  AdapterRegistry,
3
3
  ContentGenerator,
4
4
  HTMLAdapter
5
- } from "./chunk-QGUKVOMJ.js";
5
+ } from "./chunk-AJSCN4WK.js";
6
+ import "./chunk-INVECVSW.js";
6
7
  export {
7
8
  AdapterRegistry,
8
9
  ContentGenerator,
@@ -1,12 +1,19 @@
1
1
  export type AIProvider = 'anthropic' | 'openai';
2
2
  export interface BlogPostMetadata {
3
+ id: string;
3
4
  title: string;
4
5
  description: string;
6
+ shortDescription?: string;
7
+ fullDescription?: string;
5
8
  keywords: string[];
6
9
  author: string;
7
10
  datePublished: string;
8
11
  category: string;
9
12
  slug: string;
13
+ url: string;
14
+ readTime: string;
15
+ wordCount: number;
16
+ tags: string[];
10
17
  }
11
18
  export interface SchemaOrgData {
12
19
  '@context': string;
@@ -111,12 +118,50 @@ export interface GenerateConfig {
111
118
  export interface GenerateResult {
112
119
  success: boolean;
113
120
  posts: Array<{
121
+ id: string;
114
122
  title: string;
115
123
  slug: string;
116
124
  path: string;
125
+ url: string;
117
126
  seoScore: number;
127
+ readTime: string;
128
+ wordCount: number;
118
129
  }>;
119
130
  warnings?: string[];
120
131
  errors?: string[];
121
132
  }
133
+ export interface BlogManifest {
134
+ version: string;
135
+ generated: string;
136
+ site: {
137
+ name: string;
138
+ url: string;
139
+ description: string;
140
+ };
141
+ posts: BlogManifestPost[];
142
+ stats: {
143
+ totalPosts: number;
144
+ totalWords: number;
145
+ avgReadTime: string;
146
+ };
147
+ }
148
+ export interface BlogManifestPost {
149
+ id: string;
150
+ slug: string;
151
+ url: string;
152
+ title: string;
153
+ shortDescription: string;
154
+ fullDescription: string;
155
+ publishDate: string;
156
+ readTime: string;
157
+ wordCount: number;
158
+ tags: string[];
159
+ category: string;
160
+ seo: {
161
+ metaTitle: string;
162
+ metaDescription: string;
163
+ keywords: string[];
164
+ seoScore: number;
165
+ };
166
+ }
122
167
  //# sourceMappingURL=content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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"}
package/dist/ui/banner.js CHANGED
@@ -35,7 +35,7 @@ export function showWelcome() {
35
35
  }
36
36
  function getVersion() {
37
37
  try {
38
- return '0.4.1';
38
+ return '0.5.0';
39
39
  }
40
40
  catch {
41
41
  return 'dev';
@@ -0,0 +1,7 @@
1
+ export declare function generateUUID(): string;
2
+ export declare function calculateWordCount(text: string): number;
3
+ export declare function calculateReadTime(wordCount: number): string;
4
+ export declare function extractShortDescription(text: string): string;
5
+ export declare function generateTimestamp(): string;
6
+ export declare function calculateAvgReadTime(wordCounts: number[]): string;
7
+ //# sourceMappingURL=content-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/content-helpers.ts"],"names":[],"mappings":"AASA,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAavD;AAMD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG3D;AAKD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAKD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAKD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,48 @@
1
+ import { randomUUID } from 'crypto';
2
+ export function generateUUID() {
3
+ return randomUUID();
4
+ }
5
+ export function calculateWordCount(text) {
6
+ const cleanText = text
7
+ .replace(/```[\s\S]*?```/g, '')
8
+ .replace(/`[^`]+`/g, '')
9
+ .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
10
+ .replace(/[#*_~`]/g, '')
11
+ .replace(/\s+/g, ' ')
12
+ .trim();
13
+ if (!cleanText)
14
+ return 0;
15
+ return cleanText.split(/\s+/).length;
16
+ }
17
+ export function calculateReadTime(wordCount) {
18
+ const minutes = Math.ceil(wordCount / 200);
19
+ return `${minutes} min`;
20
+ }
21
+ export function extractShortDescription(text) {
22
+ const cleaned = text
23
+ .replace(/[#*_~`]/g, '')
24
+ .replace(/\s+/g, ' ')
25
+ .trim();
26
+ if (cleaned.length <= 160)
27
+ return cleaned;
28
+ const truncated = cleaned.substring(0, 160);
29
+ const lastPeriod = truncated.lastIndexOf('.');
30
+ const lastQuestion = truncated.lastIndexOf('?');
31
+ const lastExclamation = truncated.lastIndexOf('!');
32
+ const lastSentenceEnd = Math.max(lastPeriod, lastQuestion, lastExclamation);
33
+ if (lastSentenceEnd > 0) {
34
+ return cleaned.substring(0, lastSentenceEnd + 1);
35
+ }
36
+ const lastSpace = truncated.lastIndexOf(' ');
37
+ return cleaned.substring(0, lastSpace) + '...';
38
+ }
39
+ export function generateTimestamp() {
40
+ return new Date().toISOString();
41
+ }
42
+ export function calculateAvgReadTime(wordCounts) {
43
+ if (wordCounts.length === 0)
44
+ return '0 min';
45
+ const avgWords = wordCounts.reduce((sum, count) => sum + count, 0) / wordCounts.length;
46
+ return calculateReadTime(Math.round(avgWords));
47
+ }
48
+ //# sourceMappingURL=content-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-helpers.js","sourceRoot":"","sources":["../../src/utils/content-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAKpC,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAE7C,MAAM,SAAS,GAAG,IAAI;SACnB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC;IAEzB,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACvC,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC3C,OAAO,GAAG,OAAO,MAAM,CAAC;AAC1B,CAAC;AAKD,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI;SACjB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IAG1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAE5E,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAGD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;AACjD,CAAC;AAKD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAKD,MAAM,UAAU,oBAAoB,CAAC,UAAoB;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAE5C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IACvF,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edtools/cli",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "AI-Powered Content Marketing CLI - Generate SEO-optimized content with Google Search Console analysis",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "scripts": {
17
17
  "build": "tsc && tsup src/index.ts src/cli/index.ts --format esm --dts && npm run copy-templates",
18
- "copy-templates": "mkdir -p dist/adapters/html/templates dist/templates && cp src/adapters/html/templates/*.ejs dist/adapters/html/templates/ && cp src/adapters/html/templates/*.ejs dist/templates/",
18
+ "copy-templates": "mkdir -p dist/adapters/html/templates dist/templates && cp src/adapters/html/templates/*.ejs dist/adapters/html/templates/",
19
19
  "dev": "tsc --watch",
20
20
  "test": "echo \"Tests coming soon\"",
21
21
  "prepublishOnly": "npm run build"