@refrakt-md/runes 0.37.0 → 0.39.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.
Files changed (200) hide show
  1. package/dist/collection-helpers.d.ts +21 -2
  2. package/dist/collection-helpers.d.ts.map +1 -1
  3. package/dist/collection-helpers.js +72 -15
  4. package/dist/collection-helpers.js.map +1 -1
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +79 -46
  7. package/dist/config.js.map +1 -1
  8. package/dist/data-pipeline.d.ts +24 -10
  9. package/dist/data-pipeline.d.ts.map +1 -1
  10. package/dist/data-pipeline.js +34 -56
  11. package/dist/data-pipeline.js.map +1 -1
  12. package/dist/file-ref-resolve.js +9 -13
  13. package/dist/file-ref-resolve.js.map +1 -1
  14. package/dist/index.d.ts +9 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/component.d.ts +8 -11
  19. package/dist/lib/component.d.ts.map +1 -1
  20. package/dist/lib/component.js +17 -52
  21. package/dist/lib/component.js.map +1 -1
  22. package/dist/lib/field-metas.d.ts +34 -0
  23. package/dist/lib/field-metas.d.ts.map +1 -0
  24. package/dist/lib/field-metas.js +45 -0
  25. package/dist/lib/field-metas.js.map +1 -0
  26. package/dist/lib/index.d.ts +64 -1
  27. package/dist/lib/index.d.ts.map +1 -1
  28. package/dist/lib/index.js +134 -5
  29. package/dist/lib/index.js.map +1 -1
  30. package/dist/lib/node.d.ts +22 -0
  31. package/dist/lib/node.d.ts.map +1 -1
  32. package/dist/lib/node.js +32 -0
  33. package/dist/lib/node.js.map +1 -1
  34. package/dist/lib/preprocess.d.ts +63 -0
  35. package/dist/lib/preprocess.d.ts.map +1 -0
  36. package/dist/lib/preprocess.js +71 -0
  37. package/dist/lib/preprocess.js.map +1 -0
  38. package/dist/lib/registers.d.ts +132 -0
  39. package/dist/lib/registers.d.ts.map +1 -0
  40. package/dist/lib/registers.js +328 -0
  41. package/dist/lib/registers.js.map +1 -0
  42. package/dist/lib/resolver.d.ts +9 -1
  43. package/dist/lib/resolver.d.ts.map +1 -1
  44. package/dist/lib/resolver.js +24 -1
  45. package/dist/lib/resolver.js.map +1 -1
  46. package/dist/lib/schema-table.d.ts +46 -9
  47. package/dist/lib/schema-table.d.ts.map +1 -1
  48. package/dist/lib/schema-table.js +111 -22
  49. package/dist/lib/schema-table.js.map +1 -1
  50. package/dist/lib/slots.d.ts +99 -0
  51. package/dist/lib/slots.d.ts.map +1 -0
  52. package/dist/lib/slots.js +448 -0
  53. package/dist/lib/slots.js.map +1 -0
  54. package/dist/props.d.ts +0 -2
  55. package/dist/props.d.ts.map +1 -1
  56. package/dist/reference.d.ts +37 -0
  57. package/dist/reference.d.ts.map +1 -1
  58. package/dist/reference.js +116 -2
  59. package/dist/reference.js.map +1 -1
  60. package/dist/registers-pipeline.d.ts +50 -0
  61. package/dist/registers-pipeline.d.ts.map +1 -0
  62. package/dist/registers-pipeline.js +218 -0
  63. package/dist/registers-pipeline.js.map +1 -0
  64. package/dist/schema-row.d.ts +5 -0
  65. package/dist/schema-row.d.ts.map +1 -1
  66. package/dist/schema-row.js +1 -0
  67. package/dist/schema-row.js.map +1 -1
  68. package/dist/tags/accordion.d.ts.map +1 -1
  69. package/dist/tags/accordion.js +4 -7
  70. package/dist/tags/accordion.js.map +1 -1
  71. package/dist/tags/annotate.d.ts.map +1 -1
  72. package/dist/tags/annotate.js +6 -13
  73. package/dist/tags/annotate.js.map +1 -1
  74. package/dist/tags/bar.d.ts.map +1 -1
  75. package/dist/tags/bar.js +2 -5
  76. package/dist/tags/bar.js.map +1 -1
  77. package/dist/tags/blog.d.ts.map +1 -1
  78. package/dist/tags/blog.js +1 -9
  79. package/dist/tags/blog.js.map +1 -1
  80. package/dist/tags/breadcrumb.d.ts.map +1 -1
  81. package/dist/tags/breadcrumb.js +4 -5
  82. package/dist/tags/breadcrumb.js.map +1 -1
  83. package/dist/tags/budget.d.ts.map +1 -1
  84. package/dist/tags/budget.js +2 -10
  85. package/dist/tags/budget.js.map +1 -1
  86. package/dist/tags/card.d.ts.map +1 -1
  87. package/dist/tags/card.js +7 -14
  88. package/dist/tags/card.js.map +1 -1
  89. package/dist/tags/chart.d.ts.map +1 -1
  90. package/dist/tags/chart.js +5 -8
  91. package/dist/tags/chart.js.map +1 -1
  92. package/dist/tags/codegroup.d.ts.map +1 -1
  93. package/dist/tags/codegroup.js +0 -2
  94. package/dist/tags/codegroup.js.map +1 -1
  95. package/dist/tags/common.d.ts.map +1 -1
  96. package/dist/tags/common.js +2 -5
  97. package/dist/tags/common.js.map +1 -1
  98. package/dist/tags/compare.d.ts.map +1 -1
  99. package/dist/tags/compare.js +4 -8
  100. package/dist/tags/compare.js.map +1 -1
  101. package/dist/tags/conversation.d.ts.map +1 -1
  102. package/dist/tags/conversation.js +4 -7
  103. package/dist/tags/conversation.js.map +1 -1
  104. package/dist/tags/data.d.ts +2 -2
  105. package/dist/tags/data.d.ts.map +1 -1
  106. package/dist/tags/data.js +6 -4
  107. package/dist/tags/data.js.map +1 -1
  108. package/dist/tags/datatable.d.ts.map +1 -1
  109. package/dist/tags/datatable.js +4 -8
  110. package/dist/tags/datatable.js.map +1 -1
  111. package/dist/tags/details.d.ts.map +1 -1
  112. package/dist/tags/details.js +3 -7
  113. package/dist/tags/details.js.map +1 -1
  114. package/dist/tags/diagram.js +2 -2
  115. package/dist/tags/diagram.js.map +1 -1
  116. package/dist/tags/diff.js +1 -1
  117. package/dist/tags/diff.js.map +1 -1
  118. package/dist/tags/drawer.d.ts.map +1 -1
  119. package/dist/tags/drawer.js +4 -12
  120. package/dist/tags/drawer.js.map +1 -1
  121. package/dist/tags/embed.d.ts.map +1 -1
  122. package/dist/tags/embed.js +4 -5
  123. package/dist/tags/embed.js.map +1 -1
  124. package/dist/tags/figure.d.ts +10 -4
  125. package/dist/tags/figure.d.ts.map +1 -1
  126. package/dist/tags/figure.js +70 -33
  127. package/dist/tags/figure.js.map +1 -1
  128. package/dist/tags/form.d.ts.map +1 -1
  129. package/dist/tags/form.js +3 -18
  130. package/dist/tags/form.js.map +1 -1
  131. package/dist/tags/gallery.d.ts.map +1 -1
  132. package/dist/tags/gallery.js +6 -11
  133. package/dist/tags/gallery.js.map +1 -1
  134. package/dist/tags/grid.d.ts.map +1 -1
  135. package/dist/tags/grid.js +7 -17
  136. package/dist/tags/grid.js.map +1 -1
  137. package/dist/tags/hint.d.ts.map +1 -1
  138. package/dist/tags/hint.js +4 -8
  139. package/dist/tags/hint.js.map +1 -1
  140. package/dist/tags/include.d.ts +51 -7
  141. package/dist/tags/include.d.ts.map +1 -1
  142. package/dist/tags/include.js +216 -7
  143. package/dist/tags/include.js.map +1 -1
  144. package/dist/tags/juxtapose.js +2 -2
  145. package/dist/tags/juxtapose.js.map +1 -1
  146. package/dist/tags/layout.d.ts.map +1 -1
  147. package/dist/tags/layout.js +2 -5
  148. package/dist/tags/layout.js.map +1 -1
  149. package/dist/tags/mediatext.d.ts.map +1 -1
  150. package/dist/tags/mediatext.js +5 -13
  151. package/dist/tags/mediatext.js.map +1 -1
  152. package/dist/tags/nav.d.ts.map +1 -1
  153. package/dist/tags/nav.js +2 -5
  154. package/dist/tags/nav.js.map +1 -1
  155. package/dist/tags/progress.d.ts.map +1 -1
  156. package/dist/tags/progress.js +4 -8
  157. package/dist/tags/progress.js.map +1 -1
  158. package/dist/tags/pullquote.d.ts.map +1 -1
  159. package/dist/tags/pullquote.js +8 -15
  160. package/dist/tags/pullquote.js.map +1 -1
  161. package/dist/tags/region.d.ts.map +1 -1
  162. package/dist/tags/region.js +2 -5
  163. package/dist/tags/region.js.map +1 -1
  164. package/dist/tags/reveal.d.ts.map +1 -1
  165. package/dist/tags/reveal.js +4 -7
  166. package/dist/tags/reveal.js.map +1 -1
  167. package/dist/tags/section.d.ts.map +1 -1
  168. package/dist/tags/section.js +3 -3
  169. package/dist/tags/section.js.map +1 -1
  170. package/dist/tags/showcase.d.ts.map +1 -1
  171. package/dist/tags/showcase.js +4 -11
  172. package/dist/tags/showcase.js.map +1 -1
  173. package/dist/tags/sidenote.d.ts.map +1 -1
  174. package/dist/tags/sidenote.js +7 -12
  175. package/dist/tags/sidenote.js.map +1 -1
  176. package/dist/tags/snippet.d.ts +9 -10
  177. package/dist/tags/snippet.d.ts.map +1 -1
  178. package/dist/tags/snippet.js +213 -10
  179. package/dist/tags/snippet.js.map +1 -1
  180. package/dist/tags/tabs.d.ts.map +1 -1
  181. package/dist/tags/tabs.js +3 -6
  182. package/dist/tags/tabs.js.map +1 -1
  183. package/dist/tags/textblock.d.ts.map +1 -1
  184. package/dist/tags/textblock.js +7 -19
  185. package/dist/tags/textblock.js.map +1 -1
  186. package/dist/tags/tint.d.ts.map +1 -1
  187. package/dist/tags/tint.js +17 -29
  188. package/dist/tags/tint.js.map +1 -1
  189. package/dist/tags/toc.js +1 -1
  190. package/dist/tags/toc.js.map +1 -1
  191. package/dist/universal-attributes.d.ts +1 -1
  192. package/package.json +3 -3
  193. package/dist/include-pipeline.d.ts +0 -52
  194. package/dist/include-pipeline.d.ts.map +0 -1
  195. package/dist/include-pipeline.js +0 -206
  196. package/dist/include-pipeline.js.map +0 -1
  197. package/dist/snippet-pipeline.d.ts +0 -44
  198. package/dist/snippet-pipeline.d.ts.map +0 -1
  199. package/dist/snippet-pipeline.js +0 -307
  200. package/dist/snippet-pipeline.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const ROOTS = ['attrs', 'file'];
