@refrakt-md/cli 0.11.3 → 0.12.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.
@@ -1,5 +1,6 @@
1
1
  import { resolve, dirname } from 'node:path';
2
2
  import { existsSync } from 'node:fs';
3
+ import { resolveSite } from '@refrakt-md/transform/node';
3
4
  import { loadRefraktConfigFile } from '../config-file.js';
4
5
  export async function editCommand(options) {
5
6
  const cwd = process.cwd();
@@ -7,18 +8,28 @@ export async function editCommand(options) {
7
8
  let contentDir = options.contentDir;
8
9
  let themeName;
9
10
  let configDir = cwd;
10
- let projectConfig;
11
+ let projectSite;
11
12
  let projectConfigPath;
12
13
  if (!contentDir) {
13
14
  try {
14
15
  const { path: cfgPath, config } = loadRefraktConfigFile(cwd);
15
16
  projectConfigPath = cfgPath;
16
17
  configDir = dirname(cfgPath);
17
- contentDir = resolve(configDir, config.contentDir);
18
- themeName = config.theme;
19
- projectConfig = config;
18
+ // Use resolveSite so multi-site configs work too — picks the lone
19
+ // site when there's exactly one, throws with available names when
20
+ // multiple are declared and no --site flag is set.
21
+ const { site } = resolveSite(config);
22
+ contentDir = resolve(configDir, site.contentDir);
23
+ themeName = site.theme;
24
+ projectSite = site;
20
25
  }
21
- catch {
26
+ catch (err) {
27
+ const message = err.message;
28
+ if (/multiple sites/.test(message)) {
29
+ console.error(`Error: ${message}`);
30
+ console.error('Pass --content-dir to bypass site resolution, or pick a site explicitly.');
31
+ process.exit(1);
32
+ }
22
33
  console.error('Error: No refrakt.config.json found. Specify --content-dir or run from a refrakt.md project.');
23
34
  process.exit(1);
24
35
  }
@@ -33,30 +44,30 @@ export async function editCommand(options) {
33
44
  // Resolve theme config, CSS, and Svelte entry
34
45
  let { themeConfig, themeCssPath, themeSveltePath } = await resolveTheme(themeName, configDir);
35
46
  // Merge project-level custom icons into the theme's global icon group
36
- if (projectConfig?.icons && Object.keys(projectConfig.icons).length > 0) {
47
+ if (projectSite?.icons && Object.keys(projectSite.icons).length > 0) {
37
48
  themeConfig = {
38
49
  ...themeConfig,
39
50
  icons: {
40
51
  ...themeConfig.icons,
41
- global: { ...themeConfig.icons.global, ...projectConfig.icons },
52
+ global: { ...themeConfig.icons.global, ...projectSite.icons },
42
53
  },
43
54
  };
44
55
  }
45
56
  // Merge project-level tint and background presets
46
- if (projectConfig?.tints) {
47
- themeConfig = { ...themeConfig, tints: { ...themeConfig.tints, ...projectConfig.tints } };
57
+ if (projectSite?.tints) {
58
+ themeConfig = { ...themeConfig, tints: { ...themeConfig.tints, ...projectSite.tints } };
48
59
  }
49
- if (projectConfig?.backgrounds) {
50
- themeConfig = { ...themeConfig, backgrounds: { ...themeConfig.backgrounds, ...projectConfig.backgrounds } };
60
+ if (projectSite?.backgrounds) {
61
+ themeConfig = { ...themeConfig, backgrounds: { ...themeConfig.backgrounds, ...projectSite.backgrounds } };
51
62
  }
52
- // Load community packages for editor palette + preview
63
+ // Load plugins for editor palette + preview
53
64
  let extraTags;
54
65
  let communityRuneEntries;
55
- if (projectConfig?.packages?.length) {
66
+ if (projectSite?.plugins?.length) {
56
67
  try {
57
- const { loadRunePackage, mergePackages, runes: coreRuneMap, schemaContentModels, serializeContentModel } = await import('@refrakt-md/runes');
58
- const loaded = await Promise.all(projectConfig.packages.map((name) => loadRunePackage(name)));
59
- const merged = mergePackages(loaded, new Set(Object.keys(coreRuneMap)), projectConfig.runes?.prefer);
68
+ const { loadPlugin, mergePlugins, runes: coreRuneMap, schemaContentModels, serializeContentModel } = await import('@refrakt-md/runes');
69
+ const loaded = await Promise.all(projectSite.plugins.map((name) => loadPlugin(name)));
70
+ const merged = mergePlugins(loaded, new Set(Object.keys(coreRuneMap)), projectSite.runes?.prefer);
60
71
  extraTags = merged.tags;
61
72
  // Merge community theme rune configs into themeConfig
62
73
  if (Object.keys(merged.themeRunes).length > 0) {
@@ -114,7 +125,7 @@ export async function editCommand(options) {
114
125
  }
115
126
  }
116
127
  catch (err) {
117
- console.warn('Warning: Could not load community packages:', err.message);
128
+ console.warn('Warning: Could not load plugins:', err.message);
118
129
  }
119
130
  }
120
131
  // Resolve static assets directory (SvelteKit convention: {projectRoot}/static/)
@@ -134,8 +145,8 @@ export async function editCommand(options) {
134
145
  devServer: options.devServer,
135
146
  open: !options.noOpen,
136
147
  configPath: projectConfigPath,
137
- routeRules: projectConfig?.routeRules,
138
- packageNames: projectConfig?.packages ?? [],
148
+ routeRules: projectSite?.routeRules,
149
+ pluginNames: projectSite?.plugins ?? [],
139
150
  extraTags,
140
151
  communityRunes: communityRuneEntries,
141
152
  });
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAS1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,sBAAsB;IACtB,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACpC,IAAI,SAA6B,CAAC;IAClC,IAAI,SAAS,GAAG,GAAG,CAAC;IACpB,IAAI,aAAwC,CAAC;IAC7C,IAAI,iBAAqC,CAAC;IAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,IAAI,CAAC;YACJ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC7D,iBAAiB,GAAG,OAAO,CAAC;YAC5B,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACnD,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YACzB,aAAa,GAAG,MAAM,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;YAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,8CAA8C;IAC9C,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE9F,sEAAsE;IACtE,IAAI,aAAa,EAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,WAAW,GAAG;YACb,GAAG,WAAW;YACd,KAAK,EAAE;gBACN,GAAG,WAAW,CAAC,KAAK;gBACpB,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE;aAC/D;SACD,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;QAC1B,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,EAAS,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,aAAa,EAAE,WAAW,EAAE,CAAC;QAChC,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,WAAW,EAAS,EAAE,CAAC;IACpH,CAAC;IAED,uDAAuD;IACvD,IAAI,SAAwE,CAAC;IAC7E,IAAI,oBAMU,CAAC;IAEf,IAAI,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC;YACJ,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAE7I,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CACnE,CAAC;YAEF,MAAM,MAAM,GAAG,aAAa,CAC3B,MAAM,EACN,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EACjC,aAAa,CAAC,KAAK,EAAE,MAAM,CAC3B,CAAC;YAEF,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;YAExB,sDAAsD;YACtD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,WAAW,GAAG;oBACb,GAAG,WAAW;oBACd,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE;iBACrD,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,WAAW,GAAG;oBACb,GAAG,WAAW;oBACd,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE;iBAC3F,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,oBAAoB,GAAG,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1D,mGAAmG;gBACnG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,SAAS;gBAEtC,MAAM,KAAK,GAA2E,EAAE,CAAC;gBACzF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvE,IAAK,IAAY,CAAC,UAAU;4BAAE,SAAS;wBACvC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;4BAC/C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;4BAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gCACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAE,CAAuB,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gCACvF,CAAC,CAAC,QAAQ,CAAC;wBACb,KAAK,CAAC,QAAQ,CAAC,GAAG;4BACjB,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;4BAChC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC9D,CAAC;oBACH,CAAC;gBACF,CAAC;gBAED,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE5E,oBAAoB,CAAC,IAAI,CAAC;oBACzB,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;oBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;oBACnC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK;oBAC7C,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;oBAChD,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC9B,YAAY;iBACZ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACrF,CAAC;IACF,CAAC;IAED,gFAAgF;IAChF,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,mEAAmE;IACnE,qEAAqE;IACrE,MAAM,cAAc,GAAW,oBAAoB,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,WAAW,CAAC;QACjB,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,WAAW;QACX,YAAY;QACZ,eAAe;QACf,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM;QACrB,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,aAAa,EAAE,UAAU;QACrC,YAAY,EAAE,aAAa,EAAE,QAAQ,IAAI,EAAE;QAC3C,SAAS;QACT,cAAc,EAAE,oBAAoB;KACpC,CAAC,CAAC;AACJ,CAAC;AAQD,KAAK,UAAU,YAAY,CAC1B,SAA6B,EAC7B,SAAiB;IAEjB,0CAA0C;IAC1C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,mBAAmB,SAAS,gCAAgC,CAAC,CAAC;YAC3E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACpC,CAAC;QAED,gDAAgD;QAChD,IAAI,WAAW,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YAChF,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;gBAClC,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC;YAC5C,CAAC;iBAAM,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBACpC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC;YACvC,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,iDAAiD;QAClD,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/D,oDAAoD;QACpD,IAAI,eAAmC,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,eAAe,GAAG,WAAW,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,qCAAqC,SAAS,sBAAsB,CAAC,CAAC;QACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC;AACF,CAAC;AAED,0FAA0F;AAC1F,SAAS,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;IAC5D,iCAAiC;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface InspectDeps {
17
17
  }) => string;
18
18
  extractSelectors: (node: any, prefix: string) => string[];
19
19
  baseConfig: ThemeConfig;
20
- /** Fixture strings from community packages (keyed by rune name) */
20
+ /** Fixture strings from plugins (keyed by rune name) */
21
21
  packageFixtures?: Record<string, string>;
22
22
  }
23
23
  export interface InspectOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAiCzD,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;QAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IACtC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;IACrC,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACpE,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC1D,UAAU,EAAE,WAAW,CAAC;IACxB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAwFf"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAiCzD,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;QAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IACtC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;IACrC,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACpE,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC1D,UAAU,EAAE,WAAW,CAAC;IACxB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAwFf"}
@@ -1,20 +1,20 @@
1
- export interface PackageValidateOptions {
2
- /** Path to the package directory (default: cwd) */
3
- packageDir?: string;
1
+ export interface PluginValidateOptions {
2
+ /** Path to the plugin directory (default: cwd) */
3
+ pluginDir?: string;
4
4
  /** Whether to output JSON */
5
5
  json?: boolean;
6
6
  }
7
7
  /**
8
- * Validate a rune package before publishing.
8
+ * Validate a plugin before publishing.
9
9
  *
10
10
  * Checks:
11
11
  * 1. package.json exists and has required fields
12
- * 2. Package exports a valid RunePackage object
12
+ * 2. Plugin module exports a valid Plugin object
13
13
  * 3. Each rune has a valid transform (Markdoc Schema)
14
14
  * 4. Fixture strings are non-empty if provided
15
15
  * 5. Attribute schemas are well-formed if provided
16
16
  * 6. Theme config (RuneConfig entries) validates if provided
17
17
  * 7. Fixture files exist for runes that declare them
18
18
  */
19
- export declare function packageValidateCommand(opts: PackageValidateOptions): Promise<void>;
20
- //# sourceMappingURL=package-validate.d.ts.map
19
+ export declare function pluginValidateCommand(opts: PluginValidateOptions): Promise<void>;
20
+ //# sourceMappingURL=plugin-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-validate.d.ts","sourceRoot":"","sources":["../../src/commands/plugin-validate.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACrC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CActF"}
@@ -2,20 +2,20 @@ import { readFileSync, existsSync } from 'fs';
2
2
  import { resolve, join, relative, dirname } from 'path';
3
3
  import { discoverPlugins } from '../lib/plugins.js';
4
4
  /**
5
- * Validate a rune package before publishing.
5
+ * Validate a plugin before publishing.
6
6
  *
7
7
  * Checks:
8
8
  * 1. package.json exists and has required fields
9
- * 2. Package exports a valid RunePackage object
9
+ * 2. Plugin module exports a valid Plugin object
10
10
  * 3. Each rune has a valid transform (Markdoc Schema)
11
11
  * 4. Fixture strings are non-empty if provided
12
12
  * 5. Attribute schemas are well-formed if provided
13
13
  * 6. Theme config (RuneConfig entries) validates if provided
14
14
  * 7. Fixture files exist for runes that declare them
15
15
  */
16
- export async function packageValidateCommand(opts) {
17
- const packageDir = resolve(opts.packageDir ?? process.cwd());
18
- const result = await validatePackage(packageDir);
16
+ export async function pluginValidateCommand(opts) {
17
+ const pluginDir = resolve(opts.pluginDir ?? process.cwd());
18
+ const result = await validatePlugin(pluginDir);
19
19
  if (opts.json) {
20
20
  console.log(JSON.stringify(result, null, 2));
21
21
  }
@@ -26,14 +26,14 @@ export async function packageValidateCommand(opts) {
26
26
  process.exit(1);
27
27
  }
28
28
  }
29
- async function validatePackage(packageDir) {
29
+ async function validatePlugin(pluginDir) {
30
30
  const errors = [];
31
31
  const warnings = [];
32
32
  // Step 1: Check package.json
33
- const pkgJsonPath = join(packageDir, 'package.json');
33
+ const pkgJsonPath = join(pluginDir, 'package.json');
34
34
  if (!existsSync(pkgJsonPath)) {
35
35
  errors.push({ path: 'package.json', message: 'File not found' });
36
- return { valid: false, packageName: '<unknown>', errors, warnings };
36
+ return { valid: false, pluginName: '<unknown>', errors, warnings };
37
37
  }
38
38
  let pkgJson;
39
39
  try {
@@ -41,7 +41,7 @@ async function validatePackage(packageDir) {
41
41
  }
42
42
  catch (err) {
43
43
  errors.push({ path: 'package.json', message: `Invalid JSON: ${err.message}` });
44
- return { valid: false, packageName: '<unknown>', errors, warnings };
44
+ return { valid: false, pluginName: '<unknown>', errors, warnings };
45
45
  }
46
46
  const npmName = typeof pkgJson.name === 'string' ? pkgJson.name : '<unknown>';
47
47
  if (!pkgJson.name || typeof pkgJson.name !== 'string') {
@@ -58,38 +58,38 @@ async function validatePackage(packageDir) {
58
58
  // Step 2: Try to load the package module
59
59
  let pkg = null;
60
60
  const entryPoints = [
61
- join(packageDir, 'dist', 'index.js'),
62
- join(packageDir, 'src', 'index.ts'),
63
- join(packageDir, 'src', 'index.js'),
64
- join(packageDir, 'index.js'),
61
+ join(pluginDir, 'dist', 'index.js'),
62
+ join(pluginDir, 'src', 'index.ts'),
63
+ join(pluginDir, 'src', 'index.js'),
64
+ join(pluginDir, 'index.js'),
65
65
  ];
66
66
  for (const entry of entryPoints) {
67
67
  if (existsSync(entry)) {
68
68
  try {
69
69
  const mod = await import(entry);
70
- pkg = findRunePackageExport(mod);
70
+ pkg = findPluginExport(mod);
71
71
  break;
72
72
  }
73
73
  catch (err) {
74
74
  // Try next entry point
75
- warnings.push({ path: relative(packageDir, entry), message: `Import failed: ${err.message}` });
75
+ warnings.push({ path: relative(pluginDir, entry), message: `Import failed: ${err.message}` });
76
76
  }
77
77
  }
78
78
  }
79
79
  if (!pkg) {
80
- errors.push({ path: 'exports', message: 'Could not find a valid RunePackage export. Build the package first (npm run build) or ensure src/index.ts exports a RunePackage object.' });
81
- return { valid: false, packageName: npmName, errors, warnings };
80
+ errors.push({ path: 'exports', message: 'Could not find a valid Plugin export. Build the package first (npm run build) or ensure src/index.ts exports a Plugin object.' });
81
+ return { valid: false, pluginName: npmName, errors, warnings };
82
82
  }
83
- // Step 3: Validate RunePackage structure
83
+ // Step 3: Validate Plugin structure
84
84
  if (!pkg.name || typeof pkg.name !== 'string') {
85
- errors.push({ path: 'RunePackage.name', message: 'Required and must be a non-empty string' });
85
+ errors.push({ path: 'Plugin.name', message: 'Required and must be a non-empty string' });
86
86
  }
87
87
  if (!pkg.version || typeof pkg.version !== 'string') {
88
- errors.push({ path: 'RunePackage.version', message: 'Required and must be a non-empty string' });
88
+ errors.push({ path: 'Plugin.version', message: 'Required and must be a non-empty string' });
89
89
  }
90
90
  if (!pkg.runes || typeof pkg.runes !== 'object' || Object.keys(pkg.runes).length === 0) {
91
- errors.push({ path: 'RunePackage.runes', message: 'Must define at least one rune' });
92
- return { valid: false, packageName: npmName, errors, warnings };
91
+ errors.push({ path: 'Plugin.runes', message: 'Must define at least one rune' });
92
+ return { valid: false, pluginName: npmName, errors, warnings };
93
93
  }
94
94
  // Step 4: Validate each rune entry
95
95
  for (const [runeName, entry] of Object.entries(pkg.runes)) {
@@ -128,7 +128,7 @@ async function validatePackage(packageDir) {
128
128
  for (const [runeName, ext] of Object.entries(pkg.extends)) {
129
129
  if (ext.schema) {
130
130
  for (const [attrName, attrDef] of Object.entries(ext.schema)) {
131
- validatePackageAttribute(attrName, attrDef, `extends.${runeName}.schema`, errors);
131
+ validatePluginAttribute(attrName, attrDef, `extends.${runeName}.schema`, errors);
132
132
  }
133
133
  }
134
134
  }
@@ -157,19 +157,19 @@ async function validatePackage(packageDir) {
157
157
  });
158
158
  }
159
159
  // Step 10: Validate the cli-plugin export shape if the package contributes one.
160
- const cliPluginResult = await validateCliPlugin(packageDir, pkgJson, npmName);
160
+ const cliPluginResult = await validateCliPlugin(pluginDir, pkgJson, npmName);
161
161
  errors.push(...cliPluginResult.errors);
162
162
  warnings.push(...cliPluginResult.warnings);
163
- return { valid: errors.length === 0, packageName: npmName, errors, warnings };
163
+ return { valid: errors.length === 0, pluginName: npmName, errors, warnings };
164
164
  }
165
165
  /** Validate a package's `cli-plugin` export when present.
166
166
  *
167
167
  * Skipped silently when the package does not declare a cli-plugin export —
168
- * most rune packages don't ship CLI commands. When the export exists, this
168
+ * most plugins don't ship CLI commands. When the export exists, this
169
169
  * checks structural integrity (namespace, commands, schemas) and warns when
170
170
  * optional MCP-friendly fields are missing.
171
171
  */
172
- async function validateCliPlugin(packageDir, pkgJson, npmName) {
172
+ async function validateCliPlugin(pluginDir, pkgJson, npmName) {
173
173
  const errors = [];
174
174
  const warnings = [];
175
175
  const exports = pkgJson.exports;
@@ -179,10 +179,10 @@ async function validateCliPlugin(packageDir, pkgJson, npmName) {
179
179
  return { errors, warnings };
180
180
  }
181
181
  const candidates = [
182
- join(packageDir, 'dist', 'cli-plugin.js'),
183
- join(packageDir, 'src', 'cli-plugin.js'),
184
- join(packageDir, 'src', 'cli-plugin.ts'),
185
- join(packageDir, 'cli-plugin.js'),
182
+ join(pluginDir, 'dist', 'cli-plugin.js'),
183
+ join(pluginDir, 'src', 'cli-plugin.js'),
184
+ join(pluginDir, 'src', 'cli-plugin.ts'),
185
+ join(pluginDir, 'cli-plugin.js'),
186
186
  ];
187
187
  let plugin = null;
188
188
  let importError;
@@ -266,17 +266,17 @@ async function validateCliPlugin(packageDir, pkgJson, npmName) {
266
266
  // Namespace-clash check against other plugins discovered in the same project.
267
267
  try {
268
268
  // Discover from the parent of the package directory (so its node_modules
269
- // includes peer packages); falling back to packageDir is fine when the
269
+ // includes peer packages); falling back to pluginDir is fine when the
270
270
  // package is published rather than in a workspace.
271
- const discoveryRoot = dirname(packageDir);
271
+ const discoveryRoot = dirname(pluginDir);
272
272
  const others = await discoverPlugins({ cwd: discoveryRoot, warn: false });
273
273
  for (const other of others) {
274
- if (other.packageName === npmName)
274
+ if (other.pluginName === npmName)
275
275
  continue;
276
276
  if (other.namespace === plugin.namespace) {
277
277
  warnings.push({
278
278
  path: 'cli-plugin.namespace',
279
- message: `Namespace "${plugin.namespace}" is already provided by ${other.packageName} in this project`,
279
+ message: `Namespace "${plugin.namespace}" is already provided by ${other.pluginName} in this project`,
280
280
  });
281
281
  }
282
282
  }
@@ -329,7 +329,7 @@ function validateRuneEntry(runeName, entry, errors, warnings) {
329
329
  // schema validation
330
330
  if (entry.schema) {
331
331
  for (const [attrName, attrDef] of Object.entries(entry.schema)) {
332
- validatePackageAttribute(attrName, attrDef, `${prefix}.schema`, errors);
332
+ validatePluginAttribute(attrName, attrDef, `${prefix}.schema`, errors);
333
333
  }
334
334
  }
335
335
  // aliases validation
@@ -350,7 +350,7 @@ function validateRuneEntry(runeName, entry, errors, warnings) {
350
350
  errors.push({ path: `${prefix}.description`, message: 'Must be a string' });
351
351
  }
352
352
  }
353
- function validatePackageAttribute(attrName, attrDef, parentPath, errors) {
353
+ function validatePluginAttribute(attrName, attrDef, parentPath, errors) {
354
354
  const path = `${parentPath}.${attrName}`;
355
355
  if (typeof attrDef !== 'object' || attrDef === null) {
356
356
  errors.push({ path, message: 'Must be an object' });
@@ -378,20 +378,20 @@ function isChildRune(entry) {
378
378
  const schema = entry.transform;
379
379
  return schema.selfClosing === true || schema.inline === true;
380
380
  }
381
- function findRunePackageExport(mod) {
381
+ function findPluginExport(mod) {
382
382
  // Check default export
383
- if (mod.default && isRunePackage(mod.default)) {
383
+ if (mod.default && isPlugin(mod.default)) {
384
384
  return mod.default;
385
385
  }
386
386
  // Check named exports
387
387
  for (const value of Object.values(mod)) {
388
- if (isRunePackage(value)) {
388
+ if (isPlugin(value)) {
389
389
  return value;
390
390
  }
391
391
  }
392
392
  return null;
393
393
  }
394
- function isRunePackage(value) {
394
+ function isPlugin(value) {
395
395
  if (typeof value !== 'object' || value === null)
396
396
  return false;
397
397
  const obj = value;
@@ -401,7 +401,7 @@ function escapeRegex(s) {
401
401
  return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
402
402
  }
403
403
  function printValidationResult(result) {
404
- console.log(`Validating rune package: ${result.packageName}\n`);
404
+ console.log(`Validating plugin: ${result.pluginName}\n`);
405
405
  if (result.valid && result.warnings.length === 0) {
406
406
  console.log(' Package: OK');
407
407
  console.log('\nAll checks passed.');
@@ -429,4 +429,4 @@ function printValidationResult(result) {
429
429
  console.log('\nPackage validation failed.');
430
430
  }
431
431
  }
432
- //# sourceMappingURL=package-validate.js.map
432
+ //# sourceMappingURL=plugin-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-validate.js","sourceRoot":"","sources":["../../src/commands/plugin-validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAIA,6CAA6C;AAC7C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrE;AAoFD;4EAC4E;AAC5E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAezD"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAIA,6CAA6C;AAC7C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE;AAwHD;4EAC4E;AAC5E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAezD"}
@@ -1,5 +1,5 @@
1
1
  import { discoverPlugins } from '../lib/plugins.js';
2
- const SUBCOMMANDS = ['list'];
2
+ const SUBCOMMANDS = ['list', 'validate'];
3
3
  /** Entry point for `refrakt plugins ...`. */
4
4
  export async function runPluginsCommand(args) {
5
5
  const sub = args[0];
@@ -11,10 +11,47 @@ export async function runPluginsCommand(args) {
11
11
  await runPluginsList(args.slice(1));
12
12
  return;
13
13
  }
14
+ if (sub === 'validate') {
15
+ await runPluginsValidate(args.slice(1));
16
+ return;
17
+ }
14
18
  console.error(`Error: Unknown plugins subcommand "${sub}"\n`);
15
19
  printPluginsUsage();
16
20
  process.exit(1);
17
21
  }
22
+ /** `refrakt plugins validate [dir]` — pre-publish lint for a plugin. */
23
+ async function runPluginsValidate(args) {
24
+ let pluginDir;
25
+ let json = false;
26
+ for (let i = 0; i < args.length; i++) {
27
+ const arg = args[i];
28
+ if (arg === '--json') {
29
+ json = true;
30
+ }
31
+ else if (arg === '--site') {
32
+ args[++i];
33
+ }
34
+ else if (arg === '--help' || arg === '-h') {
35
+ printPluginsUsage();
36
+ process.exit(0);
37
+ }
38
+ else if (arg.startsWith('-')) {
39
+ console.error(`Error: Unknown flag "${arg}"\n`);
40
+ printPluginsUsage();
41
+ process.exit(1);
42
+ }
43
+ else if (!pluginDir) {
44
+ pluginDir = arg;
45
+ }
46
+ else {
47
+ console.error(`Error: Unexpected argument "${arg}"\n`);
48
+ printPluginsUsage();
49
+ process.exit(1);
50
+ }
51
+ }
52
+ const { pluginValidateCommand } = await import('./plugin-validate.js');
53
+ await pluginValidateCommand({ pluginDir, json });
54
+ }
18
55
  /** `refrakt plugins list` — text or JSON output. */
19
56
  async function runPluginsList(args) {
20
57
  const format = parseFormat(args);
@@ -30,10 +67,10 @@ async function runPluginsList(args) {
30
67
  }
31
68
  console.log('\nInstalled refrakt plugins:\n');
32
69
  const nsWidth = Math.max(...plugins.map((p) => p.namespace.length), 8);
33
- const pkgWidth = Math.max(...plugins.map((p) => `${p.packageName}@${p.packageVersion}`.length), 12);
70
+ const pkgWidth = Math.max(...plugins.map((p) => `${p.pluginName}@${p.packageVersion}`.length), 12);
34
71
  for (const plugin of plugins) {
35
72
  const ns = plugin.namespace.padEnd(nsWidth);
36
- const pkg = `${plugin.packageName}@${plugin.packageVersion}`.padEnd(pkgWidth);
73
+ const pkg = `${plugin.pluginName}@${plugin.packageVersion}`.padEnd(pkgWidth);
37
74
  const count = `${plugin.commands.length} ${plugin.commands.length === 1 ? 'command' : 'commands'}`;
38
75
  console.log(` ${ns} ${pkg} ${count}`);
39
76
  const cmdNames = plugin.commands.map((c) => c.name).join(', ');
@@ -64,7 +101,7 @@ function parseFormat(args) {
64
101
  function toJson(plugin) {
65
102
  return {
66
103
  namespace: plugin.namespace,
67
- packageName: plugin.packageName,
104
+ pluginName: plugin.pluginName,
68
105
  packageVersion: plugin.packageVersion,
69
106
  source: plugin.source,
70
107
  description: plugin.description,
@@ -83,14 +120,19 @@ Usage: refrakt plugins <subcommand> [options]
83
120
 
84
121
  Subcommands:
85
122
  list List installed plugins and their commands
123
+ validate [dir] Validate a plugin before publishing
86
124
 
87
125
  Options:
88
- --format <fmt> Output format: text (default) or json
89
- --json Shorthand for --format=json (list)
126
+ --format <fmt> Output format: text (default) or json (list)
127
+ --json Shorthand for --format=json (list, validate)
128
+ <dir> Plugin directory (validate; default: current directory)
90
129
 
91
130
  Examples:
92
131
  refrakt plugins list
93
132
  refrakt plugins list --format json
133
+ refrakt plugins validate
134
+ refrakt plugins validate ./plugins/marketing
135
+ refrakt plugins validate --json
94
136
  `);
95
137
  void SUBCOMMANDS;
96
138
  }
@@ -109,7 +151,7 @@ export async function appendPluginsToHelp() {
109
151
  console.log(`Installed plugins:`);
110
152
  const width = Math.max(...plugins.map((p) => p.namespace.length));
111
153
  for (const plugin of plugins) {
112
- const desc = plugin.description ?? plugin.packageName;
154
+ const desc = plugin.description ?? plugin.pluginName;
113
155
  console.log(` ${plugin.namespace.padEnd(width + 2)} ${desc}`);
114
156
  }
115
157
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"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"}