@stati/core 1.6.4 → 1.7.1

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 (81) hide show
  1. package/README.md +616 -101
  2. package/dist/core/build.d.ts.map +1 -1
  3. package/dist/core/build.js +42 -6
  4. package/dist/core/content.d.ts.map +1 -1
  5. package/dist/core/content.js +1 -2
  6. package/dist/core/dev.d.ts.map +1 -1
  7. package/dist/core/dev.js +2 -5
  8. package/dist/core/index.d.ts +13 -0
  9. package/dist/core/index.d.ts.map +1 -0
  10. package/dist/core/index.js +12 -0
  11. package/dist/core/invalidate.js +2 -2
  12. package/dist/core/isg/build-lock.js +1 -1
  13. package/dist/core/isg/deps.d.ts.map +1 -1
  14. package/dist/core/isg/deps.js +1 -3
  15. package/dist/core/isg/hash.js +1 -1
  16. package/dist/core/isg/index.d.ts +16 -0
  17. package/dist/core/isg/index.d.ts.map +1 -0
  18. package/dist/core/isg/index.js +22 -0
  19. package/dist/core/isg/manifest.js +1 -1
  20. package/dist/core/preview.d.ts.map +1 -1
  21. package/dist/core/preview.js +1 -2
  22. package/dist/core/templates.d.ts.map +1 -1
  23. package/dist/core/templates.js +4 -7
  24. package/dist/core/utils/index.d.ts +16 -0
  25. package/dist/core/utils/index.d.ts.map +1 -0
  26. package/dist/core/utils/index.js +22 -0
  27. package/dist/core/utils/partial-validation.d.ts.map +1 -1
  28. package/dist/core/utils/partial-validation.js +2 -1
  29. package/dist/index.d.ts +6 -8
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -4
  32. package/dist/seo/auto-inject.d.ts +48 -0
  33. package/dist/seo/auto-inject.d.ts.map +1 -0
  34. package/dist/seo/auto-inject.js +108 -0
  35. package/dist/seo/generator.d.ts +77 -0
  36. package/dist/seo/generator.d.ts.map +1 -0
  37. package/dist/seo/generator.js +320 -0
  38. package/dist/seo/index.d.ts +12 -0
  39. package/dist/seo/index.d.ts.map +1 -0
  40. package/dist/seo/index.js +15 -0
  41. package/dist/seo/robots.d.ts +84 -0
  42. package/dist/seo/robots.d.ts.map +1 -0
  43. package/dist/seo/robots.js +165 -0
  44. package/dist/seo/sitemap.d.ts +37 -0
  45. package/dist/seo/sitemap.d.ts.map +1 -0
  46. package/dist/seo/sitemap.js +320 -0
  47. package/dist/seo/utils/escape-and-validation.d.ts +99 -0
  48. package/dist/seo/utils/escape-and-validation.d.ts.map +1 -0
  49. package/dist/seo/utils/escape-and-validation.js +319 -0
  50. package/dist/seo/utils/index.d.ts +7 -0
  51. package/dist/seo/utils/index.d.ts.map +1 -0
  52. package/dist/seo/utils/index.js +8 -0
  53. package/dist/seo/utils/url.d.ts +46 -0
  54. package/dist/seo/utils/url.d.ts.map +1 -0
  55. package/dist/seo/utils/url.js +66 -0
  56. package/dist/seo/utils.d.ts +94 -0
  57. package/dist/seo/utils.d.ts.map +1 -0
  58. package/dist/seo/utils.js +304 -0
  59. package/dist/types/config.d.ts +58 -0
  60. package/dist/types/config.d.ts.map +1 -1
  61. package/dist/types/content.d.ts +181 -0
  62. package/dist/types/content.d.ts.map +1 -1
  63. package/dist/types/index.d.ts +5 -2
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/types/index.js +1 -1
  66. package/dist/types/seo.d.ts +69 -0
  67. package/dist/types/seo.d.ts.map +1 -0
  68. package/dist/types/seo.js +36 -0
  69. package/dist/types/sitemap.d.ts +94 -0
  70. package/dist/types/sitemap.d.ts.map +1 -0
  71. package/dist/types/sitemap.js +4 -0
  72. package/package.json +1 -1
  73. package/dist/core/utils/partials.d.ts +0 -24
  74. package/dist/core/utils/partials.d.ts.map +0 -1
  75. package/dist/core/utils/partials.js +0 -85
  76. package/dist/tests/utils/test-mocks.d.ts +0 -69
  77. package/dist/tests/utils/test-mocks.d.ts.map +0 -1
  78. package/dist/tests/utils/test-mocks.js +0 -125
  79. package/dist/types.d.ts +0 -543
  80. package/dist/types.d.ts.map +0 -1
  81. package/dist/types.js +0 -1