3
+ function readSource(source, attrs, file) {
4
+ const dot = source.indexOf('.');
5
+ const root = dot === -1 ? source : source.slice(0, dot);
6
+ const key = dot === -1 ? '' : source.slice(dot + 1);
7
+ if (!ROOTS.includes(root) || key === '') {
8
+ throw new Error(`fieldMetas: unknown source "${source}" — sources are "attrs.<name>" or "file.<name>".`);
9
+ }
10
+ return root === 'attrs' ? attrs[key] : file?.[key];
11
+ }
12
+ /**
13
+ * Build a rune's property metas from a declaration, for use directly as
14
+ * `properties` on `createComponentRenderable`:
15
+ *
16
+ * ```ts
17
+ * properties: fieldMetas(attrs, config, {
18
+ * status: 'draft',
19
+ * created: { from: ['attrs.created', 'file.created'], default: '' },
20
+ * }),
21
+ * ```
22
+ *
23
+ * Keys come out in declaration order, which is the order of the
24
+ * `data-rune-fields` bag. For a meta that is conditional, or that must render
25
+ * outside `properties`, build the tag by hand — this covers the bulk case only.
26
+ */
27
+ export function fieldMetas(attrs, config, spec) {
28
+ const file = config.variables?.file;
29
+ const out = {};
30
+ for (const [key, entry] of Object.entries(spec)) {
31
+ let content;
32
+ if (typeof entry === 'string') {
33
+ content = attrs[key] ?? entry;
34
+ }
35
+ else {
36
+ // Read every source before choosing, so a bad one is rejected even
37
+ // when an earlier source already has a value.
38
+ const values = entry.from.map((source) => readSource(source, attrs, file));
39
+ content = values.find((v) => v != null && v !== '') ?? entry.default;
40
+ }
41
+ out[key] = new Markdoc.Tag('meta', { content });
42
+ }
43
+ return out;
44
+ }
45
+ //# sourceMappingURL=field-metas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-metas.js","sourceRoot":"","sources":["../../src/lib/field-metas.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAmBvC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AAEzC,SAAS,UAAU,CAClB,MAAc,EACd,KAA8B,EAC9B,IAAyC;IAEzC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,CAAE,KAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACd,+BAA+B,MAAM,kDAAkD,CACvF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CACzB,KAA8B,EAC9B,MAAc,EACd,IAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,IAA2C,CAAC;IAC3E,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,OAAgB,CAAC;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,mEAAmE;YACnE,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3E,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1,14 +1,26 @@
1
1
  import type { ContentModel, ResolvedContent } from '@refrakt-md/types';
