@refrakt-md/plan 0.9.5 → 0.9.7
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/cards.d.ts +23 -0
- package/dist/cards.d.ts.map +1 -0
- package/dist/cards.js +150 -0
- package/dist/cards.js.map +1 -0
- package/dist/cli-plugin.d.ts.map +1 -1
- package/dist/cli-plugin.js +68 -5
- package/dist/cli-plugin.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +13 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/create.js +3 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/history.d.ts +21 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +261 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/init.d.ts +7 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +149 -26
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/next.d.ts.map +1 -1
- package/dist/commands/next.js +22 -6
- package/dist/commands/next.js.map +1 -1
- package/dist/commands/plan-behaviors.js +2 -1
- package/dist/commands/plan-behaviors.js.map +1 -1
- package/dist/commands/render-pipeline.d.ts.map +1 -1
- package/dist/commands/render-pipeline.js +148 -128
- package/dist/commands/render-pipeline.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +54 -0
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/templates.js +13 -13
- package/dist/commands/templates.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +39 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +119 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +86 -23
- package/dist/config.js.map +1 -1
- package/dist/diff.d.ts +35 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +88 -0
- package/dist/diff.js.map +1 -0
- package/dist/entity-tabs-behavior.d.ts +13 -0
- package/dist/entity-tabs-behavior.d.ts.map +1 -0
- package/dist/entity-tabs-behavior.js +94 -0
- package/dist/entity-tabs-behavior.js.map +1 -0
- package/dist/history.d.ts +89 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +336 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/pipeline.d.ts +11 -11
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +468 -202
- package/dist/pipeline.js.map +1 -1
- package/dist/relationships.d.ts +36 -0
- package/dist/relationships.d.ts.map +1 -0
- package/dist/relationships.js +128 -0
- package/dist/relationships.js.map +1 -0
- package/dist/scanner-core.d.ts +10 -0
- package/dist/scanner-core.d.ts.map +1 -0
- package/dist/scanner-core.js +230 -0
- package/dist/scanner-core.js.map +1 -0
- package/dist/scanner.d.ts +2 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +7 -124
- package/dist/scanner.js.map +1 -1
- package/dist/tags/bug.d.ts.map +1 -1
- package/dist/tags/bug.js +22 -1
- package/dist/tags/bug.js.map +1 -1
- package/dist/tags/decision.d.ts.map +1 -1
- package/dist/tags/decision.js +23 -1
- package/dist/tags/decision.js.map +1 -1
- package/dist/tags/milestone.d.ts.map +1 -1
- package/dist/tags/milestone.js +7 -4
- package/dist/tags/milestone.js.map +1 -1
- package/dist/tags/plan-history.d.ts +4 -0
- package/dist/tags/plan-history.d.ts.map +1 -0
- package/dist/tags/plan-history.js +46 -0
- package/dist/tags/plan-history.js.map +1 -0
- package/dist/tags/spec.d.ts.map +1 -1
- package/dist/tags/spec.js +4 -5
- package/dist/tags/spec.js.map +1 -1
- package/dist/tags/work.d.ts.map +1 -1
- package/dist/tags/work.js +28 -7
- package/dist/tags/work.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +10 -0
- package/dist/util.js.map +1 -1
- package/package.json +26 -9
- package/styles/default.css +0 -586
- package/styles/minimal.css +0 -386
- package/styles/tokens.css +0 -13
package/dist/tags/work.js
CHANGED
|
@@ -2,7 +2,7 @@ import Markdoc from '@markdoc/markdoc';
|
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
3
|
import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
|
|
4
4
|
import { buildSections } from '../util.js';
|
|
5
|
-
const statusValues = ['draft', 'ready', 'in-progress', 'review', 'done', 'blocked'];
|
|
5
|
+
const statusValues = ['draft', 'ready', 'in-progress', 'review', 'done', 'blocked', 'pending'];
|
|
6
6
|
const priorityValues = ['critical', 'high', 'medium', 'low'];
|
|
7
7
|
const complexityValues = ['trivial', 'simple', 'moderate', 'complex', 'unknown'];
|
|
8
8
|
export const work = createContentModelSchema({
|
|
@@ -13,6 +13,7 @@ export const work = createContentModelSchema({
|
|
|
13
13
|
complexity: { type: String, required: false, matches: complexityValues.slice(), description: 'Complexity signal: trivial, simple, moderate, complex, or unknown.' },
|
|
14
14
|
assignee: { type: String, required: false, description: 'Person or agent working on this.' },
|
|
15
15
|
milestone: { type: String, required: false, description: 'Milestone this belongs to.' },
|
|
16
|
+
source: { type: String, required: false, description: 'Comma-separated IDs of specs or decisions this item implements.' },
|
|
16
17
|
tags: { type: String, required: false, description: 'Comma-separated labels.' },
|
|
17
18
|
created: { type: String, required: false, description: 'Creation date (ISO 8601). Defaults to file creation date from git.' },
|
|
18
19
|
modified: { type: String, required: false, description: 'Last modified date (ISO 8601). Defaults to file modification date from git.' },
|
|
@@ -28,6 +29,26 @@ export const work = createContentModelSchema({
|
|
|
28
29
|
type: 'sequence',
|
|
29
30
|
fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
|
|
30
31
|
},
|
|
32
|
+
knownSections: {
|
|
33
|
+
'Acceptance Criteria': {
|
|
34
|
+
alias: ['Criteria', 'AC', 'Done When'],
|
|
35
|
+
},
|
|
36
|
+
'Dependencies': {
|
|
37
|
+
alias: ['Deps', 'Depends On', 'Blocked By', 'Requires'],
|
|
38
|
+
},
|
|
39
|
+
'Approach': {
|
|
40
|
+
alias: ['Technical Notes', 'Implementation Notes', 'How'],
|
|
41
|
+
},
|
|
42
|
+
'References': {
|
|
43
|
+
alias: ['Refs', 'Related', 'Context'],
|
|
44
|
+
},
|
|
45
|
+
'Edge Cases': {
|
|
46
|
+
alias: ['Exceptions', 'Corner Cases'],
|
|
47
|
+
},
|
|
48
|
+
'Verification': {
|
|
49
|
+
alias: ['Test Cases', 'Tests'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
31
52
|
}),
|
|
32
53
|
transform(resolved, attrs, config) {
|
|
33
54
|
const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
|
|
@@ -38,17 +59,15 @@ export const work = createContentModelSchema({
|
|
|
38
59
|
const complexityMeta = new Tag('meta', { content: attrs.complexity ?? 'unknown' });
|
|
39
60
|
const assigneeMeta = new Tag('meta', { content: attrs.assignee ?? '' });
|
|
40
61
|
const milestoneMeta = new Tag('meta', { content: attrs.milestone ?? '' });
|
|
62
|
+
const sourceMeta = new Tag('meta', { content: attrs.source ?? '' });
|
|
41
63
|
const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
|
|
42
64
|
const fileVars = config.variables?.file;
|
|
43
65
|
const createdMeta = new Tag('meta', { content: attrs.created || fileVars?.created || '' });
|
|
44
66
|
const modifiedMeta = new Tag('meta', { content: attrs.modified || fileVars?.modified || '' });
|
|
45
67
|
const title = titleNodes.wrap('header');
|
|
46
|
-
const
|
|
47
|
-
if (descNodes.count() > 0) {
|
|
48
|
-
contentChildren.push(descNodes.wrap('div').next());
|
|
49
|
-
}
|
|
68
|
+
const blurb = descNodes.count() > 0 ? descNodes.wrap('div').next() : undefined;
|
|
50
69
|
const sections = resolved.sections;
|
|
51
|
-
contentChildren
|
|
70
|
+
const contentChildren = buildSections(sections, config);
|
|
52
71
|
const bodyDiv = new Tag('div', {}, contentChildren);
|
|
53
72
|
return createComponentRenderable({ rune: 'work',
|
|
54
73
|
tag: 'article',
|
|
@@ -59,15 +78,17 @@ export const work = createContentModelSchema({
|
|
|
59
78
|
complexity: complexityMeta,
|
|
60
79
|
assignee: assigneeMeta,
|
|
61
80
|
milestone: milestoneMeta,
|
|
81
|
+
source: sourceMeta,
|
|
62
82
|
tags: tagsMeta,
|
|
63
83
|
created: createdMeta,
|
|
64
84
|
modified: modifiedMeta,
|
|
65
85
|
},
|
|
66
86
|
refs: {
|
|
67
87
|
title: title.tag('header'),
|
|
88
|
+
blurb,
|
|
68
89
|
body: bodyDiv,
|
|
69
90
|
},
|
|
70
|
-
children: [idMeta, statusMeta, priorityMeta, complexityMeta, assigneeMeta, milestoneMeta, tagsMeta, createdMeta, modifiedMeta, title.next(), bodyDiv],
|
|
91
|
+
children: [idMeta, statusMeta, priorityMeta, complexityMeta, assigneeMeta, milestoneMeta, sourceMeta, tagsMeta, createdMeta, modifiedMeta, title.next(), ...(blurb ? [blurb] : []), bodyDiv],
|
|
71
92
|
});
|
|
72
93
|
},
|
|
73
94
|
});
|
package/dist/tags/work.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/tags/work.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EAAW,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/tags/work.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,6 +13,13 @@ export interface Resolution {
|
|
|
13
13
|
/** Full resolution section content (excluding parsed metadata lines) */
|
|
14
14
|
body: string;
|
|
15
15
|
}
|
|
16
|
+
/** A ref tag scoped to the section it appears in */
|
|
17
|
+
export interface ScopedRef {
|
|
18
|
+
/** The referenced entity ID */
|
|
19
|
+
id: string;
|
|
20
|
+
/** The canonical section name this ref appears in, or undefined if not in a known section */
|
|
21
|
+
section?: string;
|
|
22
|
+
}
|
|
16
23
|
export interface PlanEntity {
|
|
17
24
|
/** File path relative to the scan directory */
|
|
18
25
|
file: string;
|
|
@@ -26,11 +33,24 @@ export interface PlanEntity {
|
|
|
26
33
|
criteria: Criterion[];
|
|
27
34
|
/** Referenced entity IDs extracted from {% ref %} / {% xref %} tags */
|
|
28
35
|
refs: string[];
|
|
36
|
+
/** Section-scoped refs (refs tagged with the section they appear in) */
|
|
37
|
+
scopedRefs: ScopedRef[];
|
|
38
|
+
/** Canonical names of known sections present in this entity */
|
|
39
|
+
knownSectionsPresent: string[];
|
|
29
40
|
/** Parsed resolution section, if present */
|
|
30
41
|
resolution?: Resolution;
|
|
31
42
|
/** File modification time (ms since epoch) */
|
|
32
43
|
mtime?: number;
|
|
33
44
|
}
|
|
45
|
+
/** A file provided as content rather than read from disk — for use with scanPlanSources() */
|
|
46
|
+
export interface FileSource {
|
|
47
|
+
/** Relative path (e.g. "work/WORK-042.md") */
|
|
48
|
+
path: string;
|
|
49
|
+
/** Full file content */
|
|
50
|
+
content: string;
|
|
51
|
+
/** Optional modification time in ms since epoch (e.g. from a git commit timestamp) */
|
|
52
|
+
mtime?: number;
|
|
53
|
+
}
|
|
34
54
|
export interface ScanCacheEntry {
|
|
35
55
|
/** File modification time (ms since epoch) */
|
|
36
56
|
mtime: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gDAAgD;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC3B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACzB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gDAAgD;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,wEAAwE;IACxE,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,+DAA+D;IAC/D,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,6FAA6F;AAC7F,MAAM,WAAW,UAAU;IAC1B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC3B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}
|
package/dist/util.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export declare function slugify(text: string): string;
|
|
|
3
3
|
/**
|
|
4
4
|
* Build section wrapper elements from resolved sections.
|
|
5
5
|
* Each section becomes a `<section>` with `data-name` set to the slugified heading text.
|
|
6
|
+
* Known sections (matched via `$canonicalName`) get `data-known-section` on the heading
|
|
7
|
+
* so the layout TOC and mobile section nav can filter to just these sections.
|
|
6
8
|
*/
|
|
7
9
|
export declare function buildSections(sections: any[], config: any): any[];
|
|
8
10
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAKA,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAKA,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CA2BjE"}
|
package/dist/util.js
CHANGED
|
@@ -11,6 +11,8 @@ export function slugify(text) {
|
|
|
11
11
|
/**
|
|
12
12
|
* Build section wrapper elements from resolved sections.
|
|
13
13
|
* Each section becomes a `<section>` with `data-name` set to the slugified heading text.
|
|
14
|
+
* Known sections (matched via `$canonicalName`) get `data-known-section` on the heading
|
|
15
|
+
* so the layout TOC and mobile section nav can filter to just these sections.
|
|
14
16
|
*/
|
|
15
17
|
export function buildSections(sections, config) {
|
|
16
18
|
if (!sections || sections.length === 0)
|
|
@@ -18,11 +20,19 @@ export function buildSections(sections, config) {
|
|
|
18
20
|
return sections.map((section) => {
|
|
19
21
|
const headingText = section.$heading;
|
|
20
22
|
const slug = slugify(headingText);
|
|
23
|
+
const canonicalName = section.$canonicalName;
|
|
21
24
|
const headingNode = section.$headingNode;
|
|
22
25
|
const bodyContent = Markdoc.transform(asNodes(section.body), config);
|
|
23
26
|
const children = [];
|
|
24
27
|
if (headingNode) {
|
|
25
28
|
const renderedHeading = Markdoc.transform([headingNode], config);
|
|
29
|
+
// Mark known-section headings with data-known-section attribute
|
|
30
|
+
if (canonicalName && renderedHeading.length > 0) {
|
|
31
|
+
const heading = renderedHeading[0];
|
|
32
|
+
if (heading instanceof Tag) {
|
|
33
|
+
heading.attributes['data-known-section'] = canonicalName;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
26
36
|
children.push(...renderedHeading);
|
|
27
37
|
}
|
|
28
38
|
children.push(...bodyContent);
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,2DAA2D;AAC3D,MAAM,UAAU,OAAO,CAAC,IAAY;IACnC,OAAO,IAAI;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,2DAA2D;AAC3D,MAAM,UAAU,OAAO,CAAC,IAAY;IACnC,OAAO,IAAI;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAe,EAAE,MAAW;IACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE;QACpC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAkB,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,cAAoC,CAAC;QAEnE,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAyB,CAAC;QAE7F,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAyB,CAAC;YACzF,gEAAgE;YAChE,IAAI,aAAa,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,OAAO,YAAY,GAAG,EAAE,CAAC;oBAC5B,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,aAAa,CAAC;gBAC1D,CAAC;YACF,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE9B,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/plan",
|
|
3
3
|
"description": "Planning runes for refrakt.md — specs, work items, bugs, decisions, and milestones",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -26,6 +26,22 @@
|
|
|
26
26
|
"./scanner": {
|
|
27
27
|
"types": "./dist/scanner.d.ts",
|
|
28
28
|
"default": "./dist/scanner.js"
|
|
29
|
+
},
|
|
30
|
+
"./diff": {
|
|
31
|
+
"types": "./dist/diff.d.ts",
|
|
32
|
+
"default": "./dist/diff.js"
|
|
33
|
+
},
|
|
34
|
+
"./filter": {
|
|
35
|
+
"types": "./dist/filter.d.ts",
|
|
36
|
+
"default": "./dist/filter.js"
|
|
37
|
+
},
|
|
38
|
+
"./relationships": {
|
|
39
|
+
"types": "./dist/relationships.d.ts",
|
|
40
|
+
"default": "./dist/relationships.js"
|
|
41
|
+
},
|
|
42
|
+
"./cards": {
|
|
43
|
+
"types": "./dist/cards.d.ts",
|
|
44
|
+
"default": "./dist/cards.js"
|
|
29
45
|
}
|
|
30
46
|
},
|
|
31
47
|
"files": [
|
|
@@ -37,16 +53,17 @@
|
|
|
37
53
|
},
|
|
38
54
|
"dependencies": {
|
|
39
55
|
"@markdoc/markdoc": "0.4.0",
|
|
40
|
-
"@refrakt-md/behaviors": "0.9.
|
|
41
|
-
"@refrakt-md/content": "0.9.
|
|
42
|
-
"@refrakt-md/highlight": "0.9.
|
|
43
|
-
"@refrakt-md/html": "0.9.
|
|
44
|
-
"@refrakt-md/runes": "0.9.
|
|
45
|
-
"@refrakt-md/transform": "0.9.
|
|
46
|
-
"@refrakt-md/types": "0.9.
|
|
56
|
+
"@refrakt-md/behaviors": "0.9.7",
|
|
57
|
+
"@refrakt-md/content": "0.9.7",
|
|
58
|
+
"@refrakt-md/highlight": "0.9.7",
|
|
59
|
+
"@refrakt-md/html": "0.9.7",
|
|
60
|
+
"@refrakt-md/runes": "0.9.7",
|
|
61
|
+
"@refrakt-md/transform": "0.9.7",
|
|
62
|
+
"@refrakt-md/types": "0.9.7",
|
|
47
63
|
"reflect-metadata": "^0.2.0"
|
|
48
64
|
},
|
|
49
65
|
"devDependencies": {
|
|
50
|
-
"esbuild": "^0.27.4"
|
|
66
|
+
"esbuild": "^0.27.4",
|
|
67
|
+
"pagefind": "^1.3.0"
|
|
51
68
|
}
|
|
52
69
|
}
|