@pagesmith/core 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +19 -0
  2. package/REFERENCE.md +160 -94
  3. package/dist/{content-config-DJXUOcNG.d.mts → content-config-Bu2HH0Yx.d.mts} +2 -2
  4. package/dist/{content-config-DJXUOcNG.d.mts.map → content-config-Bu2HH0Yx.d.mts.map} +1 -1
  5. package/dist/{content-layer-B5enqWeJ.mjs → content-layer-CJRrNpZ_.mjs} +71 -10
  6. package/dist/content-layer-CJRrNpZ_.mjs.map +1 -0
  7. package/dist/{content-layer-CpHYUYNN.d.mts → content-layer-Ckt08g2i.d.mts} +4 -3
  8. package/dist/content-layer-Ckt08g2i.d.mts.map +1 -0
  9. package/dist/create/index.d.mts.map +1 -1
  10. package/dist/create/index.mjs +5 -2
  11. package/dist/create/index.mjs.map +1 -1
  12. package/dist/css/index.mjs +1 -1
  13. package/dist/css-CO3CBqxx.mjs +24 -0
  14. package/dist/css-CO3CBqxx.mjs.map +1 -0
  15. package/dist/heading-D4X2L4vd.d.mts +12 -0
  16. package/dist/heading-D4X2L4vd.d.mts.map +1 -0
  17. package/dist/{index-C0QFHYwb.d.mts → index-B4YZRIzb.d.mts} +1 -1
  18. package/dist/{index-C0QFHYwb.d.mts.map → index-B4YZRIzb.d.mts.map} +1 -1
  19. package/dist/{index-DCznbvaV.d.mts → index-CryArLlX.d.mts} +1 -1
  20. package/dist/{index-DCznbvaV.d.mts.map → index-CryArLlX.d.mts.map} +1 -1
  21. package/dist/{index-CJkBs8YQ.d.mts → index-D44syBt-.d.mts} +3 -2
  22. package/dist/index-D44syBt-.d.mts.map +1 -0
  23. package/dist/index.d.mts +7 -6
  24. package/dist/index.d.mts.map +1 -1
  25. package/dist/index.mjs +4 -4
  26. package/dist/loaders/index.d.mts +1 -1
  27. package/dist/loaders/index.mjs +1 -1
  28. package/dist/{loaders-Cf-BXf2L.mjs → loaders-DnyWfANR.mjs} +3 -3
  29. package/dist/loaders-DnyWfANR.mjs.map +1 -0
  30. package/dist/markdown/index.d.mts +2 -2
  31. package/dist/markdown/index.mjs +1 -1
  32. package/dist/{markdown-BmDJgYeB.mjs → markdown-DMHd400a.mjs} +7 -2
  33. package/dist/{markdown-BmDJgYeB.mjs.map → markdown-DMHd400a.mjs.map} +1 -1
  34. package/dist/{heading-Dhvzlay-.d.mts → markdown-config-CDvh5aJ-.d.mts} +2 -10
  35. package/dist/markdown-config-CDvh5aJ-.d.mts.map +1 -0
  36. package/dist/mcp/index.d.mts.map +1 -1
  37. package/dist/mcp/index.mjs +1 -1
  38. package/dist/mcp/server.d.mts +1 -1
  39. package/dist/mcp/server.d.mts.map +1 -1
  40. package/dist/mcp/server.mjs +1 -1
  41. package/dist/runtime/index.d.mts.map +1 -1
  42. package/dist/runtime/index.mjs +4 -9
  43. package/dist/runtime/index.mjs.map +1 -1
  44. package/dist/schemas/index.d.mts +4 -3
  45. package/dist/{server-D3DHoh5f.mjs → server-BZA_iSen.mjs} +2 -1
  46. package/dist/server-BZA_iSen.mjs.map +1 -0
  47. package/dist/ssg-utils/index.d.mts +3 -13
  48. package/dist/ssg-utils/index.d.mts.map +1 -1
  49. package/dist/ssg-utils/index.mjs +2 -1
  50. package/dist/ssg-utils/index.mjs.map +1 -1
  51. package/dist/vite/index.d.mts +2 -2
  52. package/dist/vite/index.d.mts.map +1 -1
  53. package/dist/vite/index.mjs +5 -5
  54. package/dist/vite/index.mjs.map +1 -1
  55. package/docs/agents/AGENTS.md.template +24 -4
  56. package/docs/agents/changelog-notes.md +1 -1
  57. package/docs/agents/errors.md +61 -7
  58. package/docs/agents/migration.md +7 -7
  59. package/docs/agents/recipes.md +26 -2
  60. package/docs/agents/usage.md +66 -5
  61. package/docs/llms-full.txt +73 -15
  62. package/docs/llms.txt +46 -7
  63. package/package.json +2 -27
  64. package/dist/content-layer-B5enqWeJ.mjs.map +0 -1
  65. package/dist/content-layer-CpHYUYNN.d.mts.map +0 -1
  66. package/dist/css-BneO430t.mjs +0 -20
  67. package/dist/css-BneO430t.mjs.map +0 -1
  68. package/dist/heading-Dhvzlay-.d.mts.map +0 -1
  69. package/dist/index-CJkBs8YQ.d.mts.map +0 -1
  70. package/dist/loaders-Cf-BXf2L.mjs.map +0 -1
  71. package/dist/server-D3DHoh5f.mjs.map +0 -1