2
2
  import Markdoc from '@markdoc/markdoc';
3
3
  import type { Config, Node, RenderableTreeNodes, Schema, SchemaAttribute } from '@markdoc/markdoc';
4
+ import type { EmitsDeclaration } from './slots.js';
4
5
  import type { UniversalAttributePosture } from '../universal-attributes.js';
5
6
  export { createComponentRenderable, stripSchemaOrg } from './component.js';
7
+ import { RenderableNodeCursor } from './renderable.js';
6
8
  import type { SchemaTable } from './schema-table.js';
9
+ import type { RegistersDeclaration } from './registers.js';
7
10
  export { applySchemaTable, validateSchemaTable, selectRow, findByName, SCHEMA_TYPE_EXPLICIT, } from './schema-table.js';
8
11
  export type { SchemaTable, SchemaRow, EntityRow, PropertyMap } from './schema-table.js';
9
12
  export type { InlineTransformResult } from './component.js';
10
13
  export { resolve, resolveSequence, resolveDelimited, resolveSections, resolveContentModel, resolveListItems, evaluateCondition, matchesType, } from './resolver.js';
11
14
  export { sanitizeSandboxContent } from './sanitize.js';
15
+ export { preprocessTree, schemaPreprocessors } from './preprocess.js';
16
+ export type { RunePreprocess, RunePreprocessContext } from './preprocess.js';
17
+ import type { RunePreprocess } from './preprocess.js';
18
+ export { extractText, groupByHeading } from './node.js';
19
+ export type { GroupByHeadingHandlers } from './node.js';
20
+ export { fieldMetas } from './field-metas.js';
21
+ export { makeSlotTransform, slotSections, validateEmits, describeSlots, formatSlotLine, } from './slots.js';
22
+ export type { DescribedSlot, EmitsDeclaration, SlotDeclaration, SlotEntry, SlotKind, SlotRole, } from './slots.js';
23
+ export type { FieldMetaSpec, FieldMetaEntry, FieldMetaSource } from './field-metas.js';
12
24
  /**
13
25
  * Maps a Markdoc Schema to its content model declaration.
14
26
  * Populated by `createContentModelSchema()` so consumers (editor, language server)
@@ -69,6 +81,13 @@ export declare const schemaRuneStructures: WeakMap<Markdoc.Schema, RuneStructure
69
81
  * table here is what lets the review surface D5 depends on exist at all.
70
82
  */
