@intentset/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifact.d.ts +28 -0
- package/dist/artifact.d.ts.map +1 -0
- package/dist/artifact.js +621 -0
- package/dist/artifact.js.map +1 -0
- package/dist/carrier.d.ts +21 -0
- package/dist/carrier.d.ts.map +1 -0
- package/dist/carrier.js +70 -0
- package/dist/carrier.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +28 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +223 -0
- package/dist/context.js.map +1 -0
- package/dist/diagnostics.d.ts +37 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +22 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/export.d.ts +23 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +144 -0
- package/dist/export.js.map +1 -0
- package/dist/graph.d.ts +17 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +51 -0
- package/dist/graph.js.map +1 -0
- package/dist/hash.d.ts +16 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +55 -0
- package/dist/hash.js.map +1 -0
- package/dist/impact.d.ts +6 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +89 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/registries.d.ts +19 -0
- package/dist/registries.d.ts.map +1 -0
- package/dist/registries.js +137 -0
- package/dist/registries.js.map +1 -0
- package/dist/report.d.ts +34 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +58 -0
- package/dist/report.js.map +1 -0
- package/dist/types.d.ts +266 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +90 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +6 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +573 -0
- package/dist/validate.js.map +1 -0
- package/dist/yaml.d.ts +48 -0
- package/dist/yaml.d.ts.map +1 -0
- package/dist/yaml.js +413 -0
- package/dist/yaml.js.map +1 -0
- package/package.json +36 -0
- package/src/artifact.ts +835 -0
- package/src/carrier.ts +81 -0
- package/src/config.ts +96 -0
- package/src/context.ts +240 -0
- package/src/diagnostics.ts +60 -0
- package/src/export.ts +173 -0
- package/src/graph.ts +49 -0
- package/src/hash.ts +53 -0
- package/src/impact.ts +90 -0
- package/src/index.ts +14 -0
- package/src/registries.ts +171 -0
- package/src/report.ts +84 -0
- package/src/types.ts +357 -0
- package/src/validate.ts +655 -0
- package/src/yaml.ts +406 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../src/artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plain-Markdown carrier (Core §3, §9; ADR 0003).
|
|
3
|
+
*
|
|
4
|
+
* `plainCarrier` produces the `DocumentInput` shape from nothing but the
|
|
5
|
+
* text: the frontmatter between the `---` fences at the top of the file, and
|
|
6
|
+
* the ATX headings that lie outside fenced code blocks. The Markset adapter
|
|
7
|
+
* produces the same shape from the Markset AST; a test holds the two equal.
|
|
8
|
+
* This carrier emits no syntax diagnostics: plain Markdown has no grammar to
|
|
9
|
+
* fail, and an unclosed fence or missing frontmatter is reported by
|
|
10
|
+
* `readArtifact` as CORE001.
|
|
11
|
+
*/
|
|
12
|
+
import type { DocumentInput, Heading } from "./types.ts";
|
|
13
|
+
/** Core §3 and §9: the plain-Markdown fallback carrier. */
|
|
14
|
+
export declare function plainCarrier(path: string, source: string): DocumentInput;
|
|
15
|
+
/** Core §3: the 0-based index of the closing frontmatter fence of a document that starts with one, or -1. */
|
|
16
|
+
export declare function closingFenceIndex(lines: readonly string[]): number;
|
|
17
|
+
/** Core §6 and ADR 0003: ATX headings outside fenced code blocks, with inline markup removed. */
|
|
18
|
+
export declare function collectHeadings(lines: readonly string[], from: number): Heading[];
|
|
19
|
+
/** Core §6 and ADR 0003: the plain text of a heading, closing `#`s, emphasis, code spans and link brackets removed. */
|
|
20
|
+
export declare function headingText(raw: string): string;
|
|
21
|
+
//# sourceMappingURL=carrier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAYxE;AAED,6GAA6G;AAC7G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAMlE;AAWD,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAoBjF;AAED,uHAAuH;AACvH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU/C"}
|
package/dist/carrier.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Core §3 and §9: the plain-Markdown fallback carrier. */
|
|
2
|
+
export function plainCarrier(path, source) {
|
|
3
|
+
const text = source.startsWith("") ? source.slice(1) : source;
|
|
4
|
+
const lines = text.split("\n").map((line) => (line.endsWith("\r") ? line.slice(0, -1) : line));
|
|
5
|
+
const frontmatter = findFrontmatter(lines);
|
|
6
|
+
const bodyStart = frontmatter === null ? 0 : frontmatter.close + 1;
|
|
7
|
+
return {
|
|
8
|
+
path,
|
|
9
|
+
source,
|
|
10
|
+
frontmatter: frontmatter === null ? null : { text: frontmatter.text, line: 2 },
|
|
11
|
+
headings: collectHeadings(lines, bodyStart),
|
|
12
|
+
syntax: [],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Core §3: the 0-based index of the closing frontmatter fence of a document that starts with one, or -1. */
|
|
16
|
+
export function closingFenceIndex(lines) {
|
|
17
|
+
if (lines.length === 0 || lines[0].trimEnd() !== "---")
|
|
18
|
+
return -1;
|
|
19
|
+
for (let i = 1; i < lines.length; i++) {
|
|
20
|
+
if (lines[i].trimEnd() === "---")
|
|
21
|
+
return i;
|
|
22
|
+
}
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
function findFrontmatter(lines) {
|
|
26
|
+
const close = closingFenceIndex(lines);
|
|
27
|
+
if (close === -1)
|
|
28
|
+
return null;
|
|
29
|
+
return { text: lines.slice(1, close).join("\n"), close };
|
|
30
|
+
}
|
|
31
|
+
const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})(.*)$/;
|
|
32
|
+
const ATX = /^ {0,3}(#{1,6})(?:[ \t]+(.*?))?[ \t]*$/;
|
|
33
|
+
/** Core §6 and ADR 0003: ATX headings outside fenced code blocks, with inline markup removed. */
|
|
34
|
+
export function collectHeadings(lines, from) {
|
|
35
|
+
const headings = [];
|
|
36
|
+
let fence = null;
|
|
37
|
+
for (let i = from; i < lines.length; i++) {
|
|
38
|
+
const line = lines[i];
|
|
39
|
+
if (fence !== null) {
|
|
40
|
+
const close = new RegExp(`^ {0,3}\\${fence.char}{${fence.length},}[ \\t]*$`);
|
|
41
|
+
if (close.test(line))
|
|
42
|
+
fence = null;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const open = FENCE_OPEN.exec(line);
|
|
46
|
+
if (open !== null && !(open[1][0] === "`" && open[2].includes("`"))) {
|
|
47
|
+
fence = { char: open[1][0], length: open[1].length };
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const atx = ATX.exec(line);
|
|
51
|
+
if (atx === null)
|
|
52
|
+
continue;
|
|
53
|
+
headings.push({ depth: atx[1].length, text: headingText(atx[2] ?? ""), line: i + 1 });
|
|
54
|
+
}
|
|
55
|
+
return headings;
|
|
56
|
+
}
|
|
57
|
+
/** Core §6 and ADR 0003: the plain text of a heading, closing `#`s, emphasis, code spans and link brackets removed. */
|
|
58
|
+
export function headingText(raw) {
|
|
59
|
+
let text = raw.trim();
|
|
60
|
+
if (/^#+$/.test(text))
|
|
61
|
+
return "";
|
|
62
|
+
text = text.replace(/[ \t]+#+$/, "");
|
|
63
|
+
text = text.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1");
|
|
64
|
+
text = text.replace(/\[([^\]]*)\]/g, "$1");
|
|
65
|
+
text = text.replace(/[*`]/g, "");
|
|
66
|
+
text = text.replace(/(^|\s)_+|_+(?=\s|$)/g, "$1");
|
|
67
|
+
text = text.replace(/\\([\\`*_{}[\]()#+\-.!])/g, "$1");
|
|
68
|
+
return text.replace(/\s+/g, " ").trim();
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=carrier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `.intentset/config.yaml` (Core §11: a conformance claim names its declared
|
|
3
|
+
* repository scope). `repository` is the stable identity the export carries;
|
|
4
|
+
* `scope` is the globs that select documents; `registries` is the path of
|
|
5
|
+
* registries.yaml or null; `ignore` excludes generated output. A bad shape is
|
|
6
|
+
* CFG001 and the defaults stand in, so a caller always gets a usable config.
|
|
7
|
+
*/
|
|
8
|
+
import type { Diagnostic } from "./diagnostics.ts";
|
|
9
|
+
import type { Config } from "./types.ts";
|
|
10
|
+
export declare const DEFAULT_SCOPE: string[];
|
|
11
|
+
export declare const DEFAULT_IGNORE: string[];
|
|
12
|
+
/** Core §11: read the repository configuration. Shape problems are CFG001. */
|
|
13
|
+
export declare function readConfig(text: string, path: string): {
|
|
14
|
+
config: Config;
|
|
15
|
+
diagnostics: Diagnostic[];
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,eAAO,MAAM,aAAa,UAAc,CAAC;AACzC,eAAO,MAAM,cAAc,UAA4C,CAAC;AAGxE,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CA6EpG"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { compareStrings, makeDiagnostic } from "./report.js";
|
|
2
|
+
import { patternProblem } from "./validate.js";
|
|
3
|
+
import { parseYamlDetailed } from "./yaml.js";
|
|
4
|
+
export const DEFAULT_SCOPE = ["**/*.md"];
|
|
5
|
+
export const DEFAULT_IGNORE = ["node_modules/**", "dist/**", ".git/**"];
|
|
6
|
+
const KNOWN_KEYS = ["repository", "scope", "registries", "ignore"];
|
|
7
|
+
/** Core §11: read the repository configuration. Shape problems are CFG001. */
|
|
8
|
+
export function readConfig(text, path) {
|
|
9
|
+
const diagnostics = [];
|
|
10
|
+
const config = { repository: "", scope: [...DEFAULT_SCOPE], registries: null, ignore: [...DEFAULT_IGNORE] };
|
|
11
|
+
const parsed = parseYamlDetailed(text);
|
|
12
|
+
if (parsed.error) {
|
|
13
|
+
diagnostics.push(makeDiagnostic({
|
|
14
|
+
code: "CFG001",
|
|
15
|
+
origin: "profile",
|
|
16
|
+
artifact: null,
|
|
17
|
+
path,
|
|
18
|
+
location: { line: parsed.error.line },
|
|
19
|
+
message: `The configuration does not parse: ${parsed.error.message}`,
|
|
20
|
+
remediation: "Write the configuration as a block mapping with repository, scope, registries and ignore.",
|
|
21
|
+
}));
|
|
22
|
+
return { config, diagnostics };
|
|
23
|
+
}
|
|
24
|
+
const root = parsed.value;
|
|
25
|
+
const report = (field, message, remediation) => {
|
|
26
|
+
const line = parsed.lines.get(field);
|
|
27
|
+
diagnostics.push(makeDiagnostic({
|
|
28
|
+
code: "CFG001",
|
|
29
|
+
origin: "profile",
|
|
30
|
+
artifact: null,
|
|
31
|
+
path,
|
|
32
|
+
...(line !== undefined ? { location: { line } } : {}),
|
|
33
|
+
field,
|
|
34
|
+
message,
|
|
35
|
+
remediation,
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
for (const key of Object.keys(root).sort(compareStrings)) {
|
|
39
|
+
if (!KNOWN_KEYS.includes(key)) {
|
|
40
|
+
report(`/${key}`, `Unknown configuration key \`${key}\`.`, `Remove it; the keys are ${KNOWN_KEYS.join(", ")}.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (typeof root.repository === "string" && root.repository !== "") {
|
|
44
|
+
config.repository = root.repository;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
report("/repository", "`repository` is required and must be a non-empty string.", 'Set it to the repository\'s stable identity, such as "org/name".');
|
|
48
|
+
}
|
|
49
|
+
for (const key of ["scope", "ignore"]) {
|
|
50
|
+
const value = root[key];
|
|
51
|
+
if (value === undefined || value === null)
|
|
52
|
+
continue;
|
|
53
|
+
if (Array.isArray(value) && value.every((item) => typeof item === "string" && item !== "")) {
|
|
54
|
+
config[key] = [...value];
|
|
55
|
+
for (const [index, pattern] of value.entries()) {
|
|
56
|
+
const why = patternProblem(pattern);
|
|
57
|
+
if (why !== null) {
|
|
58
|
+
report(`/${key}/${index}`, `${key} pattern ${JSON.stringify(pattern)} is not a supported pattern: ${why}`, "Use repository-relative POSIX paths with literal segments, * within a segment and ** across segments.");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
report(`/${key}`, `\`${key}\` must be a list of glob strings.`, `Write ${key} as a sequence of patterns such as "**/*.md".`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (root.registries !== undefined && root.registries !== null) {
|
|
67
|
+
if (typeof root.registries === "string" && root.registries !== "")
|
|
68
|
+
config.registries = root.registries;
|
|
69
|
+
else
|
|
70
|
+
report("/registries", "`registries` must be a path or null.", "Point it at registries.yaml, or remove it.");
|
|
71
|
+
}
|
|
72
|
+
return { config, diagnostics };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACxE,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY;IACnD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAW,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;IACpH,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CACd,cAAc,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;YACd,IAAI;YACJ,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrC,OAAO,EAAE,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YACpE,WAAW,EAAE,2FAA2F;SACzG,CAAC,CACH,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,WAAmB,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,WAAW,CAAC,IAAI,CACd,cAAc,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;YACd,IAAI;YACJ,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,KAAK;YACL,OAAO;YACP,WAAW;SACZ,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,+BAA+B,GAAG,KAAK,EAAE,2BAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;QAClE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,CACJ,aAAa,EACb,0DAA0D,EAC1D,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3F,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,KAAkB,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAK,KAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,MAAM,CACJ,IAAI,GAAG,IAAI,KAAK,EAAE,EAClB,GAAG,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gCAAgC,GAAG,EAAE,EAC9E,uGAAuG,CACxG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,oCAAoC,EAC5C,SAAS,GAAG,+CAA+C,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC9D,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;;YAClG,MAAM,CAAC,aAAa,EAAE,sCAAsC,EAAE,4CAA4C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ArtifactType, Graph, Status, Visibility } from "./types.ts";
|
|
2
|
+
/** The roles an artifact can have in a bundle, in the order a bundle is sorted by. */
|
|
3
|
+
export declare const CONTEXT_ROLES: readonly ["start", "owner", "behavior", "rule", "scenario", "verification", "contract", "decision", "knowledge", "ancestor", "neighbour"];
|
|
4
|
+
export type ContextRole = (typeof CONTEXT_ROLES)[number];
|
|
5
|
+
export interface ContextArtifact {
|
|
6
|
+
id: string;
|
|
7
|
+
type: ArtifactType;
|
|
8
|
+
title: string;
|
|
9
|
+
status: Status;
|
|
10
|
+
visibility: Visibility;
|
|
11
|
+
/** Repository-relative path of the artifact's file. */
|
|
12
|
+
path: string;
|
|
13
|
+
role: ContextRole;
|
|
14
|
+
}
|
|
15
|
+
export interface ContextBundle {
|
|
16
|
+
start: string;
|
|
17
|
+
/** Sorted by role order, then ID. Each artifact once, under the first role it has in that order. */
|
|
18
|
+
artifacts: ContextArtifact[];
|
|
19
|
+
/** Restricted artifacts left out because they were not asked for. */
|
|
20
|
+
withheld: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ContextOptions {
|
|
23
|
+
/** Include `restricted` artifacts instead of withholding them. Default false. */
|
|
24
|
+
includeRestricted?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** Core §10: the bounded context of an artifact, or null when the graph has no artifact with this ID. */
|
|
27
|
+
export declare function contextFor(graph: Graph, id: string, options?: ContextOptions): ContextBundle | null;
|
|
28
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAY,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpF,sFAAsF;AACtF,eAAO,MAAM,aAAa,YACxB,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EACN,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,CACH,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,yGAAyG;AACzG,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,GAAG,IAAI,CAgEvG"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent context (Core §10): the bounded set of artifacts an engineer or an
|
|
3
|
+
* agent loads before changing implementation, starting from one ID.
|
|
4
|
+
*
|
|
5
|
+
* behavior its owning slices (the derived side of `implements`), the
|
|
6
|
+
* behavior, its rules (`governedBy`), the scenarios that
|
|
7
|
+
* illustrate it, the verifications over it, its rules and its
|
|
8
|
+
* scenarios, the owning slices' exposed and consumed contracts,
|
|
9
|
+
* the decisions informing the behavior, the slices and the
|
|
10
|
+
* contracts, the knowledge explaining it, and its parent chain
|
|
11
|
+
* rule the behaviors it governs, and from each of their bundles the
|
|
12
|
+
* owning slices and the verifications; also the verifications
|
|
13
|
+
* and knowledge naming the rule itself, so a rule no behavior
|
|
14
|
+
* governs yet still shows what checks and explains it
|
|
15
|
+
* capability the bundles of its behaviors (children through `parent`,
|
|
16
|
+
* through sub-capabilities, with a visited set), merged, plus
|
|
17
|
+
* the knowledge explaining it and its own parent chain
|
|
18
|
+
* slice the bundles of the behaviors it implements, merged, plus its
|
|
19
|
+
* own contracts and the decisions informing it and them
|
|
20
|
+
* otherwise the artifact and its direct neighbours, authored and derived
|
|
21
|
+
*
|
|
22
|
+
* Each artifact appears once, under the first role it has in role order, and
|
|
23
|
+
* the bundle is sorted by role then ID. `restricted` artifacts, the start
|
|
24
|
+
* included, are withheld and counted unless asked for, so a short context
|
|
25
|
+
* never reads as a complete one. Only IDs in the graph are followed; an
|
|
26
|
+
* unresolved edge is the validator's to report. Pure and deterministic: the
|
|
27
|
+
* result depends on the graph's artifacts and edges, not on file order.
|
|
28
|
+
*/
|
|
29
|
+
import { compareStrings } from "./report.js";
|
|
30
|
+
/** The roles an artifact can have in a bundle, in the order a bundle is sorted by. */
|
|
31
|
+
export const CONTEXT_ROLES = [
|
|
32
|
+
"start",
|
|
33
|
+
"owner",
|
|
34
|
+
"behavior",
|
|
35
|
+
"rule",
|
|
36
|
+
"scenario",
|
|
37
|
+
"verification",
|
|
38
|
+
"contract",
|
|
39
|
+
"decision",
|
|
40
|
+
"knowledge",
|
|
41
|
+
"ancestor",
|
|
42
|
+
"neighbour",
|
|
43
|
+
];
|
|
44
|
+
const RANK = new Map(CONTEXT_ROLES.map((role, index) => [role, index]));
|
|
45
|
+
/** Core §10: the bounded context of an artifact, or null when the graph has no artifact with this ID. */
|
|
46
|
+
export function contextFor(graph, id, options = {}) {
|
|
47
|
+
const start = graph.artifacts.get(id);
|
|
48
|
+
if (start === undefined)
|
|
49
|
+
return null;
|
|
50
|
+
const roles = new Roles(graph);
|
|
51
|
+
roles.add(id, "start");
|
|
52
|
+
switch (start.meta.type) {
|
|
53
|
+
case "behavior":
|
|
54
|
+
behaviorBundle(graph, id, roles);
|
|
55
|
+
break;
|
|
56
|
+
case "rule":
|
|
57
|
+
for (const behavior of into(graph, id, "governedBy", "behavior")) {
|
|
58
|
+
roles.add(behavior, "behavior");
|
|
59
|
+
const bundle = new Roles(graph);
|
|
60
|
+
behaviorBundle(graph, behavior, bundle);
|
|
61
|
+
for (const [member, role] of bundle.entries()) {
|
|
62
|
+
if (role === "owner" || role === "verification")
|
|
63
|
+
roles.add(member, role);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
for (const verification of into(graph, id, "verifies", "verification"))
|
|
67
|
+
roles.add(verification, "verification");
|
|
68
|
+
for (const knowledge of into(graph, id, "explains", "knowledge"))
|
|
69
|
+
roles.add(knowledge, "knowledge");
|
|
70
|
+
break;
|
|
71
|
+
case "capability":
|
|
72
|
+
for (const behavior of behaviorsUnder(graph, id))
|
|
73
|
+
behaviorBundle(graph, behavior, roles);
|
|
74
|
+
for (const knowledge of into(graph, id, "explains", "knowledge"))
|
|
75
|
+
roles.add(knowledge, "knowledge");
|
|
76
|
+
for (const ancestor of ancestors(graph, id))
|
|
77
|
+
roles.add(ancestor, "ancestor");
|
|
78
|
+
break;
|
|
79
|
+
case "slice": {
|
|
80
|
+
for (const behavior of from(graph, id, "implements", "behavior"))
|
|
81
|
+
behaviorBundle(graph, behavior, roles);
|
|
82
|
+
const contracts = [...from(graph, id, "exposes", "contract"), ...from(graph, id, "consumes", "contract")];
|
|
83
|
+
for (const contract of contracts)
|
|
84
|
+
roles.add(contract, "contract");
|
|
85
|
+
for (const source of [id, ...contracts]) {
|
|
86
|
+
for (const decision of from(graph, source, "informedBy", "decision"))
|
|
87
|
+
roles.add(decision, "decision");
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
default:
|
|
92
|
+
for (const edge of graph.out.get(id) ?? [])
|
|
93
|
+
roles.add(edge.to, "neighbour");
|
|
94
|
+
for (const edge of graph.in.get(id) ?? [])
|
|
95
|
+
roles.add(edge.from, "neighbour");
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
const artifacts = [];
|
|
99
|
+
let withheld = 0;
|
|
100
|
+
for (const [member, role] of roles.entries()) {
|
|
101
|
+
const artifact = graph.artifacts.get(member);
|
|
102
|
+
if (artifact === undefined)
|
|
103
|
+
continue;
|
|
104
|
+
const { meta } = artifact;
|
|
105
|
+
if (meta.visibility === "restricted" && options.includeRestricted !== true) {
|
|
106
|
+
withheld++;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
artifacts.push({
|
|
110
|
+
id: meta.id,
|
|
111
|
+
type: meta.type,
|
|
112
|
+
title: meta.title,
|
|
113
|
+
status: meta.status,
|
|
114
|
+
visibility: meta.visibility,
|
|
115
|
+
path: artifact.path,
|
|
116
|
+
role,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
artifacts.sort((a, b) => rank(a.role) - rank(b.role) || compareStrings(a.id, b.id));
|
|
120
|
+
return { start: id, artifacts, withheld };
|
|
121
|
+
}
|
|
122
|
+
/** Role assignment with "first role in role order wins", over IDs that are in the graph. */
|
|
123
|
+
class Roles {
|
|
124
|
+
#graph;
|
|
125
|
+
#roles = new Map();
|
|
126
|
+
constructor(graph) {
|
|
127
|
+
this.#graph = graph;
|
|
128
|
+
}
|
|
129
|
+
add(id, role) {
|
|
130
|
+
if (!this.#graph.artifacts.has(id))
|
|
131
|
+
return;
|
|
132
|
+
const previous = this.#roles.get(id);
|
|
133
|
+
if (previous === undefined || rank(role) < rank(previous))
|
|
134
|
+
this.#roles.set(id, role);
|
|
135
|
+
}
|
|
136
|
+
/** Entries sorted by ID, so nothing downstream depends on insertion order. */
|
|
137
|
+
entries() {
|
|
138
|
+
return [...this.#roles.entries()].sort((a, b) => compareStrings(a[0], b[0]));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function rank(role) {
|
|
142
|
+
return RANK.get(role) ?? CONTEXT_ROLES.length;
|
|
143
|
+
}
|
|
144
|
+
/** One behavior's bundle, added into `roles`. */
|
|
145
|
+
function behaviorBundle(graph, behavior, roles) {
|
|
146
|
+
roles.add(behavior, "behavior");
|
|
147
|
+
const owners = into(graph, behavior, "implements", "slice");
|
|
148
|
+
const rules = from(graph, behavior, "governedBy", "rule");
|
|
149
|
+
const scenarios = into(graph, behavior, "illustrates", "scenario");
|
|
150
|
+
const contracts = owners.flatMap((slice) => [
|
|
151
|
+
...from(graph, slice, "exposes", "contract"),
|
|
152
|
+
...from(graph, slice, "consumes", "contract"),
|
|
153
|
+
]);
|
|
154
|
+
for (const slice of owners)
|
|
155
|
+
roles.add(slice, "owner");
|
|
156
|
+
for (const rule of rules)
|
|
157
|
+
roles.add(rule, "rule");
|
|
158
|
+
for (const scenario of scenarios)
|
|
159
|
+
roles.add(scenario, "scenario");
|
|
160
|
+
for (const claim of [behavior, ...rules, ...scenarios]) {
|
|
161
|
+
for (const verification of into(graph, claim, "verifies", "verification"))
|
|
162
|
+
roles.add(verification, "verification");
|
|
163
|
+
}
|
|
164
|
+
for (const contract of contracts)
|
|
165
|
+
roles.add(contract, "contract");
|
|
166
|
+
for (const source of [behavior, ...owners, ...contracts]) {
|
|
167
|
+
for (const decision of from(graph, source, "informedBy", "decision"))
|
|
168
|
+
roles.add(decision, "decision");
|
|
169
|
+
}
|
|
170
|
+
for (const knowledge of into(graph, behavior, "explains", "knowledge"))
|
|
171
|
+
roles.add(knowledge, "knowledge");
|
|
172
|
+
for (const ancestor of ancestors(graph, behavior))
|
|
173
|
+
roles.add(ancestor, "ancestor");
|
|
174
|
+
}
|
|
175
|
+
/** Behaviors whose navigation parent is the capability or one of its sub-capabilities, with a visited set. */
|
|
176
|
+
function behaviorsUnder(graph, capability) {
|
|
177
|
+
const behaviors = new Set();
|
|
178
|
+
const seen = new Set([capability]);
|
|
179
|
+
const queue = [capability];
|
|
180
|
+
while (queue.length > 0) {
|
|
181
|
+
const current = queue.shift();
|
|
182
|
+
for (const child of into(graph, current, "parent")) {
|
|
183
|
+
const type = graph.artifacts.get(child)?.meta.type;
|
|
184
|
+
if (type === "behavior")
|
|
185
|
+
behaviors.add(child);
|
|
186
|
+
else if (type === "capability" && !seen.has(child)) {
|
|
187
|
+
seen.add(child);
|
|
188
|
+
queue.push(child);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return [...behaviors].sort(compareStrings);
|
|
193
|
+
}
|
|
194
|
+
/** The navigation parent chain, nearest first, stopping at a cycle or an ID not in the graph. */
|
|
195
|
+
function ancestors(graph, id) {
|
|
196
|
+
const chain = [];
|
|
197
|
+
const visited = new Set([id]);
|
|
198
|
+
let cursor = graph.artifacts.get(id)?.meta.parent;
|
|
199
|
+
while (cursor !== undefined && !visited.has(cursor) && graph.artifacts.has(cursor)) {
|
|
200
|
+
visited.add(cursor);
|
|
201
|
+
chain.push(cursor);
|
|
202
|
+
cursor = graph.artifacts.get(cursor)?.meta.parent;
|
|
203
|
+
}
|
|
204
|
+
return chain;
|
|
205
|
+
}
|
|
206
|
+
/** Targets of authored edges of one kind leaving `id`, in the graph and of the given type, sorted and unique. */
|
|
207
|
+
function from(graph, id, kind, type) {
|
|
208
|
+
const ids = (graph.out.get(id) ?? []).filter((edge) => edge.kind === kind).map((edge) => edge.to);
|
|
209
|
+
return typed(graph, ids, type);
|
|
210
|
+
}
|
|
211
|
+
/** Sources of authored edges of one kind arriving at `id`: the derived side, read from the authored edge. */
|
|
212
|
+
function into(graph, id, kind, type) {
|
|
213
|
+
const ids = (graph.in.get(id) ?? []).filter((edge) => edge.kind === kind).map((edge) => edge.from);
|
|
214
|
+
return typed(graph, ids, type);
|
|
215
|
+
}
|
|
216
|
+
function typed(graph, ids, type) {
|
|
217
|
+
const kept = ids.filter((each) => {
|
|
218
|
+
const artifact = graph.artifacts.get(each);
|
|
219
|
+
return artifact !== undefined && (type === undefined || artifact.meta.type === type);
|
|
220
|
+
});
|
|
221
|
+
return [...new Set(kept)].sort(compareStrings);
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One diagnostic shape across every package (ADR 0004, Core §11).
|
|
3
|
+
*
|
|
4
|
+
* `location` is present only when known; a missing location stays missing
|
|
5
|
+
* rather than becoming an invented coordinate. `field` is a JSON pointer into
|
|
6
|
+
* the frontmatter when the problem is a frontmatter value.
|
|
7
|
+
*/
|
|
8
|
+
export type Severity = "error" | "warning";
|
|
9
|
+
export type Origin = "syntax" | "profile" | "graph" | "architecture" | "evidence" | "publication" | "render";
|
|
10
|
+
export interface Location {
|
|
11
|
+
/** 1-based line in the file named by `path`. */
|
|
12
|
+
line: number;
|
|
13
|
+
/** 1-based column, when known. */
|
|
14
|
+
column?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface Diagnostic {
|
|
17
|
+
/** Stable code, e.g. CORE003, VSA005, TS003, AMP001. */
|
|
18
|
+
code: string;
|
|
19
|
+
severity: Severity;
|
|
20
|
+
origin: Origin;
|
|
21
|
+
/** Artifact ID the problem belongs to, or null when the file has no readable ID. */
|
|
22
|
+
artifact: string | null;
|
|
23
|
+
/** Repository-relative POSIX path, or null for a repository-wide problem. */
|
|
24
|
+
path: string | null;
|
|
25
|
+
location?: Location;
|
|
26
|
+
/** JSON pointer into the frontmatter, e.g. "/intentset/links/governedBy/0". */
|
|
27
|
+
field?: string;
|
|
28
|
+
message: string;
|
|
29
|
+
remediation: string;
|
|
30
|
+
}
|
|
31
|
+
/** ADR 0004: true when any diagnostic is an error; warnings never fail a check. */
|
|
32
|
+
export declare function hasErrors(diagnostics: readonly Diagnostic[]): boolean;
|
|
33
|
+
/** Core §11 order: path, artifact ID, code; then line so output is total and deterministic. */
|
|
34
|
+
export declare function compareDiagnostics(a: Diagnostic, b: Diagnostic): number;
|
|
35
|
+
/** Core §11 and ADR 0004: a sorted copy, in `compareDiagnostics` order. */
|
|
36
|
+
export declare function sortDiagnostics<T extends Diagnostic>(diagnostics: readonly T[]): T[];
|
|
37
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE7G,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAErE;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAUvE;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAEpF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** ADR 0004: true when any diagnostic is an error; warnings never fail a check. */
|
|
2
|
+
export function hasErrors(diagnostics) {
|
|
3
|
+
return diagnostics.some((d) => d.severity === "error");
|
|
4
|
+
}
|
|
5
|
+
/** Core §11 order: path, artifact ID, code; then line so output is total and deterministic. */
|
|
6
|
+
export function compareDiagnostics(a, b) {
|
|
7
|
+
return (cmp(a.path ?? "", b.path ?? "") ||
|
|
8
|
+
cmp(a.artifact ?? "", b.artifact ?? "") ||
|
|
9
|
+
cmp(a.code, b.code) ||
|
|
10
|
+
(a.location?.line ?? 0) - (b.location?.line ?? 0) ||
|
|
11
|
+
(a.location?.column ?? 0) - (b.location?.column ?? 0) ||
|
|
12
|
+
cmp(a.field ?? "", b.field ?? "") ||
|
|
13
|
+
cmp(a.message, b.message));
|
|
14
|
+
}
|
|
15
|
+
/** Core §11 and ADR 0004: a sorted copy, in `compareDiagnostics` order. */
|
|
16
|
+
export function sortDiagnostics(diagnostics) {
|
|
17
|
+
return [...diagnostics].sort(compareDiagnostics);
|
|
18
|
+
}
|
|
19
|
+
function cmp(a, b) {
|
|
20
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAkCA,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,WAAkC;IAC1D,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,CAAa,EAAE,CAAa;IAC7D,OAAO,CACL,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAuB,WAAyB;IAC7E,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
|