package/dist/types.d.ts DELETED
@@ -1,543 +0,0 @@
1
- import type MarkdownIt from 'markdown-it';
2
- /**
3
- * Aging rule for Incremental Static Generation (ISG) cache management.
4
- * Defines how cache TTL changes based on content age.
5
- *
6
- * @example
7
- * ```typescript
8
- * const rule: AgingRule = {
9
- * untilDays: 7, // Apply this rule for content older than 7 days
10
- * ttlSeconds: 86400 // Cache for 24 hours
11
- * };
12
- * ```
13
- */
14
- export interface AgingRule {
15
- /** Number of days after which this aging rule applies */
16
- untilDays: number;
17
- /** Cache time-to-live in seconds for content matching this age */
18
- ttlSeconds: number;
19
- }
20
- /**
21
- * Configuration for Incremental Static Generation (ISG) caching.
22
- * Enables smart caching strategies for static site generation.
23
- *
24
- * @example
25
- * ```typescript
26
- * const isgConfig: ISGConfig = {
27
- * enabled: true,
28
- * ttlSeconds: 3600, // Default 1 hour cache
29
- * maxAgeCapDays: 30, // Max age for aging rules
30
- * aging: [
31
- * { untilDays: 7, ttlSeconds: 86400 }, // 1 day for week-old content
32
- * { untilDays: 30, ttlSeconds: 604800 } // 1 week for month-old content
33
- * ]
34
- * };
35
- * ```
36
- */
37
- export interface ISGConfig {
38
- /** Whether ISG caching is enabled */
39
- enabled?: boolean;
40
- /** Default cache time-to-live in seconds */
41
- ttlSeconds?: number;
42
- /** Maximum age in days for applying aging rules */
43
- maxAgeCapDays?: number;
44
- /** Array of aging rules for progressive cache extension */
45
- aging?: AgingRule[];
46
- }
47
- /**
48
- * Cache entry for a single page in the ISG cache manifest.
49
- * Contains all information needed to determine if a page needs rebuilding.
50
- *
51
- * @example
52
- * ```typescript
53
- * const entry: CacheEntry = {
54
- * path: '/blog/my-post/index.html',
55
- * inputsHash: 'sha256-abc123...',
56
- * deps: ['/site/_layouts/post.eta', '/site/_partials/header.eta'],
57
- * tags: ['blog', 'tutorial'],
58
- * publishedAt: '2024-01-01T00:00:00.000Z',
59
- * renderedAt: '2024-01-15T10:30:00.000Z',
60
- * ttlSeconds: 21600,
61
- * maxAgeCapDays: 365
62
- * };
63
- * ```
64
- */
65
- export interface CacheEntry {
66
- /** Output path of the rendered page */
67
- readonly path: string;
68
- /** Hash of page content and all dependencies */
69
- readonly inputsHash: string;
70
- /** Array of file paths this page depends on (templates, partials) */
71
- readonly deps: readonly string[];
72
- /** Tags for invalidation and organization */
73
- readonly tags: readonly string[];
74
- /** ISO date when content was originally published */
75
- publishedAt?: string;
76
- /** ISO date when page was last rendered */
77
- readonly renderedAt: string;
78
- /** Effective TTL for this page in seconds */
79
- readonly ttlSeconds: number;
80
- /** Maximum age cap for this page in days */
81
- maxAgeCapDays?: number;
82
- }
83
- /**
84
- * ISG cache manifest containing all cached page entries.
85
- * Persisted as JSON in .stati/cache/manifest.json
86
- *
87
- * @example
88
- * ```typescript
89
- * const manifest: CacheManifest = {
90
- * entries: {
91
- * '/blog/post-1': { ... },
92
- * '/about': { ... }
93
- * }
94
- * };
95
- * ```
96
- */
97
- export interface CacheManifest {
98
- /** Map of page URLs to their cache entries */
99
- entries: Record<string, CacheEntry>;
100
- }
101
- /**
102
- * Site-wide configuration settings.
103
- * Contains global metadata and URL configuration for the static site.
104
- *
105
- * @example
106
- * ```typescript
107
- * const siteConfig: SiteConfig = {
108
- * title: "My Awesome Blog",
109
- * baseUrl: "https://myblog.com",
110
- * defaultLocale: "en-US"
111
- * };
112
- * ```
113
- */
114
- export interface SiteConfig {
115
- /** The site's title, used in templates and metadata */
116
- readonly title: string;
117
- /** Base URL for the site, used for absolute URL generation */
118
- readonly baseUrl: string;
119
- /** Default locale for internationalization (optional) */
120
- readonly defaultLocale?: string;
121
- }
122
- /**
123
- * Main configuration interface for Stati static site generator.
124
- * Defines all options for site generation, including directories, templates, and features.
125
- *
126
- * @example
127
- * ```typescript
128
- * const config: StatiConfig = {
129
- * srcDir: 'site',
130
- * outDir: 'dist',
131
- * staticDir: 'public',
132
- * site: {
133
- * title: 'My Blog',
134
- * baseUrl: 'https://example.com'
135
- * },
136
- * markdown: {
137
- * configure: (md) => md.use(somePlugin)
138
- * }
139
- * };
140
- * ```
141
- */
142
- export interface StatiConfig {
143
- /** Source directory for content files (default: 'site') */
144
- srcDir?: string;
145
- /** Output directory for generated site (default: 'dist') */
146
- outDir?: string;
147
- /** Directory for static assets (default: 'public') */
148
- staticDir?: string;
149
- /** Site-wide configuration */
150
- site: SiteConfig;
151
- /** Markdown processing configuration */
152
- markdown?: {
153
- /** Array of plugins to load - each item can be a string (plugin name) or [string, options] tuple */
154
- plugins?: (string | [string, unknown])[];
155
- /** Function to configure the MarkdownIt instance */
156
- configure?: (md: MarkdownIt) => void;
157
- };
158
- /** Eta template engine configuration */
159
- eta?: {
160
- /** Custom template filters */
161
- filters?: Record<string, (x: unknown) => unknown>;
162
- };
163
- /** Incremental Static Generation configuration */
164
- isg?: ISGConfig;
165
- /** Development server configuration */
166
- dev?: {
167
- /** Port for development server (default: 3000) */
168
- port?: number;
169
- /** Host for development server (default: 'localhost') */
170
- host?: string;
171
- /** Whether to open browser automatically (default: false) */
172
- open?: boolean;
173
- };
174
- /** Build lifecycle hooks */
175
- hooks?: BuildHooks;
176
- }
177
- /**
178
- * Build context passed to build lifecycle hooks.
179
- * Contains the full configuration and all loaded pages.
180
- *
181
- * @example
182
- * ```typescript
183
- * const buildHook = async (ctx: BuildContext) => {
184
- * console.log(`Building ${ctx.pages.length} pages`);
185
- * console.log(`Output directory: ${ctx.config.outDir}`);
186
- * };
187
- * ```
188
- */
189
- export interface BuildContext {
190
- /** The resolved Stati configuration */
191
- config: StatiConfig;
192
- /** Array of all loaded page models */
193
- pages: PageModel[];
194
- }
195
- /**
196
- * Page context passed to page-specific lifecycle hooks.
197
- * Contains the current page being processed and site configuration.
198
- *
199
- * @example
200
- * ```typescript
201
- * const pageHook = async (ctx: PageContext) => {
202
- * console.log(`Rendering page: ${ctx.page.slug}`);
203
- * // Modify page content or metadata
204
- * ctx.page.frontMatter.customField = 'processed';
205
- * };
206
- * ```
207
- */
208
- export interface PageContext {
209
- /** The page model being processed */
210
- page: PageModel;
211
- /** The resolved Stati configuration */
212
- config: StatiConfig;
213
- }
214
- /**
215
- * Build lifecycle hooks for customizing the site generation process.
216
- * Allows developers to inject custom logic at various stages of the build.
217
- *
218
- * @example
219
- * ```typescript
220
- * const hooks: BuildHooks = {
221
- * beforeAll: async (ctx) => {
222
- * console.log('Starting build...');
223
- * },
224
- * beforeRender: async (ctx) => {
225
- * // Add custom data to page context
226
- * ctx.page.frontMatter.buildTime = new Date().toISOString();
227
- * },
228
- * afterAll: async (ctx) => {
229
- * console.log(`Build complete! Generated ${ctx.pages.length} pages.`);
230
- * }
231
- * };
232
- * ```
233
- */
234
- export interface BuildHooks {
235
- /** Called before starting the build process */
236
- beforeAll?: (ctx: BuildContext) => Promise<void> | void;
237
- /** Called after completing the build process */
238
- afterAll?: (ctx: BuildContext) => Promise<void> | void;
239
- /** Called before rendering each individual page */
240
- /** Called before rendering each individual page */
241
- beforeRender?: (ctx: PageContext) => Promise<void> | void;
242
- /** Called after rendering each individual page */
243
- afterRender?: (ctx: PageContext) => Promise<void> | void;
244
- }
245
- /**
246
- * Collection aggregation data available to index page templates.
247
- * Provides access to child pages and collection metadata for content listing.
248
- */
249
- export interface CollectionData {
250
- /** All pages in the current collection */
251
- pages: PageModel[];
252
- /** Direct child pages of the collection */
253
- children: PageModel[];
254
- /** Recent pages sorted by publishedAt (most recent first) */
255
- recentPages: PageModel[];
256
- /** Pages grouped by tags for aggregation */
257
- pagesByTag: Record<string, PageModel[]>;
258
- /** Collection metadata */
259
- metadata: {
260
- /** Total number of pages in collection */
261
- totalPages: number;
262
- /** Whether collection has child pages */
263
- hasChildren: boolean;
264
- /** Path of the collection */
265
- collectionPath: string;
266
- /** Name of the collection (derived from path) */
267
- collectionName: string;
268
- };
269
- }
270
- /**
271
- * Template rendering context passed to Eta layouts.
272
- * Contains all data available to templates during rendering.
273
- */
274
- export interface TemplateContext {
275
- /** Site configuration and metadata */
276
- site: SiteConfig;
277
- /** Current page data including frontmatter and content */
278
- page: {
279
- path: string;
280
- content: string;
281
- [key: string]: unknown;
282
- };
283
- /** Rendered markdown content */
284
- content: string;
285
- /** Site navigation tree */
286
- navigation: NavNode[];
287
- /** Discovered partials from underscore folders in hierarchy */
288
- partials: Record<string, string>;
289
- /** Collection data for index pages (only available on collection index pages) */
290
- collection?: CollectionData;
291
- }
292
- /**
293
- * Represents a single page in the static site.
294
- * Contains all metadata, content, and URL information for a page.
295
- *
296
- * @example
297
- * ```typescript
298
- * const page: PageModel = {
299
- * slug: 'my-first-post',
300
- * url: '/blog/my-first-post',
301
- * sourcePath: '/content/blog/my-first-post.md',
302
- * frontMatter: {
303
- * title: 'My First Post',
304
- * tags: ['intro', 'blog']
305
- * },
306
- * content: '<p>Hello world!</p>',
307
- * publishedAt: new Date('2024-01-01')
308
- * };
309
- * ```
310
- */
311
- export interface PageModel {
312
- /** URL-friendly identifier for the page */
313
- slug: string;
314
- /** Full URL path for the page */
315
- url: string;
316
- /** Absolute path to the source content file */
317
- sourcePath: string;
318
- /** Parsed front matter metadata */
319
- frontMatter: FrontMatter;
320
- /** Rendered HTML content */
321
- content: string;
322
- /** Publication date (parsed from front matter or file stats) */
323
- publishedAt?: Date;
324
- }
325
- /**
326
- * Logger interface for customizing build output and visualization.
327
- * Provides comprehensive logging capabilities including basic log levels, build progress tracking,
328
- * file operations, statistics display, and advanced tree-based rendering visualization.
329
- *
330
- * Core Methods (Required):
331
- * - Basic logging: info, success, warning, error
332
- * - Build progress: building, processing, stats
333
- *
334
- * Enhanced Methods (Optional):
335
- * - Visual formatting: header, step, progress, divider
336
- * - File operations: file, url, timing
337
- * - Statistics: statsTable, navigationTree
338
- * - Tree visualization: startRenderingTree, addTreeNode, updateTreeNode, showRenderingTree, clearRenderingTree
339
- *
340
- * @example Basic Logger Implementation
341
- * ```typescript
342
- * const basicLogger: Logger = {
343
- * info: (msg) => console.log('\x1b[38;2;37;99;235mℹ️ ' + msg + '\x1b[0m'),
344
- * success: (msg) => console.log('\x1b[38;2;22;163;74m✅ ' + msg + '\x1b[0m'),
345
- * warning: (msg) => console.warn('\x1b[38;2;217;119;6m⚠️ ' + msg + '\x1b[0m'),
346
- * error: (msg) => console.error('\x1b[38;2;220;38;38m❌ ' + msg + '\x1b[0m'),
347
- * building: (msg) => console.log('\x1b[38;2;79;70;229m' + msg + '\x1b[0m'),
348
- * processing: (msg) => console.log('\x1b[38;2;107;114;128m ' + msg + '\x1b[0m'),
349
- * stats: (msg) => console.log('\x1b[38;2;8;145;178m📊 ' + msg + '\x1b[0m')
350
- * };
351
- * ```
352
- *
353
- * @example Enhanced Logger with Tree Visualization
354
- * ```typescript
355
- * const enhancedLogger: Logger = {
356
- * // ... basic methods ...
357
- * header: (msg) => console.log(boxedMessage(msg)),
358
- * step: (step, total, msg) => console.log(`[${step}/${total}] ${msg}`),
359
- * progress: (current, total, msg) => console.log(progressBar(current, total) + ' ' + msg),
360
- * file: (op, path) => console.log(` 📄 ${op} ${path}`),
361
- * url: (label, url) => console.log(` 🔗 ${label}: ${url}`),
362
- * timing: (op, duration) => console.log(` ⏱️ ${op} completed in ${duration}ms`),
363
- * divider: (title) => console.log('─'.repeat(50) + ' ' + title),
364
- * statsTable: (stats) => displayStatsTable(stats),
365
- * startRenderingTree: (label) => initTree(label),
366
- * addTreeNode: (parentId, id, label, status, metadata) => addNode(parentId, id, label, status, metadata),
367
- * updateTreeNode: (id, status, metadata) => updateNode(id, status, metadata),
368
- * showRenderingTree: () => renderTree(),
369
- * clearRenderingTree: () => clearTree()
370
- * };
371
- * ```
372
- */
373
- export interface Logger {
374
- /** Log informational messages */
375
- info: (message: string) => void;
376
- /** Log success messages */
377
- success: (message: string) => void;
378
- /** Log warning messages */
379
- warning: (message: string) => void;
380
- /** Log error messages */
381
- error: (message: string) => void;
382
- /** Log build progress messages */
383
- building: (message: string) => void;
384
- /** Log file processing messages */
385
- processing: (message: string) => void;
386
- /** Log statistics and metrics */
387
- stats: (message: string) => void;
388
- /** Display a header message in a box (optional) */
389
- header?: (message: string) => void;
390
- /** Display a step indicator (optional) */
391
- step?: (step: number, total: number, message: string) => void;
392
- /** Display progress with a bar (optional) */
393
- progress?: (current: number, total: number, message: string) => void;
394
- /** Log file operations (optional) */
395
- file?: (operation: string, path: string) => void;
396
- /** Log URLs with proper styling (optional) */
397
- url?: (label: string, url: string) => void;
398
- /** Log timing information (optional) */
399
- timing?: (operation: string, duration: number) => void;
400
- /** Display a section divider (optional) */
401
- divider?: (title?: string) => void;
402
- /** Display build statistics as a table (optional) */
403
- statsTable?: (stats: {
404
- totalPages: number;
405
- assetsCount: number;
406
- buildTimeMs: number;
407
- outputSizeBytes: number;
408
- cacheHits?: number;
409
- cacheMisses?: number;
410
- }) => void;
411
- /** Display navigation tree structure (optional) */
412
- navigationTree?: (navigation: NavNode[]) => void;
413
- /** Initialize a rendering tree for build process visualization (optional) */
414
- startRenderingTree?: (label: string) => void;
415
- /** Add a step to the rendering tree (optional) */
416
- addTreeNode?: (parentId: string, id: string, label: string, status?: 'pending' | 'running' | 'cached' | 'completed' | 'error', metadata?: {
417
- timing?: number;
418
- cacheHit?: boolean;
419
- url?: string;
420
- operation?: string;
421
- }) => void;
422
- /** Update a node in the rendering tree (optional) */
423
- updateTreeNode?: (id: string, status: 'pending' | 'running' | 'cached' | 'completed' | 'error', metadata?: {
424
- timing?: number;
425
- cacheHit?: boolean;
426
- url?: string;
427
- operation?: string;
428
- }) => void;
429
- /** Render and display the current tree (optional) */
430
- showRenderingTree?: () => void;
431
- /** Clear the rendering tree (optional) */
432
- clearRenderingTree?: () => void;
433
- }
434
- /**
435
- * Statistics collected during the build process.
436
- * Provides useful metrics about the site generation.
437
- *
438
- * @example
439
- * ```typescript
440
- * const stats: BuildStats = {
441
- * totalPages: 15,
442
- * assetsCount: 8,
443
- * buildTimeMs: 1250,
444
- * outputSizeBytes: 2048576,
445
- * cacheHits: 5,
446
- * cacheMisses: 10
447
- * };
448
- * ```
449
- */
450
- export interface BuildStats {
451
- /** Total number of pages processed */
452
- totalPages: number;
453
- /** Number of static assets copied */
454
- assetsCount: number;
455
- /** Total build time in milliseconds */
456
- buildTimeMs: number;
457
- /** Total size of output directory in bytes */
458
- outputSizeBytes: number;
459
- /** Number of cache hits (if caching enabled) */
460
- cacheHits?: number;
461
- /** Number of cache misses (if caching enabled) */
462
- cacheMisses?: number;
463
- }
464
- /**
465
- * Navigation node representing a page or collection in the site hierarchy.
466
- * Provides structured navigation data for templates.
467
- *
468
- * @example
469
- * ```typescript
470
- * const navNode: NavNode = {
471
- * title: 'Blog',
472
- * url: '/blog',
473
- * path: '/blog',
474
- * order: 1,
475
- * children: [
476
- * {
477
- * title: 'My First Post',
478
- * url: '/blog/my-first-post',
479
- * path: '/blog/my-first-post',
480
- * order: 1,
481
- * publishedAt: new Date('2024-01-01')
482
- * }
483
- * ]
484
- * };
485
- * ```
486
- */
487
- export interface NavNode {
488
- /** Display title for the navigation item */
489
- title: string;
490
- /** URL path for the navigation item */
491
- url: string;
492
- /** File system path (for organizing hierarchy) */
493
- path: string;
494
- /** Numeric order for sorting */
495
- order?: number;
496
- /** Publication date for sorting */
497
- publishedAt?: Date;
498
- /** Child navigation nodes (for collections/directories) */
499
- children?: NavNode[];
500
- /** Whether this node represents a collection/directory */
501
- isCollection?: boolean;
502
- }
503
- /**
504
- * Front matter metadata extracted from content files.
505
- * Contains page-specific configuration and metadata in YAML format.
506
- *
507
- * @example
508
- * ```typescript
509
- * const frontMatter: FrontMatter = {
510
- * title: 'Getting Started with Stati',
511
- * description: 'A comprehensive guide to static site generation',
512
- * tags: ['tutorial', 'documentation'],
513
- * layout: 'post',
514
- * order: 1,
515
- * publishedAt: '2024-01-01',
516
- * ttlSeconds: 3600,
517
- * draft: false
518
- * };
519
- * ```
520
- */
521
- export interface FrontMatter {
522
- /** Page title for SEO and display */
523
- title?: string;
524
- /** Page description for SEO and meta tags */
525
- description?: string;
526
- /** Array of tags for categorization */
527
- tags?: readonly string[];
528
- /** Template layout to use for rendering */
529
- layout?: string;
530
- /** Numeric order for sorting (useful for navigation) */
531
- order?: number;
532
- /** Publication date as ISO string */
533
- publishedAt?: string;
534
- /** Custom cache TTL in seconds (overrides global ISG settings) */
535
- ttlSeconds?: number;
536
- /** Custom max age cap in days (overrides global ISG settings) */
537
- maxAgeCapDays?: number;
538
- /** Whether the page is a draft (excludes from build) */
539
- draft?: boolean;
540
- /** Additional custom properties */
541
- [key: string]: unknown;
542
- }
543
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1 +0,0 @@
1
- export {};