71
83
  export declare const schemaTables: WeakMap<Markdoc.Schema, SchemaTable>;
84
+ /**
85
+ * A declaratively-labelled rune's slot declaration, keyed by its Markdoc schema
86
+ * — SPEC-143. Same shape and purpose as `schemaTables`: the declaration lives in
87
+ * the tag module, and `inspect` and `reference` have only the schema to read.
88
+ * Absent for a rune that keeps a hand-written transform.
89
+ */
90
+ export declare const schemaEmits: WeakMap<Markdoc.Schema, EmitsDeclaration>;
72
91
  /**
73
92
  * Record a hand-written schema's universal-attribute posture.
74
93
  *
@@ -82,6 +101,18 @@ export declare function declareUniversalPosture(schema: Schema, posture: Univers
82
101
  export type SectionRole = 'header' | 'preamble' | 'title' | 'description' | 'body' | 'footer' | 'media';
83
102
  /** Normalize resolver output (single Node, Node[], or undefined) into Node[]. */
84
103
  export declare function asNodes(value: unknown): Node[];
104
+ /**
105
+ * Transform resolved content into a cursor over its renderable nodes — the
106
+ * `new RenderableNodeCursor(Markdoc.transform(asNodes(x), config))` spelling in
107
+ * one call. Takes anything `asNodes` accepts.
108
+ */
109
+ export declare function renderNodes(value: unknown, config: Config): RenderableNodeCursor;
110
+ /**
111
+ * The content model of a rune whose children are all body: a single optional,
112
+ * greedy `body` field matching anything. Returns a fresh object per call, so a
113
+ * rune that spreads and overrides it cannot change it for anyone else.
114
+ */
115
+ export declare function bodyOnly(): ContentModel;
85
116
  /** Rule for mapping a deprecated attribute to its replacement */
