@refrakt-md/runes 0.40.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 (44) hide show
  1. package/dist/composed-rune.d.ts +2 -0
  2. package/dist/composed-rune.d.ts.map +1 -1
  3. package/dist/composed-rune.js +37 -8
  4. package/dist/composed-rune.js.map +1 -1
  5. package/dist/index.d.ts +8 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/composition-errors.d.ts +80 -0
  10. package/dist/lib/composition-errors.d.ts.map +1 -0
  11. package/dist/lib/composition-errors.js +82 -0
  12. package/dist/lib/composition-errors.js.map +1 -0
  13. package/dist/lib/composition.d.ts +15 -0
  14. package/dist/lib/composition.d.ts.map +1 -1
  15. package/dist/lib/composition.js +143 -81
  16. package/dist/lib/composition.js.map +1 -1
  17. package/dist/lib/index.d.ts +13 -1
  18. package/dist/lib/index.d.ts.map +1 -1
  19. package/dist/lib/index.js +73 -4
  20. package/dist/lib/index.js.map +1 -1
  21. package/dist/lib/resolver.d.ts +20 -4
  22. package/dist/lib/resolver.d.ts.map +1 -1
  23. package/dist/lib/resolver.js +62 -15
  24. package/dist/lib/resolver.js.map +1 -1
  25. package/dist/lib/schema-table.d.ts +3 -1
  26. package/dist/lib/schema-table.d.ts.map +1 -1
  27. package/dist/lib/schema-table.js +52 -1
  28. package/dist/lib/schema-table.js.map +1 -1
  29. package/dist/plugins.d.ts +28 -9
  30. package/dist/plugins.d.ts.map +1 -1
  31. package/dist/plugins.js +211 -82
  32. package/dist/plugins.js.map +1 -1
  33. package/dist/project-runes.d.ts +53 -0
  34. package/dist/project-runes.d.ts.map +1 -0
  35. package/dist/project-runes.js +85 -0
  36. package/dist/project-runes.js.map +1 -0
  37. package/dist/rune-dir.d.ts +52 -0
  38. package/dist/rune-dir.d.ts.map +1 -0
  39. package/dist/rune-dir.js +90 -0
  40. package/dist/rune-dir.js.map +1 -0
  41. package/dist/tags/sandbox.d.ts.map +1 -1
  42. package/dist/tags/sandbox.js +2 -0
  43. package/dist/tags/sandbox.js.map +1 -1
  44. package/package.json +3 -3
package/dist/plugins.js CHANGED
@@ -1,7 +1,11 @@
1
1
  import { selectLocaleBundle } from '@refrakt-md/transform';
2
2
  import { defineRune, runeTagMap } from './rune.js';
3
- import { checkComposedCatalog, composedPluginRune } from './composed-rune.js';
3
+ import { checkComposedCatalog, composedPluginRune, coreCatalogRunes } from './composed-rune.js';
4
+ import { PROJECT_RUNES, readRuneDefinitions, withRuneDefinitions } from './rune-dir.js';
5
+ import { CompositionError } from './lib/composition-errors.js';
4
6
  import { compositionFor, composedTypeName } from './lib/composition.js';
7
+ /** The resolution layer a rune came from: the project's own directory, or a plugin. */
8
+ const sourceOf = (pkg) => pkg.npmName === PROJECT_RUNES ? 'project' : 'plugin';
5
9
  /** Reserved namespace names that cannot be used by user config or plugins. */
6
10
  const RESERVED_FILE_ROOT_NAMESPACES = new Set(['site']);
7
11
  /** Validate that a file-root namespace name is allowed. Throws on reserved
@@ -20,81 +24,150 @@ export function assertFileRootNamespaceAllowed(namespace, source) {
20
24
  * Load a plugin by npm package name.
21
25
  *
22
26
  * Dynamically imports the package and extracts the Plugin export.
23
- * Creates Rune instances from each plugin entry using defineRune().
27
+ * Creates Rune instances from each plugin entry using defineRune(). A plugin
28
+ * declaring a `runeDir` (SPEC-153 D2) has every `<rune>.md` in it loaded as a
29
+ * composed rune entry first, so from here on it is indistinguishable from an
30
+ * entry written in `Plugin.runes` (D1).
24
31
  */