package/README.md CHANGED
@@ -481,6 +481,25 @@ Generates: `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, skills, `llms.txt`, `llms-full
481
481
  | `@pagesmith/core/create` | Project scaffolding utilities |
482
482
  | `@pagesmith/core/mcp` | Core MCP server and helper utilities |
483
483
 
484
+ ## Further Reading
485
+
486
+ - **[REFERENCE.md](REFERENCE.md)** — complete AI reference covering the content layer API, collections, loaders, markdown pipeline, Expressive Code, validators, JSX runtime, CSS exports, and Vite plugins
487
+ - **[`@pagesmith/docs` README](../docs/README.md)** — convention-based docs site package with built-in navigation, search, and theme
488
+ - **[`@pagesmith/docs` REFERENCE.md](../docs/REFERENCE.md)** — full docs reference for AI assistants
489
+
490
+ ### AI agent guidance (shipped inside the package)
491
+
492
+ These files are available at `node_modules/@pagesmith/core/` after installation:
493
+
494
+ | File | Purpose |
495
+ |---|---|
496
+ | `REFERENCE.md` | Full API reference for content layer, collections, markdown, JSX, CSS, Vite |
497
+ | `docs/agents/usage.md` | Agent rules, integration shape, copy-paste prompts |
498
+ | `docs/agents/recipes.md` | Step-by-step recipes for common tasks |
499
+ | `docs/agents/errors.md` | Error catalog with patterns and fixes |
500
+ | `docs/llms.txt` | Compact AI context index |
501
+ | `docs/llms-full.txt` | Full AI context with all file pointers |
502
+
484
503
  ## License
485
504
 
486
505
  MIT
package/REFERENCE.md CHANGED
@@ -5,6 +5,7 @@ Link this file from your project's CLAUDE.md or AGENTS.md to give AI assistants
5
5
  ```markdown
6
6
  <!-- In your CLAUDE.md or AGENTS.md -->
7
7
  For the full @pagesmith/core API reference, see: node_modules/@pagesmith/core/REFERENCE.md
8
+ For @pagesmith/core usage and prompts, read: node_modules/@pagesmith/core/docs/agents/usage.md
8
9
  ```
9
10
 
10
11
  ---
@@ -13,7 +14,7 @@ For the full @pagesmith/core API reference, see: node_modules/@pagesmith/core/RE
13
14
 
14
15
  `@pagesmith/core` is a file-based content toolkit for Vite. It provides schema-validated content collections, lazy markdown rendering with Expressive Code syntax highlighting, a server-side JSX runtime, CSS bundles, and Vite plugins for framework integrations.
15
16
 
16
- ESM only (`"type": "module"`). Node 18+.
17
+ ESM only (`"type": "module"`). Node 24+.
17
18
 
18
19
  ## Content Layer API
19
20
 
@@ -40,67 +41,111 @@ const rendered = await entries[0]?.render()
40
41
 
41
42
  ### ContentLayer methods
42
43
 
43
- | Method | Description |
44
- |---|---|
45
- | `createContentLayer(config)` | Create a content layer from a config object |
46
- | `layer.getCollection(name)` | Load all entries in a collection (cached) |
47
- | `layer.getEntry(collection, slug)` | Get a single entry by slug |
48
- | `layer.convert(markdown, options?)` | Convert raw markdown to HTML outside collections |
49
- | `layer.validate(collection?)` | Run all validators and return results |
50
- | `layer.invalidate(collection, slug)` | Cache-bust a single entry |
51
- | `layer.invalidateCollection(name)` | Cache-bust an entire collection |
52
- | `layer.invalidateAll()` | Cache-bust all collections |
44
+
45
+ | Method | Description |
46
+ | ----------------------------------------------- | ---------------------------------------------------- |
47
+ | `createContentLayer(config)` | Create a content layer from a config object |
48
+ | `layer.getCollection(name)` | Load all entries in a collection (cached) |
49
+ | `layer.getEntry(collection, slug)` | Get a single entry by slug |
50
+ | `layer.convert(markdown, options?)` | Convert raw markdown to HTML outside collections |
51
+ | `layer.validate(collection?)` | Run all validators and return results |
52
+ | `layer.invalidate(collection, slug)` | Cache-bust a single entry |
53
+ | `layer.invalidateCollection(name)` | Cache-bust an entire collection |
54
+ | `layer.invalidateAll()` | Cache-bust all collections |
55
+ | `layer.getCollectionNames()` | Get names of all configured collections |
56
+ | `layer.getCollectionDef(name)` | Get the definition of a collection |
57
+ | `layer.getCollections()` | Get all collection definitions |
58
+ | `layer.invalidateWhere(collection, predicate)` | Cache-bust entries matching a predicate |
59
+ | `layer.watch(callback)` | Watch collection directories for changes |
60
+ | `layer.getCacheStats()` | Get cache statistics for debugging |
61
+
53
62
 
