@refrakt-md/runes 0.39.0 → 0.41.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 (68) hide show
  1. package/dist/attribute-presets.d.ts +3 -2
  2. package/dist/attribute-presets.d.ts.map +1 -1
  3. package/dist/attribute-presets.js +2 -1
  4. package/dist/attribute-presets.js.map +1 -1
  5. package/dist/composed-rune.d.ts +61 -0
  6. package/dist/composed-rune.d.ts.map +1 -0
  7. package/dist/composed-rune.js +158 -0
  8. package/dist/composed-rune.js.map +1 -0
  9. package/dist/index.d.ts +12 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +15 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/composition-errors.d.ts +80 -0
  14. package/dist/lib/composition-errors.d.ts.map +1 -0
  15. package/dist/lib/composition-errors.js +82 -0
  16. package/dist/lib/composition-errors.js.map +1 -0
  17. package/dist/lib/composition.d.ts +167 -0
  18. package/dist/lib/composition.d.ts.map +1 -0
  19. package/dist/lib/composition.js +1182 -0
  20. package/dist/lib/composition.js.map +1 -0
  21. package/dist/lib/index.d.ts +30 -5
  22. package/dist/lib/index.d.ts.map +1 -1
  23. package/dist/lib/index.js +107 -16
  24. package/dist/lib/index.js.map +1 -1
  25. package/dist/lib/preprocess.d.ts +3 -2
  26. package/dist/lib/preprocess.d.ts.map +1 -1
  27. package/dist/lib/preprocess.js +2 -1
  28. package/dist/lib/preprocess.js.map +1 -1
  29. package/dist/lib/registers.d.ts +2 -2
  30. package/dist/lib/registers.d.ts.map +1 -1
  31. package/dist/lib/registers.js +2 -1
  32. package/dist/lib/registers.js.map +1 -1
  33. package/dist/lib/resolver.d.ts +32 -4
  34. package/dist/lib/resolver.d.ts.map +1 -1
  35. package/dist/lib/resolver.js +87 -33
  36. package/dist/lib/resolver.js.map +1 -1
  37. package/dist/lib/schema-side-table.d.ts +26 -0
  38. package/dist/lib/schema-side-table.d.ts.map +1 -0
  39. package/dist/lib/schema-side-table.js +34 -0
  40. package/dist/lib/schema-side-table.js.map +1 -0
  41. package/dist/lib/schema-table.d.ts +16 -1
  42. package/dist/lib/schema-table.d.ts.map +1 -1
  43. package/dist/lib/schema-table.js +101 -3
  44. package/dist/lib/schema-table.js.map +1 -1
  45. package/dist/lib/slot-markers.d.ts +38 -0
  46. package/dist/lib/slot-markers.d.ts.map +1 -0
  47. package/dist/lib/slot-markers.js +105 -0
  48. package/dist/lib/slot-markers.js.map +1 -0
  49. package/dist/plugins.d.ts +31 -9
  50. package/dist/plugins.d.ts.map +1 -1
  51. package/dist/plugins.js +242 -64
  52. package/dist/plugins.js.map +1 -1
  53. package/dist/project-runes.d.ts +53 -0
  54. package/dist/project-runes.d.ts.map +1 -0
  55. package/dist/project-runes.js +85 -0
  56. package/dist/project-runes.js.map +1 -0
  57. package/dist/registers-pipeline.d.ts +1 -0
  58. package/dist/registers-pipeline.d.ts.map +1 -1
  59. package/dist/registers-pipeline.js +7 -1
  60. package/dist/registers-pipeline.js.map +1 -1
  61. package/dist/rune-dir.d.ts +52 -0
  62. package/dist/rune-dir.d.ts.map +1 -0
  63. package/dist/rune-dir.js +90 -0
  64. package/dist/rune-dir.js.map +1 -0
  65. package/dist/tags/sandbox.d.ts.map +1 -1
  66. package/dist/tags/sandbox.js +15 -3
  67. package/dist/tags/sandbox.js.map +1 -1
  68. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table.d.ts","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table.d.ts","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
@@ -70,13 +70,18 @@ export const SCHEMA_TYPE_EXPLICIT = Symbol.for('refrakt.schemaTypeExplicit');
70
70
  */