25
- export async function loadPlugin(npmPackageName) {
32
+ export async function loadPlugin(npmPackageName, options = {}) {
33
+ const base = options.from ?? import.meta.url;
26
34
  let mod;
27
35
  try {
28
- mod = await import(/* @vite-ignore */ npmPackageName);
36
+ if (options.from) {
37
+ const { createRequire } = await import('node:module');
38
+ const { pathToFileURL } = await import('node:url');
39
+ const entry = createRequire(base).resolve(npmPackageName);
40
+ mod = await import(/* @vite-ignore */ pathToFileURL(entry).href);
41
+ }
42
+ else {
43
+ mod = await import(/* @vite-ignore */ npmPackageName);
44
+ }
29
45
  }
30
46
  catch (err) {
31
47
  throw new Error(`Failed to load plugin "${npmPackageName}": ${err.message}\n` +
32
48
  `Make sure the package is installed: npm install ${npmPackageName}`);
33
49
  }
34
- const pkg = findPluginExport(mod, npmPackageName);
50
+ let pkg = findPluginExport(mod, npmPackageName);
51
+ if (pkg.runeDir !== undefined)
52
+ pkg = await withRuneDir(pkg, npmPackageName, base);
35
53
  validatePlugin(pkg, npmPackageName);
36
54
  const runes = {};
37
55
  const fixtures = {};
38
56
  for (const [runeName, entry] of Object.entries(pkg.runes)) {
39
- if (entry.template !== undefined) {
40
- // SPEC-153 D11 — a composed rune: its schema and its block-less
41
- // config are both built from the definition.
42
- const composed = composedPluginRune(runeName, entry);
43
- runes[runeName] = defineRune({
44
- ...composed.rune,
45
- name: runeName,
46
- schema: composed.rune.schema,
47
- description: entry.description ?? composed.rune.description,
48
- aliases: entry.aliases ?? composed.rune.aliases,
49
- seoType: entry.seoType,
50
- authoringHints: entry.authoringHints,
51
- });
52
- if (entry.fixture)
53
- fixtures[runeName] = entry.fixture;
54
- continue;
55
- }
56
- runes[runeName] = defineRune({
57
- name: runeName,
58
- schema: entry.transform,
59
- description: entry.description ?? `Plugin rune from ${pkg.displayName ?? pkg.name}`,
60
- aliases: entry.aliases,
61
- seoType: entry.seoType,
62
- authoringHints: entry.authoringHints,
63
- });
64
- if (entry.fixture) {
57
+ runes[runeName] = pluginRune(runeName, entry, pkg);
58
+ if (entry.fixture)
65
59
  fixtures[runeName] = entry.fixture;
66
- }
67
60
  }
68
- const fileFixtures = await discoverPluginFixtures(npmPackageName);
61
+ const fileFixtures = await discoverPluginFixtures(npmPackageName, base);
69
62
  for (const [runeName, content] of Object.entries(fileFixtures)) {
70
63
  if (!fixtures[runeName]) {
71
64
  fixtures[runeName] = content;
72
65
  }
73
66
  }
74
- const fileRoots = await resolvePluginFileRoots(pkg, npmPackageName);
67
+ const fileRoots = await resolvePluginFileRoots(pkg, npmPackageName, base);
75
68
  return { pkg, npmName: npmPackageName, runes, fixtures, fileRoots };
76
69
  }
70
+ /**
71
+ * The `Rune` one plugin entry defines. A composed entry (SPEC-153 D11) gets its
72
+ * schema and its block-less config from the definition; the entry's own
73
+ * fields, where set, win over the definition's.
74
+ */
75
+ export function pluginRune(runeName, entry, pkg) {
76
+ if (entry.template !== undefined) {
77
+ const composed = composedPluginRune(runeName, entry);
78
+ return defineRune({
79
+ ...composed.rune,
80
+ name: runeName,
81
+ schema: composed.rune.schema,
82
+ description: entry.description ?? composed.rune.description,
83
+ aliases: entry.aliases ?? composed.rune.aliases,
84
+ seoType: entry.seoType,
85
+ authoringHints: entry.authoringHints,
86
+ });
87
+ }
88
+ return defineRune({
89
+ name: runeName,
90
+ schema: entry.transform,
91
+ description: entry.description ?? `Plugin rune from ${pkg.displayName ?? pkg.name}`,
92
+ aliases: entry.aliases,
93
+ seoType: entry.seoType,
94
+ authoringHints: entry.authoringHints,
95
+ });
96
+ }
97
+ /**
98
+ * The directory a plugin package sits in, through `<pkg>/package.json`. Throws
99
+ * naming what needed it and the cause: a package that declares files it
100
+ * ships cannot be allowed to lose them quietly (SPEC-153 D3).
101
+ */
102
+ async function resolvePackageDir(npmPackageName, base, purpose) {
103
+ const { createRequire } = await import('node:module');
104
+ const { dirname } = await import('node:path');
105
+ try {
106
+ return dirname(createRequire(base).resolve(`${npmPackageName}/package.json`));
107
+ }
108
+ catch (err) {
109
+ const code = err.code;
110
+ const fix = code === 'ERR_PACKAGE_PATH_NOT_EXPORTED'
111
+ ? ` Its \`exports\` map leaves out \`./package.json\`; add \`"./package.json": "./package.json"\` (SPEC-153 D6).`
112
+ : '';
113
+ throw new CompositionError('package-unresolvable', `Plugin "${npmPackageName}" declares ${purpose} but its package directory could not be located: ${err.message}${fix}`);
114
+ }
115
+ }
116
+ /**
117
+ * SPEC-153 D2/D3 — the plugin with its rune directory read in: every
118
+ * `<rune>.md` becomes a `template` entry in a copy of `Plugin.runes`. The
119
+ * directory is as available as the plugin's JavaScript, so any failure here is
120
+ * a packaging bug and throws with the resolved path and the cause; it never
121
+ * yields fewer runes.
122
+ */
123
+ async function withRuneDir(pkg, npmPackageName, base) {
124
+ const { readdirSync, readFileSync, statSync } = await import('node:fs');
125
+ const { join, relative, resolve, isAbsolute } = await import('node:path');
126
+ const declared = pkg.runeDir;
127
+ if (typeof declared !== 'string' || declared.length === 0) {
128
+ throw new CompositionError('rune-dir-invalid', `Plugin "${npmPackageName}" has an invalid \`runeDir\`. Expected a non-empty path relative to the plugin package directory.`);
129
+ }
130
+ const pkgDir = await resolvePackageDir(npmPackageName, base, `runeDir "${declared}"`);
131
+ const dir = resolve(pkgDir, declared);
132
+ const rel = relative(pkgDir, dir);
133
+ if (rel.startsWith('..') || isAbsolute(rel)) {
134
+ throw new CompositionError('rune-dir-invalid', `Plugin "${npmPackageName}" runeDir "${declared}" resolves to ${dir}, outside its package directory ${pkgDir}. A rune directory ships inside the package.`);
135
+ }
136
+ const where = `Plugin "${npmPackageName}" runeDir ${dir}`;
137
+ const reader = {
138
+ list() {
139
+ try {
140
+ return readdirSync(dir).filter((f) => statSync(join(dir, f)).isFile());
141
+ }
142
+ catch (err) {
143
+ throw new CompositionError('rune-dir-unreadable', `${where} could not be read: ${err.message}. Check that the directory exists and is listed in the package's \`files\` (SPEC-153 D3).`);
144
+ }
145
+ },
146
+ read(file) {
147
+ try {
148
+ return readFileSync(join(dir, file), 'utf-8');
149
+ }
150
+ catch (err) {
151
+ throw new CompositionError('file-unreadable', `${where}: "${file}" could not be read: ${err.message}`);
152
+ }
153
+ },
154
+ };
155
+ const files = readRuneDefinitions(reader, '', where);
156
+ return withRuneDefinitions(pkg, files, where, (file) => join(dir, file.path));
157
+ }
77
158
  /** Resolve a plugin's declared `fileRoots` to absolute on-disk paths.
78
159
  *
79
160
  * Paths are interpreted relative to the plugin package's own directory
80
161
  * (the dir containing the plugin's `package.json`). Throws if the package
81
- * can't be located on disk (workspace-link cases where `require.resolve`
82
- * fails) — fileRoots that can't be reached is a misconfig worth surfacing,
83
- * not silently dropping like file fixtures. */
84
- async function resolvePluginFileRoots(pkg, npmPackageName) {
162
+ * can't be located on disk (a missing install, or an `exports` map without
163
+ * `./package.json`) — fileRoots that can't be reached is a misconfig worth
164
+ * surfacing, not silently dropping like file fixtures. */
165
+ async function resolvePluginFileRoots(pkg, npmPackageName, base = import.meta.url) {
85
166
  const declared = pkg.fileRoots;
86
167
  if (!declared || Object.keys(declared).length === 0)
87
168
  return {};
88
- const { createRequire } = await import('node:module');
89
- const { dirname, resolve } = await import('node:path');
90
- let pkgDir;
91
- try {
92
- const require = createRequire(import.meta.url);
93
- pkgDir = dirname(require.resolve(`${npmPackageName}/package.json`));
94
- }
95
- catch (err) {
96
- throw new Error(`Plugin "${npmPackageName}" declares fileRoots but its package directory could not be located: ${err.message}`);
97
- }
169
+ const { resolve } = await import('node:path');
170
+ const pkgDir = await resolvePackageDir(npmPackageName, base, 'fileRoots');
98
171
  const resolved = {};
99
172
  for (const [namespace, relativePath] of Object.entries(declared)) {
100
173
  assertFileRootNamespaceAllowed(namespace, `plugin "${npmPackageName}"`);
@@ -114,7 +187,12 @@ async function resolvePluginFileRoots(pkg, npmPackageName) {
114
187
  * 3. `prefer` value `"__core__"` forces core to win for that rune
115
188
  * 4. Two plugins same name, no core: resolved by `prefer`, or throws
116
189
  */
117
- export function mergePlugins(loaded, coreRuneNames, prefer) {
190
+ export function mergePlugins(plugins, coreRuneNames, prefer, project) {
191
+ // SPEC-153 D8 — the project layer: core < plugin < project, core names
192
+ // never shadowable, a plugin's only through `runes.prefer`.
193
+ if (project)
194
+ checkProjectPrecedence(project, plugins, coreRuneNames, prefer);
195
+ const loaded = project ? [...plugins, project] : plugins;
118
196
  const ownership = new Map();
119
197
  for (const loadedPkg of loaded) {
120
198
  for (const [name, rune] of Object.entries(loadedPkg.runes)) {
@@ -136,7 +214,7 @@ export function mergePlugins(loaded, coreRuneNames, prefer) {
136
214
  runes[name] = c.rune;
137
215
  provenance[name] = {
138
216
  qualifiedId: `${c.pkg.pkg.name}:${name}`,
139
- source: 'plugin',
217
+ source: sourceOf(c.pkg),
140
218
  pluginName: c.pkg.pkg.name,
141
219
  origin: c.pkg.npmName,
142
220
  };
@@ -149,7 +227,7 @@ export function mergePlugins(loaded, coreRuneNames, prefer) {
149
227
  runes[name] = match.rune;
150
228
  provenance[name] = {
151
229
  qualifiedId: `${match.pkg.pkg.name}:${name}`,
152
- source: 'plugin',
230
+ source: sourceOf(match.pkg),
153
231
  pluginName: match.pkg.pkg.name,
154
232
  origin: match.pkg.npmName,
155
233
  };
@@ -172,7 +250,7 @@ export function mergePlugins(loaded, coreRuneNames, prefer) {
172
250
  runes[name] = c.rune;
173
251
  provenance[name] = {
174
252
  qualifiedId: `${c.pkg.pkg.name}:${name}`,
175
- source: 'plugin',
253
+ source: sourceOf(c.pkg),
176
254
  pluginName: c.pkg.pkg.name,
177
255
  origin: c.pkg.npmName,
178
256
  };
@@ -185,7 +263,7 @@ export function mergePlugins(loaded, coreRuneNames, prefer) {
185
263
  runes[name] = match.rune;
186
264
  provenance[name] = {
187
265
  qualifiedId: `${match.pkg.pkg.name}:${name}`,
188
- source: 'plugin',
266
+ source: sourceOf(match.pkg),
189
267
  pluginName: match.pkg.pkg.name,
190
268
  origin: match.pkg.npmName,
191
269
  };
@@ -306,6 +384,48 @@ export function mergePlugins(loaded, coreRuneNames, prefer) {
306
384
  translations,
307
385
  };
308
386
  }
387
+ /**
388
+ * SPEC-153 D8 — a project rune may not take a core rune's name or alias: a
389
+ * `{% card %}` that means something local breaks every snippet, doc page and
390
+ * composition built on the core one. It may take a plugin rune's name only
391
+ * where `runes.prefer` says which wins (`"__project__"` for the project's).
392
+ */
393
+ function checkProjectPrecedence(project, plugins, coreRuneNames, prefer) {
394
+ const coreOwner = new Map();
395
+ for (const name of coreRuneNames)
396
+ coreOwner.set(name, name);
397
+ for (const [name, rune] of Object.entries(coreCatalogRunes())) {
398
+ if (!coreRuneNames.has(name))
399
+ continue;
400
+ for (const alias of rune.aliases)
401
+ if (!coreOwner.has(alias))
402
+ coreOwner.set(alias, name);
403
+ }
404
+ const pluginOwners = new Map();
405
+ for (const p of plugins) {
406
+ for (const [name, rune] of Object.entries(p.runes)) {
407
+ for (const n of [name, ...rune.aliases]) {
408
+ pluginOwners.set(n, [...(pluginOwners.get(n) ?? []), p.npmName]);
409
+ }
410
+ }
411
+ }
412
+ for (const [name, rune] of Object.entries(project.runes)) {
413
+ const file = `${name}.md`;
414
+ for (const n of [name, ...rune.aliases]) {
415
+ const as = n === name ? '' : ` (through its alias "${n}")`;
416
+ const core = coreOwner.get(n);
417
+ if (core) {
418
+ throw new CompositionError('project-core-name', `Project rune "${name}" (${file})${as} takes the name of core rune "${core}". A core rune's name cannot be shadowed: every snippet, page and composition that uses "${core}" would change meaning (SPEC-153 D8). Rename the definition.`);
419
+ }
420
+ const owners = pluginOwners.get(n);
421
+ if (owners && !prefer?.[n]) {
422
+ throw new CompositionError('project-plugin-name', `Project rune "${name}" (${file})${as} and the rune "${n}" from ${owners.join(', ')} share a name. Say which wins in refrakt.config.json:\n` +
423
+ ` "runes": { "prefer": { "${n}": "${PROJECT_RUNES}" } }\n` +
424
+ `or rename the definition (SPEC-153 D8).`);
425
+ }
426
+ }
427
+ }
428
+ }
309
429
  /**
310
430
  * SPEC-035 — select the plugin translation dictionary for a locale, applying
311
431
  * the Decision D5 region-strip fallback (`de-AT` → `de`). Returns the merged
@@ -355,7 +475,13 @@ export function applyAliases(runes, tags, aliases, provenance) {
355
475
  export async function loadLocalRunes(localConfig, projectRoot) {
356
476
  const runes = {};
357
477
  const { resolve } = await import('node:path');
478
+ /** SPEC-153 D7 — `runes.local` takes a JS module for unpublished plugin
479
+ * development; a composed rune definition has its own home. */
480
+ const notADefinition = (name, modulePath, what) => new CompositionError('local-definition', `Local rune "${name}" at "${modulePath}" is ${what}. \`runes.local\` takes a JavaScript module exporting a rune with a \`transform\`, for developing a plugin before publishing it (SPEC-153 D7). Put a composed rune definition in the project's rune directory instead: move it to \`runes/${name}.md\` (or the directory \`runes.dir\` names) and remove this \`runes.local\` entry.`);
358
481
  for (const [name, modulePath] of Object.entries(localConfig)) {
482
+ if (/\.(md|markdoc|mdoc)$/i.test(modulePath)) {
483
+ throw notADefinition(name, modulePath, 'a composed rune definition, not a module');
484
+ }
359
485
  const absPath = resolve(projectRoot, modulePath);
360
486
  let mod;
361
487
  try {
@@ -365,6 +491,9 @@ export async function loadLocalRunes(localConfig, projectRoot) {
365
491
  throw new Error(`Failed to load local rune "${name}" from "${modulePath}": ${err.message}`);
366
492
  }
367
493
  const entry = (mod.default ?? mod);
494
+ if (entry.template !== undefined) {
495
+ throw notADefinition(name, modulePath, 'a module exporting a composition `template`');
496
+ }
368
497
  if (!entry.transform || typeof entry.transform !== 'object') {
369
498
  throw new Error(`Local rune "${name}" at "${modulePath}" must export a transform (Markdoc Schema).`);
370
499
  }
@@ -392,37 +521,37 @@ export async function loadLocalRunes(localConfig, projectRoot) {
392
521
  * parsed into a {@link ParsedFixture} (frontmatter validated, body stripped).
393
522
  *
394
523
  * Returns an empty array when the package isn't resolvable or has no fixtures/
395
- * directory. A fixture whose frontmatter fails schema validation throws from
396
- * `parseFixture` — callers that want resilience can wrap individual files; the
397
- * CI corpus check (WORK-414) relies on the throw to fail loudly.
524
+ * directory. Only the resolution is forgiven: a fixture whose frontmatter fails
525
+ * schema validation throws from `parseFixture`, and the CI corpus check
526
+ * (WORK-414) relies on the throw to fail loudly.
398
527
  */
399
- export async function discoverPluginFixtureManifest(npmPackageName) {
528
+ export async function discoverPluginFixtureManifest(npmPackageName, base = import.meta.url) {
400
529
  const manifest = [];
530
+ const { createRequire } = await import('node:module');
531
+ const { existsSync, readFileSync, readdirSync } = await import('node:fs');
532
+ const { dirname, join } = await import('node:path');
533
+ const { parseFixture } = await import('./fixtures.js');
534
+ let pkgDir;
401
535
  try {
402
- const { createRequire } = await import('node:module');
403
- const { existsSync, readFileSync, readdirSync } = await import('node:fs');
404
- const { dirname, join } = await import('node:path');
405
- const { parseFixture } = await import('./fixtures.js');
406
- const require = createRequire(import.meta.url);
407
- const pkgJsonPath = require.resolve(`${npmPackageName}/package.json`);
408
- const pkgDir = dirname(pkgJsonPath);
409
- const fixturesDir = join(pkgDir, 'fixtures');
410
- if (!existsSync(fixturesDir)) {
411
- return manifest;
412
- }
413
- for (const file of readdirSync(fixturesDir).sort()) {
414
- if (!file.endsWith('.md'))
415
- continue;
416
- const raw = readFileSync(join(fixturesDir, file), 'utf-8');
417
- if (!raw.trim())
418
- continue;
419
- manifest.push(parseFixture(raw, file));
420
- }
536
+ pkgDir = dirname(createRequire(base).resolve(`${npmPackageName}/package.json`));
421
537
  }
422
538
  catch {
423
539
  // `<pkg>/package.json` did not resolve — the package is not installed, or it declares an
424
540
  // `exports` map without a `./package.json` entry (ERR_PACKAGE_PATH_NOT_EXPORTED). A
425
- // workspace link resolves fine. Skip file fixtures.
541
+ // workspace link resolves fine. Skip file fixtures; a `runeDir`, which cannot be
542
+ // skipped, reports the same failure as an error (SPEC-153 D3).
543
+ return manifest;
544
+ }
545
+ const fixturesDir = join(pkgDir, 'fixtures');
546
+ if (!existsSync(fixturesDir))
547
+ return manifest;
548
+ for (const file of readdirSync(fixturesDir).sort()) {
549
+ if (!file.endsWith('.md'))
550
+ continue;
551
+ const raw = readFileSync(join(fixturesDir, file), 'utf-8');
552
+ if (!raw.trim())
553
+ continue;
554
+ manifest.push(parseFixture(raw, file));
426
555
  }
427
556
  return manifest;
428
557
  }
@@ -433,9 +562,9 @@ export async function discoverPluginFixtureManifest(npmPackageName) {
433
562
  * When a rune ships multiple scenarios, the `canonical` scenario wins (falling
434
563
  * back to the first parsed). Backward-compatible with bare `<rune>.md` files.
435
564
  */
436
- export async function discoverPluginFixtures(npmPackageName) {
565
+ export async function discoverPluginFixtures(npmPackageName, base = import.meta.url) {
437
566
  const fixtures = {};
438
- for (const fx of await discoverPluginFixtureManifest(npmPackageName)) {
567
+ for (const fx of await discoverPluginFixtureManifest(npmPackageName, base)) {
439
568
  if (!fx.body)
440
569
  continue;
441
570
  // Prefer the canonical scenario; otherwise take the first one we see.
@@ -483,16 +612,16 @@ export function validatePlugin(pkg, npmName) {
483
612
  for (const [name, entry] of Object.entries(pkg.runes)) {
484
613
  if (entry.template !== undefined) {
485
614
  if (entry.transform !== undefined) {
486
- throw new Error(`Plugin "${npmName}" rune "${name}" carries both a \`transform\` and a composition \`template\`. ` +
615
+ throw new CompositionError('second-emit-path', `Plugin "${npmName}" rune "${name}" carries both a \`transform\` and a composition \`template\`. ` +
487
616
  `A rune has exactly one emit path (SPEC-145 D5, SPEC-153 D11): drop the transform to compose, or the template to build its own output.`);
488
617
  }
489
618
  if (typeof entry.template !== 'string') {
490
- throw new Error(`Plugin "${npmName}" rune "${name}" has an invalid template. ` +
619
+ throw new CompositionError('template-entry-invalid', `Plugin "${npmName}" rune "${name}" has an invalid template. ` +
491
620
  `Expected a composed rune definition: YAML frontmatter and a Markdoc template, as one string.`);
492
621
  }
493
622
  const configKey = composedTypeName(name);
494
623
  if (pkg.theme?.runes?.[configKey] !== undefined) {
495
- throw new Error(`Plugin "${npmName}" rune "${name}" is composed but also has a hand-written theme config (\`theme.runes.${configKey}\`). ` +
624
+ throw new CompositionError('template-entry-invalid', `Plugin "${npmName}" rune "${name}" is composed but also has a hand-written theme config (\`theme.runes.${configKey}\`). ` +
496
625
  `A composed rune's config is generated from its definition, and it has no block and ships no CSS (SPEC-145 D2, D2a).`);
497
626
  }
498
627
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAQ,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAkDxE,8EAA8E;AAC9E,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAExD;;0CAE0C;AAC1C,MAAM,UAAU,8BAA8B,CAAC,SAAiB,EAAE,MAAc;IAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACd,4BAA4B,MAAM,mDAAmD,CACrF,CAAC;IACH,CAAC;IACD,IAAI,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACd,wBAAwB,SAAS,UAAU,MAAM,gBAAgB;YAChE,kCAAkC,CACnC,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAsB;IACtD,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,0BAA0B,cAAc,MAAO,GAAa,CAAC,OAAO,IAAI;YACvE,mDAAmD,cAAc,EAAE,CACpE,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAElD,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,gEAAgE;YAChE,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;gBAC5B,GAAG,QAAQ,CAAC,IAAI;gBAChB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC5B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW;gBAC3D,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO;gBAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,cAAc,EAAE,KAAK,CAAC,cAAc;aACpC,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,OAAO;gBAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YACtD,SAAS;QACV,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;YAC5B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK,CAAC,SAAmB;YACjC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,oBAAoB,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,EAAE;YACnF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,cAAc,EAAE,KAAK,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACpC,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEpE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;gDAMgD;AAChD,KAAK,UAAU,sBAAsB,CACpC,GAAW,EACX,cAAsB;IAEtB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,WAAW,cAAc,wEAAyE,GAAa,CAAC,OAAO,EAAE,CACzH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,8BAA8B,CAAC,SAAS,EAAE,WAAW,cAAc,GAAG,CAAC,CAAC;QACxE,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACd,WAAW,cAAc,sBAAsB,SAAS,8FAA8F,CACtJ,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC3B,MAAsB,EACtB,aAA0B,EAC1B,MAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;IAE9E,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAED,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAmC,EAAE,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACnC,SAAS;YACV,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC,GAAG;oBAClB,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;oBACxC,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;oBAC1B,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO;iBACrB,CAAC;gBACF,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,SAAS,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACnE,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,GAAG;wBAClB,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;wBAC5C,MAAM,EAAE,QAAQ;wBAChB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;wBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO;qBACzB,CAAC;oBACF,SAAS;gBACV,CAAC;gBACD,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpF,MAAM,IAAI,KAAK,CACd,SAAS,IAAI,iBAAiB,SAAS,0CAA0C;oBAChF,cAAc,SAAS,EAAE,CAC1B,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxF,MAAM,IAAI,KAAK,CACd,cAAc,IAAI,+BAA+B,QAAQ,0BAA0B;gBAClF,+CAA+C;gBAC/C,6BAA6B,IAAI,4BAA4B;gBAC7D,8CAA8C;gBAC9C,gBAAgB,aAAa,EAAE,CAChC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,GAAG;gBAClB,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;gBACxC,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;gBAC1B,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO;aACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,SAAS,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACnE,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,GAAG;wBAClB,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;wBAC5C,MAAM,EAAE,QAAQ;wBAChB,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;wBAC9B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO;qBACzB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnE,MAAM,IAAI,KAAK,CACd,SAAS,IAAI,iBAAiB,SAAS,0CAA0C;wBAChF,cAAc,SAAS,EAAE,CAC1B,CAAC;gBACH,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,IAAI,KAAK,CACd,cAAc,IAAI,mBAAmB;oBACpC,eAAe,QAAQ,MAAM;oBAC7B,+CAA+C;oBAC/C,6BAA6B,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW;oBAC7E,6BAA6B,aAAa,EAAE,CAC7C,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,UAAU,GAA+B,EAAE,CAAC;IAClD,MAAM,UAAU,GAA2C,EAAE,CAAC;IAC9D,MAAM,gBAAgB,GAA4C,EAAE,CAAC;IAErE,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,UAAU,CAAC,GAAG,CAAC,GAAG,KAA8B,CAAC;YAClD,CAAC;QACF,CAAC;QACD,gEAAgE;QAChE,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ;gBAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5E,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YACxD,CAAC;QACF,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9E,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,mEAAmE;IACnE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAExC,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBACvC,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAChB,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACjF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,YAAY,GAAmD,EAAE,CAAC;IACxE,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAuB,CAAC;YACvC,CAAC;QACF,CAAC;IACF,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,+DAA+D;IAC/D,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACxE,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CACd,+BAA+B,SAAS,4BAA4B,QAAQ,UAAU,SAAS,CAAC,OAAO,KAAK;oBAC3G,8EAA8E,CAC/E,CAAC;YACH,CAAC;YACD,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YAC/B,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK;QACL,IAAI;QACJ,UAAU;QACV,UAAU;QACV,gBAAgB;QAChB,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,UAAU;QACV,QAAQ;QACR,SAAS;QACT,YAAY;KACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAClC,MAAgD,EAChD,MAAc;IAEd,OAAO,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC3B,KAA2B,EAC3B,IAA4B,EAC5B,OAA+B,EAC/B,UAA0C;IAE1C,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACd,UAAU,KAAK,iDAAiD;gBAC/D,sCAAsC,CACvC,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACd,UAAU,KAAK,mBAAmB,SAAS,0BAA0B;gBACpE,uCAAuC,CACxC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,aAAa,CAAC,KAAK,CAAC,GAAG;gBACtB,GAAG,UAAU,CAAC,SAAS,CAAC;gBACxB,WAAW,EAAE,SAAS,KAAK,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;aACnE,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,WAAmC,EACnC,WAAmB;IAEnB,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,GAA4B,CAAC;QACjC,IAAI,CAAC;YACJ,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACd,8BAA8B,IAAI,WAAW,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CACrF,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAA4C,CAAC;QAE9E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACd,eAAe,IAAI,SAAS,UAAU,6CAA6C,CACnF,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YACxB,IAAI;YACJ,MAAM,EAAE,KAAK,CAAC,SAAmB;YACjC,WAAW,EAAE,mBAAmB,UAAU,EAAE;SAC5C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,GAAG,EAAE;YACJ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SACrF;QACD,OAAO,EAAE,WAAW;QACpB,KAAK;QACL,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;KACb,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,cAAsB;IAEtB,MAAM,QAAQ,GAA4C,EAAE,CAAC;IAE7D,IAAI,CAAC;QACJ,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc,eAAe,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC1B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,yFAAyF;QACzF,oFAAoF;QACpF,oDAAoD;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,cAAsB;IAEtB,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,EAAE,IAAI,MAAM,6BAA6B,CAAC,cAAc,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,SAAS;QACvB,sEAAsE;QACtE,IAAI,EAAE,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,gEAAgE;AAChE,SAAS,gBAAgB,CAAC,GAA4B,EAAE,OAAe;IACtE,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC,OAAiB,CAAC;IAC9B,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAe,CAAC;QACxB,CAAC;IACF,CAAC;IAED,MAAM,IAAI,KAAK,CACd,YAAY,OAAO,4CAA4C;QAC9D,2EAA2E,CAC5E,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,SAAS,QAAQ,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACN,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,GAAG,CAAC,KAAK,KAAK,IAAI,CAClB,CAAC;AACH,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAe;IAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,2BAA2B,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,8BAA8B,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,WAAW,IAAI,iEAAiE;oBACjG,uIAAuI,CACxI,CAAC;YACH,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,WAAW,IAAI,6BAA6B;oBAC7D,8FAA8F,CAC/F,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,WAAW,IAAI,yEAAyE,SAAS,OAAO;oBACzH,qHAAqH,CACtH,CAAC;YACH,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,WAAW,IAAI,8BAA8B;gBAC9D,2GAA2G,CAC5G,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * A project's own composed runes — SPEC-153 D4, D5, D8 and SPEC-145 D25.
3
+ *
4
+ * A project declares `runes.dir` (default `runes`), and every `<rune>.md` in it
5
+ * is a composed rune named after the file. The directory is read through
6
+ * `ProjectFiles` (D5), so the same code serves a build on disk and a hosted
7
+ * build over `memoryProjectFiles`, and containment is the provider's: a path
8
+ * that escapes the project root is refused there, not here.
9
+ *
10
+ * The definitions become `PluginRune` entries of a pseudo-plugin named
11
+ * `__project__`, through the same reader and the same `pluginRune` a plugin's
12
+ * `runeDir` uses (D1). `mergePlugins` takes it as its project layer and applies
13
+ * D8's precedence.
14
+ */
15
+ import type { CompositionErrorCode } from './lib/composition-errors.js';
16
+ import type { ProjectFiles } from '@refrakt-md/types';
17
+ import type { LoadedPlugin } from './plugins.js';
18
+ import { PROJECT_RUNES } from './rune-dir.js';
19
+ export { PROJECT_RUNES };
20
+ /** `runes.dir` when a project does not declare one (D4). */
21
+ export declare const DEFAULT_PROJECT_RUNE_DIR = "runes";
22
+ /** One definition that did not load. */
23
+ export interface ProjectRuneFinding {
24
+ /** The definition's project-relative path, `<dir>/<rune>.md`. */
25
+ file: string;
26
+ /** 1-based line in that file. */
27
+ line: number;
28
+ /** The rune, when the file name is one. */
29
+ rune?: string;
30
+ /** Its entry in `COMPOSITION_ERRORS`, when the failure is a coded one. */
31
+ code?: CompositionErrorCode;
32
+ message: string;
33
+ }
34
+ /** What reading a project's rune directory produced: the runes that built,
35
+ * and a finding for each definition that did not. */
36
+ export interface ProjectRunesResult {
37
+ loaded: LoadedPlugin;
38
+ findings: ProjectRuneFinding[];
39
+ }
40
+ /**
41
+ * Read and build every definition in a project's rune directory, collecting a
42
+ * finding for each that fails instead of stopping at the first — `refrakt
43
+ * validate` reports them all. A directory the provider does not have (absent,
44
+ * or refused because it escapes the root) defines no runes.
45
+ */
46
+ export declare function checkProjectRunes(files: Pick<ProjectFiles, 'list' | 'read'>, dir?: string): ProjectRunesResult;
47
+ /**
48
+ * A project's runes, for a build: as {@link checkProjectRunes}, but the first
49
+ * definition that fails throws, naming its file and line. Pass the result to
50
+ * `mergePlugins` as its project layer.
51
+ */
52
+ export declare function loadProjectRunes(files: Pick<ProjectFiles, 'list' | 'read'>, dir?: string): LoadedPlugin;
53
+ //# sourceMappingURL=project-runes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-runes.d.ts","sourceRoot":"","sources":["../src/project-runes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAsC,MAAM,eAAe,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB,4DAA4D;AAC5D,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IAClC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;sDACsD;AACtD,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAoBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EAC1C,GAAG,GAAE,MAAiC,GACpC,kBAAkB,CA8CpB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EAC1C,GAAG,GAAE,MAAiC,GACpC,YAAY,CAWd"}