54
63
  ### ContentEntry properties
55
64
 
56
- | Property | Type | Description |
57
- |---|---|---|
58
- | `slug` | `string` | URL-friendly identifier |
59
- | `collection` | `string` | Collection name |
60
- | `filePath` | `string` | Absolute source path |
61
- | `data` | `T` | Validated data (typed by your Zod schema) |
62
- | `rawContent` | `string` | Raw markdown body (markdown loader only) |
63
- | `render(options?)` | `Promise<RenderedContent>` | Lazy markdown-to-HTML (cached) |
64
- | `clearRenderCache()` | `void` | Force re-render on next call |
65
+
66
+ | Property | Type | Description |
67
+ | -------------------- | -------------------------- | ----------------------------------------- |
68
+ | `slug` | `string` | URL-friendly identifier |
69
+ | `collection` | `string` | Collection name |
70
+ | `filePath` | `string` | Absolute source path |
71
+ | `data` | `T` | Validated data (typed by your Zod schema) |
72
+ | `rawContent` | `string` | Raw markdown body (markdown loader only) |
73
+ | `render(options?)` | `Promise<RenderedContent>` | Lazy markdown-to-HTML (cached) |
74
+ | `clearRenderCache()` | `void` | Force re-render on next call |
75
+
65
76
 
66
77
  ### RenderedContent
67
78
 
68
- | Property | Type | Description |
69
- |---|---|---|
70
- | `html` | `string` | Rendered HTML |
79
+
80
+ | Property | Type | Description |
81
+ | ---------- | ----------- | ----------------------- |
82
+ | `html` | `string` | Rendered HTML |
71
83
  | `headings` | `Heading[]` | `{ depth, text, slug }` |
72
- | `readTime` | `number` | Estimated minutes |
84
+ | `readTime` | `number` | Estimated minutes |
85
+
73
86
 
74
87
  ## Collection Options
75
88
 
76
- | Option | Type | Description |
77
- |---|---|---|
78
- | `loader` | `string \| Loader` | `'markdown'`, `'json'`, `'json5'`, `'jsonc'`, `'yaml'`, `'toml'`, or custom |
79
- | `directory` | `string` | Directory containing collection files |
80
- | `schema` | `z.ZodType` | Zod schema for validating entry data |
81
- | `include` | `string[]` | Glob include patterns |
82
- | `exclude` | `string[]` | Glob exclude patterns |
83
- | `computed` | `Record<string, fn>` | Computed fields derived from entry data |
84
- | `validate` | `fn` | Custom validation hook (return string for error) |
85
- | `filter` | `fn` | Filter entries (return false to exclude) |
86
- | `slugify` | `fn` | Custom slug generation |
87
- | `transform` | `fn` | Pre-validation transform |
88
- | `validators` | `ContentValidator[]` | Custom content validators |
89
- | `disableBuiltinValidators` | `boolean` | Disable built-in markdown validators |
89
+
90
+ | Option | Type | Description |
91
+ | -------------------------- | -------------------- | --------------------------------------------------------------------------- |
92
+ | `loader` | `string | Loader` | `'markdown'`, `'json'`, `'json5'`, `'jsonc'`, `'yaml'`, `'toml'`, or custom |
93
+ | `directory` | `string` | Directory containing collection files |
94
+ | `schema` | `z.ZodType` | Zod schema for validating entry data |
95
+ | `include` | `string[]` | Glob include patterns |
96
+ | `exclude` | `string[]` | Glob exclude patterns |
97
+ | `computed` | `Record<string, fn>` | Computed fields derived from entry data |
98
+ | `validate` | `fn` | Custom validation hook (return string for error) |
99
+ | `filter` | `fn` | Filter entries (return false to exclude) |
100
+ | `slugify` | `fn` | Custom slug generation |
101
+ | `transform` | `fn` | Pre-validation transform |
102
+ | `validators` | `ContentValidator[]` | Custom content validators |
103
+ | `disableBuiltinValidators` | `boolean` | Disable built-in markdown validators |
104
+
90
105
 
91
106
  ## Loaders
92
107
 
93
- | Type | Extensions | Description |
94
- |---|---|---|
95
- | `markdown` | `.md` | gray-matter frontmatter + markdown body |
96
- | `json` | `.json` | JSON.parse |
97
- | `json5` | `.json` | Relaxed JSON with comments, trailing commas |
98
- | `jsonc` | `.json`, `.jsonc` | JSON with comments |
99
- | `yaml` | `.yml`, `.yaml` | YAML |
100
- | `toml` | `.toml` | TOML |
108
+
109
+ | Type | Extensions | Description |
110
+ | ---------- | ----------------- | ------------------------------------------- |
111
+ | `markdown` | `.md` | gray-matter frontmatter + markdown body |
112
+ | `json` | `.json` | JSON.parse |
113
+ | `json5` | `.json` | Relaxed JSON with comments, trailing commas |
114
+ | `jsonc` | `.json`, `.jsonc` | JSON with comments |
115
+ | `yaml` | `.yml`, `.yaml` | YAML |
116
+ | `toml` | `.toml` | TOML |
117
+
101
118
 
