@refrakt-md/plan 0.29.0 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cli-plugin.d.ts.map +1 -1
  2. package/dist/cli-plugin.js +0 -104
  3. package/dist/cli-plugin.js.map +1 -1
  4. package/dist/commands/enums.d.ts +26 -4
  5. package/dist/commands/enums.d.ts.map +1 -1
  6. package/dist/commands/enums.js +41 -4
  7. package/dist/commands/enums.js.map +1 -1
  8. package/dist/commands/status.d.ts +3 -1
  9. package/dist/commands/status.d.ts.map +1 -1
  10. package/dist/commands/status.js +4 -3
  11. package/dist/commands/status.js.map +1 -1
  12. package/dist/commands/validate.d.ts.map +1 -1
  13. package/dist/commands/validate.js +135 -6
  14. package/dist/commands/validate.js.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/pipeline.d.ts +2 -5
  17. package/dist/pipeline.d.ts.map +1 -1
  18. package/dist/pipeline.js +10 -19
  19. package/dist/pipeline.js.map +1 -1
  20. package/package.json +5 -21
  21. package/dist/commands/build.d.ts +0 -15
  22. package/dist/commands/build.d.ts.map +0 -1
  23. package/dist/commands/build.js +0 -79
  24. package/dist/commands/build.js.map +0 -1
  25. package/dist/commands/bundle-behaviors.d.ts +0 -10
  26. package/dist/commands/bundle-behaviors.d.ts.map +0 -1
  27. package/dist/commands/bundle-behaviors.js +0 -35
  28. package/dist/commands/bundle-behaviors.js.map +0 -1
  29. package/dist/commands/plan-behaviors.d.ts +0 -2
  30. package/dist/commands/plan-behaviors.d.ts.map +0 -1
  31. package/dist/commands/plan-behaviors.js +0 -9
  32. package/dist/commands/plan-behaviors.js.map +0 -1
  33. package/dist/commands/render-pipeline.d.ts +0 -77
  34. package/dist/commands/render-pipeline.d.ts.map +0 -1
  35. package/dist/commands/render-pipeline.js +0 -1225
  36. package/dist/commands/render-pipeline.js.map +0 -1
  37. package/dist/commands/serve.d.ts +0 -14
  38. package/dist/commands/serve.d.ts.map +0 -1
  39. package/dist/commands/serve.js +0 -230
  40. package/dist/commands/serve.js.map +0 -1
