@arach/og 0.2.7 → 0.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.
package/dist/cli.js CHANGED
@@ -1,11 +1,49 @@
1
1
  #!/usr/bin/env node
2
2
  import { readFile } from 'node:fs/promises';
3
- import { resolve } from 'node:path';
3
+ import { resolve, extname } from 'node:path';
4
4
  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
8
  import { generateSitemap, printSitemapHelp } from './sitemap.js';
9
+ import { runSetup } from './setup.js';
10
+ /**
11
+ * Parse --var key=value flags from args
12
+ */
13
+ function parseVars(args) {
14
+ const vars = {};
15
+ for (let i = 0; i < args.length; i++) {
16
+ if (args[i] === '--var' && args[i + 1]) {
17
+ const [key, ...valueParts] = args[i + 1].split('=');
18
+ if (key && valueParts.length > 0) {
19
+ vars[key] = valueParts.join('=');
20
+ }
21
+ i++;
22
+ }
23
+ }
24
+ return vars;
25
+ }
26
+ /**
27
+ * Get a string argument value
28
+ */
29
+ function getArg(args, flag) {
30
+ const idx = args.indexOf(flag);
31
+ return idx !== -1 && args[idx + 1] ? args[idx + 1] : undefined;
32
+ }
33
+ /**
34
+ * Get an integer argument value
35
+ */
36
+ function getArgInt(args, flag, defaultValue) {
37
+ const val = getArg(args, flag);
38
+ return val ? parseInt(val, 10) : defaultValue;
39
+ }
40
+ /**
41
+ * Check if a file path is a custom template
42
+ */
43
+ function isTemplateFile(path) {
44
+ const ext = extname(path).toLowerCase();
45
+ return ['.tsx', '.jsx', '.html', '.htm'].includes(ext);
46
+ }
9
47
  async function main() {
10
48
  const args = process.argv.slice(2);
11
49
  if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
@@ -85,6 +123,12 @@ async function main() {
85
123
  }
86
124
  return;
87
125
  }
126
+ // Setup command - uses Claude Code for smart project analysis
127
+ if (command === 'setup') {
128
+ const ogPath = args[1] || 'og.png';
129
+ await runSetup(ogPath);
130
+ return;
131
+ }
88
132
  // Sitemap command