71
71
  export function validateSchemaTable(table, declaredAttributes = []) {
72
72
  const issues = [];
73
+ const definitions = Array.isArray(declaredAttributes) ? undefined : declaredAttributes;
74
+ const declared = definitions ? Object.keys(definitions) : declaredAttributes;
73
75
  if (table.by !== undefined) {
74
- if (declaredAttributes.length > 0 && !declaredAttributes.includes(table.by)) {
76
+ if (declared.length > 0 && !declared.includes(table.by)) {
75
77
  issues.push({
76
78
  path: 'by',
77
79
  message: `\`by: '${table.by}'\` names an attribute the rune does not declare. \`by\` selects a row from \`attrs\`, not from a modifier.`,
78
80
  });
79
81
  }
82
+ else if (definitions?.[table.by]) {
83
+ issues.push(...checkRowCoverage(table, definitions[table.by].matches));
84
+ }
80
85
  if (!table.rows || Object.keys(table.rows).length === 0) {
81
86
  issues.push({ path: 'rows', message: '`by` needs `rows` to select from.' });
82
87
  }
@@ -122,6 +127,52 @@ export function validateSchemaTable(table, declaredAttributes = []) {
122
127
  checkRow(table.fallback, 'fallback.');
123
128
  return issues;
124
129
  }
130
+ /**
131
+ * WORK-632 / SPEC-145 D27 (c) — a `by` table's `rows` and its attribute's
132
+ * `matches` must correspond exactly, both ways, as D15 requires of template
133
+ * variants. Otherwise a misspelt row (`podcasts:`) or a newly added enum value
134
+ * silently selects the fallback, and nothing the reader of the page can see
135
+ * changes.
136
+ *
137
+ * A declared value with no row is an error, not a fall-through to `fallback`.
138
+ * `fallback` answers the case where the author stated no value; a value the
139
+ * rune itself declares is a decision the table owes a row. A value that should
140
+ * share the fallback's type says so with a row of its own — one line — so the
141
+ * choice is visible in `inspect` and the next added value cannot inherit it by
142
+ * omission.
143
+ */
144
+ function checkRowCoverage(table, matches) {
145
+ const by = table.by;
146
+ if (!Array.isArray(matches)) {
147
+ return [
148
+ {
149
+ path: 'by',
150
+ message: `\`by: '${by}'\` names an attribute with no \`matches\` list, so its rows cannot be checked against the values an author may write. Declare \`matches\` on \`${by}\`.`,
151
+ },
152
+ ];
153
+ }
154
+ const values = matches.map(String);
155
+ const keys = Object.keys(table.rows ?? {});
156
+ const declared = values.map((v) => `'${v}'`).join(', ');
157
+ const issues = [];
158
+ for (const key of keys) {
159
+ if (!values.includes(key)) {
160
+ issues.push({
161
+ path: `rows.${key}`,
162
+ message: `row \`${key}\` is not a value \`${by}\` accepts, so it can never be selected. \`${by}\` declares: ${declared}.`,
163
+ });
164
+ }
165
+ }
166
+ for (const value of values) {
167
+ if (!keys.includes(value)) {
168
+ issues.push({
169
+ path: 'rows',
170
+ message: `\`${by}\` accepts \`${value}\` but no row covers it, so it would silently publish the fallback. Add \`rows.${value}\` — repeat the fallback row if that is the intended type.`,
171
+ });
172
+ }
173
+ }
174
+ return issues;
175
+ }
125
176
  /**
126
177
  * Pick the row a set of attributes — or, for a `byField` table, the rune's
127
178
  * field bag — selects. With no bag (the static views: `inspect`, `contracts`,
@@ -177,7 +228,7 @@ export function findAllByName(root, name) {
177
228
  attrs['data-name'] === kebab ||
178
229
  attrs['data-field'] === name ||
179
230
  attrs['data-field'] === kebab;
180
- if (named && isMine(attrs, owner, inner)) {
231
+ if ((named && isMine(attrs, owner, inner)) || isSlotted(attrs, owner, name, kebab)) {
181
232
  out.push(node);
182
233
  // A name marks one node, not a subtree: descending into a match would
183
234
  // find nothing new and risks a nested re-use of the same name.
@@ -449,8 +500,9 @@ function findChildren(root, name) {
449
500
  return;
450
501
  const attrs = node.attributes ?? {};
451
502
  const named = attrs['data-rune'] === name || attrs['data-name'] === name || attrs['data-field'] === name;
452
- if (named && isMine(attrs, owner, foreign))
503
+ if ((named && isMine(attrs, owner, foreign)) || isSlotted(attrs, owner, name, name)) {
453
504
  out.push(node);
505
+ }
454
506
  const crossing = attrs['data-rune'] !== undefined;
455
507
  for (const c of node.children ?? [])
456
508
  visit(c, foreign || crossing);
@@ -467,13 +519,46 @@ function findChildren(root, name) {
467
519
  * another rune is that rune's. Past another rune's boundary only a node marked
468
520
  * for this rune counts: whatever else is down there belongs to the rune whose
469
521
  * boundary it is.
522
+ *
523
+ * That holds for a node marked with `OWNER_ATTR` alone. A node composition
524
+ * placed carries `SLOT_ATTR` as well, and splits the question by attribute —
525
+ * see the first branch.
470
526
  */
471
527
  function isMine(attrs, owner, foreign) {
472
528
  const marked = attrs[OWNER_ATTR];
529
+ // SPEC-145 D10a — a node carrying both markers was placed by composition,
530
+ // and its two names are two namespaces. Its `data-name` / `data-field` / own
531
+ // `data-rune` are the primitive's, so they count among the primitive's own
532
+ // nodes whoever owns the node; the owner reaches it by `SLOT_ATTR` only
533
+ // (`isSlotted`), never by a primitive's name. Without this a `figure` holding
534
+ // an image placed for `character` lost its own `contentUrl`. The same rule
535
+ // read from the owner's side: an author's `{% figure %}` placed straight into
536
+ // the composed rune's slot is not matched by the owner's `figure` row.
537
+ if (marked !== undefined && attrs[SLOT_ATTR] !== undefined) {
538
+ return marked !== owner && !foreign;
539
+ }
473
540
  if (foreign)
474
541
  return owner !== undefined && marked === owner;
475
542
  return marked === undefined || marked === owner;
476
543
  }
544
+ /**
545
+ * Is a node placed on this rune's behalf under the slot name being resolved?
546
+ * SPEC-145 D10a step 3 — the extension to `isMine`, not a replacement for it.
547
+ *
548
+ * A placed node sits inside a primitive, and the primitive may name the same
549
+ * node for its own styling: one attribute cannot carry both names, so the
550
+ * composing rune's name travels as `SLOT_ATTR` and the primitive's `data-name`
551
+ * is left alone. A slot name counts only beside a matching `OWNER_ATTR` —
552
+ * `data-slot` survives into the output (D10c), so on its own it says what a
553
+ * node is called, not whose name it is — and then it counts on either side of
554
+ * a boundary.
555
+ */
556
+ function isSlotted(attrs, owner, name, kebab) {
557
+ const slot = attrs[SLOT_ATTR];
558
+ if (slot === undefined || owner === undefined || attrs[OWNER_ATTR] !== owner)
559
+ return false;
560
+ return slot === name || slot === kebab;
561
+ }
477
562
  /**
478
563
  * Marks a node placed inside another rune on behalf of the rune named — the
479
564
  * value is that rune's `data-rune`. SPEC-146 D1.
@@ -483,6 +568,16 @@ function isMine(attrs, owner, foreign) {
483
568
  * past a boundary means — not this rune's — which is the fix for Problem 1.
484
569
  */
485
570
  export const OWNER_ATTR = 'data-owner';
571
+ /**
572
+ * What the owning rune calls a node it placed — SPEC-145 D10a. Set together
573
+ * with `OWNER_ATTR` and read only together with it.
574
+ *
575
+ * Unlike the owner mark it is not bookkeeping: `releaseOwnedNodes` leaves it in
576
+ * place, because a composed rune's slot names are its published names for its
577
+ * parts (D10c) — `[data-rune="character"] [data-slot="description"]` is a
578
+ * theme's hook, and the composed rune's contract lists them.
579
+ */
580
+ export const SLOT_ATTR = 'data-slot';
486
581
  /**
487
582
  * Strip the ownership marks a rune has finished resolving. SPEC-146 D4: the
488
583
  * marker answers a resolution question during the transform, so it is
@@ -490,6 +585,9 @@ export const OWNER_ATTR = 'data-owner';
490
585
  *
491
586
  * Runs once the owning rune's table has been applied. Markdoc transforms
492
587
  * bottom-up, so no rune that could still need the mark runs later.
588
+ *
589
+ * `SLOT_ATTR` on the same node stays: it is output, not bookkeeping (SPEC-145
590
+ * D10a step 4, D10c).
493
591
  */
494
592
  export function releaseOwnedNodes(output) {
495
593
  if (!isTag(output))
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Schema } from '@markdoc/markdoc';
2
+ /**
3
+ * Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
4
+ *
5
+ * ## Why every schema has to declare them
6
+ *
7
+ * Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
8
+ * `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
9
+ * schema declares. A marker on a paragraph whose schema does not name it is
10
+ * gone from the rendered `<p>` with no trace, and the composed rune's schema
11
+ * row then resolves nothing — which looks exactly like optional content left
12
+ * empty.
13
+ *
14
+ * ## Why here, once, rather than in each rune
15
+ *
16
+ * Declared per rune, a new rune would be uncovered until someone remembered.
17
+ * Declared where the Markdoc config is assembled — core nodes plus every
18
+ * plugin's runes — every schema is covered, including ones written after this.
19
+ * And no rune's own declaration carries them, so the authoring surfaces that
20
+ * read a rune's schema (`reference`, the editor, the AI prompt) never offer an
21
+ * author two attributes only composition may set.
22
+ *
23
+ * Copies, never mutates: the input maps are module-level exports shared by
24
+ * every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
25
+ * schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
26
+ * still answer for it. The copy is memoised on the input map, so a site
27
+ * assembling the same config for every page builds it once.
28
+ */
29
+ export declare function declareSlotMarkers<T extends Record<string, Schema>>(schemas: T): T;
30
+ /**
31
+ * The node map a page is transformed against, every node declaring the markers.
32
+ *
33
+ * Includes Markdoc's defaults for the nodes `nodes` does not override —
34
+ * `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
35
+ * own schema for those, and its own schema declares nothing.
36
+ */
37
+ export declare function declareSlotMarkersOnNodes<T extends Record<string, Schema>>(nodes: T): T;
38
+ //# sourceMappingURL=slot-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-markers.d.ts","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CASlF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMvF"}
@@ -0,0 +1,105 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import { recordSchemaOrigin } from './schema-side-table.js';
3
+ import { OWNER_ATTR, SLOT_ATTR } from './schema-table.js';
4
+ /**
5
+ * Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
6
+ *
7
+ * ## Why every schema has to declare them
8
+ *
9
+ * Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
10
+ * `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
11
+ * schema declares. A marker on a paragraph whose schema does not name it is
12
+ * gone from the rendered `<p>` with no trace, and the composed rune's schema
13
+ * row then resolves nothing — which looks exactly like optional content left
14
+ * empty.
15
+ *
16
+ * ## Why here, once, rather than in each rune
17
+ *
18
+ * Declared per rune, a new rune would be uncovered until someone remembered.
19
+ * Declared where the Markdoc config is assembled — core nodes plus every
20
+ * plugin's runes — every schema is covered, including ones written after this.
21
+ * And no rune's own declaration carries them, so the authoring surfaces that
22
+ * read a rune's schema (`reference`, the editor, the AI prompt) never offer an
23
+ * author two attributes only composition may set.
24
+ *
25
+ * Copies, never mutates: the input maps are module-level exports shared by
26
+ * every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
27
+ * schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
28
+ * still answer for it. The copy is memoised on the input map, so a site
29
+ * assembling the same config for every page builds it once.
30
+ */
31
+ export function declareSlotMarkers(schemas) {
32
+ const cached = assembled.get(schemas);
33
+ if (cached)
34
+ return cached;
35
+ const out = {};
36
+ for (const [name, schema] of Object.entries(schemas)) {
37
+ out[name] = schema ? withMarkers(schema) : schema;
38
+ }
39
+ assembled.set(schemas, out);
40
+ return out;
41
+ }
42
+ /**
43
+ * The node map a page is transformed against, every node declaring the markers.
44
+ *
45
+ * Includes Markdoc's defaults for the nodes `nodes` does not override —
46
+ * `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
47
+ * own schema for those, and its own schema declares nothing.
48
+ */
49
+ export function declareSlotMarkersOnNodes(nodes) {
50
+ const cached = assembledNodes.get(nodes);
51
+ if (cached)
52
+ return cached;
53
+ const out = declareSlotMarkers({ ...Markdoc.nodes, ...nodes });
54
+ assembledNodes.set(nodes, out);
55
+ return out;
56
+ }
57
+ const assembled = new WeakMap();
58
+ const assembledNodes = new WeakMap();
59
+ function withMarkers(schema) {
60
+ if (schema.attributes?.[OWNER_ATTR] && schema.attributes?.[SLOT_ATTR])
61
+ return schema;
62
+ // Keep the prototype: a schema need not be a plain literal, and spreading a
63
+ // class instance would drop its `transform`.
64
+ const copy = Object.create(Object.getPrototypeOf(schema));
65
+ Object.assign(copy, schema);
66
+ copy.attributes = {
67
+ ...(schema.attributes ?? {}),
68
+ [OWNER_ATTR]: { type: String },
69
+ [SLOT_ATTR]: { type: String },
70
+ };
71
+ // Declaring the markers keeps them only where Markdoc renders attributes
72
+ // itself. A schema with its own `transform` builds its root from scratch —
73
+ // every rune does — so a composition placing `{% hint %}` would lose them on
74
+ // the hint's root. Carry them across, after the rune has resolved its own
75
+ // names, so its own namespace never sees them (SPEC-145 D10a).
76
+ const own = schema.transform;
77
+ if (own) {
78
+ copy.transform = function (node, config) {
79
+ const out = own.call(this, node, config);
80
+ carryMarkers(node.attributes, out);
81
+ return out;
82
+ };
83
+ }
84
+ recordSchemaOrigin(copy, schema);
85
+ return copy;
86
+ }
87
+ /** Set a placed node's markers on the top-level tags its transform produced,
88
+ * where the transform did not already carry them. */
89
+ function carryMarkers(from, out) {
90
+ const owner = from?.[OWNER_ATTR];
91
+ const slot = from?.[SLOT_ATTR];
92
+ if (owner === undefined && slot === undefined)
93
+ return;
94
+ for (const tag of Array.isArray(out) ? out : [out]) {
95
+ if (!Markdoc.Tag.isTag(tag))
96
+ continue;
97
+ if (owner !== undefined && tag.attributes[OWNER_ATTR] === undefined) {
98
+ tag.attributes[OWNER_ATTR] = owner;
99
+ }
100
+ if (slot !== undefined && tag.attributes[SLOT_ATTR] === undefined) {
101
+ tag.attributes[SLOT_ATTR] = slot;
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=slot-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-markers.js","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"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"}
package/dist/plugins.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from '@markdoc/markdoc';
2
- import type { Plugin, RuneExtension } from '@refrakt-md/types';
2
+ import type { Plugin, PluginRune, RuneExtension } from '@refrakt-md/types';
3
3
  import type { RuneConfig, RuneProvenance, LocalizedValue } from '@refrakt-md/transform';
4
4
  import { Rune } from './rune.js';
5
5
  /** A loaded plugin with its parsed rune definitions */
@@ -52,13 +52,32 @@ export interface MergedPluginResult {
52
52
  * values or invalid syntax (empty name). Used both at plugin merge time
53
53
  * and at user-config-resolution time. */
54
54
  export declare function assertFileRootNamespaceAllowed(namespace: string, source: string): void;
55
+ /** Options for {@link loadPlugin}. */
56
+ export interface LoadPluginOptions {
57
+ /**
58
+ * Resolve the package from here — a file path or `file:` URL — instead of
59
+ * from `@refrakt-md/runes`' own location. Both the import and the package
60
+ * directory (`fileRoots`, `runeDir`) resolve from it. For tests and tools
61
+ * that load a plugin installed somewhere other than beside runes.
62
+ */
63
+ from?: string;
64
+ }
55
65
  /**
56
66
  * Load a plugin by npm package name.
57
67
  *
58
68
  * Dynamically imports the package and extracts the Plugin export.
59
- * Creates Rune instances from each plugin entry using defineRune().
69
+ * Creates Rune instances from each plugin entry using defineRune(). A plugin
70
+ * declaring a `runeDir` (SPEC-153 D2) has every `<rune>.md` in it loaded as a
71
+ * composed rune entry first, so from here on it is indistinguishable from an
72
+ * entry written in `Plugin.runes` (D1).
73
+ */
74
+ export declare function loadPlugin(npmPackageName: string, options?: LoadPluginOptions): Promise<LoadedPlugin>;
75
+ /**
76
+ * The `Rune` one plugin entry defines. A composed entry (SPEC-153 D11) gets its
77
+ * schema and its block-less config from the definition; the entry's own
78
+ * fields, where set, win over the definition's.
60
79
  */
61
- export declare function loadPlugin(npmPackageName: string): Promise<LoadedPlugin>;
80
+ export declare function pluginRune(runeName: string, entry: PluginRune, pkg: Pick<Plugin, 'name' | 'displayName'>): Rune;
62
81
  /**
63
82
  * Merge multiple loaded plugins into a single result.
64
83
  *
@@ -68,7 +87,7 @@ export declare function loadPlugin(npmPackageName: string): Promise<LoadedPlugin
68
87
  * 3. `prefer` value `"__core__"` forces core to win for that rune
69
88
  * 4. Two plugins same name, no core: resolved by `prefer`, or throws
70
89
  */
71
- export declare function mergePlugins(loaded: LoadedPlugin[], coreRuneNames: Set<string>, prefer?: Record<string, string>): MergedPluginResult;
90
+ export declare function mergePlugins(plugins: LoadedPlugin[], coreRuneNames: Set<string>, prefer?: Record<string, string>, project?: LoadedPlugin): MergedPluginResult;
72
91
  /**
73
92
  * SPEC-035 — select the plugin translation dictionary for a locale, applying
74
93
  * the Decision D5 region-strip fallback (`de-AT` → `de`). Returns the merged
@@ -101,11 +120,11 @@ export declare function loadLocalRunes(localConfig: Record<string, string>, proj
101
120
  * parsed into a {@link ParsedFixture} (frontmatter validated, body stripped).
102
121
  *
103
122
  * Returns an empty array when the package isn't resolvable or has no fixtures/
104
- * directory. A fixture whose frontmatter fails schema validation throws from
105
- * `parseFixture` — callers that want resilience can wrap individual files; the
106
- * CI corpus check (WORK-414) relies on the throw to fail loudly.
123
+ * directory. Only the resolution is forgiven: a fixture whose frontmatter fails
124
+ * schema validation throws from `parseFixture`, and the CI corpus check
125
+ * (WORK-414) relies on the throw to fail loudly.
107
126
  */
108
- export declare function discoverPluginFixtureManifest(npmPackageName: string): Promise<import('./fixtures.js').ParsedFixture[]>;
127
+ export declare function discoverPluginFixtureManifest(npmPackageName: string, base?: string): Promise<import('./fixtures.js').ParsedFixture[]>;
109
128
  /**
110
129
  * Discover file-based fixtures from an installed plugin's fixtures/ directory.
111
130
  *
@@ -113,5 +132,8 @@ export declare function discoverPluginFixtureManifest(npmPackageName: string): P
113
132
  * When a rune ships multiple scenarios, the `canonical` scenario wins (falling
114
133
  * back to the first parsed). Backward-compatible with bare `<rune>.md` files.
115
134
  */
116
- export declare function discoverPluginFixtures(npmPackageName: string): Promise<Record<string, string>>;
135
+ export declare function discoverPluginFixtures(npmPackageName: string, base?: string): Promise<Record<string, string>>;
136
+ /** Validate a loaded Plugin has required fields. Each rune entry carries
137
+ * exactly one of `transform` or `template` (SPEC-153 D11). */
138
+ export declare function validatePlugin(pkg: Plugin, npmName: string): void;
117
139
  //# sourceMappingURL=plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}