@promptci/core 0.3.0 → 0.4.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/action-pinning.d.ts.map +1 -1
- package/dist/action-pinning.js +86 -55
- package/dist/action-pinning.js.map +1 -1
- package/dist/agent-practices.d.ts +5 -1
- package/dist/agent-practices.d.ts.map +1 -1
- package/dist/agent-practices.js +59 -34
- package/dist/agent-practices.js.map +1 -1
- package/dist/baseline.d.ts +8 -0
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +15 -0
- package/dist/baseline.js.map +1 -1
- package/dist/ci-alignment.d.ts +3 -1
- package/dist/ci-alignment.d.ts.map +1 -1
- package/dist/ci-alignment.js +8 -1
- package/dist/ci-alignment.js.map +1 -1
- package/dist/command-context.d.ts +67 -0
- package/dist/command-context.d.ts.map +1 -0
- package/dist/command-context.js +291 -0
- package/dist/command-context.js.map +1 -0
- package/dist/command-validity.d.ts.map +1 -1
- package/dist/command-validity.js +404 -32
- package/dist/command-validity.js.map +1 -1
- package/dist/dead-references.d.ts +6 -0
- package/dist/dead-references.d.ts.map +1 -1
- package/dist/dead-references.js +120 -7
- package/dist/dead-references.js.map +1 -1
- package/dist/duplicates.d.ts +24 -2
- package/dist/duplicates.d.ts.map +1 -1
- package/dist/duplicates.js +313 -9
- package/dist/duplicates.js.map +1 -1
- package/dist/health-score.d.ts +15 -1
- package/dist/health-score.d.ts.map +1 -1
- package/dist/health-score.js +25 -2
- package/dist/health-score.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/manifest-consistency.d.ts.map +1 -1
- package/dist/manifest-consistency.js +6 -0
- package/dist/manifest-consistency.js.map +1 -1
- package/dist/markdown-fences.d.ts.map +1 -1
- package/dist/markdown-fences.js +7 -3
- package/dist/markdown-fences.js.map +1 -1
- package/dist/provenance/check.d.ts +40 -0
- package/dist/provenance/check.d.ts.map +1 -0
- package/dist/provenance/check.js +157 -0
- package/dist/provenance/check.js.map +1 -0
- package/dist/provenance/index.d.ts +13 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +21 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/instruction-advice.d.ts +3 -0
- package/dist/provenance/instruction-advice.d.ts.map +1 -0
- package/dist/provenance/instruction-advice.js +570 -0
- package/dist/provenance/instruction-advice.js.map +1 -0
- package/dist/provenance/repo-checks.d.ts +3 -0
- package/dist/provenance/repo-checks.d.ts.map +1 -0
- package/dist/provenance/repo-checks.js +644 -0
- package/dist/provenance/repo-checks.js.map +1 -0
- package/dist/provenance/tool-config.d.ts +3 -0
- package/dist/provenance/tool-config.d.ts.map +1 -0
- package/dist/provenance/tool-config.js +480 -0
- package/dist/provenance/tool-config.js.map +1 -0
- package/dist/provenance/types.d.ts +116 -0
- package/dist/provenance/types.d.ts.map +1 -0
- package/dist/provenance/types.js +17 -0
- package/dist/provenance/types.js.map +1 -0
- package/dist/repo-context.d.ts.map +1 -1
- package/dist/repo-context.js +3 -6
- package/dist/repo-context.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +3 -0
- package/dist/report.js.map +1 -1
- package/dist/sample-text.d.ts +36 -0
- package/dist/sample-text.d.ts.map +1 -0
- package/dist/sample-text.js +72 -0
- package/dist/sample-text.js.map +1 -0
- package/dist/security-pack.d.ts.map +1 -1
- package/dist/security-pack.js +83 -0
- package/dist/security-pack.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/workspace-manifests.d.ts +6 -0
- package/dist/workspace-manifests.d.ts.map +1 -1
- package/dist/workspace-manifests.js +13 -8
- package/dist/workspace-manifests.js.map +1 -1
- package/package.json +1 -1
package/dist/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;;;;;;;;;;GAaG;AAEH,iFAAiF;AAEjF,MAAM,cAAc,GAAkC;IACpD,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,cAAc,CAAC,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,QAAiB;IAC/D,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG;QACrB,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;KAC7D,CAAC;IACF,KAAK,MAAM,cAAc,IAAI,cAAc,EAAE,CAAC;QAC5C,IAAI,cAAc,KAAK,cAAc;YAAE,OAAO,GAAG,CAAC;QAClD,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,QAAiB;IACnE,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE/B,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG;QACrB,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;KAC7D,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,CAC1B,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,EACzE,kBAAkB,CACnB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../src/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/ci-alignment.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { RepoContext } from './repo-context.js';
|
|
1
|
+
import type { RepoContext, WorkflowCommand } from './repo-context.js';
|
|
2
2
|
import type { PromptCiIssue } from './types.js';
|
|
3
|
+
/** Collects all distinct package managers mentioned across all CI commands. */
|
|
4
|
+
export declare function collectCiPackageManagers(commands: WorkflowCommand[]): Set<string>;
|
|
3
5
|
/**
|
|
4
6
|
* Entry point for the CI and Workflow Alignment detector.
|
|
5
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-alignment.d.ts","sourceRoot":"","sources":["../src/ci-alignment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ci-alignment.d.ts","sourceRoot":"","sources":["../src/ci-alignment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAC;AAgHjE,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CASjF;AAoPD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAQvE"}
|
package/dist/ci-alignment.js
CHANGED
|
@@ -99,7 +99,7 @@ function extractPackageManager(command) {
|
|
|
99
99
|
return match ? match[1] : null;
|
|
100
100
|
}
|
|
101
101
|
/** Collects all distinct package managers mentioned across all CI commands. */
|
|
102
|
-
function collectCiPackageManagers(commands) {
|
|
102
|
+
export function collectCiPackageManagers(commands) {
|
|
103
103
|
const pms = new Set();
|
|
104
104
|
for (const wc of commands) {
|
|
105
105
|
for (const segment of splitCommand(wc.command)) {
|
|
@@ -198,6 +198,13 @@ function checkCiPackageManagerMismatch(context) {
|
|
|
198
198
|
const { workflows, files, packageJson } = context;
|
|
199
199
|
if (workflows.files.length === 0)
|
|
200
200
|
return [];
|
|
201
|
+
// pcic-1ik0.5: when package.json or a lockfile names the package manager,
|
|
202
|
+
// the manifest check (manifest-consistency.ts) already reports every file
|
|
203
|
+
// that uses another one, and says when CI agrees with the manifest. Firing
|
|
204
|
+
// here too reported one mismatch twice. This check covers only the repos
|
|
205
|
+
// where CI is the sole evidence of the package manager.
|
|
206
|
+
if (packageJson.packageManagerName !== 'unknown')
|
|
207
|
+
return [];
|
|
201
208
|
const ciPms = collectCiPackageManagers(workflows.commands);
|
|
202
209
|
if (ciPms.size === 0)
|
|
203
210
|
return [];
|
package/dist/ci-alignment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-alignment.js","sourceRoot":"","sources":["../src/ci-alignment.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ci-alignment.js","sourceRoot":"","sources":["../src/ci-alignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the text around a documented command says about where and how it is run
|
|
3
|
+
* (pcic-1ik0.2, issue #157).
|
|
4
|
+
*
|
|
5
|
+
* A script the root manifest lacks is often defined in the package the text
|
|
6
|
+
* points at ("From `packages/docs/`:", a "Site (from `site/` directory)"
|
|
7
|
+
* heading). The text that counts is narrow on purpose: the command's own line,
|
|
8
|
+
* the sentence or list lead-in that introduces it, the `#` comment lines above
|
|
9
|
+
* it in its block, and the nearest heading. Anything wider silences real
|
|
10
|
+
* findings.
|
|
11
|
+
*
|
|
12
|
+
* Whether a script rewrite may be applied unseen is a different question and is
|
|
13
|
+
* default-deny: see `cautionary` and the single-package rule in command-validity.ts.
|
|
14
|
+
*
|
|
15
|
+
* Pure text work: nothing here touches the filesystem. The detector resolves the
|
|
16
|
+
* directory tokens against the repository.
|
|
17
|
+
*/
|
|
18
|
+
/** Per-line structure of one document: where the fences are, so a `# comment` in a block is not a heading. */
|
|
19
|
+
export type LineStructure = {
|
|
20
|
+
lines: readonly string[];
|
|
21
|
+
/** `inFence[n - 1]`: line `n` is a fence marker or sits inside a fenced block (closed or not). */
|
|
22
|
+
inFence: readonly boolean[];
|
|
23
|
+
/** Content line number -> the line number of the opening fence of its block. */
|
|
24
|
+
opener: ReadonlyMap<number, number>;
|
|
25
|
+
};
|
|
26
|
+
export declare function lineStructure(content: string): LineStructure;
|
|
27
|
+
/** Whether line `n` (1-based) is a heading. */
|
|
28
|
+
export declare function isHeadingLine(s: LineStructure, n: number): boolean;
|
|
29
|
+
/** The nearest heading at or above line `n`, as a line number. */
|
|
30
|
+
export declare function nearestHeading(s: LineStructure, n: number): number | undefined;
|
|
31
|
+
/** The nearest heading at or above line `n` and every heading above it of a lower level (its parents), nearest first. */
|
|
32
|
+
export declare function headingChain(s: LineStructure, n: number): number[];
|
|
33
|
+
/** Straight quotes in place of the curly ones, so a marker is found whichever apostrophe the author typed. */
|
|
34
|
+
export declare function normalizeQuotes(text: string): string;
|
|
35
|
+
export type CommandContext = {
|
|
36
|
+
/**
|
|
37
|
+
* Text that may name the directory the command runs from: its own line, the
|
|
38
|
+
* paragraph or list lead-in that introduces it, the comment lines above it in
|
|
39
|
+
* its block, the nearest heading (for a command written in a heading, the
|
|
40
|
+
* paragraph under it), the list items that enclose it, a `<details>` summary and
|
|
41
|
+
* a table's header row.
|
|
42
|
+
*/
|
|
43
|
+
text: string[];
|
|
44
|
+
/**
|
|
45
|
+
* A cautionary or negating marker anywhere that frames the command: its whole heading chain, whole block
|
|
46
|
+
* or paragraph, every enclosing list item, its table row and header, an enclosing blockquote or
|
|
47
|
+
* `<details>` summary, or a trailing comment on its own line. Wide on purpose (non-English cautions
|
|
48
|
+
* are a known gap).
|
|
49
|
+
*/
|
|
50
|
+
cautionary: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* The command's own sentence, or the sentence that introduces its block, says
|
|
53
|
+
* un-negated that it runs at the repository root and names no directory itself.
|
|
54
|
+
* A directory named in the same sentence wins over a root phrase.
|
|
55
|
+
*/
|
|
56
|
+
explicitRoot: boolean;
|
|
57
|
+
};
|
|
58
|
+
/** Splits text into sentences (and colon clauses); a terminator counts only before whitespace or the end. */
|
|
59
|
+
export declare function sentencesOf(text: string): string[];
|
|
60
|
+
/**
|
|
61
|
+
* The text that frames the command at `line` (1-based; `command` is its text).
|
|
62
|
+
* `namesDirectory` says whether a piece of text names an existing directory.
|
|
63
|
+
*/
|
|
64
|
+
export declare function commandContext(s: LineStructure, line: number, command: string, namesDirectory: (text: string) => boolean): CommandContext;
|
|
65
|
+
/** Candidate directory names in `texts`, in order, without duplicates. They are claims about the text, not yet checked against the repository. */
|
|
66
|
+
export declare function directoryTokens(texts: readonly string[]): string[];
|
|
67
|
+
//# sourceMappingURL=command-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-context.d.ts","sourceRoot":"","sources":["../src/command-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,8GAA8G;AAC9G,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,kGAAkG;IAClG,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,gFAAgF;IAChF,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAU5D;AAmBD,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED,yHAAyH;AACzH,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAWlE;AAED,8GAA8G;AAC9G,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AA4EF,6GAA6G;AAC7G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAElD;AAeD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACxC,cAAc,CAmFhB;AAYD,kJAAkJ;AAClJ,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAWlE"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the text around a documented command says about where and how it is run
|
|
3
|
+
* (pcic-1ik0.2, issue #157).
|
|
4
|
+
*
|
|
5
|
+
* A script the root manifest lacks is often defined in the package the text
|
|
6
|
+
* points at ("From `packages/docs/`:", a "Site (from `site/` directory)"
|
|
7
|
+
* heading). The text that counts is narrow on purpose: the command's own line,
|
|
8
|
+
* the sentence or list lead-in that introduces it, the `#` comment lines above
|
|
9
|
+
* it in its block, and the nearest heading. Anything wider silences real
|
|
10
|
+
* findings.
|
|
11
|
+
*
|
|
12
|
+
* Whether a script rewrite may be applied unseen is a different question and is
|
|
13
|
+
* default-deny: see `cautionary` and the single-package rule in command-validity.ts.
|
|
14
|
+
*
|
|
15
|
+
* Pure text work: nothing here touches the filesystem. The detector resolves the
|
|
16
|
+
* directory tokens against the repository.
|
|
17
|
+
*/
|
|
18
|
+
import { fencedBlocks } from './markdown-fences.js';
|
|
19
|
+
export function lineStructure(content) {
|
|
20
|
+
const lines = content.split(/\r?\n/);
|
|
21
|
+
const inFence = new Array(lines.length).fill(false);
|
|
22
|
+
const opener = new Map();
|
|
23
|
+
for (const block of fencedBlocks(content)) {
|
|
24
|
+
const last = block.closed ? block.contentStartLine + block.lines.length : lines.length;
|
|
25
|
+
for (let n = block.openLine; n <= last && n <= lines.length; n++)
|
|
26
|
+
inFence[n - 1] = true;
|
|
27
|
+
for (let n = block.contentStartLine; n < block.contentStartLine + block.lines.length; n++)
|
|
28
|
+
opener.set(n, block.openLine);
|
|
29
|
+
}
|
|
30
|
+
return { lines, inFence, opener };
|
|
31
|
+
}
|
|
32
|
+
const ATX_RE = /^ {0,3}(#{1,6})(?:\s|$)/;
|
|
33
|
+
const SETEXT_UNDERLINE_RE = /^ {0,3}(=+|-{2,})\s*$/;
|
|
34
|
+
const LIST_ITEM_RE = /^\s*(?:[-*+]|\d+[.)])\s/;
|
|
35
|
+
/** The level (1-6) of the heading at line `n`: ATX, or the text line above a setext underline. Never inside a fence. */
|
|
36
|
+
function headingLevel(s, n) {
|
|
37
|
+
if (n < 1 || n > s.lines.length || s.inFence[n - 1])
|
|
38
|
+
return undefined;
|
|
39
|
+
const text = s.lines[n - 1];
|
|
40
|
+
const atx = ATX_RE.exec(text);
|
|
41
|
+
if (atx)
|
|
42
|
+
return atx[1].length;
|
|
43
|
+
if (text.trim() === '' || LIST_ITEM_RE.test(text) || /^\s*>/.test(text))
|
|
44
|
+
return undefined;
|
|
45
|
+
const next = s.lines[n];
|
|
46
|
+
if (next === undefined || s.inFence[n])
|
|
47
|
+
return undefined;
|
|
48
|
+
const underline = SETEXT_UNDERLINE_RE.exec(next);
|
|
49
|
+
return underline ? (underline[1].startsWith('=') ? 1 : 2) : undefined;
|
|
50
|
+
}
|
|
51
|
+
/** Whether line `n` (1-based) is a heading. */
|
|
52
|
+
export function isHeadingLine(s, n) {
|
|
53
|
+
return headingLevel(s, n) !== undefined;
|
|
54
|
+
}
|
|
55
|
+
/** The nearest heading at or above line `n`, as a line number. */
|
|
56
|
+
export function nearestHeading(s, n) {
|
|
57
|
+
for (let i = Math.min(n, s.lines.length); i >= 1; i--)
|
|
58
|
+
if (isHeadingLine(s, i))
|
|
59
|
+
return i;
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
/** The nearest heading at or above line `n` and every heading above it of a lower level (its parents), nearest first. */
|
|
63
|
+
export function headingChain(s, n) {
|
|
64
|
+
const chain = [];
|
|
65
|
+
let level = 7;
|
|
66
|
+
for (let i = Math.min(n, s.lines.length); i >= 1 && level > 1; i--) {
|
|
67
|
+
const l = headingLevel(s, i);
|
|
68
|
+
if (l !== undefined && l < level) {
|
|
69
|
+
chain.push(i);
|
|
70
|
+
level = l;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return chain;
|
|
74
|
+
}
|
|
75
|
+
/** Straight quotes in place of the curly ones, so a marker is found whichever apostrophe the author typed. */
|
|
76
|
+
export function normalizeQuotes(text) {
|
|
77
|
+
return text.replace(/[‘’ʼ′]/g, "'").replace(/[“”]/g, '"');
|
|
78
|
+
}
|
|
79
|
+
const ROOT_RE = /\b(?:at|in|from|on|under)\s+(?:the\s+)?(?:(?:repo(?:sitory)?|project|workspace|monorepo)\s+)?root\b|\b(?:repo(?:sitory)?|project|workspace|monorepo)\s+root\b|\broot\s+(?:directory|folder|of\s+(?:the\s+)?(?:repo(?:sitory)?|project|monorepo))\b/i;
|
|
80
|
+
const NEGATION_RE = /\b(?:not|never|without|instead\s+of|rather\s+than|other\s+than|except|unlike)\b|n't\b/i;
|
|
81
|
+
/** Words and marks that say a command is shown as something not to do. Applied to text with straight quotes. */
|
|
82
|
+
const CAUTION_RE = /\b(?:don'?t|do\s+not|doesn'?t|never|avoid|wrong|bad|incorrect|invalid|broken|deprecated|outdated|obsolete|legacy|old|removed|renamed|anti-?pattern|typo|mistakes?|warning|should\s+not|shouldn'?t|must\s+not|can'?t|cannot|fails?|failing|instead\s+of|no\s+longer|gone|previously|dropped|not\s+(?:this|that|like\s+this|recommended|to))\b|[❌✗✘✖⚠\u{1f6ab}⛔]|~~|<\/?(?:del|s|strike)>|\bbefore\s*:/iu;
|
|
83
|
+
/** Up to `max` contiguous non-blank, non-heading, non-fence lines ending at line `from` (1-based). */
|
|
84
|
+
function paragraphEndingAt(s, from, max) {
|
|
85
|
+
const out = [];
|
|
86
|
+
for (let n = from; n >= 1 && out.length < max; n--) {
|
|
87
|
+
if (s.inFence[n - 1] || isHeadingLine(s, n) || s.lines[n - 1].trim() === '')
|
|
88
|
+
break;
|
|
89
|
+
out.unshift(s.lines[n - 1]);
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
/** The sentence that introduces the list a list item belongs to: the paragraph above the list, past its other items. */
|
|
94
|
+
function listLeadIn(s, line) {
|
|
95
|
+
for (let n = line - 1; n >= 1 && line - n <= 40; n--) {
|
|
96
|
+
if (s.inFence[n - 1] || isHeadingLine(s, n))
|
|
97
|
+
return [];
|
|
98
|
+
const text = s.lines[n - 1];
|
|
99
|
+
if (text.trim() === '' || LIST_ITEM_RE.test(text) || /^\s{2,}\S/.test(text))
|
|
100
|
+
continue;
|
|
101
|
+
return paragraphEndingAt(s, n, 3);
|
|
102
|
+
}
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
function indentOf(text) {
|
|
106
|
+
return /^\s*/.exec(text)[0].replace(/\t/g, ' ').length;
|
|
107
|
+
}
|
|
108
|
+
/** The list items that enclose line `from` (a list item, or a line or block nested under one), nearest first. */
|
|
109
|
+
function ancestorListItems(s, from) {
|
|
110
|
+
const out = [];
|
|
111
|
+
let indent = indentOf(s.lines[from - 1] ?? '');
|
|
112
|
+
for (let n = from - 1; n >= 1 && from - n <= 200 && indent > 0; n--) {
|
|
113
|
+
if (s.inFence[n - 1] || isHeadingLine(s, n))
|
|
114
|
+
continue;
|
|
115
|
+
const text = s.lines[n - 1];
|
|
116
|
+
if (LIST_ITEM_RE.test(text) && indentOf(text) < indent) {
|
|
117
|
+
out.push(text);
|
|
118
|
+
indent = indentOf(text);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
/** Contiguous lines around `line` that satisfy `keep`, up to 60 each way (a table, a blockquote). */
|
|
124
|
+
function runOfLines(s, line, keep) {
|
|
125
|
+
let first = line;
|
|
126
|
+
while (first > 1 && line - first < 60 && keep(s.lines[first - 2]))
|
|
127
|
+
first--;
|
|
128
|
+
let last = line;
|
|
129
|
+
while (last < s.lines.length && last - line < 60 && keep(s.lines[last]))
|
|
130
|
+
last++;
|
|
131
|
+
return s.lines.slice(first - 1, last);
|
|
132
|
+
}
|
|
133
|
+
/** The `<summary>` text of the `<details>` element that encloses line `from`, if any. */
|
|
134
|
+
function enclosingSummary(s, from) {
|
|
135
|
+
let depth = 0;
|
|
136
|
+
for (let n = from - 1; n >= 1 && from - n <= 300; n--) {
|
|
137
|
+
const text = s.lines[n - 1];
|
|
138
|
+
if (/<\/details>/i.test(text))
|
|
139
|
+
depth++;
|
|
140
|
+
if (/<details\b/i.test(text)) {
|
|
141
|
+
if (depth > 0) {
|
|
142
|
+
depth--;
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const block = s.lines.slice(n - 1, Math.min(s.lines.length, n + 6)).join('\n');
|
|
146
|
+
return /<summary[\s\S]*?<\/summary>/i.exec(block)?.slice(0, 1) ?? [text];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
/** Splits text into sentences (and colon clauses); a terminator counts only before whitespace or the end. */
|
|
152
|
+
export function sentencesOf(text) {
|
|
153
|
+
return (text.match(/[^.!?;:]+(?:[.!?;:]+(?=\s|$)|$)/g) ?? [text]).map((x) => x.trim()).filter(Boolean);
|
|
154
|
+
}
|
|
155
|
+
/** The sentence of `lineText` that holds `command` (the whole line when it is not found in it). */
|
|
156
|
+
function sentenceHolding(lineText, command) {
|
|
157
|
+
const at = lineText.indexOf(command);
|
|
158
|
+
if (at === -1)
|
|
159
|
+
return lineText;
|
|
160
|
+
let cursor = 0;
|
|
161
|
+
for (const raw of lineText.match(/[^.!?;:]+(?:[.!?;:]+(?=\s|$)|$)/g) ?? [lineText]) {
|
|
162
|
+
const end = cursor + raw.length;
|
|
163
|
+
if (at < end)
|
|
164
|
+
return raw.trim();
|
|
165
|
+
cursor = end;
|
|
166
|
+
}
|
|
167
|
+
return lineText;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The text that frames the command at `line` (1-based; `command` is its text).
|
|
171
|
+
* `namesDirectory` says whether a piece of text names an existing directory.
|
|
172
|
+
*/
|
|
173
|
+
export function commandContext(s, line, command, namesDirectory) {
|
|
174
|
+
const own = s.lines[line - 1] ?? '';
|
|
175
|
+
const text = [own];
|
|
176
|
+
const open = s.opener.get(line);
|
|
177
|
+
const rootCandidates = [];
|
|
178
|
+
let anchor = line;
|
|
179
|
+
let introduction = [];
|
|
180
|
+
if (open !== undefined) {
|
|
181
|
+
anchor = open;
|
|
182
|
+
for (let n = line - 1; n > open; n--) {
|
|
183
|
+
const above = s.lines[n - 1].trim();
|
|
184
|
+
if (!above.startsWith('#'))
|
|
185
|
+
break;
|
|
186
|
+
text.push(above);
|
|
187
|
+
}
|
|
188
|
+
// The blank lines between an introducing sentence and its block do not break the link.
|
|
189
|
+
let intro = open - 1;
|
|
190
|
+
while (intro >= 1 && s.lines[intro - 1].trim() === '')
|
|
191
|
+
intro--;
|
|
192
|
+
introduction = paragraphEndingAt(s, intro, 4);
|
|
193
|
+
// A trailing comment on the command line can say where it runs (`npm run dev # at the repo root`).
|
|
194
|
+
rootCandidates.push(own);
|
|
195
|
+
}
|
|
196
|
+
else if (LIST_ITEM_RE.test(own)) {
|
|
197
|
+
introduction = listLeadIn(s, line);
|
|
198
|
+
rootCandidates.push(sentenceHolding(own, command));
|
|
199
|
+
}
|
|
200
|
+
else if (!isHeadingLine(s, line)) {
|
|
201
|
+
introduction = paragraphEndingAt(s, line - 1, 3);
|
|
202
|
+
rootCandidates.push(sentenceHolding(own, command));
|
|
203
|
+
}
|
|
204
|
+
text.push(...introduction);
|
|
205
|
+
// What encloses the command: the list items it sits under, a <details> summary, a table's header row.
|
|
206
|
+
const around = [...ancestorListItems(s, anchor), ...enclosingSummary(s, anchor)];
|
|
207
|
+
if (own.includes('|') && open === undefined) {
|
|
208
|
+
const table = runOfLines(s, line, (t) => t.includes('|'));
|
|
209
|
+
around.push(...table.slice(0, 2));
|
|
210
|
+
}
|
|
211
|
+
text.push(...around);
|
|
212
|
+
const lastIntroSentence = sentencesOf(introduction.join(' ')).pop();
|
|
213
|
+
if (lastIntroSentence)
|
|
214
|
+
rootCandidates.push(lastIntroSentence);
|
|
215
|
+
const headingLines = headingChain(s, anchor);
|
|
216
|
+
const nearest = headingLines[0];
|
|
217
|
+
if (nearest !== undefined) {
|
|
218
|
+
text.push(s.lines[nearest - 1]);
|
|
219
|
+
rootCandidates.push(s.lines[nearest - 1]);
|
|
220
|
+
}
|
|
221
|
+
if (isHeadingLine(s, line)) {
|
|
222
|
+
let started = false;
|
|
223
|
+
for (let n = line + 1; n <= s.lines.length && n <= line + 8; n++) {
|
|
224
|
+
if (s.inFence[n - 1] || isHeadingLine(s, n))
|
|
225
|
+
break;
|
|
226
|
+
const below = s.lines[n - 1];
|
|
227
|
+
if (below.trim() === '') {
|
|
228
|
+
if (started)
|
|
229
|
+
break;
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
started = true;
|
|
233
|
+
text.push(below);
|
|
234
|
+
const first = sentencesOf(below)[0];
|
|
235
|
+
if (first)
|
|
236
|
+
rootCandidates.push(first);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Caution is wide on purpose (RULE 2): the whole block, paragraph, table, blockquote and every ancestor heading.
|
|
240
|
+
const scope = [...text, ...headingLines.map((n) => s.lines[n - 1])];
|
|
241
|
+
if (open !== undefined) {
|
|
242
|
+
scope.push(s.lines[open - 1]);
|
|
243
|
+
let n = open + 1;
|
|
244
|
+
while (n <= s.lines.length && s.opener.get(n) === open)
|
|
245
|
+
scope.push(s.lines[n++ - 1]);
|
|
246
|
+
if (n <= s.lines.length && s.inFence[n - 1])
|
|
247
|
+
scope.push(s.lines[n - 1]);
|
|
248
|
+
}
|
|
249
|
+
else if (!isHeadingLine(s, line)) {
|
|
250
|
+
scope.push(...paragraphEndingAt(s, line, 30));
|
|
251
|
+
for (let n = line + 1; n <= s.lines.length && n <= line + 30; n++) {
|
|
252
|
+
if (s.inFence[n - 1] || isHeadingLine(s, n) || s.lines[n - 1].trim() === '')
|
|
253
|
+
break;
|
|
254
|
+
scope.push(s.lines[n - 1]);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (/^\s*>/.test(own))
|
|
258
|
+
scope.push(...runOfLines(s, line, (t) => /^\s*>/.test(t)));
|
|
259
|
+
if (own.includes('|') && open === undefined)
|
|
260
|
+
scope.push(...runOfLines(s, line, (t) => t.includes('|')));
|
|
261
|
+
const cautionary = CAUTION_RE.test(normalizeQuotes(scope.join('\n')));
|
|
262
|
+
const explicitRoot = rootCandidates.some((sentence) => {
|
|
263
|
+
const plain = normalizeQuotes(sentence);
|
|
264
|
+
return ROOT_RE.test(plain) && !NEGATION_RE.test(plain) && !namesDirectory(sentence);
|
|
265
|
+
});
|
|
266
|
+
return { text, cautionary, explicitRoot };
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* A backticked token, a bare token ending in `/`, or the argument of `cd`: the
|
|
270
|
+
* ways prose names a directory. A bare `dir/` that runs into a word (`site/index.html`)
|
|
271
|
+
* or a glob (`packages/*`) is a path, not a directory name.
|
|
272
|
+
*/
|
|
273
|
+
const DIR_TOKEN_RE = /`([^`\s]+)`|(?<![\w./@-])((?:\.{1,2}\/)?[\w@.-]+(?:\/[\w@.-]+)*\/)(?![\w@.*?[{-])|\bcd\s+(?:\.\/)?([\w@.-]+(?:\/[\w@.-]+)*)|\b(?:from|in|inside|under|within|into)\s+(?:the\s+)?([\w@.-]+(?:\/[\w@.-]+)*)/gi;
|
|
274
|
+
const NOT_A_DIR_RE = /[*?<>{}[\]$~%\\]/;
|
|
275
|
+
const MAX_TOKENS = 24;
|
|
276
|
+
/** Candidate directory names in `texts`, in order, without duplicates. They are claims about the text, not yet checked against the repository. */
|
|
277
|
+
export function directoryTokens(texts) {
|
|
278
|
+
const seen = new Set();
|
|
279
|
+
for (const text of texts) {
|
|
280
|
+
for (const m of text.matchAll(DIR_TOKEN_RE)) {
|
|
281
|
+
const token = (m[1] ?? m[2] ?? m[3] ?? m[4] ?? '').replace(/^\.\//, '').replace(/\/+$/, '');
|
|
282
|
+
if (!token || token === '.' || NOT_A_DIR_RE.test(token))
|
|
283
|
+
continue;
|
|
284
|
+
seen.add(token);
|
|
285
|
+
if (seen.size >= MAX_TOKENS)
|
|
286
|
+
return [...seen];
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return [...seen];
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=command-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-context.js","sourceRoot":"","sources":["../src/command-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-validity.d.ts","sourceRoot":"","sources":["../src/command-validity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"command-validity.d.ts","sourceRoot":"","sources":["../src/command-validity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA6iBhD,8FAA8F;AAC9F,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,CAK3C,CAAC;AAkyBH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAG3E;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5C,CAAC;AAQF,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAOrE"}
|