@refrakt-md/runes 0.11.3 → 0.14.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.
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Sanitisation primitives for runes that handle raw author HTML/CSS/JS.
3
+ *
4
+ * The transform pipeline assumes its input is trusted by default. When a
5
+ * `SecurityPolicy` resolves to `untrusted` mode with `allowJs: false`, runes
6
+ * that surface raw content to the client (sandbox, future custom-element
7
+ * runes) call `sanitizeSandboxContent` to strip executable attack surface
8
+ * before the content is stuffed into a meta tag and shipped to the iframe.
9
+ *
10
+ * This is a regex-based pass — fast, dependency-free, and intentionally
11
+ * conservative. It is **not** a substitute for the iframe's sandbox attribute
12
+ * or the meta-CSP layer; it is defence-in-depth on top of those. When you
13
+ * need stronger guarantees (DOM-aware sanitisation, CSS expression
14
+ * filtering, SVG-namespace hardening), reach for a vetted library at the
15
+ * application boundary.
16
+ */
17
+ /** Strip `<script>…</script>` blocks (case-insensitive, multiline). */
18
+ function stripScripts(html) {
19
+ // Greedy-match content; `[^]` covers newlines without the /s flag for older targets.
20
+ return html.replace(/<script\b[^>]*>[\s\S]*?<\/script\s*>/gi, '');
21
+ }
22
+ /** Strip on*-prefixed event-handler attributes (onclick, onerror, onload, …).
23
+ * Matches both quoted and unquoted forms. */
24
+ function stripEventHandlers(html) {
25
+ // Quoted: on...="..." or on...='...'
26
+ let out = html.replace(/\s+on[a-z]+\s*=\s*"[^"]*"/gi, '');
27
+ out = out.replace(/\s+on[a-z]+\s*=\s*'[^']*'/gi, '');
28
+ // Unquoted: on...=value (terminated by whitespace or >)
29
+ out = out.replace(/\s+on[a-z]+\s*=\s*[^\s>]+/gi, '');
30
+ return out;
31
+ }
32
+ /** Strip `javascript:` URLs from href/src/action/formaction/xlink:href. */
33
+ function stripJavascriptUrls(html) {
34
+ return html.replace(/(\s(?:href|src|action|formaction|xlink:href)\s*=\s*)(["'])\s*javascript:[^"']*\2/gi, '$1$2$2');
35
+ }
36
+ /** Strip `<iframe>`, `<object>`, `<embed>` tags entirely.
37
+ * These can host executable content even when scripts are removed. */
38
+ function stripDangerousTags(html) {
39
+ let out = html.replace(/<iframe\b[^>]*>[\s\S]*?<\/iframe\s*>/gi, '');
40
+ out = out.replace(/<object\b[^>]*>[\s\S]*?<\/object\s*>/gi, '');
41
+ out = out.replace(/<embed\b[^>]*\/?>/gi, '');
42
+ // Self-closing iframe variants
43
+ out = out.replace(/<iframe\b[^>]*\/>/gi, '');
44
+ out = out.replace(/<object\b[^>]*\/>/gi, '');
45
+ return out;
46
+ }
47
+ /** Sanitise raw HTML/CSS/JS destined for a sandbox iframe.
48
+ *
49
+ * - In `trusted` mode (or when `allowJs` is true), returns input unchanged.
50
+ * - In `untrusted` mode with `allowJs: false`, strips:
51
+ * - `<script>` blocks (including those inside SVG)
52
+ * - `on*=` event-handler attributes
53
+ * - `javascript:` URLs
54
+ * - `<iframe>`, `<object>`, `<embed>` tags
55
+ */
56
+ export function sanitizeSandboxContent(content, policy) {
57
+ if (policy.trust === 'trusted' || policy.allowJs)
58
+ return content;
59
+ let out = stripScripts(content);
60
+ out = stripEventHandlers(out);
61
+ out = stripJavascriptUrls(out);
62
+ out = stripDangerousTags(out);
63
+ return out;
64
+ }
65
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/lib/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,uEAAuE;AACvE,SAAS,YAAY,CAAC,IAAY;IACjC,qFAAqF;IACrF,OAAO,IAAI,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;8CAC8C;AAC9C,SAAS,kBAAkB,CAAC,IAAY;IACvC,qCAAqC;IACrC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAC1D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACrD,wDAAwD;IACxD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,2EAA2E;AAC3E,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAClB,oFAAoF,EACpF,QAAQ,CACR,CAAC;AACH,CAAC;AAED;uEACuE;AACvE,SAAS,kBAAkB,CAAC,IAAY;IACvC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;IACrE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;IAChE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC7C,+BAA+B;IAC/B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,MAA8B;IACrF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IACjE,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC9B,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC/B,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1,56 +1,56 @@
1
1
  import type { Schema } from '@markdoc/markdoc';
2
- import type { RunePackage, RuneExtension } from '@refrakt-md/types';
2
+ import type { Plugin, RuneExtension } from '@refrakt-md/types';
3
3
  import type { RuneConfig, RuneProvenance } from '@refrakt-md/transform';
4
4
  import { Rune } from './rune.js';
5
- /** A loaded community package with its parsed rune definitions */
6
- export interface LoadedPackage {
7
- /** The original package registration object */
8
- pkg: RunePackage;
5
+ /** A loaded plugin with its parsed rune definitions */
6
+ export interface LoadedPlugin {
7
+ /** The original plugin registration object */
8
+ pkg: Plugin;
9
9
  /** The npm package name it was loaded from */
10
10
  npmName: string;
11
- /** Rune instances created from the package's entries */
11
+ /** Rune instances created from the plugin's entries */
12
12
  runes: Record<string, Rune>;
13
13
  /** Fixture strings for the inspect command (keyed by rune name) */
14
14
  fixtures: Record<string, string>;
15
15
  }
16
- /** Result of merging multiple community packages */
17
- export interface MergedPackageResult {
18
- /** Community runes (collision-free, keyed by rune name) */
16
+ /** Result of merging multiple plugins */
17
+ export interface MergedPluginResult {
18
+ /** Plugin runes (collision-free, keyed by rune name) */
19
19
  runes: Record<string, Rune>;
20
- /** Markdoc tags map for community runes */
20
+ /** Markdoc tags map for plugin runes */
21
21
  tags: Record<string, Schema>;
22
- /** Theme config rune entries from all packages */
22
+ /** Theme config rune entries from all plugins */
23
23
  themeRunes: Record<string, RuneConfig>;
24
- /** Theme icon entries from all packages */
24
+ /** Theme icon entries from all plugins */
25
25
  themeIcons: Record<string, Record<string, string>>;
26
- /** Theme background preset entries from all packages */
26
+ /** Theme background preset entries from all plugins */
27
27
  themeBackgrounds: Record<string, Record<string, unknown>>;
28
28
  /** Schema extensions for core runes (keyed by core rune name) */
29
29
  extensions: Record<string, RuneExtension>;
30
- /** Source package metadata */
31
- packages: RunePackage[];
30
+ /** Source plugin metadata */
31
+ plugins: Plugin[];
32
32
  /** Source provenance for every resolved rune name */
33
33
  provenance: Record<string, RuneProvenance>;
34
- /** Fixture strings from packages for the inspect command */
34
+ /** Fixture strings from plugins for the inspect command */
35
35
  fixtures: Record<string, string>;
36
36
  }
37
37
  /**
38
- * Load a community rune package by npm package name.
38
+ * Load a plugin by npm package name.
39
39
  *
40
- * Dynamically imports the package and extracts the RunePackage export.
41
- * Creates Rune instances from each package entry using defineRune().
40
+ * Dynamically imports the package and extracts the Plugin export.
41
+ * Creates Rune instances from each plugin entry using defineRune().
42
42
  */
43
- export declare function loadRunePackage(npmPackageName: string): Promise<LoadedPackage>;
43
+ export declare function loadPlugin(npmPackageName: string): Promise<LoadedPlugin>;
44
44
  /**
45
- * Merge multiple loaded community packages into a single result.
45
+ * Merge multiple loaded plugins into a single result.
46
46
  *
47
47
  * Resolution rules:
48
- * 1. Single package providing a core rune name: package wins (official breakout path)
49
- * 2. Multiple packages + core collision: resolved by `prefer` map, or throws
48
+ * 1. Single plugin providing a core rune name: plugin wins (official breakout path)
49
+ * 2. Multiple plugins + core collision: resolved by `prefer` map, or throws
50
50
  * 3. `prefer` value `"__core__"` forces core to win for that rune
51
- * 4. Two packages same name, no core: resolved by `prefer`, or throws
51
+ * 4. Two plugins same name, no core: resolved by `prefer`, or throws
52
52
  */
53
- export declare function mergePackages(loaded: LoadedPackage[], coreRuneNames: Set<string>, prefer?: Record<string, string>): MergedPackageResult;
53
+ export declare function mergePlugins(loaded: LoadedPlugin[], coreRuneNames: Set<string>, prefer?: Record<string, string>): MergedPluginResult;
54
54
  /**
55
55
  * Apply config-level aliases to a resolved rune/tag set.
56
56
  *
@@ -68,14 +68,14 @@ export declare function applyAliases(runes: Record<string, Rune>, tags: Record<s
68
68
  * Each entry maps a rune name to a module path that exports a rune entry.
69
69
  * Local runes have the highest priority in the resolution order.
70
70
  */
71
- export declare function loadLocalRunes(localConfig: Record<string, string>, projectRoot: string): Promise<LoadedPackage>;
71
+ export declare function loadLocalRunes(localConfig: Record<string, string>, projectRoot: string): Promise<LoadedPlugin>;
72
72
  /**
73
- * Discover file-based fixtures from an installed package's fixtures/ directory.
73
+ * Discover file-based fixtures from an installed plugin's fixtures/ directory.
74
74
  *
75
75
  * Looks for .md files in the package's fixtures/ directory. Each file's name
76
76
  * (without extension) becomes the fixture key (rune name).
77
77
  *
78
78
  * Returns a map of rune name → fixture content string.
79
79
  */
80
- export declare function discoverPackageFixtures(npmPackageName: string): Promise<Record<string, string>>;
81
- //# sourceMappingURL=packages.d.ts.map
80
+ export declare function discoverPluginFixtures(npmPackageName: string): Promise<Record<string, string>>;
81
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,IAAI,EAA0B,MAAM,WAAW,CAAC;AAEzD,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC5B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IAClC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,6BAA6B;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuC9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,kBAAkB,CAqKpB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAAE,CA4B9E;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CA2CvB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA+BpG"}
@@ -1,31 +1,28 @@
1
1
  import { defineRune, runeTagMap } from './rune.js';
2
2
  /**
3
- * Load a community rune package by npm package name.
3
+ * Load a plugin by npm package name.
4
4
  *
5
- * Dynamically imports the package and extracts the RunePackage export.
6
- * Creates Rune instances from each package entry using defineRune().
5
+ * Dynamically imports the package and extracts the Plugin export.
6
+ * Creates Rune instances from each plugin entry using defineRune().
7
7
  */
8
- export async function loadRunePackage(npmPackageName) {
8
+ export async function loadPlugin(npmPackageName) {
9
9
  let mod;
10
10
  try {
11
11
  mod = await import(/* @vite-ignore */ npmPackageName);
12
12
  }
13
13
  catch (err) {
14
- throw new Error(`Failed to load community rune package "${npmPackageName}": ${err.message}\n` +
14
+ throw new Error(`Failed to load plugin "${npmPackageName}": ${err.message}\n` +
15
15
  `Make sure the package is installed: npm install ${npmPackageName}`);
16
16
  }
17
- // Find the RunePackage export — check default, then named exports
18
- const pkg = findRunePackageExport(mod, npmPackageName);
19
- // Validate required fields
20
- validateRunePackage(pkg, npmPackageName);
21
- // Create Rune instances and collect fixtures from package entries
17
+ const pkg = findPluginExport(mod, npmPackageName);
18
+ validatePlugin(pkg, npmPackageName);
22
19
  const runes = {};
23
20
  const fixtures = {};
24
21
  for (const [runeName, entry] of Object.entries(pkg.runes)) {
25
22
  runes[runeName] = defineRune({
26
23
  name: runeName,
27
24
  schema: entry.transform,
28
- description: entry.description ?? `Community rune from ${pkg.displayName ?? pkg.name}`,
25
+ description: entry.description ?? `Plugin rune from ${pkg.displayName ?? pkg.name}`,
29
26
  aliases: entry.aliases,
30
27
  seoType: entry.seoType,
31
28
  authoringHints: entry.authoringHints,
@@ -34,10 +31,8 @@ export async function loadRunePackage(npmPackageName) {
34
31
  fixtures[runeName] = entry.fixture;
35
32
  }
36
33
  }
37
- // Discover file-based fixtures from the package's fixtures/ directory
38
- const fileFixtures = await discoverPackageFixtures(npmPackageName);
34
+ const fileFixtures = await discoverPluginFixtures(npmPackageName);
39
35
  for (const [runeName, content] of Object.entries(fileFixtures)) {
40
- // Inline fixtures take priority over file-based ones
41
36
  if (!fixtures[runeName]) {
42
37
  fixtures[runeName] = content;
43
38
  }
@@ -45,16 +40,15 @@ export async function loadRunePackage(npmPackageName) {
45
40
  return { pkg, npmName: npmPackageName, runes, fixtures };
46
41
  }
47
42
  /**
48
- * Merge multiple loaded community packages into a single result.
43
+ * Merge multiple loaded plugins into a single result.
49
44
  *
50
45
  * Resolution rules:
51
- * 1. Single package providing a core rune name: package wins (official breakout path)
52
- * 2. Multiple packages + core collision: resolved by `prefer` map, or throws
46
+ * 1. Single plugin providing a core rune name: plugin wins (official breakout path)
47
+ * 2. Multiple plugins + core collision: resolved by `prefer` map, or throws
53
48
  * 3. `prefer` value `"__core__"` forces core to win for that rune
54
- * 4. Two packages same name, no core: resolved by `prefer`, or throws
49
+ * 4. Two plugins same name, no core: resolved by `prefer`, or throws
55
50
  */
56
- export function mergePackages(loaded, coreRuneNames, prefer) {
57
- // Build ownership map: rune name → [{ package, rune }]
51
+ export function mergePlugins(loaded, coreRuneNames, prefer) {
58
52
  const ownership = new Map();
59
53
  for (const loadedPkg of loaded) {
60
54
  for (const [name, rune] of Object.entries(loadedPkg.runes)) {
@@ -64,28 +58,24 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
64
58
  ownership.get(name).push({ pkg: loadedPkg, rune });
65
59
  }
66
60
  }
67
- // Resolve names
68
61
  const runes = {};
69
62
  const provenance = {};
70
63
  for (const [name, candidates] of ownership) {
71
64
  if (coreRuneNames.has(name)) {
72
- // Explicit core preference — skip all packages for this rune
73
65
  if (prefer?.[name] === '__core__') {
74
66
  continue;
75
67
  }
76
68
  if (candidates.length === 1) {
77
- // Single package override — allowed (official breakout path)
78
69
  const c = candidates[0];
79
70
  runes[name] = c.rune;
80
71
  provenance[name] = {
81
72
  qualifiedId: `${c.pkg.pkg.name}:${name}`,
82
- source: 'package',
83
- packageName: c.pkg.pkg.name,
73
+ source: 'plugin',
74
+ pluginName: c.pkg.pkg.name,
84
75
  origin: c.pkg.npmName,
85
76
  };
86
77
  continue;
87
78
  }
88
- // Multiple packages + core collision: check prefer
89
79
  const preferred = prefer?.[name];
90
80
  if (preferred) {
91
81
  const match = candidates.find(c => c.pkg.pkg.name === preferred);
@@ -93,38 +83,35 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
93
83
  runes[name] = match.rune;
94
84
  provenance[name] = {
95
85
  qualifiedId: `${match.pkg.pkg.name}:${name}`,
96
- source: 'package',
97
- packageName: match.pkg.pkg.name,
86
+ source: 'plugin',
87
+ pluginName: match.pkg.pkg.name,
98
88
  origin: match.pkg.npmName,
99
89
  };
100
90
  continue;
101
91
  }
102
92
  const available = [...candidates.map(c => c.pkg.pkg.name), '__core__'].join(', ');
103
- throw new Error(`Rune "${name}" preference "${preferred}" does not match any providing package.\n` +
93
+ throw new Error(`Rune "${name}" preference "${preferred}" does not match any providing plugin.\n` +
104
94
  `Available: ${available}`);
105
95
  }
106
- // Unresolved multi-package + core collision
107
96
  const pkgNames = candidates.map(c => c.pkg.npmName).join(', ');
108
97
  const pkgShortNames = [...candidates.map(c => c.pkg.pkg.name), '__core__'].join(', ');
109
98
  throw new Error(`Rune name "${name}" is ambiguous: provided by ${pkgNames} and also a core rune.\n` +
110
99
  ` Resolve by adding to refrakt.config.json:\n` +
111
- ` "runes": { "prefer": { "${name}": "<package-name>" } }\n\n` +
100
+ ` "runes": { "prefer": { "${name}": "<plugin-name>" } }\n\n` +
112
101
  ` Use "__core__" to keep the core version.\n` +
113
102
  ` Available: ${pkgShortNames}`);
114
103
  }
115
104
  if (candidates.length === 1) {
116
- // No collision — use directly
117
105
  const c = candidates[0];
118
106
  runes[name] = c.rune;
119
107
  provenance[name] = {
120
108
  qualifiedId: `${c.pkg.pkg.name}:${name}`,
121
- source: 'package',
122
- packageName: c.pkg.pkg.name,
109
+ source: 'plugin',
110
+ pluginName: c.pkg.pkg.name,
123
111
  origin: c.pkg.npmName,
124
112
  };
125
113
  }
126
114
  else {
127
- // Collision between packages (no core involvement)
128
115
  const preferred = prefer?.[name];
129
116
  if (preferred) {
130
117
  const match = candidates.find(c => c.pkg.pkg.name === preferred);
@@ -132,32 +119,29 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
132
119
  runes[name] = match.rune;
133
120
  provenance[name] = {
134
121
  qualifiedId: `${match.pkg.pkg.name}:${name}`,
135
- source: 'package',
136
- packageName: match.pkg.pkg.name,
122
+ source: 'plugin',
123
+ pluginName: match.pkg.pkg.name,
137
124
  origin: match.pkg.npmName,
138
125
  };
139
126
  }
140
127
  else {
141
128
  const available = candidates.map(c => c.pkg.pkg.name).join(', ');
142
- throw new Error(`Rune "${name}" preference "${preferred}" does not match any providing package.\n` +
129
+ throw new Error(`Rune "${name}" preference "${preferred}" does not match any providing plugin.\n` +
143
130
  `Available: ${available}`);
144
131
  }
145
132
  }
146
133
  else {
147
- // Unresolved collision — fail with clear instructions
148
134
  const pkgNames = candidates.map(c => c.pkg.npmName).join(', ');
149
135
  const pkgShortNames = candidates.map(c => c.pkg.pkg.name).join(', ');
150
136
  throw new Error(`Rune name "${name}" is ambiguous.\n` +
151
137
  ` Found in: ${pkgNames}\n\n` +
152
138
  ` Resolve by adding to refrakt.config.json:\n` +
153
139
  ` "runes": { "prefer": { "${name}": "${candidates[0].pkg.pkg.name}" } }\n\n` +
154
- ` Available package names: ${pkgShortNames}`);
140
+ ` Available plugin names: ${pkgShortNames}`);
155
141
  }
156
142
  }
157
143
  }
158
- // Build tags map from resolved runes
159
144
  const tags = runeTagMap(runes);
160
- // Collect theme config entries
161
145
  const themeRunes = {};
162
146
  const themeIcons = {};
163
147
  const themeBackgrounds = {};
@@ -178,7 +162,6 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
178
162
  }
179
163
  }
180
164
  }
181
- // Collect extensions
182
165
  const extensions = {};
183
166
  for (const loadedPkg of loaded) {
184
167
  if (loadedPkg.pkg.extends) {
@@ -192,7 +175,6 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
192
175
  }
193
176
  }
194
177
  }
195
- // Collect fixtures from resolved runes
196
178
  const fixtures = {};
197
179
  for (const name of Object.keys(runes)) {
198
180
  for (const loadedPkg of loaded) {
@@ -209,7 +191,7 @@ export function mergePackages(loaded, coreRuneNames, prefer) {
209
191
  themeIcons,
210
192
  themeBackgrounds,
211
193
  extensions,
212
- packages: loaded.map(l => l.pkg),
194
+ plugins: loaded.map(l => l.pkg),
213
195
  provenance,
214
196
  fixtures,
215
197
  };
@@ -284,22 +266,19 @@ export async function loadLocalRunes(localConfig, projectRoot) {
284
266
  };
285
267
  }
286
268
  /**
287
- * Discover file-based fixtures from an installed package's fixtures/ directory.
269
+ * Discover file-based fixtures from an installed plugin's fixtures/ directory.
288
270
  *
289
271
  * Looks for .md files in the package's fixtures/ directory. Each file's name
290
272
  * (without extension) becomes the fixture key (rune name).
291
273
  *
292
274
  * Returns a map of rune name → fixture content string.
293
275
  */
294
- export async function discoverPackageFixtures(npmPackageName) {
276
+ export async function discoverPluginFixtures(npmPackageName) {
295
277
  const fixtures = {};
296
278
  try {
297
- // Dynamic imports to avoid top-level Node.js built-in references
298
- // that break Vite browser bundling
299
279
  const { createRequire } = await import('node:module');
300
280
  const { existsSync, readFileSync, readdirSync } = await import('node:fs');
301
281
  const { dirname, join } = await import('node:path');
302
- // Resolve the package's directory by finding its package.json
303
282
  const require = createRequire(import.meta.url);
304
283
  const pkgJsonPath = require.resolve(`${npmPackageName}/package.json`);
305
284
  const pkgDir = dirname(pkgJsonPath);
@@ -311,7 +290,7 @@ export async function discoverPackageFixtures(npmPackageName) {
311
290
  for (const file of files) {
312
291
  if (!file.endsWith('.md'))
313
292
  continue;
314
- const runeName = file.slice(0, -3); // strip .md extension
293
+ const runeName = file.slice(0, -3);
315
294
  const content = readFileSync(join(fixturesDir, file), 'utf-8');
316
295
  if (content.trim()) {
317
296
  fixtures[runeName] = content;
@@ -319,48 +298,46 @@ export async function discoverPackageFixtures(npmPackageName) {
319
298
  }
320
299
  }
321
300
  catch {
322
- // Package not resolvable via require (e.g., workspace link) — skip file fixtures
301
+ // Plugin not resolvable via require (e.g., workspace link) — skip file fixtures
323
302
  }
324
303
  return fixtures;
325
304
  }
326
- /** Find the RunePackage export from a dynamically imported module */
327
- function findRunePackageExport(mod, npmName) {
328
- // Check default export
329
- if (mod.default && isRunePackage(mod.default)) {
305
+ /** Find the Plugin export from a dynamically imported module */
306
+ function findPluginExport(mod, npmName) {
307
+ if (mod.default && isPlugin(mod.default)) {
330
308
  return mod.default;
331
309
  }
332
- // Check named exports
333
310
  for (const value of Object.values(mod)) {
334
- if (isRunePackage(value)) {
311
+ if (isPlugin(value)) {
335
312
  return value;
336
313
  }
337
314
  }
338
- throw new Error(`Package "${npmName}" does not export a valid RunePackage object.\n` +
315
+ throw new Error(`Package "${npmName}" does not export a valid Plugin object.\n` +
339
316
  `Expected an export with { name: string, version: string, runes: { ... } }`);
340
317
  }
341
- /** Type guard for RunePackage shape */
342
- function isRunePackage(value) {
318
+ /** Type guard for Plugin shape */
319
+ function isPlugin(value) {
343
320
  if (typeof value !== 'object' || value === null)
344
321
  return false;
345
322
  const obj = value;
346
323
  return typeof obj.name === 'string' && typeof obj.version === 'string' && typeof obj.runes === 'object' && obj.runes !== null;
347
324
  }
348
- /** Validate a loaded RunePackage has required fields */
349
- function validateRunePackage(pkg, npmName) {
325
+ /** Validate a loaded Plugin has required fields */
326
+ function validatePlugin(pkg, npmName) {
350
327
  if (!pkg.name) {
351
- throw new Error(`Package "${npmName}" has an empty name field`);
328
+ throw new Error(`Plugin "${npmName}" has an empty name field`);
352
329
  }
353
330
  if (!pkg.version) {
354
- throw new Error(`Package "${npmName}" has an empty version field`);
331
+ throw new Error(`Plugin "${npmName}" has an empty version field`);
355
332
  }
356
333
  if (!pkg.runes || Object.keys(pkg.runes).length === 0) {
357
- throw new Error(`Package "${npmName}" defines no runes`);
334
+ throw new Error(`Plugin "${npmName}" defines no runes`);
358
335
  }
359
336
  for (const [name, entry] of Object.entries(pkg.runes)) {
360
337
  if (!entry.transform || typeof entry.transform !== 'object') {
361
- throw new Error(`Package "${npmName}" rune "${name}" has an invalid transform. ` +
338
+ throw new Error(`Plugin "${npmName}" rune "${name}" has an invalid transform. ` +
362
339
  `Expected a Markdoc Schema object (created via createContentModelSchema()).`);
363
340
  }
364
341
  }
365
342
  }
366
- //# sourceMappingURL=packages.js.map
343
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ export interface RuneInfo {
47
47
  /** Example Markdoc snippet, falling back to `RUNE_EXAMPLES[name]` when omitted. */
48
48
  example?: string;
49
49
  /** Short source identifier (e.g. `"core"`, `"@refrakt-md/marketing"`) for grouping output. */
50
- package?: string;
50
+ plugin?: string;
51
51
  }
52
52
  /** Runes that are internal or child-only — excluded from generated reference docs */
53
53
  export declare const EXCLUDED_RUNES: Set<string>;
@@ -143,7 +143,7 @@ export interface RuneLike {
143
143
  }
144
144
  export interface HydrateOptions {
145
145
  /** Identifier for the source (e.g. `"core"`, `"@refrakt-md/marketing"`). */
146
- packageName?: string;
146
+ pluginName?: string;
147
147
  /** Optional per-rune fixture string, overriding `RUNE_EXAMPLES[name]`. */
148
148
  example?: string;
149
149
  }
@@ -158,7 +158,7 @@ export declare function hydrateRuneInfo(rune: RuneLike, options?: HydrateOptions
158
158
  export interface ReferenceContext {
159
159
  /** All Rune-like objects keyed by primary name. */
160
160
  runes: Record<string, RuneLike>;
161
- /** Package fixtures (keyed by rune name). Falls back to `RUNE_EXAMPLES[name]`. */
161
+ /** Plugin fixtures (keyed by rune name). Falls back to `RUNE_EXAMPLES[name]`. */
162
162
  fixtures: Record<string, string>;
163
163
  /** Per-rune source identifier (e.g. `"core"` or `"@refrakt-md/marketing"`). */
164
164
  source: Record<string, string>;
@@ -175,7 +175,7 @@ export interface SerializedAttribute {
175
175
  }
176
176
  export interface SerializedRune {
177
177
  name: string;
178
- package: string;
178
+ plugin: string;
179
179
  aliases: string[];
180
180
  description: string;
181
181
  authoringHints?: string;
@@ -192,10 +192,10 @@ export interface SerializedRune {
192
192
  example?: string;
193
193
  }
194
194
  /** Serialize a hydrated RuneInfo into the stable JSON shape used by the reference command. */
195
- export declare function serializeRune(info: RuneInfo, packageName?: string): SerializedRune;
195
+ export declare function serializeRune(info: RuneInfo, pluginName?: string): SerializedRune;
196
196
  export interface ReferenceGroup {
197
- /** Package short identifier (`"core"`, `"@refrakt-md/marketing"`, …). */
198
- packageName: string;
197
+ /** Plugin short identifier (`"core"`, `"@refrakt-md/marketing"`, …). */
198
+ pluginName: string;
199
199
  /** Human-readable label used as the group heading in rendered output. */
200
200
  label: string;
201
201
  /** Sorted list of rune summaries. */
@@ -205,7 +205,7 @@ export interface ReferenceGroup {
205
205
  aliases: string[];
206
206
  }>;
207
207
  }
208
- /** Group hydrated rune infos by source package, core first then alphabetical. */
208
+ /** Group hydrated rune infos by source plugin, core first then alphabetical. */
209
209
  export declare function groupReferenceInfos(infos: RuneInfo[]): ReferenceGroup[];
210
210
  export interface RenderReferenceOptions {
211
211
  /** Optional preamble inserted between the `# Available Runes` heading and the TOC. */
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AAS9E;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACH,CAAC;IACF;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,yGAAyG;IACzG,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qFAAqF;AACrF,eAAO,MAAM,cAAc,aAUzB,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,aAE5B,CAAC;AAMH,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,6BAA6B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACtC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+FAA+F;IAC/F,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE;QAAE,MAAM,EAAE,6BAA6B,EAAE,CAAA;KAAE,CAAC;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC1D;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,sBAAsB,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,qBAAqB,CAAC;AAsCzB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA0EnD;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,YAAY,CAAC,GAClE,sBAAsB,GAAG,SAAS,CAGpC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,sBAAsB,GAAG,SAAS,CAqDzF;AAkBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAOxE;AA0GD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,QAAQ,CAyBtF;AAMD,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAChC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAQrE;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAiB3F;AAMD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACX,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;SAAE,CAAC;QAC9F,SAAS,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAyCjF;AAMD,MAAM,WAAW,cAAc;IAC9B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAqBvE;AASD,MAAM,WAAW,sBAAsB;IACtC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM,CA2F3G"}