@@ -1,79 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import { execSync } from 'child_process';
4
- import { runPipeline, renderPage } from './render-pipeline.js';
5
- import { bundleBehaviors } from './bundle-behaviors.js';
6
- export async function runBuild(options) {
7
- console.warn('[plan] `plan build` is deprecated and will be removed in a future release.\n' +
8
- ' A plan site is now an ordinary refrakt site — generate one with\n' +
9
- ' `create-refrakt --type plan`, or add an `entityRoutes` block to an\n' +
10
- ' existing site config (SPEC-069/071). The authoring CLI (create, next,\n' +
11
- ' update, validate, …) is unaffected.');
12
- const { dir, specsDir, out, theme, baseUrl, css } = options;
13
- const pipeline = await runPipeline({ dir, specsDir, theme, baseUrl });
14
- const files = [];
15
- // Ensure output directory
16
- fs.mkdirSync(out, { recursive: true });
17
- // Write combined theme + highlight + custom CSS
18
- let combinedCss = pipeline.themeCss + (pipeline.highlightCss ? '\n' + pipeline.highlightCss : '');
19
- if (css) {
20
- const cssPath = path.resolve(css);
21
- combinedCss += '\n' + fs.readFileSync(cssPath, 'utf-8');
22
- }
23
- fs.writeFileSync(path.join(out, 'theme.css'), combinedCss, 'utf-8');
24
- files.push('theme.css');
25
- // Bundle and write behaviors JS
26
- const behaviorsJs = await bundleBehaviors();
27
- fs.writeFileSync(path.join(out, 'behaviors.js'), behaviorsJs, 'utf-8');
28
- files.push('behaviors.js');
29
- const allPageUrls = [
30
- { url: baseUrl, title: pipeline.dashboard.title, draft: false },
31
- ...pipeline.pages.map(p => ({ url: p.url, title: p.title, draft: false })),
32
- ];
33
- const stylesheets = [`${baseUrl}theme.css`];
34
- const scripts = [`${baseUrl}behaviors.js`];
35
- // Write dashboard
36
- const dashboardHtml = renderPage(pipeline.dashboard, pipeline.navRegion, allPageUrls, {
37
- stylesheets,
38
- scripts,
39
- activeUrl: baseUrl,
40
- });
41
- const indexPath = path.join(out, 'index.html');
42
- fs.writeFileSync(indexPath, dashboardHtml, 'utf-8');
43
- files.push('index.html');
44
- // Write entity pages
45
- for (const page of pipeline.pages) {
46
- // page.url is like /base/work/work-001.html — strip baseUrl prefix
47
- const relPath = page.url.startsWith(baseUrl)
48
- ? page.url.slice(baseUrl.length)
49
- : page.url.replace(/^\//, '');
50
- const outPath = path.join(out, relPath);
51
- const outDir = path.dirname(outPath);
52
- fs.mkdirSync(outDir, { recursive: true });
53
- const html = renderPage(page, pipeline.navRegion, allPageUrls, {
54
- stylesheets,
55
- scripts,
56
- activeUrl: page.url,
57
- });
58
- fs.writeFileSync(outPath, html, 'utf-8');
59
- files.push(relPath);
60
- }
61
- // Run Pagefind to generate the search index
62
- try {
63
- execSync(`npx pagefind --site ${JSON.stringify(path.resolve(out))}`, {
64
- stdio: 'pipe',
65
- timeout: 60_000,
66
- });
67
- files.push('pagefind/');
68
- }
69
- catch {
70
- console.warn('[plan] Warning: Could not run pagefind. Full-text search will not be available.');
71
- console.warn('[plan] Install pagefind to enable search: npm install -D pagefind');
72
- }
73
- return {
74
- outputDir: out,
75
- pages: files.length,
76
- files,
77
- };
78
- }
79
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Bundle plan-behaviors.ts into a single IIFE string for the browser.
3
- * Returns the bundled JavaScript as a string.
4
- *
5
- * esbuild is lazy-imported so that `plan status`, `plan next`, and other
6
- * non-build commands don't pay the cost of loading it (and can run in
7
- * environments where esbuild isn't installed).
8
- */
9
- export declare function bundleBehaviors(): Promise<string>;
10
- //# sourceMappingURL=bundle-behaviors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-behaviors.d.ts","sourceRoot":"","sources":["../../src/commands/bundle-behaviors.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CA0BvD"}
@@ -1,35 +0,0 @@
1
- import * as path from 'path';
2
- import { fileURLToPath } from 'url';
3
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
4
- /**
5
- * Bundle plan-behaviors.ts into a single IIFE string for the browser.
6
- * Returns the bundled JavaScript as a string.
7
- *
8
- * esbuild is lazy-imported so that `plan status`, `plan next`, and other
9
- * non-build commands don't pay the cost of loading it (and can run in
10
- * environments where esbuild isn't installed).
11
- */
12
- export async function bundleBehaviors() {
13
- let build;
14
- try {
15
- ({ build } = await import('esbuild'));
16
- }
17
- catch (err) {
18
- throw new Error(`esbuild is required to run this command but is not installed.\n` +
19
- `Install it with: npm install --save-dev esbuild\n` +
20
- `Original error: ${err?.message ?? err}`);
21
- }
22
- const entryExt = __dirname.includes('/dist/') ? '.js' : '.ts';
23
- const entryPoint = path.join(__dirname, `plan-behaviors${entryExt}`);
24
- const result = await build({
25
- entryPoints: [entryPoint],
26
- bundle: true,
27
- format: 'iife',
28
- minify: true,
29
- write: false,
30
- platform: 'browser',
31
- target: ['es2020'],
32
- });
33
- return result.outputFiles[0].text;
34
- }
35
- //# sourceMappingURL=bundle-behaviors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle-behaviors.js","sourceRoot":"","sources":["../../src/commands/bundle-behaviors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,KAAqC,CAAC;IAC1C,IAAI,CAAC;QACJ,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACd,iEAAiE;YACjE,mDAAmD;YACnD,mBAAmB,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CACxC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QAC1B,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,QAAQ,CAAC;KAClB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=plan-behaviors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-behaviors.d.ts","sourceRoot":"","sources":["../../src/commands/plan-behaviors.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { initRuneBehaviors, initLayoutBehaviors } from '@refrakt-md/behaviors';
2
- // SPEC-072 / WORK-282 — the `milestone-backlog` and `plan-entity-tabs`
3
- // wrappers (and the per-rune behaviors they registered) were retired with
4
- // the plan plugin's postProcess injection. The bespoke `plan build` /
5
- // `plan serve` bundle now ships only the shared rune/layout behaviors.
6
- // Initialize all rune + layout behaviors on DOM ready
7
- initRuneBehaviors(document);
8
- initLayoutBehaviors(document);
9
- //# sourceMappingURL=plan-behaviors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-behaviors.js","sourceRoot":"","sources":["../../src/commands/plan-behaviors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,uEAAuE;AACvE,0EAA0E;AAC1E,sEAAsE;AACtE,uEAAuE;AAEvE,sDAAsD;AACtD,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAC5B,mBAAmB,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,77 +0,0 @@
1
- import 'reflect-metadata';
2
- import type { RendererNode } from '@refrakt-md/types';
3
- export interface ProcessedPage {
4
- url: string;
5
- title: string;
6
- type: string;
7
- entityId: string;
8
- status: string;
9
- renderable: RendererNode;
10
- filePath: string;
11
- headings: Array<{
12
- level: number;
13
- text: string;
14
- id: string;
15
- }>;
16
- }
17
- export interface NavGroup {
18
- title: string;
19
- type: string;
20
- items: NavItem[];
21
- statusGroups: NavStatusGroup[];
22
- }
23
- export interface NavStatusGroup {
24
- status: string;
25
- label: string;
26
- items: NavItem[];
27
- collapsed: boolean;
28
- }
29
- export interface NavItem {
30
- url: string;
31
- label: string;
32
- id: string;
33
- status: string;
34
- priority?: string;
35
- tags?: string;
36
- assignee?: string;
37
- milestone?: string;
38
- severity?: string;
39
- hasUnresolvedBlockers?: boolean;
40
- }
41
- export interface PipelineResult {
42
- pages: ProcessedPage[];
43
- dashboard: ProcessedPage;
44
- nav: NavGroup[];
45
- navRegion: RendererNode[];
46
- themeCss: string;
47
- highlightCss: string;
48
- }
49
- export interface PipelineOptions {
50
- dir: string;
51
- specsDir?: string;
52
- theme: string;
53
- baseUrl: string;
54
- }
55
- /** Status ordering — active statuses first, terminal last */
56
- export declare const STATUS_ORDER: Record<string, number>;
57
- /** Human-readable status labels for group headers */
58
- export declare const STATUS_LABELS_DISPLAY: Record<string, string>;
59
- /** Status ordering per entity type (for nav display). Terminal states sink to
60
- * the tail — `cancelled` / `superseded` join `done` there for work. */
61
- export declare const STATUS_ORDER_BY_TYPE: Record<string, string[]>;
62
- export declare function runPipeline(options: PipelineOptions): Promise<PipelineResult>;
63
- /**
64
- * Render a processed page to a full HTML document using the HTML adapter.
65
- */
66
- export declare function renderPage(page: ProcessedPage, navRegion: RendererNode[], allPageUrls: Array<{
67
- url: string;
68
- title: string;
69
- draft: boolean;
70
- }>, opts?: {
71
- hotReload?: boolean;
72
- stylesheets?: string[];
73
- scripts?: string[];
74
- activeUrl?: string;
75
- }): string;
76
- export declare function getThemeCss(theme: string): string;
77
- //# sourceMappingURL=render-pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-pipeline.d.ts","sourceRoot":"","sources":["../../src/commands/render-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,YAAY,EAAuF,MAAM,mBAAmB,CAAC;AAuB3I,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,YAAY,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CAChB;AAyOD,6DAA6D;AAC7D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK/C,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASxD,CAAC;AAEF;wEACwE;AACxE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAMzD,CAAC;AAqvBF,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA2PnF;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,YAAY,EAAE,EACzB,WAAW,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,EAClE,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F,MAAM,CAgCR;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD"}