86
117
  export interface DeprecationRule {
87
118
  /** New attribute name to copy the value to */
@@ -103,8 +134,20 @@ export interface ContentModelSchemaOptions {
103
134
  * Transform function that receives resolved content, the rune's
104
135
  * attributes, the Markdoc config, and optionally the AST node.
105
136
  * Returns the renderable output.
137
+ *
138
+ * Exactly one of `transform` and `emits` (SPEC-143 D8). Keep a transform
139
+ * when the rune unwraps, filters, reorders or merges what the content model
140
+ * resolved — the family test (D4).
106
141
  */
107
- transform: (resolved: ResolvedContent, attrs: Record<string, any>, config: Config, node: Node) => RenderableTreeNodes;
142
+ transform?: (resolved: ResolvedContent, attrs: Record<string, any>, config: Config, node: Node) => RenderableTreeNodes;
143
+ /**
144
+ * SPEC-143 — the slot declaration: the renderable's identity, its property
145
+ * metas, and its named content slots, as data. When present the schema
146
+ * builds the transform from it once, here, and calls it where it would call
147
+ * `transform`. Also supplies the rune's `sections` join table, so that is not
148
+ * authored a second time beside it.
149
+ */
150
+ emits?: EmitsDeclaration;
108
151
  /**
109
152
  * SPEC-130 / WORK-565 — the rune's declarative schema.org table.
110
153
  *
@@ -115,6 +158,26 @@ export interface ContentModelSchemaOptions {
115
158
  * schema knowledge at all.
116
159
  */
117
160
  schema?: SchemaTable;
161
+ /**
162
+ * SPEC-144 / WORK-611 — the entity or edge this rune registers in the
163
+ * cross-page registry. Inert data in a closed vocabulary (ADR-036), checked
164
+ * here at construction; the core participant in `registers-pipeline.ts`
165
+ * does the registering. See `lib/registers.ts`.
166
+ */
167
+ registers?: RegistersDeclaration;
168
+ /**
169
+ * SPEC-141 — resolve this rune before the transform. Receives the rune's
170
+ * own tag node and returns a replacement, several (spliced in its place),
171
+ * or nothing (left alone). One walk over the page dispatches to it in tree
172
+ * order and descends into what it returns, so the hook never resolves the
173
+ * runes its own output contains. See {@link RunePreprocess}.
174
+ *
175
+ * Whether a rune resolves itself before the transform is rune identity, so
176
+ * it is declared here rather than wired from config. A rune that sets it
177
+ * normally never reaches its own `transform`, which then exists to explain
178
+ * an unresolved tag (SPEC-141 D7).
179
+ */
180
+ preprocess?: RunePreprocess;
118
181
  /** Deprecated attribute mappings. */
119
182
  deprecations?: Record<string, DeprecationRule>;
120
183
  /** Whether this tag is self-closing (no children). */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}
package/dist/lib/index.js CHANGED
@@ -1,13 +1,21 @@
1
1
  import Markdoc from '@markdoc/markdoc';
2
2
  import { resolveContentModel } from './resolver.js';
3
+ import { makeSlotTransform, slotSections } from './slots.js';
3
4
  import { schemaBasePresets } from '../attribute-presets.js';
4
5
  import { resolveUniversalAttributes } from '../universal-attributes.js';
5
6
  export { createComponentRenderable, stripSchemaOrg } from './component.js';
6
7
  import { stripSchemaOrg } from './component.js';
7
- import { applySchemaTable, validateSchemaTable } from './schema-table.js';
8
+ import { RenderableNodeCursor } from './renderable.js';
9
+ import { applySchemaTable, releaseOwnedNodes, validateSchemaTable } from './schema-table.js';
10
+ import { auditRegistersSources, registersSources, schemaRegisters, validateRegistersDeclaration, } from './registers.js';
8
11
  export { applySchemaTable, validateSchemaTable, selectRow, findByName, SCHEMA_TYPE_EXPLICIT, } from './schema-table.js';
9
12
  export { resolve, resolveSequence, resolveDelimited, resolveSections, resolveContentModel, resolveListItems, evaluateCondition, matchesType, } from './resolver.js';
10
13
  export { sanitizeSandboxContent } from './sanitize.js';
14
+ export { preprocessTree, schemaPreprocessors } from './preprocess.js';
15
+ import { schemaPreprocessors } from './preprocess.js';
16
+ export { extractText, groupByHeading } from './node.js';
17
+ export { fieldMetas } from './field-metas.js';
18
+ export { makeSlotTransform, slotSections, validateEmits, describeSlots, formatSlotLine, } from './slots.js';
11
19
  /**
12
20
  * Maps a Markdoc Schema to its content model declaration.
13
21
  * Populated by `createContentModelSchema()` so consumers (editor, language server)
@@ -30,6 +38,13 @@ export const schemaRuneStructures = new WeakMap();
30
38
  * table here is what lets the review surface D5 depends on exist at all.
31
39
  */
32
40
  export const schemaTables = new WeakMap();
41
+ /**
42
+ * A declaratively-labelled rune's slot declaration, keyed by its Markdoc schema
43
+ * — SPEC-143. Same shape and purpose as `schemaTables`: the declaration lives in
44
+ * the tag module, and `inspect` and `reference` have only the schema to read.
45
+ * Absent for a rune that keeps a hand-written transform.
46
+ */
47
+ export const schemaEmits = new WeakMap();
33
48
  /**
34
49
  * Record a hand-written schema's universal-attribute posture.
35
50
  *
@@ -52,6 +67,25 @@ export function asNodes(value) {
52
67
  return [value];
53
68
  return [];
54
69
  }
70
+ /**
71
+ * Transform resolved content into a cursor over its renderable nodes — the
72
+ * `new RenderableNodeCursor(Markdoc.transform(asNodes(x), config))` spelling in
73
+ * one call. Takes anything `asNodes` accepts.
74
+ */
75
+ export function renderNodes(value, config) {
76
+ return new RenderableNodeCursor(Markdoc.transform(asNodes(value), config));
77
+ }
78
+ /**
79
+ * The content model of a rune whose children are all body: a single optional,
80
+ * greedy `body` field matching anything. Returns a fresh object per call, so a
81
+ * rune that spreads and overrides it cannot change it for anyone else.
82
+ */
83
+ export function bodyOnly() {
84
+ return {
85
+ type: 'sequence',
86
+ fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
87
+ };
88
+ }
55
89
  // ---------------------------------------------------------------------------
56
90
  // Universal attribute definitions
57
91
  // ---------------------------------------------------------------------------
@@ -500,6 +534,56 @@ function injectSubstrateMetas(result, attrs) {
500
534
  result.children = [...result.children, ...metas];
501
535
  return result;
502
536
  }
537
+ /** Sources each registering schema has been seen to provide. A source the rune
538
+ * emits structurally is emitted by every instance, so once seen it needs no
539
+ * second transform — which keeps the audit at one extra transform per rune
540
+ * per process rather than one per instance. */
541
+ const resolvedRegistersSources = new WeakMap();
542
+ /**
543
+ * The validate-time audit of a `registers` block — WORK-611.
544
+ *
545
+ * A source that resolves to nothing registers an empty id or an empty data
546
+ * field on every instance, silently. Reported as `registers-source-unresolved`
547
+ * against the instance's own line, by the rule `auditRegistersSources` shares
548
+ * with `inspect`. Declared attributes resolve without a transform; anything
549
+ * else needs the rune's output, which is produced here against a copy of the
550
+ * page's variables so the audit cannot disturb the real transform (generated
551
+ * heading ids, chiefly).
552
+ */
553
+ function auditRegistersOnValidate(schema, decl, node, config) {
554
+ const seen = resolvedRegistersSources.get(schema) ?? new Set();
555
+ resolvedRegistersSources.set(schema, seen);
556
+ const declared = Object.keys(schema.attributes ?? {});
557
+ const pending = auditRegistersSources(decl, [], declared).filter((s) => !seen.has(s.source));
558
+ if (pending.length === 0)
559
+ return [];
560
+ let tree;
561
+ try {
562
+ const variables = config.variables ?? {};
563
+ tree = Markdoc.transform(node, {
564
+ ...config,
565
+ variables: {
566
+ ...variables,
567
+ generatedIds: new Set(variables.generatedIds ?? []),
568
+ },
569
+ });
570
+ }
571
+ catch {
572
+ // A rune that cannot transform here reports that through its own path.
573
+ return [];
574
+ }
575
+ const unresolved = auditRegistersSources(decl, tree, declared);
576
+ const missing = new Set(unresolved.map((u) => u.source));
577
+ for (const { source } of registersSources(decl))
578
+ if (!missing.has(source))
579
+ seen.add(source);
580
+ return unresolved.map(({ source, role }) => ({
581
+ id: 'registers-source-unresolved',
582
+ level: 'warning',
583
+ message: `registers ${role} reads "${source}", which matches no emitted node, no field-bag entry ` +
584
+ `and no declared attribute of {% ${node.tag} %} — it would always be empty`,
585
+ }));
586
+ }
503
587
  /**
504
588
  * Create a Markdoc Schema from a declarative content model.
505
589
  *
@@ -507,6 +591,33 @@ function injectSubstrateMetas(result, attrs) {
507
591
  * that receives the resolver's output.
508
592
  */
509
593
  export function createContentModelSchema(options) {
594
+ // SPEC-143 D8 — exactly one of the two. A rune that declared some slots and
595
+ // patched the rest in a transform would leave neither half able to say what
596
+ // the output is.
597
+ if (options.transform && options.emits) {
598
+ throw new Error(`Rune "${options.emits.rune}": declares both \`transform\` and \`emits\`. Use exactly one (SPEC-143 D8) — the declaration for a rune that only labels its fields, the transform for one that restructures them.`);
599
+ }
600
+ if (!options.transform && !options.emits) {
601
+ const attrNames = Object.keys(options.attributes ?? {});
602
+ throw new Error(`A rune${attrNames.length ? ` (attributes: ${attrNames.join(', ')})` : ''} declares neither \`transform\` nor \`emits\`. It needs exactly one (SPEC-143 D8).`);
603
+ }
604
+ // Built once, at construction — not per page, not per instance.
605
+ const transform = options.transform ?? makeSlotTransform(options.emits, options.contentModel);
606
+ // The `sections` join table follows from the declaration. A rune may still
607
+ // state roles for names `layout` creates (a `preamble` header), but not
608
+ // restate a slot's — that would be the identity authored twice.
609
+ let sections = options.sections;
610
+ if (options.emits) {
611
+ const derived = slotSections(options.emits);
612
+ const restated = Object.keys(options.sections ?? {}).filter((k) => k in options.emits.slots);
613
+ if (restated.length > 0) {
614
+ throw new Error(`Rune "${options.emits.rune}": \`sections\` restates the role of slot(s) ${restated.join(', ')}, which the \`emits\` declaration already gives. Declare it on the slot (\`role\`) instead.`);
615
+ }
616
+ sections =
617
+ options.sections || Object.keys(derived).length > 0
618
+ ? { ...derived, ...options.sections }
619
+ : undefined;
620
+ }
510
621
  const attributes = {};
511
622
  // Merge base attributes
512
623
  if (options.base) {
@@ -526,7 +637,7 @@ export function createContentModelSchema(options) {
526
637
  const { available: applicableUniversals } = resolveUniversalAttributes({
527
638
  posture: options.universalAttributes,
528
639
  structure: {
529
- ...(options.sections && { sections: options.sections }),
640
+ ...(sections && { sections }),
530
641
  ...(options.mediaSlots && { mediaSlots: options.mediaSlots }),
531
642
  ...(options.frameTarget && { frameTarget: options.frameTarget }),
532
643
  ...(options.provides && { provides: options.provides }),
@@ -593,8 +704,9 @@ export function createContentModelSchema(options) {
593
704
  ? options.contentModel(attrs)
594
705
  : options.contentModel;
595
706
  const { content, tintNode, bgNode } = resolveContentModel(node.children, resolvedModel, attrs);
596
- // Call the user's transform function
597
- let result = options.transform(content, attrs, config, node);
707
+ // Call the rune's transform — hand-written, or built from `emits`
708
+ // (SPEC-143). The one call site either way.
709
+ let result = transform(content, attrs, config, node);
598
710
  // SPEC-130 / WORK-565 — realise the rune's schema table against its own
599
711
  // output. Here, not in the engine: `site.ts` harvests `extractSeo` from
600
712
  // the `Markdoc.transform` tree, and the engine runs later at render
@@ -603,6 +715,8 @@ export function createContentModelSchema(options) {
603
715
  if (options.schema) {
604
716
  result = applySchemaTable(result, options.schema, attrs);
605
717
  }
718
+ // SPEC-146 D4 — this rune is the last that could read its ownership marks.
719
+ releaseOwnedNodes(result);
606
720
  // `schema="none"` strips the whole subtree, not just the root: a child
607
721
  // rune declares its own type independently, so stripping only the root
608
722
  // would leave orphan typed nodes with no container (WORK-552).
@@ -668,6 +782,19 @@ export function createContentModelSchema(options) {
668
782
  }
669
783
  if (options.schema)
670
784
  schemaTables.set(schema, options.schema);
785
+ if (options.emits)
786
+ schemaEmits.set(schema, options.emits);
787
+ // SPEC-144 / WORK-611 — record the registration declaration, and audit its
788
+ // sources at validate time, where Markdoc attaches file and line.
789
+ if (options.registers) {
790
+ validateRegistersDeclaration(options.registers);
791
+ schemaRegisters.set(schema, options.registers);
792
+ const ownValidate = schema.validate;
793
+ schema.validate = (node, config) => [
794
+ ...(ownValidate?.(node, config) ?? []),
795
+ ...auditRegistersOnValidate(schema, options.registers, node, config),
796
+ ];
797
+ }
671
798
  // Register content model for introspection by editor / language server
672
799
  schemaContentModels.set(schema, options.contentModel);
673
800
  // SPEC-125 Phase 2 — record the rune's own join tables, so the applicability
@@ -676,7 +803,7 @@ export function createContentModelSchema(options) {
676
803
  // is the `auto` default, so a consumer can tell "this rune was built through
677
804
  // the schema builder and is structurally gated" from "nothing is known".
678
805
  schemaRuneStructures.set(schema, {
679
- ...(options.sections && { sections: options.sections }),
806
+ ...(sections && { sections }),
680
807
  ...(options.mediaSlots && { mediaSlots: options.mediaSlots }),
681
808
  ...(options.frameTarget && { frameTarget: options.frameTarget }),
682
809
  universalAttributes: options.universalAttributes ?? 'auto',
@@ -687,6 +814,8 @@ export function createContentModelSchema(options) {
687
814
  if (options.base) {
688
815
  schemaBasePresets.set(schema, options.base);
689
816
  }
817
+ if (options.preprocess)
818
+ schemaPreprocessors.set(schema, options.preprocess);
690
819
  return schema;
691
820
  }
692
821
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,26 @@
1
1
  import type { Node } from '@markdoc/markdoc';
2
2
  import type { NodeFilter } from '../interfaces.js';
3
3
  export declare function isFilterMatching(n: Node, match: NodeFilter): boolean;
4
+ /**
5
+ * Concatenated text of every `text` node under an AST node, unmodified — no
6
+ * trimming, no separator between nodes. For a rendered tree use `textContent`.
7
+ */
8
+ export declare function extractText(node: Node): string;
9
+ /** Callbacks for `groupByHeading`. `G` is whatever the rune tracks per group. */
10
+ export interface GroupByHeadingHandlers<G> {
11
+ /** The group in effect before the first heading. */
12
+ initial: G;
13
+ /** A heading starts a group: return the one now in effect. */
14
+ heading: (heading: Node, current: G) => G;
15
+ /** Each item of a list, with the group in effect where the list appears. */
16
+ item: (item: Node, group: G) => void;
17
+ /** Any other child (neither heading nor list), in document order. */
18
+ other?: (node: Node) => void;
19
+ }
20
+ /**
21
+ * The "a heading sets the running group, list items become entries" walk over
22
+ * a rune's children. Only the traversal is shared: what a heading means and how
23
+ * an item parses stay with the rune.
24
+ */
25
+ export declare function groupByHeading<G>(nodes: Iterable<Node>, handlers: GroupByHeadingHandlers<G>): void;
4
26
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,WAmB1D"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,WAmB1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK9C;AAED,iFAAiF;AACjF,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACxC,oDAAoD;IACpD,OAAO,EAAE,CAAC,CAAC;IACX,8DAA8D;IAC9D,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACrC,qEAAqE;IACrE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EACrB,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,IAAI,CAaN"}
package/dist/lib/node.js CHANGED
@@ -15,4 +15,36 @@ export function isFilterMatching(n, match) {
15
15
  }
16
16
  return true;
17
17
  }
18
+ /**
19
+ * Concatenated text of every `text` node under an AST node, unmodified — no
20
+ * trimming, no separator between nodes. For a rendered tree use `textContent`.
21
+ */
22
+ export function extractText(node) {
23
+ return Array.from(node.walk())
24
+ .filter((n) => n.type === 'text')
25
+ .map((n) => n.attributes.content)
26
+ .join('');
27
+ }
28
+ /**
29
+ * The "a heading sets the running group, list items become entries" walk over
30
+ * a rune's children. Only the traversal is shared: what a heading means and how
31
+ * an item parses stay with the rune.
32
+ */
33
+ export function groupByHeading(nodes, handlers) {
34
+ let group = handlers.initial;
35
+ for (const node of nodes) {
36
+ if (node.type === 'heading') {
37
+ group = handlers.heading(node, group);
38
+ }
39
+ else if (node.type === 'list') {
40
+ for (const item of node.children) {
41
+ if (item.type === 'item')
42
+ handlers.item(item, group);
43
+ }
44
+ }
45
+ else {
46
+ handlers.other?.(node);
47
+ }
48
+ }
49
+ }
18
50
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAC,CAAO,EAAE,KAAiB;IAC1D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAsB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACtF,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1F,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IACC,MAAM,CAAC,aAAa;QACpB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,aAAa,CAAC,EACpF,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAC,CAAO,EAAE,KAAiB;IAC1D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAsB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACtF,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1F,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IACC,MAAM,CAAC,aAAa;QACpB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,aAAa,CAAC,EACpF,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAU;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;SAChC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAcD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,KAAqB,EACrB,QAAmC;IAEnC,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;AACF,CAAC"}