@arach/og 0.2.3 → 0.2.7
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/dist/cli.js +159 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sitemap.d.ts +10 -0
- package/dist/sitemap.d.ts.map +1 -0
- package/dist/sitemap.js +108 -0
- package/dist/sitemap.js.map +1 -0
- package/dist/viewer.d.ts.map +1 -1
- package/dist/viewer.js +14 -7
- package/dist/viewer.js.map +1 -1
- package/package.json +7 -8
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import { generateOG, generateOGBatch } from './generate.js';
|
|
|
5
5
|
import { validateOG, formatValidationResult } from './validate.js';
|
|
6
6
|
import { startViewer } from './viewer.js';
|
|
7
7
|
import { auditSite } from './audit.js';
|
|
8
|
+
import { generateSitemap, printSitemapHelp } from './sitemap.js';
|
|
8
9
|
async function main() {
|
|
9
10
|
const args = process.argv.slice(2);
|
|
10
11
|
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
@@ -43,6 +44,90 @@ async function main() {
|
|
|
43
44
|
await auditSite(url);
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
47
|
+
// Generate command with smart defaults
|
|
48
|
+
if (command === 'generate') {
|
|
49
|
+
const configArg = args[1];
|
|
50
|
+
// If a config file is provided, use it
|
|
51
|
+
if (configArg && !configArg.startsWith('--')) {
|
|
52
|
+
const configPath = resolve(process.cwd(), configArg);
|
|
53
|
+
try {
|
|
54
|
+
const content = await readFile(configPath, 'utf-8');
|
|
55
|
+
const config = JSON.parse(content);
|
|
56
|
+
if (Array.isArray(config)) {
|
|
57
|
+
await generateOGBatch(config);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
await generateOG(config);
|
|
61
|
+
}
|
|
62
|
+
console.log('\n✓ Done!');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error('Error:', error instanceof Error ? error.message : error);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Smart defaults - look for config files or package.json
|
|
71
|
+
const config = await resolveDefaultConfig();
|
|
72
|
+
console.log(`\n Generating OG image...\n`);
|
|
73
|
+
console.log(` Title: ${config.title}`);
|
|
74
|
+
if (config.subtitle)
|
|
75
|
+
console.log(` Subtitle: ${config.subtitle}`);
|
|
76
|
+
console.log(` Template: ${config.template}`);
|
|
77
|
+
console.log(` Output: ${config.output}\n`);
|
|
78
|
+
try {
|
|
79
|
+
await generateOG(config);
|
|
80
|
+
console.log(` ✓ Created ${config.output}\n`);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('Error:', error instanceof Error ? error.message : error);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Sitemap command
|
|
89
|
+
if (command === 'sitemap') {
|
|
90
|
+
const outputIdx = args.indexOf('--output');
|
|
91
|
+
const outputFlag = outputIdx !== -1 ? args[outputIdx + 1] : undefined;
|
|
92
|
+
// Filter out --output and its value from args
|
|
93
|
+
const restArgs = args.slice(1).filter((a, i) => {
|
|
94
|
+
if (a.startsWith('--'))
|
|
95
|
+
return false;
|
|
96
|
+
// Skip the value after --output
|
|
97
|
+
if (outputIdx !== -1 && args.indexOf(a) === outputIdx + 1)
|
|
98
|
+
return false;
|
|
99
|
+
return true;
|
|
100
|
+
});
|
|
101
|
+
// Check if first arg looks like a URL (base URL)
|
|
102
|
+
let baseUrl;
|
|
103
|
+
let paths = [];
|
|
104
|
+
if (restArgs.length > 0) {
|
|
105
|
+
const first = restArgs[0];
|
|
106
|
+
if (first.includes('.') && !first.startsWith('/')) {
|
|
107
|
+
baseUrl = first.startsWith('http') ? first : `https://${first}`;
|
|
108
|
+
paths = restArgs.slice(1);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// All args are paths, will need inventory for baseUrl
|
|
112
|
+
paths = restArgs;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
console.log(`\n Generating sitemap...\n`);
|
|
117
|
+
const output = await generateSitemap({
|
|
118
|
+
baseUrl,
|
|
119
|
+
paths: paths.length > 0 ? paths : undefined,
|
|
120
|
+
output: outputFlag ?? 'sitemap.xml'
|
|
121
|
+
});
|
|
122
|
+
console.log(` ✓ Created ${output}`);
|
|
123
|
+
printSitemapHelp();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.error('\n Error:', error instanceof Error ? error.message : error);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
46
131
|
// Init command - add paths manually for local dev
|
|
47
132
|
if (command === 'init') {
|
|
48
133
|
const paths = args.slice(1);
|
|
@@ -126,9 +211,11 @@ function printHelp() {
|
|
|
126
211
|
@arach/og - Declarative OG image generation
|
|
127
212
|
|
|
128
213
|
Usage:
|
|
129
|
-
og
|
|
214
|
+
og generate Generate OG image with smart defaults
|
|
215
|
+
og generate <config> Generate from a config file
|
|
130
216
|
og validate <url> Validate OG tags on a single URL
|
|
131
217
|
og audit <url> Audit all pages on a site (uses sitemap)
|
|
218
|
+
og sitemap [url] [paths] Generate a sitemap.xml
|
|
132
219
|
og init <paths...> Add paths to inventory for local dev
|
|
133
220
|
og viewer Launch local viewer for OG inventory
|
|
134
221
|
og --help Show this help message
|
|
@@ -139,7 +226,8 @@ Workflow:
|
|
|
139
226
|
|
|
140
227
|
2. View your inventory: og viewer
|
|
141
228
|
|
|
142
|
-
3. Generate images: og
|
|
229
|
+
3. Generate images: og generate
|
|
230
|
+
Generate sitemap: og sitemap
|
|
143
231
|
|
|
144
232
|
Audit:
|
|
145
233
|
Scan a website's sitemap and audit OG tags for each page.
|
|
@@ -158,6 +246,13 @@ Init:
|
|
|
158
246
|
|
|
159
247
|
Creates/updates .og-inventory.json
|
|
160
248
|
|
|
249
|
+
Sitemap:
|
|
250
|
+
Generate a starter sitemap.xml for your site.
|
|
251
|
+
|
|
252
|
+
$ og sitemap # Uses .og-inventory.json
|
|
253
|
+
$ og sitemap mysite.com / /about /docs # From paths
|
|
254
|
+
$ og sitemap --output public/sitemap.xml # Custom output
|
|
255
|
+
|
|
161
256
|
Viewer:
|
|
162
257
|
Launch local viewer to see your OG inventory.
|
|
163
258
|
|
|
@@ -170,8 +265,12 @@ Validate:
|
|
|
170
265
|
$ og validate https://example.com/page
|
|
171
266
|
|
|
172
267
|
Generate:
|
|
173
|
-
Create OG images from a
|
|
268
|
+
Create OG images. Runs with smart defaults or from a config file.
|
|
174
269
|
|
|
270
|
+
$ og generate # Smart defaults from package.json
|
|
271
|
+
$ og generate og.config.json # From config file
|
|
272
|
+
|
|
273
|
+
Config file format:
|
|
175
274
|
{
|
|
176
275
|
"template": "branded",
|
|
177
276
|
"title": "My App",
|
|
@@ -179,8 +278,65 @@ Generate:
|
|
|
179
278
|
"output": "public/og.png"
|
|
180
279
|
}
|
|
181
280
|
|
|
281
|
+
Smart defaults:
|
|
282
|
+
• Reads title/description from package.json
|
|
283
|
+
• Falls back to directory name
|
|
284
|
+
• Uses 'branded' template
|
|
285
|
+
• Outputs to og.png
|
|
286
|
+
|
|
182
287
|
Templates: branded, docs, minimal, editor-dark
|
|
183
288
|
`);
|
|
184
289
|
}
|
|
290
|
+
async function resolveDefaultConfig() {
|
|
291
|
+
// 1. Check for existing OG config files
|
|
292
|
+
const configFiles = ['og.config.json', '.og.json', 'og.json'];
|
|
293
|
+
for (const file of configFiles) {
|
|
294
|
+
try {
|
|
295
|
+
const content = await readFile(file, 'utf-8');
|
|
296
|
+
const config = JSON.parse(content);
|
|
297
|
+
if (!Array.isArray(config)) {
|
|
298
|
+
console.log(` ✓ Found ${file}\n`);
|
|
299
|
+
return config;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// Try next
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
// 2. Try to read package.json for project info
|
|
307
|
+
let title = 'My Project';
|
|
308
|
+
let subtitle;
|
|
309
|
+
try {
|
|
310
|
+
const pkgContent = await readFile('package.json', 'utf-8');
|
|
311
|
+
const pkg = JSON.parse(pkgContent);
|
|
312
|
+
if (pkg.name) {
|
|
313
|
+
// Clean up package name (remove scope, convert dashes)
|
|
314
|
+
title = pkg.name
|
|
315
|
+
.replace(/^@[\w-]+\//, '') // Remove scope
|
|
316
|
+
.split('-')
|
|
317
|
+
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
318
|
+
.join(' ');
|
|
319
|
+
}
|
|
320
|
+
if (pkg.description) {
|
|
321
|
+
subtitle = pkg.description;
|
|
322
|
+
}
|
|
323
|
+
console.log(` ✓ Using info from package.json\n`);
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
// Use directory name as fallback
|
|
327
|
+
const dirName = process.cwd().split('/').pop() || 'project';
|
|
328
|
+
title = dirName
|
|
329
|
+
.split('-')
|
|
330
|
+
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
331
|
+
.join(' ');
|
|
332
|
+
console.log(` ℹ No package.json found, using directory name\n`);
|
|
333
|
+
}
|
|
334
|
+
return {
|
|
335
|
+
template: 'branded',
|
|
336
|
+
title,
|
|
337
|
+
subtitle,
|
|
338
|
+
output: 'og.png'
|
|
339
|
+
};
|
|
340
|
+
}
|
|
185
341
|
main();
|
|
186
342
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { generateOG, generateOGBatch } from './generate.js';
|
|
2
2
|
export { validateOG, formatValidationResult } from './validate.js';
|
|
3
|
+
export { generateSitemap } from './sitemap.js';
|
|
3
4
|
export { templates } from './templates/index.js';
|
|
4
5
|
export type { OGConfig, TemplateId, TemplateContext, TemplateFunction } from './types.js';
|
|
5
6
|
export type { ValidationResult, ValidationCheck } from './validate.js';
|
|
7
|
+
export type { SitemapOptions } from './sitemap.js';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACzF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SitemapOptions {
|
|
2
|
+
baseUrl?: string;
|
|
3
|
+
paths?: string[];
|
|
4
|
+
output?: string;
|
|
5
|
+
changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
6
|
+
priority?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function generateSitemap(options?: SitemapOptions): Promise<string>;
|
|
9
|
+
export declare function printSitemapHelp(): void;
|
|
10
|
+
//# sourceMappingURL=sitemap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../src/sitemap.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoCnF;AAoCD,wBAAgB,gBAAgB,IAAI,IAAI,CA6CvC"}
|
package/dist/sitemap.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
export async function generateSitemap(options = {}) {
|
|
3
|
+
const output = options.output ?? 'sitemap.xml';
|
|
4
|
+
let baseUrl = options.baseUrl;
|
|
5
|
+
let paths = options.paths ?? [];
|
|
6
|
+
// If no paths provided, try to load from inventory
|
|
7
|
+
if (paths.length === 0) {
|
|
8
|
+
try {
|
|
9
|
+
const inventoryJson = await readFile('.og-inventory.json', 'utf-8');
|
|
10
|
+
const inventory = JSON.parse(inventoryJson);
|
|
11
|
+
baseUrl = baseUrl ?? inventory.baseUrl;
|
|
12
|
+
paths = inventory.pages.map(p => p.path);
|
|
13
|
+
console.log(` ✓ Loaded ${paths.length} paths from .og-inventory.json\n`);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// No inventory found
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (paths.length === 0) {
|
|
20
|
+
throw new Error('No paths provided and no .og-inventory.json found.\n\n Usage:\n og sitemap <baseUrl> [paths...]\n og sitemap https://mysite.com / /about /docs\n\n Or run `og audit <url>` or `og init <paths>` first to create an inventory.');
|
|
21
|
+
}
|
|
22
|
+
if (!baseUrl) {
|
|
23
|
+
throw new Error('No base URL provided.\n\n Usage: og sitemap <baseUrl> [paths...]\n Example: og sitemap https://mysite.com / /about /docs');
|
|
24
|
+
}
|
|
25
|
+
// Normalize base URL
|
|
26
|
+
const base = baseUrl.replace(/\/$/, '');
|
|
27
|
+
// Generate XML
|
|
28
|
+
const xml = buildSitemapXml(base, paths, options);
|
|
29
|
+
// Write file
|
|
30
|
+
await writeFile(output, xml);
|
|
31
|
+
return output;
|
|
32
|
+
}
|
|
33
|
+
function buildSitemapXml(baseUrl, paths, options) {
|
|
34
|
+
const changefreq = options.changefreq ?? 'weekly';
|
|
35
|
+
const priority = options.priority ?? 0.8;
|
|
36
|
+
const lastmod = new Date().toISOString().split('T')[0];
|
|
37
|
+
const urls = paths.map(path => {
|
|
38
|
+
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
|
|
39
|
+
const fullUrl = `${baseUrl}${normalizedPath}`;
|
|
40
|
+
const isHome = normalizedPath === '/';
|
|
41
|
+
return ` <url>
|
|
42
|
+
<loc>${escapeXml(fullUrl)}</loc>
|
|
43
|
+
<lastmod>${lastmod}</lastmod>
|
|
44
|
+
<changefreq>${changefreq}</changefreq>
|
|
45
|
+
<priority>${isHome ? '1.0' : priority.toFixed(1)}</priority>
|
|
46
|
+
</url>`;
|
|
47
|
+
});
|
|
48
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
49
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
50
|
+
${urls.join('\n')}
|
|
51
|
+
</urlset>
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
function escapeXml(str) {
|
|
55
|
+
return str
|
|
56
|
+
.replace(/&/g, '&')
|
|
57
|
+
.replace(/</g, '<')
|
|
58
|
+
.replace(/>/g, '>')
|
|
59
|
+
.replace(/"/g, '"')
|
|
60
|
+
.replace(/'/g, ''');
|
|
61
|
+
}
|
|
62
|
+
export function printSitemapHelp() {
|
|
63
|
+
console.log(`
|
|
64
|
+
${'─'.repeat(60)}
|
|
65
|
+
|
|
66
|
+
Next steps:
|
|
67
|
+
|
|
68
|
+
1. Add to your robots.txt:
|
|
69
|
+
Sitemap: https://yoursite.com/sitemap.xml
|
|
70
|
+
|
|
71
|
+
2. Submit to search engines:
|
|
72
|
+
• Google Search Console: https://search.google.com/search-console
|
|
73
|
+
• Bing Webmaster Tools: https://www.bing.com/webmasters
|
|
74
|
+
|
|
75
|
+
3. Verify it's accessible:
|
|
76
|
+
curl https://yoursite.com/sitemap.xml
|
|
77
|
+
|
|
78
|
+
${'─'.repeat(60)}
|
|
79
|
+
|
|
80
|
+
Learn more:
|
|
81
|
+
|
|
82
|
+
Sitemap basics:
|
|
83
|
+
• Sitemap protocol spec: https://www.sitemaps.org/protocol.html
|
|
84
|
+
• Google sitemap guide: https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview
|
|
85
|
+
|
|
86
|
+
SEO fundamentals:
|
|
87
|
+
• Google SEO starter guide: https://developers.google.com/search/docs/fundamentals/seo-starter-guide
|
|
88
|
+
• Ahrefs SEO basics: https://ahrefs.com/seo
|
|
89
|
+
|
|
90
|
+
Quick-start tools:
|
|
91
|
+
|
|
92
|
+
# Next.js projects - auto-generates from pages
|
|
93
|
+
npx next-sitemap
|
|
94
|
+
|
|
95
|
+
# Crawl any site and generate sitemap
|
|
96
|
+
npx sitemap-generator-cli https://yoursite.com
|
|
97
|
+
|
|
98
|
+
# Validate your sitemap
|
|
99
|
+
npx sitemap-validator sitemap.xml
|
|
100
|
+
|
|
101
|
+
Open source repos:
|
|
102
|
+
• next-sitemap: https://github.com/iamvishnusankar/next-sitemap
|
|
103
|
+
• sitemap.js: https://github.com/ekalinin/sitemap.js
|
|
104
|
+
|
|
105
|
+
${'─'.repeat(60)}
|
|
106
|
+
`);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=sitemap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../src/sitemap.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../src/viewer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../src/viewer.ts"],"names":[],"mappings":"AA0dA,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDzE"}
|
package/dist/viewer.js
CHANGED
|
@@ -39,18 +39,25 @@ async function getImageDimensions(filePath) {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
function isLikelyOGImage(name, width, height) {
|
|
42
|
-
// Check filename first
|
|
43
42
|
const lowerName = name.toLowerCase();
|
|
44
|
-
|
|
43
|
+
// Exclude common non-OG image patterns
|
|
44
|
+
const excludePatterns = ['logo', 'icon', 'avatar', 'favicon', 'header', 'banner', 'thumb', 'thumbnail', 'badge', 'button', 'sprite'];
|
|
45
|
+
if (excludePatterns.some(pattern => lowerName.includes(pattern))) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// Strong match: filename explicitly mentions OG
|
|
49
|
+
if (lowerName.includes('og.') || lowerName.includes('og-') || lowerName.includes('-og.') ||
|
|
50
|
+
lowerName.includes('opengraph') || lowerName.includes('open-graph') ||
|
|
51
|
+
lowerName.includes('social-card') || lowerName.includes('social-image')) {
|
|
45
52
|
return true;
|
|
46
53
|
}
|
|
47
|
-
//
|
|
54
|
+
// Dimension match: must be close to standard OG size (1200x630)
|
|
48
55
|
if (width && height) {
|
|
49
56
|
const ratio = width / height;
|
|
50
|
-
// OG ratio is ~1.91,
|
|
51
|
-
const isOGRatio = ratio >= 1.
|
|
52
|
-
//
|
|
53
|
-
const isOGSize = width >=
|
|
57
|
+
// OG ratio is ~1.91, tight variance (1.85 to 1.95)
|
|
58
|
+
const isOGRatio = ratio >= 1.85 && ratio <= 1.95;
|
|
59
|
+
// Must be reasonably large (at least 1000px wide for proper OG)
|
|
60
|
+
const isOGSize = width >= 1000;
|
|
54
61
|
if (isOGRatio && isOGSize) {
|
|
55
62
|
return true;
|
|
56
63
|
}
|
package/dist/viewer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../src/viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAY,MAAM,WAAW,CAAA;AAEnD,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,kBAAkB;CAC5B,CAAA;AAWD,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;YAChE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAE1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACnF,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpB,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;oBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;oBACpC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC1B,OAAM;gBACR,CAAC;gBAED,8EAA8E;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAc,EAAE,MAAe;IACpE,
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../src/viewer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arach/og",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Declarative OG image generation with Puppeteer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,12 +18,6 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"templates"
|
|
20
20
|
],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsc",
|
|
23
|
-
"dev": "tsc --watch",
|
|
24
|
-
"test": "node --test src/**/*.test.ts",
|
|
25
|
-
"prepublishOnly": "pnpm build"
|
|
26
|
-
},
|
|
27
21
|
"keywords": [
|
|
28
22
|
"og",
|
|
29
23
|
"opengraph",
|
|
@@ -40,5 +34,10 @@
|
|
|
40
34
|
"devDependencies": {
|
|
41
35
|
"@types/node": "^22.0.0",
|
|
42
36
|
"typescript": "^5.7.0"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc",
|
|
40
|
+
"dev": "tsc --watch",
|
|
41
|
+
"test": "node --test src/**/*.test.ts"
|
|
43
42
|
}
|
|
44
|
-
}
|
|
43
|
+
}
|