102
119
  Custom loaders: implement `Loader { name, kind, extensions, load(filePath) }`.
103
120
 
121
+ ## ContentLayerConfig
122
+
123
+ Top-level config passed to `defineConfig()` or `createContentLayer()`:
124
+
125
+
126
+ | Field | Type | Default | Description |
127
+ | ------------- | ----------------- | --------- | -------------------------------------------------------- |
128
+ | `collections` | `CollectionMap` | — | Named collections keyed by collection name |
129
+ | `root` | `string` | `cwd()` | Root directory for resolving relative collection paths |
130
+ | `markdown` | `MarkdownConfig` | — | Markdown processing config shared across all collections |
131
+ | `assets` | `object` | — | `{ hashFilenames?, outputDir? }` for cache-busted assets |
132
+ | `plugins` | `ContentPlugin[]` | — | Content plugins for extending processing and validation |
133
+ | `strict` | `boolean` | `false` | Throw on file load errors instead of creating dummy entries |
134
+
135
+
136
+ ### defineCollections
137
+
138
+ Helper for defining multiple collections with type inference:
139
+
140
+ ```ts
141
+ import { defineCollections, z } from '@pagesmith/core'
142
+
143
+ const collections = defineCollections({
144
+ posts: { loader: 'markdown', directory: 'content/posts', schema: z.object({ title: z.string() }) },
145
+ pages: { loader: 'markdown', directory: 'content/pages', schema: z.object({ title: z.string() }) },
146
+ })
147
+ ```
148
+
104
149
  ## Vite Plugins
105
150
 
106
151
  ### pagesmithContent