89
133
  if (command === 'sitemap') {
90
134
  const outputIdx = args.indexOf('--output');
@@ -188,7 +232,28 @@ async function main() {
188
232
  await startViewer(dir, port);
189
233
  return;
190
234
  }
191
- // Generate command (default)
235
+ // Custom template file (tsx, jsx, html)
236
+ if (isTemplateFile(command)) {
237
+ const output = getArg(args, '-o') || getArg(args, '--output') || 'og.png';
238
+ const vars = parseVars(args);
239
+ try {
240
+ await generateOG({
241
+ template: command,
242
+ output,
243
+ vars: Object.keys(vars).length ? vars : undefined,
244
+ width: getArgInt(args, '--width', 1200),
245
+ height: getArgInt(args, '--height', 630),
246
+ scale: getArgInt(args, '--scale', 2),
247
+ });
248
+ console.log('\n✓ Done!');
249
+ }
250
+ catch (error) {
251
+ console.error('Error:', error instanceof Error ? error.message : error);
252
+ process.exit(1);
253
+ }
254
+ return;
255
+ }
256
+ // Generate command (default) - JSON config file
192
257
  const configPath = resolve(process.cwd(), command);
193
258
  try {
194
259
  const content = await readFile(configPath, 'utf-8');
@@ -213,6 +278,8 @@ function printHelp() {
213
278
  Usage:
214
279
  og generate Generate OG image with smart defaults
215
280
  og generate <config> Generate from a config file
281
+ og <template.tsx> Generate from a custom TSX/JSX/HTML template
282
+ og setup [og.png] Set up meta tags (uses Claude Code)
216
283
  og validate <url> Validate OG tags on a single URL
217
284
  og audit <url> Audit all pages on a site (uses sitemap)
218
285
  og sitemap [url] [paths] Generate a sitemap.xml
@@ -284,7 +351,44 @@ Generate:
284
351
  • Uses 'branded' template
285
352
  • Outputs to og.png
286
353
 
287
- Templates: branded, docs, minimal, editor-dark
354
+ Custom Templates:
355
+ Use your own TSX/JSX or HTML files as templates.
356
+
357
+ $ og template.tsx -o og.png --var title="Hello" --var accent="#3b82f6"
358
+ $ og template.html -o og.png --var title="Hello"
359
+
360
+ TSX/JSX templates (requires: pnpm add esbuild react react-dom):
361
+ export default function OG({ title, accent }) {
362
+ return (
363
+ <html>
364
+ <body style={{ width: 1200, height: 630, background: accent }}>
365
+ <h1>{title}</h1>
366
+ </body>
367
+ </html>
368
+ )
369
+ }
370
+
371
+ HTML templates use {{varName}} substitution:
372
+ <html><body><h1>{{title}}</h1></body></html>
373
+
374
+ Config file with custom template:
375
+ {
376
+ "template": "my-template.tsx",
377
+ "output": "og.png",
378
+ "vars": { "title": "Hello", "accent": "#3b82f6" }
379
+ }
380
+
381
+ Setup:
382
+ Analyze your project and get tailored meta tag instructions.
383
+ Uses Claude Code CLI for smart project detection.
384
+
385
+ $ og setup # After generating og.png
386
+ $ og setup public/og.png # Custom image path
387
+
388
+ Detects: React, Next.js, Vite, existing helmet, etc.
389
+ Provides: Copy-pasteable code + step-by-step instructions
390
+
391
+ Templates: branded, docs, minimal, editor-dark, or custom .tsx/.jsx/.html files
288
392
  `);
289
393
  }
290
394
  async function resolveDefaultConfig() {
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;AACtC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGhE,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAElC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,SAAS,EAAE,CAAA;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAEvB,mBAAmB;IACnB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YACxD,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;YACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,KAAK,CAAC,CAAA;YAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACrD,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,uCAAuC;QACvC,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;YACpD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAA;gBAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC1B,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBACxB,OAAM;YACR,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAA;QAE3C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1C,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QAE7C,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;YACxB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAM;IACR,CAAC;IAED,kBAAkB;IAClB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAErE,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAA;YACpC,gCAAgC;YAChC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAA;YACvE,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,iDAAiD;QACjD,IAAI,OAA2B,CAAA;QAC/B,IAAI,KAAK,GAAa,EAAE,CAAA;QAExB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAA;gBAC/D,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,KAAK,GAAG,QAAQ,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAC1C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,OAAO;gBACP,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC3C,MAAM,EAAE,UAAU,IAAI,aAAa;aACpC,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAA;YACpC,gBAAgB,EAAE,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAM;IACR,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;CAUjB,CAAC,CAAA;YACI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAChE,IAAI,SAAyK,CAAA;QAE7K,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;YAC9D,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG;gBACV,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,EAAE;aACV,CAAA;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;YAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;gBAC1D,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;oBACnB,GAAG,EAAE,WAAW,cAAc,EAAE;oBAChC,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC,iBAAiB,CAAC;iBAC5B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;QAC7C,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAE9C,MAAM,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACzE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,MAAM,gCAAgC,CAAC,CAAA;QACxE,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAM;IACR,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACxF,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;QACrG,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;QACnE,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAM;IACR,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IAElD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAA;QAE3D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Eb,CAAC,CAAA;AACF,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,wCAAwC;IACxC,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IAC7D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAA;gBAClC,OAAO,MAAkB,CAAA;YAC3B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,KAAK,GAAG,YAAY,CAAA;IACxB,IAAI,QAA4B,CAAA;IAEhC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,uDAAuD;YACvD,KAAK,GAAG,GAAG,CAAC,IAAI;iBACb,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,eAAe;iBACzC,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC1D,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAA;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAA;QAC3D,KAAK,GAAG,OAAO;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAClE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,QAAQ;KACjB,CAAA;AACH,CAAC;AAED,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Compile and render a JSX/TSX template to HTML
3
+ */
4
+ export declare function compileAndRender(templatePath: string, vars?: Record<string, unknown>): Promise<string>;
5
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
@@ -0,0 +1,69 @@
1
+ import { tmpdir } from 'node:os';
2
+ import { join } from 'node:path';
3
+ import { unlink } from 'node:fs/promises';
4
+ import { pathToFileURL } from 'node:url';
5
+ // Lazy-loaded modules (typed as any to avoid requiring types at build time)
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ let esbuild = null;
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ let React = null;
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ let ReactDOMServer = null;
12
+ // Helper to dynamically import modules without TypeScript resolving them
13
+ async function dynamicImport(moduleName) {
14
+ return import(moduleName);
15
+ }
16
+ async function loadDependencies() {
17
+ if (!esbuild || !React || !ReactDOMServer) {
18
+ try {
19
+ esbuild = await dynamicImport('esbuild');
20
+ React = await dynamicImport('react');
21
+ ReactDOMServer = await dynamicImport('react-dom/server');
22
+ }
23
+ catch {
24
+ throw new Error('Custom TSX/JSX templates require additional dependencies.\n' +
25
+ 'Install them with: pnpm add esbuild react react-dom');
26
+ }
27
+ }
28
+ return { esbuild, React, ReactDOMServer };
29
+ }
30
+ /**
31
+ * Compile and render a JSX/TSX template to HTML
32
+ */
33
+ export async function compileAndRender(templatePath, vars = {}) {
34
+ const { esbuild, React, ReactDOMServer } = await loadDependencies();
35
+ const outfile = join(tmpdir(), `og-template-${Date.now()}.mjs`);
36
+ try {
37
+ // Compile TSX/JSX to JS
38
+ await esbuild.build({
39
+ entryPoints: [templatePath],
40
+ outfile,
41
+ bundle: true,
42
+ platform: 'node',
43
+ format: 'esm',
44
+ jsx: 'automatic',
45
+ external: ['react', 'react-dom'],
46
+ logLevel: 'silent',
47
+ });
48
+ // Import the compiled module
49
+ const moduleUrl = pathToFileURL(outfile).href;
50
+ const module = await dynamicImport(moduleUrl);
51
+ const Component = module.default;
52
+ if (!Component) {
53
+ throw new Error(`Template ${templatePath} must export a default component`);
54
+ }
55
+ // Render to static HTML
56
+ const element = React.createElement(Component, vars);
57
+ const html = ReactDOMServer.renderToStaticMarkup(element);
58
+ // Wrap in doctype if not present
59
+ if (!html.toLowerCase().startsWith('<!doctype')) {
60
+ return `<!DOCTYPE html>${html}`;
61
+ }
62
+ return html;
63
+ }
64
+ finally {
65
+ // Clean up temp file
66
+ await unlink(outfile).catch(() => { });
67
+ }
68
+ }
69
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,4EAA4E;AAC5E,8DAA8D;AAC9D,IAAI,OAAO,GAAQ,IAAI,CAAA;AACvB,8DAA8D;AAC9D,IAAI,KAAK,GAAQ,IAAI,CAAA;AACrB,8DAA8D;AAC9D,IAAI,cAAc,GAAQ,IAAI,CAAA;AAE9B,yEAAyE;AACzE,KAAK,UAAU,aAAa,CAAC,UAAkB;IAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAA;YACxC,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAA;YACpC,cAAc,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,CAAA;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC7D,qDAAqD,CACtD,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,OAAgC,EAAE;IAElC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE/D,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,CAAC,KAAK,CAAC;YAClB,WAAW,EAAE,CAAC,YAAY,CAAC;YAC3B,OAAO;YACP,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;YAChC,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;QAEF,6BAA6B;QAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;QAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAA;QAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,kCAAkC,CAAC,CAAA;QAC7E,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;QAEzD,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChD,OAAO,kBAAkB,IAAI,EAAE,CAAA;QACjC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;YAAS,CAAC;QACT,qBAAqB;QACrB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACvC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AAS3D;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEhE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmExE"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,YAAY,CAAA;AA2CvE;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFhE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFxE"}
package/dist/generate.js CHANGED
@@ -1,35 +1,74 @@
1
1
  import puppeteer from 'puppeteer';
2
- import { mkdir } from 'node:fs/promises';
3
- import { dirname } from 'node:path';
2
+ import { mkdir, readFile } from 'node:fs/promises';
3
+ import { dirname, extname, resolve } from 'node:path';
4
4
  import { templates } from './templates/index.js';
5
+ import { compileAndRender } from './compile.js';
5
6
  const DEFAULT_FONTS = ['Fraunces:wght@500;600', 'Space Grotesk:wght@400;500;600'];
6
7
  const DEFAULT_ACCENT = '#f07c4f';
7
8
  const DEFAULT_ACCENT_SECONDARY = '#1f7a65';
8
9
  const DEFAULT_BACKGROUND = '#f7f3ec';
9
10
  const DEFAULT_TEXT_COLOR = '#101518';
11
+ /**
12
+ * Check if a template value is a file path (has a supported extension)
13
+ */
14
+ function isCustomTemplate(template) {
15
+ const ext = extname(template).toLowerCase();
16
+ return ['.tsx', '.jsx', '.html', '.htm'].includes(ext);
17
+ }
18
+ /**
19
+ * Render HTML from a custom template file
20
+ */
21
+ async function renderCustomTemplate(templatePath, vars = {}) {
22
+ const ext = extname(templatePath).toLowerCase();
23
+ const fullPath = resolve(process.cwd(), templatePath);
24
+ if (ext === '.tsx' || ext === '.jsx') {
25
+ // JSX/TSX template - compile and render
26
+ return compileAndRender(fullPath, vars);
27
+ }
28
+ else if (ext === '.html' || ext === '.htm') {
29
+ // Raw HTML template - simple var substitution
30
+ let html = await readFile(fullPath, 'utf-8');
31
+ for (const [key, value] of Object.entries(vars)) {
32
+ html = html.replaceAll(`{{${key}}}`, String(value));
33
+ }
34
+ return html;
35
+ }
36
+ throw new Error(`Unsupported template extension: ${ext}`);
37
+ }
10
38
  /**
11
39
  * Generate an OG image from config
12
40
  */
13
41
  export async function generateOG(config) {
14
- const { template = 'branded', title, subtitle, accent = DEFAULT_ACCENT, accentSecondary = DEFAULT_ACCENT_SECONDARY, background = DEFAULT_BACKGROUND, textColor = DEFAULT_TEXT_COLOR, output, width = 1200, height = 630, scale = 2, fonts = DEFAULT_FONTS, logo, tag, } = config;
15
- const templateFn = templates[template];
16
- if (!templateFn) {
17
- throw new Error(`Unknown template: ${template}. Available: ${Object.keys(templates).join(', ')}`);
42
+ const { template = 'branded', title, subtitle, accent = DEFAULT_ACCENT, accentSecondary = DEFAULT_ACCENT_SECONDARY, background = DEFAULT_BACKGROUND, textColor = DEFAULT_TEXT_COLOR, output, width = 1200, height = 630, scale = 2, fonts = DEFAULT_FONTS, logo, tag, vars, } = config;
43
+ let html;
44
+ // Check if template is a custom file path
45
+ if (isCustomTemplate(template)) {
46
+ html = await renderCustomTemplate(template, vars);
47
+ }
48
+ else {
49
+ // Built-in template
50
+ if (!title) {
51
+ throw new Error('title is required for built-in templates');
52
+ }
53
+ const templateFn = templates[template];
54
+ if (!templateFn) {
55
+ throw new Error(`Unknown template: ${template}. Available: ${Object.keys(templates).join(', ')}`);
56
+ }
57
+ const context = {
58
+ title,
59
+ subtitle,
60
+ accent,
61
+ accentSecondary,
62
+ background,
63
+ textColor,
64
+ width,
65
+ height,
66
+ fonts,
67
+ logo,
68
+ tag,
69
+ };
70
+ html = templateFn(context);
18
71
  }
19
- const context = {
20
- title,
21
- subtitle,
22
- accent,
23
- accentSecondary,
24
- background,
25
- textColor,
26
- width,
27
- height,
28
- fonts,
29
- logo,
30
- tag,
31
- };
32
- const html = templateFn(context);
33
72
  // Ensure output directory exists
34
73
  await mkdir(dirname(output), { recursive: true });
35
74
  // Launch browser and generate
@@ -66,26 +105,44 @@ export async function generateOGBatch(configs) {
66
105
  });
67
106
  try {
68
107
  for (const config of configs) {
69
- const { template = 'branded', title, subtitle, accent = DEFAULT_ACCENT, accentSecondary = DEFAULT_ACCENT_SECONDARY, background = DEFAULT_BACKGROUND, textColor = DEFAULT_TEXT_COLOR, output, width = 1200, height = 630, scale = 2, fonts = DEFAULT_FONTS, logo, tag, } = config;
70
- const templateFn = templates[template];
71
- if (!templateFn) {
72
- console.error(`✗ Unknown template: ${template}`);
73
- continue;
108
+ const { template = 'branded', title, subtitle, accent = DEFAULT_ACCENT, accentSecondary = DEFAULT_ACCENT_SECONDARY, background = DEFAULT_BACKGROUND, textColor = DEFAULT_TEXT_COLOR, output, width = 1200, height = 630, scale = 2, fonts = DEFAULT_FONTS, logo, tag, vars, } = config;
109
+ let html;
110
+ // Check if template is a custom file path
111
+ if (isCustomTemplate(template)) {
112
+ try {
113
+ html = await renderCustomTemplate(template, vars);
114
+ }
115
+ catch (error) {
116
+ console.error(`✗ Error rendering custom template ${template}:`, error instanceof Error ? error.message : error);
117
+ continue;
118
+ }
119
+ }
120
+ else {
121
+ // Built-in template
122
+ if (!title) {
123
+ console.error(`✗ title is required for built-in template: ${template}`);
124
+ continue;
125
+ }
126
+ const templateFn = templates[template];
127
+ if (!templateFn) {
128
+ console.error(`✗ Unknown template: ${template}`);
129
+ continue;
130
+ }
131
+ const context = {
132
+ title,
133
+ subtitle,
134
+ accent,
135
+ accentSecondary,
136
+ background,
137
+ textColor,
138
+ width,
139
+ height,
140
+ fonts,
141
+ logo,
142
+ tag,
143
+ };
144
+ html = templateFn(context);
74
145
  }
75
- const context = {
76
- title,
77
- subtitle,
78
- accent,
79
- accentSecondary,
80
- background,
81
- textColor,
82
- width,
83
- height,
84
- fonts,
85
- logo,
86
- tag,
87
- };
88
- const html = templateFn(context);
89
146
  await mkdir(dirname(output), { recursive: true });
90
147
  const page = await browser.newPage();
91
148
  await page.setViewport({ width, height, deviceScaleFactor: scale });
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { generateOG, generateOGBatch } from './generate.js';
2
2
  export { validateOG, formatValidationResult } from './validate.js';
3
3
  export { generateSitemap } from './sitemap.js';
4
4
  export { templates } from './templates/index.js';
5
+ export { compileAndRender } from './compile.js';
5
6
  export type { OGConfig, TemplateId, TemplateContext, TemplateFunction } from './types.js';
6
7
  export type { ValidationResult, ValidationCheck } from './validate.js';
7
8
  export type { SitemapOptions } from './sitemap.js';
@@ -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,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"}
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,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,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
@@ -2,4 +2,5 @@ export { generateOG, generateOGBatch } from './generate.js';
2
2
  export { validateOG, formatValidationResult } from './validate.js';
3
3
  export { generateSitemap } from './sitemap.js';
4
4
  export { templates } from './templates/index.js';
5
+ export { compileAndRender } from './compile.js';
5
6
  //# sourceMappingURL=index.js.map
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,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,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;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ export interface SetupAnalysis {
2
+ isReact: boolean;
3
+ isNextJs: boolean;
4
+ isVite: boolean;
5
+ hasHelmet: boolean;
6
+ hasExistingOgTags: boolean;
7
+ recommendHelmet: boolean;
8
+ metaTagsLocation: string | null;
9
+ installCommand: string | null;
10
+ metaTags: string;
11
+ instructions: string[];
12
+ }
13
+ export declare function runSetup(ogImagePath?: string): Promise<SetupAnalysis | null>;
14
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AA4FD,wBAAsB,QAAQ,CAAC,WAAW,GAAE,MAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA8D5F"}
package/dist/setup.js ADDED
@@ -0,0 +1,177 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
4
+ async function gatherContext(ogImagePath) {
5
+ const context = {
6
+ packageJson: null,
7
+ hasAppRouter: false,
8
+ hasPagesRouter: false,
9
+ hasIndexHtml: false,
10
+ layoutFiles: [],
11
+ ogImagePath
12
+ };
13
+ // Read package.json
14
+ try {
15
+ const pkg = await readFile('package.json', 'utf-8');
16
+ context.packageJson = JSON.parse(pkg);
17
+ }
18
+ catch {
19
+ // No package.json
20
+ }
21
+ // Check for Next.js app router
22
+ context.hasAppRouter = existsSync('app') || existsSync('src/app');
23
+ context.hasPagesRouter = existsSync('pages') || existsSync('src/pages');
24
+ // Check for index.html (Vite, CRA, plain HTML)
25
+ context.hasIndexHtml = existsSync('index.html') || existsSync('public/index.html');
26
+ // Find layout files
27
+ const layoutPatterns = [
28
+ 'app/layout.tsx', 'app/layout.jsx', 'app/layout.js',
29
+ 'src/app/layout.tsx', 'src/app/layout.jsx', 'src/app/layout.js',
30
+ 'pages/_app.tsx', 'pages/_app.jsx', 'pages/_app.js',
31
+ 'src/pages/_app.tsx', 'src/pages/_app.jsx', 'src/pages/_app.js',
32
+ 'src/App.tsx', 'src/App.jsx', 'src/App.js',
33
+ 'src/main.tsx', 'src/main.jsx', 'src/main.js'
34
+ ];
35
+ for (const pattern of layoutPatterns) {
36
+ if (existsSync(pattern)) {
37
+ context.layoutFiles.push(pattern);
38
+ }
39
+ }
40
+ return context;
41
+ }
42
+ function buildPrompt(context) {
43
+ const contextJson = JSON.stringify(context, null, 2);
44
+ return `Analyze this project and help set up OG meta tags for the image at "${context.ogImagePath}".
45
+
46
+ PROJECT CONTEXT:
47
+ ${contextJson}
48
+
49
+ Respond with ONLY valid JSON matching this exact structure (no markdown, no explanation, just JSON):
50
+
51
+ {
52
+ "isReact": boolean,
53
+ "isNextJs": boolean,
54
+ "isVite": boolean,
55
+ "hasHelmet": boolean,
56
+ "hasExistingOgTags": boolean,
57
+ "recommendHelmet": boolean,
58
+ "metaTagsLocation": "path/to/file or null if unclear",
59
+ "installCommand": "pnpm add react-helmet-async" or null if not needed,
60
+ "metaTags": "the actual code snippet to add (HTML meta tags or React/Next.js code)",
61
+ "instructions": ["step 1", "step 2", ...]
62
+ }
63
+
64
+ Rules:
65
+ - isReact: true if React is a dependency
66
+ - isNextJs: true if Next.js project (next in dependencies)
67
+ - isVite: true if Vite project (vite in devDependencies)
68
+ - hasHelmet: true if react-helmet or react-helmet-async is installed
69
+ - recommendHelmet: true if React (not Next.js) and no helmet installed
70
+ - For Next.js App Router: use generateMetadata or metadata export
71
+ - For Next.js Pages Router: use next/head
72
+ - For React+Vite: use react-helmet-async
73
+ - For plain HTML: just the meta tags
74
+ - metaTags should be copy-pasteable code
75
+ - instructions should be clear, actionable steps`;
76
+ }
77
+ export async function runSetup(ogImagePath = 'og.png') {
78
+ console.log(`\n Analyzing project for OG setup...\n`);
79
+ const context = await gatherContext(ogImagePath);
80
+ // Find claude CLI - prefer ~/.claude/local/claude
81
+ const homedir = process.env.HOME || process.env.USERPROFILE || '';
82
+ const claudePaths = [
83
+ `${homedir}/.claude/local/claude`,
84
+ 'claude' // fallback to PATH
85
+ ];
86
+ let claudePath = null;
87
+ for (const p of claudePaths) {
88
+ try {
89
+ execSync(`${p} --version`, { encoding: 'utf-8', stdio: 'pipe' });
90
+ claudePath = p;
91
+ break;
92
+ }
93
+ catch {
94
+ // Try next
95
+ }
96
+ }
97
+ if (!claudePath) {
98
+ console.log(` Claude Code CLI not found. Install it or use manual setup.\n`);
99
+ printFallbackInstructions(ogImagePath);
100
+ return null;
101
+ }
102
+ const prompt = buildPrompt(context);
103
+ console.log(` Running analysis with Claude Code...\n`);
104
+ try {
105
+ // Shell out to claude -p using stdin to avoid shell escaping issues
106
+ const result = execSync(`${claudePath} -p -`, {
107
+ encoding: 'utf-8',
108
+ input: prompt,
109
+ stdio: ['pipe', 'pipe', 'pipe'],
110
+ maxBuffer: 1024 * 1024
111
+ });
112
+ // Parse the JSON response
113
+ const jsonMatch = result.match(/\{[\s\S]*\}/);
114
+ if (!jsonMatch) {
115
+ console.log(` Could not parse response. Raw output:\n`);
116
+ console.log(result);
117
+ return null;
118
+ }
119
+ const analysis = JSON.parse(jsonMatch[0]);
120
+ printAnalysis(analysis);
121
+ return analysis;
122
+ }
123
+ catch (error) {
124
+ const err = error;
125
+ console.log(` Claude analysis failed. Using fallback.`);
126
+ if (err.stderr)
127
+ console.log(` Error: ${err.stderr.slice(0, 200)}`);
128
+ console.log();
129
+ printFallbackInstructions(ogImagePath);
130
+ return null;
131
+ }
132
+ }
133
+ function printAnalysis(analysis) {
134
+ const check = '\x1b[32m✓\x1b[0m';
135
+ const cross = '\x1b[31m✗\x1b[0m';
136
+ const info = '\x1b[36mℹ\x1b[0m';
137
+ console.log(` Project Analysis`);
138
+ console.log(` ${'─'.repeat(40)}`);
139
+ console.log(` ${analysis.isNextJs ? check : cross} Next.js`);
140
+ console.log(` ${analysis.isReact ? check : cross} React`);
141
+ console.log(` ${analysis.isVite ? check : cross} Vite`);
142
+ console.log(` ${analysis.hasHelmet ? check : cross} Helmet installed`);
143
+ console.log(` ${analysis.hasExistingOgTags ? check : cross} Existing OG tags`);
144
+ if (analysis.recommendHelmet && analysis.installCommand) {
145
+ console.log(`\n ${info} Recommended: Install helmet for meta tag management`);
146
+ console.log(`\n ${analysis.installCommand}\n`);
147
+ }
148
+ if (analysis.metaTagsLocation) {
149
+ console.log(`\n ${info} Add to: ${analysis.metaTagsLocation}`);
150
+ }
151
+ console.log(`\n ${'─'.repeat(40)}`);
152
+ console.log(` Code to add:`);
153
+ console.log(` ${'─'.repeat(40)}\n`);
154
+ console.log(analysis.metaTags);
155
+ console.log(`\n ${'─'.repeat(40)}`);
156
+ if (analysis.instructions.length > 0) {
157
+ console.log(`\n Steps:`);
158
+ analysis.instructions.forEach((step, i) => {
159
+ console.log(` ${i + 1}. ${step}`);
160
+ });
161
+ }
162
+ console.log();
163
+ }
164
+ function printFallbackInstructions(ogImagePath) {
165
+ console.log(` Add these meta tags to your HTML <head>:\n`);
166
+ console.log(` <meta property="og:image" content="https://yoursite.com/${ogImagePath}" />`);
167
+ console.log(` <meta property="og:image:width" content="1200" />`);
168
+ console.log(` <meta property="og:image:height" content="630" />`);
169
+ console.log(` <meta property="og:type" content="website" />\n`);
170
+ console.log(` For React projects, consider react-helmet-async:`);
171
+ console.log(` pnpm add react-helmet-async\n`);
172
+ console.log(` For Next.js App Router, export metadata from layout.tsx:`);
173
+ console.log(` export const metadata = {`);
174
+ console.log(` openGraph: { images: ['/og.png'] }`);
175
+ console.log(` }\n`);
176
+ }
177
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAW,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAwBpC,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,MAAM,OAAO,GAAmB;QAC9B,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,EAAE;QACf,WAAW;KACZ,CAAA;IAED,oBAAoB;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QACnD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;IAED,+BAA+B;IAC/B,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;IACjE,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;IAEvE,+CAA+C;IAC/C,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAElF,oBAAoB;IACpB,MAAM,cAAc,GAAG;QACrB,gBAAgB,EAAE,gBAAgB,EAAE,eAAe;QACnD,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB;QAC/D,gBAAgB,EAAE,gBAAgB,EAAE,eAAe;QACnD,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB;QAC/D,aAAa,EAAE,aAAa,EAAE,YAAY;QAC1C,cAAc,EAAE,cAAc,EAAE,aAAa;KAC9C,CAAA;IAED,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAEpD,OAAO,uEAAuE,OAAO,CAAC,WAAW;;;EAGjG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDA4BoC,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,cAAsB,QAAQ;IAC3D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;IAEtD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAA;IAEhD,kDAAkD;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAA;IACjE,MAAM,WAAW,GAAG;QAClB,GAAG,OAAO,uBAAuB;QACjC,QAAQ,CAAC,mBAAmB;KAC7B,CAAA;IAED,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAChE,UAAU,GAAG,CAAC,CAAA;YACd,MAAK;QACP,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;QAC7E,yBAAyB,CAAC,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAEnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;IAEvD,IAAI,CAAC;QACH,oEAAoE;QACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,UAAU,OAAO,EAAE;YAC5C,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CAAC,CAAA;QAEF,0BAA0B;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;YACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,QAAQ,GAAkB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,aAAa,CAAC,QAAQ,CAAC,CAAA;QACvB,OAAO,QAAQ,CAAA;IAEjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAqD,CAAA;QACjE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;QACxD,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,yBAAyB,CAAC,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAuB;IAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAA;IAChC,MAAM,KAAK,GAAG,kBAAkB,CAAA;IAChC,MAAM,IAAI,GAAG,kBAAkB,CAAA;IAE/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAA;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAA;IAE/E,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,sDAAsD,CAAC,CAAA;QAC9E,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,YAAY,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAEpC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAmB;IACpD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,+DAA+D,WAAW,MAAM,CAAC,CAAA;IAC7F,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACpE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACpE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;IAElE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IAEhD,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IACzE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACxB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  export type TemplateId = 'branded' | 'docs' | 'minimal' | 'editor-dark';
2
2
  export interface OGConfig {
3
- /** Template to use */
4
- template?: TemplateId;
5
- /** Primary title */
6
- title: string;
3
+ /**
4
+ * Template to use.
5
+ * Can be a built-in template ID or a path to a custom template file.
6
+ * Supports: .tsx, .jsx, .html, .htm
7
+ * For TSX/JSX: export default React component, receives vars as props
8
+ * For HTML: simple {{varName}} substitution
9
+ */
10
+ template?: TemplateId | string;
11
+ /** Primary title (required for built-in templates) */
12
+ title?: string;
7
13
  /** Subtitle or description */
8
14
  subtitle?: string;
9
15
  /** Brand/accent color (hex) */
@@ -28,6 +34,8 @@ export interface OGConfig {
28
34
  logo?: string;
29
35
  /** Optional tag/chip text */
30
36
  tag?: string;
37
+ /** Variables passed to custom template (as props for TSX/JSX, substitution for HTML) */
38
+ vars?: Record<string, string | number | boolean>;
31
39
  }
32
40
  export interface TemplateContext {
33
41
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAA;AAEvE,MAAM,WAAW,QAAQ;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAA;AAEvE,MAAM,WAAW,QAAQ;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAC9B,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arach/og",
3
- "version": "0.2.7",
3
+ "version": "0.3.0",
4
4
  "description": "Declarative OG image generation with Puppeteer",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -35,6 +35,22 @@
35
35
  "@types/node": "^22.0.0",
36
36
  "typescript": "^5.7.0"
37
37
  },
38
+ "peerDependencies": {
39
+ "esbuild": ">=0.17.0",
40
+ "react": ">=18.0.0",
41
+ "react-dom": ">=18.0.0"
42
+ },
43
+ "peerDependenciesMeta": {
44
+ "esbuild": {
45
+ "optional": true
46
+ },
47
+ "react": {
48
+ "optional": true
49
+ },
50
+ "react-dom": {
51
+ "optional": true
52
+ }
53
+ },
38
54
  "scripts": {
39
55
  "build": "tsc",
40
56
  "dev": "tsc --watch",