@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.
- package/dist/composed-rune.d.ts +2 -0
- package/dist/composed-rune.d.ts.map +1 -1
- package/dist/composed-rune.js +37 -8
- package/dist/composed-rune.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/composition-errors.d.ts +80 -0
- package/dist/lib/composition-errors.d.ts.map +1 -0
- package/dist/lib/composition-errors.js +82 -0
- package/dist/lib/composition-errors.js.map +1 -0
- package/dist/lib/composition.d.ts +15 -0
- package/dist/lib/composition.d.ts.map +1 -1
- package/dist/lib/composition.js +143 -81
- package/dist/lib/composition.js.map +1 -1
- package/dist/lib/index.d.ts +13 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +73 -4
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/resolver.d.ts +20 -4
- package/dist/lib/resolver.d.ts.map +1 -1
- package/dist/lib/resolver.js +62 -15
- package/dist/lib/resolver.js.map +1 -1
- package/dist/lib/schema-table.d.ts +3 -1
- package/dist/lib/schema-table.d.ts.map +1 -1
- package/dist/lib/schema-table.js +52 -1
- package/dist/lib/schema-table.js.map +1 -1
- package/dist/plugins.d.ts +28 -9
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +211 -82
- package/dist/plugins.js.map +1 -1
- package/dist/project-runes.d.ts +53 -0
- package/dist/project-runes.d.ts.map +1 -0
- package/dist/project-runes.js +85 -0
- package/dist/project-runes.js.map +1 -0
- package/dist/rune-dir.d.ts +52 -0
- package/dist/rune-dir.d.ts.map +1 -0
- package/dist/rune-dir.js +90 -0
- package/dist/rune-dir.js.map +1 -0
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +2 -0
- package/dist/tags/sandbox.js.map +1 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
40
|
-
|
|
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 (
|
|
82
|
-
*
|
|
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 {
|
|
89
|
-
const
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
396
|
-
*
|
|
397
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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;
|
package/dist/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|
|
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"}
|