@@ -122,14 +167,16 @@ export default defineConfig({
122
167
 
123
168
  Options:
124
169
 
125
- | Option | Type | Default | Description |
126
- |---|---|---|---|
127
- | `collections` | `Collections` | | Collection definitions |
128
- | `moduleId` | `string` | `'virtual:content'` | Virtual module prefix |
129
- | `configPath` | `string` | `'./content.config.ts'` | Config file path |
130
- | `dts` | `boolean \| string` | `true` | Generate .d.ts |
131
- | `contentRoot` | `string` | `'content'` | Shared root for contentSlug |
132
- | `markdown` | `MarkdownConfig` | | Markdown pipeline config |
170
+
171
+ | Option | Type | Default | Description |
172
+ | ------------- | ------------------ | ----------------------- | --------------------------- |
173
+ | `collections` | `Collections` | | Collection definitions |
174
+ | `moduleId` | `string` | `'virtual:content'` | Virtual module prefix |
175
+ | `configPath` | `string` | `'./content.config.ts'` | Config file path |
176
+ | `dts` | `boolean | string` | `true` | Generate .d.ts |
177
+ | `contentRoot` | `string` | `'content'` | Shared root for contentSlug |
178
+ | `markdown` | `MarkdownConfig` | — | Markdown pipeline config |
179
+
133
180
 
134
181
  Import in your code:
135
182
 
@@ -182,16 +229,18 @@ type MarkdownConfig = {
182
229
 
183
230
  ### Code Block Meta Syntax (Expressive Code)
184
231
 
185
- | Meta | Example | Description |
186
- |---|---|---|
187
- | `title="..."` | `` ```js title="app.js" `` | File title |
188
- | `showLineNumbers` | `` ```js showLineNumbers `` | Line numbers |
189
- | `mark={lines}` | `` ```js mark={3,5-7} `` | Highlight lines |
190
- | `ins={lines}` | `` ```js ins={4} `` | Inserted lines (green) |
191
- | `del={lines}` | `` ```js del={5} `` | Deleted lines (red) |
192
- | `collapse={lines}` | `` ```js collapse={1-5} `` | Collapsible section |
193
- | `wrap` | `` ```js wrap `` | Text wrapping |
194
- | `frame="..."` | `` ```js frame="terminal" `` | Frame style |
232
+
233
+ | Meta | Example | Description |
234
+ | ------------------ | ------------------------ | ---------------------- |
235
+ | `title="..."` | ````js title="app.js"` | File title |
236
+ | `showLineNumbers` | ````js showLineNumbers` | Line numbers |
237
+ | `mark={lines}` | ````js mark={3,5-7}` | Highlight lines |
238
+ | `ins={lines}` | ````js ins={4}` | Inserted lines (green) |
239
+ | `del={lines}` | ````js del={5}` | Deleted lines (red) |
240
+ | `collapse={lines}` | ````js collapse={1-5}` | Collapsible section |
241
+ | `wrap` | ````js wrap` | Text wrapping |
242
+ | `frame="..."` | ````js frame="terminal"` | Frame style |
243
+
195
244
 
196
245
  ### Built-in Validators
197
246
 
@@ -224,12 +273,14 @@ function Page({ title, content }: { title: string; content: string }) {
224
273
 
225
274
  ## CSS Exports
226
275
 
227
- | Import Path | Contents |
228
- |---|---|
229
- | `@pagesmith/core/css/content` | Prose typography + inline code |
230
- | `@pagesmith/core/css/standalone` | Full layout + prose + TOC |
231
- | `@pagesmith/core/css/viewport` | Responsive viewport base |
232
- | `@pagesmith/core/css/fonts` | Bundled Open Sans + JetBrains Mono |
276
+
277
+ | Import Path | Contents |
278
+ | -------------------------------- | ---------------------------------- |
279
+ | `@pagesmith/core/css/content` | Prose typography + inline code |
280
+ | `@pagesmith/core/css/standalone` | Full layout + prose + TOC |
281
+ | `@pagesmith/core/css/viewport` | Responsive viewport base |
282
+ | `@pagesmith/core/css/fonts` | Bundled Open Sans + JetBrains Mono |
283
+
233
284
 
234
285
  Code block styling is handled by Expressive Code (inline styles).
235
286
 
@@ -240,38 +291,43 @@ import { getRuntimeCSS, getRuntimeJS, getContentCSS, getContentJS } from '@pages
240
291
  ```
241
292
 
242
293
  Two tiers:
294
+
243
295
  - **Standalone** (`getRuntimeCSS/JS`) — full site with TOC highlight
244
296
  - **Content** (`getContentCSS/JS`) — markdown rendering only
245
297
 
246
298
  ## Frontmatter Schemas
247
299
 
248
- | Schema | Fields |
249
- |---|---|
250
- | `BaseFrontmatterSchema` | title, description, publishedDate, lastUpdatedOn, tags, draft |
251
- | `BlogFrontmatterSchema` | extends base + category, featured, coverImage |
252
- | `ProjectFrontmatterSchema` | extends base + gitRepo, links |
300
+
301
+ | Schema | Fields |
302
+ | -------------------------- | ------------------------------------------------------------- |
303
+ | `BaseFrontmatterSchema` | title, description, publishedDate, lastUpdatedOn, tags, draft |
304
+ | `BlogFrontmatterSchema` | extends base + category, featured, coverImage |
305
+ | `ProjectFrontmatterSchema` | extends base + gitRepo, links |
306
+
253
307
 
254
308
  ## Export Map
255
309
 
256
- | Import Path | Purpose |
257
- |---|---|
258
- | `@pagesmith/core` | Main API (defineCollection, createContentLayer, z, etc.) |
259
- | `@pagesmith/core/jsx-runtime` | h, Fragment, HtmlString |
260
- | `@pagesmith/core/markdown` | processMarkdown |
261
- | `@pagesmith/core/css` | buildCss (LightningCSS) |
262
- | `@pagesmith/core/css/content` | Content CSS file |
263
- | `@pagesmith/core/css/standalone` | Standalone CSS file |
264
- | `@pagesmith/core/css/viewport` | Viewport CSS file |
265
- | `@pagesmith/core/css/fonts` | Bundled font faces |
266
- | `@pagesmith/core/schemas` | Zod schemas and types |
267
- | `@pagesmith/core/loaders` | Loader classes and registry |
268
- | `@pagesmith/core/assets` | Asset copying and hashing |
269
- | `@pagesmith/core/runtime` | Pre-built CSS/JS accessors |
270
- | `@pagesmith/core/vite` | Vite plugins |
271
- | `@pagesmith/core/ssg-utils` | Shared SSG utility helpers |
272
- | `@pagesmith/core/ai` | AI assistant artifact generator |
273
- | `@pagesmith/core/create` | Project scaffolding |
274
- | `@pagesmith/core/mcp` | Core MCP server and helper utilities |
310
+
311
+ | Import Path | Purpose |
312
+ | -------------------------------- | -------------------------------------------------------- |
313
+ | `@pagesmith/core` | Main API (defineCollection, createContentLayer, z, etc.) |
314
+ | `@pagesmith/core/jsx-runtime` | h, Fragment, HtmlString |
315
+ | `@pagesmith/core/markdown` | processMarkdown |
316
+ | `@pagesmith/core/css` | buildCss (LightningCSS) |
317
+ | `@pagesmith/core/css/content` | Content CSS file |
318
+ | `@pagesmith/core/css/standalone` | Standalone CSS file |
319
+ | `@pagesmith/core/css/viewport` | Viewport CSS file |
320
+ | `@pagesmith/core/css/fonts` | Bundled font faces |
321
+ | `@pagesmith/core/schemas` | Zod schemas and types |
322
+ | `@pagesmith/core/loaders` | Loader classes and registry |
323
+ | `@pagesmith/core/assets` | Asset copying and hashing |
324
+ | `@pagesmith/core/runtime` | Pre-built CSS/JS accessors |
325
+ | `@pagesmith/core/vite` | Vite plugins |
326
+ | `@pagesmith/core/ssg-utils` | Shared SSG utility helpers |
327
+ | `@pagesmith/core/ai` | AI assistant artifact generator |
328
+ | `@pagesmith/core/create` | Project scaffolding |
329
+ | `@pagesmith/core/mcp` | Core MCP server and helper utilities |
330
+
275
331
 
276
332
  ## Key Rules
277
333
 
@@ -282,3 +338,13 @@ Two tiers:
282
338
  - Runtime JS provides only TOC highlighting (standalone) — copy buttons are Expressive Code
283
339
  - All exports are named (no default exports from core)
284
340
  - Code block styling is inline via Expressive Code — do NOT import separate code block CSS
341
+
342
+ ## Related Docs
343
+
344
+ - **Agent prompts and rules:** `node_modules/@pagesmith/core/docs/agents/usage.md`
345
+ - **Step-by-step recipes:** `node_modules/@pagesmith/core/docs/agents/recipes.md`
346
+ - **Error catalog:** `node_modules/@pagesmith/core/docs/agents/errors.md`
347
+ - **User README:** `node_modules/@pagesmith/core/README.md`
348
+ - **Docs package reference:** `node_modules/@pagesmith/docs/REFERENCE.md`
349
+ - **Docs package README:** `node_modules/@pagesmith/docs/README.md`
350
+
@@ -1,5 +1,5 @@
1
1
  import { r as LoaderType, t as Loader } from "./types-B-V5qemH.mjs";
2
- import { r as MarkdownConfig } from "./heading-Dhvzlay-.mjs";
2
+ import { t as MarkdownConfig } from "./markdown-config-CDvh5aJ-.mjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region ../../node_modules/@types/unist/index.d.ts
@@ -1155,4 +1155,4 @@ type ContentPlugin = {
1155
1155
  };
1156
1156
  //#endregion
1157
1157
  export { CollectionMap as a, RawEntry as c, ValidatorContext as d, ValidationEntryResult as f, CollectionDef as i, ContentValidator as l, ValidationResult as m, ContentPlugin as n, InferCollectionData as o, ValidationIssue as p, CollectionComputed as r, InferCollectionLoaderKind as s, ContentLayerConfig as t, ResolvedValidatorContext as u };
1158
- //# sourceMappingURL=content-config-DJXUOcNG.d.mts.map
1158
+ //# sourceMappingURL=content-config-Bu2HH0Yx.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-config-DJXUOcNG.d.mts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","AlignType","ReferenceType","Alternative","alt","Association","identifier","label","Reference","referenceType","Resource","url","title","BlockContent","BlockContentMap","Blockquote","Code","Heading","Html","List","Paragraph","Table","ThematicBreak","blockquote","code","heading","html","list","paragraph","table","thematicBreak","DefinitionContent","DefinitionContentMap","Definition","FootnoteDefinition","definition","footnoteDefinition","FrontmatterContent","FrontmatterContentMap","Yaml","yaml","ListContent","ListContentMap","ListItem","listItem","PhrasingContent","PhrasingContentMap","Break","Delete","Emphasis","FootnoteReference","Image","ImageReference","InlineCode","Link","LinkReference","Strong","Text","break","delete","emphasis","footnoteReference","image","imageReference","inlineCode","link","linkReference","strong","text","RootContent","RootContentMap","TableCell","TableRow","tableCell","tableRow","RowContent","RowContentMap","TableContent","TableContentMap","Content","Literals","Nodes","Extract","Root","Parents","TopLevelContent","value","data","children","Array","BlockquoteData","type","BreakData","CodeData","lang","meta","DefinitionData","DeleteData","EmphasisData","FootnoteDefinitionData","FootnoteReferenceData","HeadingData","depth","HtmlData","HTML","ImageData","ImageReferenceData","InlineCodeData","LinkData","LinkReferenceData","ListData","ordered","start","spread","ListItemData","checked","ParagraphData","RootData","StrongData","TableData","align","TableRowData","TableCellData","TextData","ThematicBreakData","YamlData","YAML"],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/validation/schema-validator.ts","../src/validation/types.ts","../src/schemas/collection.ts","../src/schemas/content-config.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"content-config-Bu2HH0Yx.d.mts","names":["Data","Point","line","column","offset","Position","start","end","Literal","Node","value","type","data","position","Parent","children","Data","UnistData","Literal","UnistLiteral","Node","UnistNode","Parent","UnistParent","AlignType","ReferenceType","Alternative","alt","Association","identifier","label","Reference","referenceType","Resource","url","title","BlockContent","BlockContentMap","Blockquote","Code","Heading","Html","List","Paragraph","Table","ThematicBreak","blockquote","code","heading","html","list","paragraph","table","thematicBreak","DefinitionContent","DefinitionContentMap","Definition","FootnoteDefinition","definition","footnoteDefinition","FrontmatterContent","FrontmatterContentMap","Yaml","yaml","ListContent","ListContentMap","ListItem","listItem","PhrasingContent","PhrasingContentMap","Break","Delete","Emphasis","FootnoteReference","Image","ImageReference","InlineCode","Link","LinkReference","Strong","Text","break","delete","emphasis","footnoteReference","image","imageReference","inlineCode","link","linkReference","strong","text","RootContent","RootContentMap","TableCell","TableRow","tableCell","tableRow","RowContent","RowContentMap","TableContent","TableContentMap","Content","Literals","Nodes","Extract","Root","Parents","TopLevelContent","value","data","children","Array","BlockquoteData","type","BreakData","CodeData","lang","meta","DefinitionData","DeleteData","EmphasisData","FootnoteDefinitionData","FootnoteReferenceData","HeadingData","depth","HtmlData","HTML","ImageData","ImageReferenceData","InlineCodeData","LinkData","LinkReferenceData","ListData","ordered","start","spread","ListItemData","checked","ParagraphData","RootData","StrongData","TableData","align","TableRowData","TableCellData","TextData","ThematicBreakData","YamlData","YAML"],"sources":["../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../src/validation/schema-validator.ts","../src/validation/types.ts","../src/schemas/collection.ts","../src/schemas/content-config.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { t as processMarkdown } from "./markdown-BmDJgYeB.mjs";
2
- import { r as resolveLoader, t as defaultIncludePatterns } from "./loaders-Cf-BXf2L.mjs";
1
+ import { t as processMarkdown } from "./markdown-DMHd400a.mjs";
2
+ import { r as resolveLoader, t as defaultIncludePatterns } from "./loaders-DnyWfANR.mjs";
3
3
  import { existsSync, watch } from "fs";
4
4
  import { dirname, extname, relative, resolve } from "path";
5
5
  import remarkParse from "remark-parse";
6
6
  import { unified } from "unified";
7
+ import { availableParallelism } from "os";
7
8
  import fg from "fast-glob";
8
9
  //#region src/convert.ts
9
10
  async function convert(input, options = {}) {
@@ -92,7 +93,11 @@ function collectRehypePlugins(plugins) {
92
93
  /** Run all plugin validators against an entry. */
93
94
  function runPluginValidators(plugins, entry) {
94
95
  const issues = [];
95
- for (const plugin of plugins) if (plugin.validate) issues.push(...plugin.validate(entry));
96
+ for (const plugin of plugins) if (plugin.validate) try {
97
+ issues.push(...plugin.validate(entry));
98
+ } catch (err) {
99
+ issues.push(`[${plugin.name}] Validator threw: ${err instanceof Error ? err.message : String(err)}`);
100
+ }
96
101
  return issues;
97
102
  }
98
103
  //#endregion
@@ -228,9 +233,9 @@ const codeBlockValidator = {
228
233
  //#endregion
229
234
  //#region src/validation/heading-validator.ts
230
235
  /** Extract plain text from a heading node's children. */
231
- function getTextContent(node) {
236
+ function getTextContent$1(node) {
232
237
  if (node.type === "text") return node.value ?? "";
233
- if (node.children) return node.children.map(getTextContent).join("");
238
+ if (node.children) return node.children.map(getTextContent$1).join("");
234
239
  return "";
235
240
  }
236
241
  /** Collect all heading nodes from MDAST. */
@@ -238,7 +243,7 @@ function collectHeadings(node) {
238
243
  const headings = [];
239
244
  if (node.type === "heading" && node.depth) headings.push({
240
245
  depth: node.depth,
241
- text: getTextContent(node),
246
+ text: getTextContent$1(node),
242
247
  line: node.position?.start.line
243
248
  });
244
249
  if (node.children) for (const child of node.children) headings.push(...collectHeadings(child));
@@ -258,6 +263,14 @@ const headingValidator = {
258
263
  });
259
264
  return issues;
260
265
  }
266
+ for (const h of headings) if (!h.text.trim()) {
267
+ const lineInfo = h.line ? ` (line ${h.line})` : "";
268
+ issues.push({
269
+ field: `headings${lineInfo}`,
270
+ message: `Empty heading at level h${h.depth}`,
271
+ severity: "warn"
272
+ });
273
+ }
261
274
  const h1s = headings.filter((h) => h.depth === 1);
262
275
  if (h1s.length > 1) for (const h of h1s.slice(1)) {
263
276
  const lineInfo = h.line ? ` (line ${h.line})` : "";
@@ -290,11 +303,18 @@ const headingValidator = {
290
303
  * Walks the shared MDAST for link/image nodes. Internal links are checked for file existence;
291
304
  * external links are checked for well-formed URL format.
292
305
  */
306
+ /** Extract plain text from a node's children. */
307
+ function getTextContent(node) {
308
+ if (node.type === "text") return node.value ?? "";
309
+ if (node.children) return node.children.map(getTextContent).join("");
310
+ return "";
311
+ }
293
312
  /** Walk MDAST tree, collecting link and image nodes. */
294
313
  function collectLinks(node) {
295
314
  const links = [];
296
315
  if ((node.type === "link" || node.type === "image") && node.url) links.push({
297
316
  url: node.url,
317
+ text: node.type === "link" ? getTextContent(node) : "",
298
318
  line: node.position?.start.line
299
319
  });
300
320
  if (node.children) for (const child of node.children) links.push(...collectLinks(child));
@@ -306,6 +326,7 @@ function isInternalLink(url) {
306
326
  if (url.startsWith("//")) return false;
307
327
  if (url.startsWith("mailto:")) return false;
308
328
  if (url.startsWith("tel:")) return false;
329
+ if (url.startsWith("data:")) return false;
309
330
  return true;
310
331
  }
311
332
  function isWellFormedUrl(url) {
@@ -334,6 +355,11 @@ function createLinkValidator(options) {
334
355
  const fileDir = dirname(ctx.filePath);
335
356
  for (const link of links) {
336
357
  const lineInfo = link.line ? ` (line ${link.line})` : "";
358
+ if (link.text !== void 0 && !link.text.trim()) issues.push({
359
+ field: `links${lineInfo}`,
360
+ message: `Link has no visible text: ${link.url}`,
361
+ severity: "warn"
362
+ });
337
363
  if (link.url.startsWith("http://") || link.url.startsWith("https://")) {
338
364
  if (!isWellFormedUrl(link.url)) issues.push({
339
365
  field: `links${lineInfo}`,
@@ -402,9 +428,24 @@ async function runValidators(ctx, validators) {
402
428
  * Handles file discovery, loading, validation, and caching.
403
429
  * Not exported directly — used internally by ContentLayer.
404
430
  */
431
+ const MAX_CONCURRENCY = availableParallelism() * 2;
432
+ async function mapWithConcurrency(items, concurrency, fn) {
433
+ const results = Array.from({ length: items.length });
434
+ let index = 0;
435
+ async function worker() {
436
+ while (index < items.length) {
437
+ const i = index++;
438
+ results[i] = await fn(items[i]);
439
+ }
440
+ }
441
+ const workers = Array.from({ length: Math.min(concurrency, items.length) }, () => worker());
442
+ await Promise.all(workers);
443
+ return results;
444
+ }
405
445
  var ContentStore = class {
406
446
  cache = /* @__PURE__ */ new Map();
407
447
  loaded = /* @__PURE__ */ new Set();
448
+ loading = /* @__PURE__ */ new Map();
408
449
  config;
409
450
  rootDir;
410
451
  markdownConfig;
@@ -419,6 +460,17 @@ var ContentStore = class {
419
460
  const cached = this.cache.get(name);
420
461
  return cached ? Array.from(cached.values()).map((c) => c.entry) : [];
421
462
  }
463
+ const existing = this.loading.get(name);
464
+ if (existing) return existing;
465
+ const promise = this._doLoadCollection(name, def);
466
+ this.loading.set(name, promise);
467
+ try {
468
+ return await promise;
469
+ } finally {
470
+ this.loading.delete(name);
471
+ }
472
+ }
473
+ async _doLoadCollection(name, def) {
422
474
  const loader = resolveLoader(def.loader);
423
475
  const directory = resolve(this.rootDir, def.directory);
424
476
  const files = await discoverFiles({
@@ -428,7 +480,7 @@ var ContentStore = class {
428
480
  });
429
481
  const entries = /* @__PURE__ */ new Map();
430
482
  const strict = this.config.strict ?? false;
431
- const results = await Promise.all(files.map(async (filePath) => {
483
+ const results = await mapWithConcurrency(files, MAX_CONCURRENCY, async (filePath) => {
432
484
  try {
433
485
  return await this.loadEntry(name, filePath, directory, loader, def);
434
486
  } catch (err) {
@@ -445,7 +497,7 @@ var ContentStore = class {
445
497
  }]
446
498
  };
447
499
  }
448
- }));
500
+ });
449
501
  for (const result of results) if (result) entries.set(result.entry.slug, result);
450
502
  this.cache.set(name, entries);
451
503
  this.loaded.add(name);
@@ -462,7 +514,13 @@ var ContentStore = class {
462
514
  slug
463
515
  };
464
516
  if (def.transform) raw = await def.transform(raw);
465
- if (def.computed) for (const [key, fn] of Object.entries(def.computed)) raw.data[key] = fn(raw);
517
+ if (def.computed) {
518
+ raw = {
519
+ ...raw,
520
+ data: { ...raw.data }
521
+ };
522
+ for (const [key, fn] of Object.entries(def.computed)) raw.data[key] = await fn(raw);
523
+ }
466
524
  if (def.filter && !def.filter(raw)) return null;
467
525
  const { issues, validatedData } = validateSchema(raw.data, def.schema);
468
526
  if (def.validate) {
@@ -711,6 +769,9 @@ var ContentLayerImpl = class {
711
769
  });
712
770
  }, 100));
713
771
  });
772
+ watcher.on("error", (err) => {
773
+ console.warn(`Content watcher error for "${name}":`, err.message);
774
+ });
714
775
  watchers.push(watcher);
715
776
  } catch {}
716
777
  }
@@ -730,4 +791,4 @@ function createContentLayer(config) {
730
791
  //#endregion
731
792
  export { linkValidator as a, validateSchema as c, convert as d, createLinkValidator as i, toSlug as l, builtinMarkdownValidators as n, headingValidator as o, runValidators as r, codeBlockValidator as s, createContentLayer as t, ContentEntry as u };
732
793
 
733
- //# sourceMappingURL=content-layer-B5enqWeJ.mjs.map
794
+ //# sourceMappingURL=content-layer-CJRrNpZ_.mjs.map