@promptci/core 0.2.2 → 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/ai-config.d.ts +13 -6
- package/dist/ai-config.d.ts.map +1 -1
- package/dist/ai-config.js +25 -78
- package/dist/ai-config.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/close-match.d.ts +97 -0
- package/dist/close-match.d.ts.map +1 -0
- package/dist/close-match.js +215 -0
- package/dist/close-match.js.map +1 -0
- 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 +510 -32
- package/dist/command-validity.js.map +1 -1
- package/dist/context-optimizer.d.ts.map +1 -1
- package/dist/context-optimizer.js +9 -2
- package/dist/context-optimizer.js.map +1 -1
- package/dist/dead-references.d.ts +14 -1
- package/dist/dead-references.d.ts.map +1 -1
- package/dist/dead-references.js +264 -17
- package/dist/dead-references.js.map +1 -1
- package/dist/dependency-staleness.d.ts.map +1 -1
- package/dist/dependency-staleness.js +24 -38
- package/dist/dependency-staleness.js.map +1 -1
- package/dist/detectors.js +1 -1
- package/dist/detectors.js.map +1 -1
- package/dist/discovery.d.ts +138 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +569 -0
- package/dist/discovery.js.map +1 -0
- 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/fix-engine.d.ts.map +1 -1
- package/dist/fix-engine.js +75 -1
- package/dist/fix-engine.js.map +1 -1
- package/dist/frameworks/dotnet.d.ts.map +1 -1
- package/dist/frameworks/dotnet.js +10 -11
- package/dist/frameworks/dotnet.js.map +1 -1
- package/dist/frameworks/go.d.ts.map +1 -1
- package/dist/frameworks/go.js +8 -4
- package/dist/frameworks/go.js.map +1 -1
- package/dist/frameworks/nextjs.d.ts.map +1 -1
- package/dist/frameworks/nextjs.js +8 -17
- package/dist/frameworks/nextjs.js.map +1 -1
- package/dist/frameworks/python.d.ts.map +1 -1
- package/dist/frameworks/python.js +5 -3
- package/dist/frameworks/python.js.map +1 -1
- package/dist/frameworks/rust.d.ts.map +1 -1
- package/dist/frameworks/rust.js +3 -3
- package/dist/frameworks/rust.js.map +1 -1
- package/dist/frameworks/unity.d.ts.map +1 -1
- package/dist/frameworks/unity.js +6 -5
- package/dist/frameworks/unity.js.map +1 -1
- package/dist/gitignore.d.ts +31 -2
- package/dist/gitignore.d.ts.map +1 -1
- package/dist/gitignore.js +33 -8
- package/dist/gitignore.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/hooks-settings-detector.d.ts.map +1 -1
- package/dist/hooks-settings-detector.js +5 -1
- package/dist/hooks-settings-detector.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/known-paths.d.ts +82 -0
- package/dist/known-paths.d.ts.map +1 -0
- package/dist/known-paths.js +152 -0
- package/dist/known-paths.js.map +1 -0
- package/dist/makefile.d.ts.map +1 -1
- package/dist/makefile.js +17 -13
- package/dist/makefile.js.map +1 -1
- package/dist/manifest-consistency.d.ts +1 -1
- package/dist/manifest-consistency.d.ts.map +1 -1
- package/dist/manifest-consistency.js +18 -8
- 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/mcp-config-detector.d.ts.map +1 -1
- package/dist/mcp-config-detector.js +5 -1
- package/dist/mcp-config-detector.js.map +1 -1
- package/dist/project-type.d.ts +2 -1
- package/dist/project-type.d.ts.map +1 -1
- package/dist/project-type.js +36 -48
- package/dist/project-type.js.map +1 -1
- package/dist/prompt-cache.d.ts.map +1 -1
- package/dist/prompt-cache.js +13 -2
- package/dist/prompt-cache.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 +9 -0
- package/dist/repo-context.d.ts.map +1 -1
- package/dist/repo-context.js +35 -41
- package/dist/repo-context.js.map +1 -1
- package/dist/repo-tree.d.ts +163 -9
- package/dist/repo-tree.d.ts.map +1 -1
- package/dist/repo-tree.js +226 -34
- package/dist/repo-tree.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +6 -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/sarif.d.ts +27 -0
- package/dist/sarif.d.ts.map +1 -0
- package/dist/sarif.js +357 -0
- package/dist/sarif.js.map +1 -0
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +8 -2
- package/dist/scan.js.map +1 -1
- package/dist/scanner.d.ts +4 -3
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +36 -77
- package/dist/scanner.js.map +1 -1
- package/dist/security-pack.d.ts.map +1 -1
- package/dist/security-pack.js +117 -35
- package/dist/security-pack.js.map +1 -1
- package/dist/skill-supply-chain.d.ts.map +1 -1
- package/dist/skill-supply-chain.js +29 -19
- package/dist/skill-supply-chain.js.map +1 -1
- package/dist/skills-detector.d.ts.map +1 -1
- package/dist/skills-detector.js +11 -3
- package/dist/skills-detector.js.map +1 -1
- package/dist/token-estimates.d.ts +42 -0
- package/dist/token-estimates.d.ts.map +1 -0
- package/dist/token-estimates.js +200 -0
- package/dist/token-estimates.js.map +1 -0
- package/dist/types.d.ts +99 -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 +5 -2
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance for the checks (pcic-kvv3.1, issue #162).
|
|
3
|
+
*
|
|
4
|
+
* Every check encodes a claim: about a repository, about a tool, or about how a
|
|
5
|
+
* model behaves. A provenance record says which, where the claim comes from, which
|
|
6
|
+
* tools it is about and when it was last verified, so that a vendor change can be
|
|
7
|
+
* traced to the checks it touches and a check nobody re-verified can be seen as such.
|
|
8
|
+
*
|
|
9
|
+
* Records are plain data, kept in `packages/core/src/provenance/` next to the
|
|
10
|
+
* detectors they describe, and exported from `@promptci/core` so a consumer can
|
|
11
|
+
* show "applies to" and "last verified" per check. Nothing here runs at scan time
|
|
12
|
+
* and nothing here touches the network: sources are URLs a person or an agent read
|
|
13
|
+
* on the stated date, never fetched by the scanner.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* - `repo-fact`: a statement about the repository being scanned (a file does not
|
|
17
|
+
* exist, a script is not defined). Does not go stale, so it is exempt from expiry.
|
|
18
|
+
* - `tool-fact`: how an AI coding tool behaves (which files it reads, a size limit,
|
|
19
|
+
* a config format). Goes stale when the vendor ships.
|
|
20
|
+
* - `opinion`: advice about how to write instructions. Goes stale as models improve.
|
|
21
|
+
*/
|
|
22
|
+
export type ProvenanceKind = 'repo-fact' | 'tool-fact' | 'opinion';
|
|
23
|
+
/** The tools a claim can be about. A `repo-fact` applies to `all`. */
|
|
24
|
+
export declare const PROVENANCE_TOOLS: readonly ["claude-code", "codex", "cursor", "copilot", "gemini-cli", "windsurf"];
|
|
25
|
+
export type ProvenanceTool = (typeof PROVENANCE_TOOLS)[number];
|
|
26
|
+
/**
|
|
27
|
+
* How a source bears on the claim, as read on `readOn`.
|
|
28
|
+
*
|
|
29
|
+
* - `supports`: the page says what the claim says. Only this makes a `tool-fact` sourced.
|
|
30
|
+
* - `contradicts`: the page says the opposite, or something that makes the claim false.
|
|
31
|
+
* - `context`: related reading. It does not support the claim and never counts as a source.
|
|
32
|
+
*/
|
|
33
|
+
export type SourceStance = 'supports' | 'contradicts' | 'context';
|
|
34
|
+
/**
|
|
35
|
+
* What a record stands on, derived from its fields (see `provenanceStatus`):
|
|
36
|
+
* `repo-fact` (needs nothing), `sourced` (a supporting page, or an eval),
|
|
37
|
+
* `unverified` (nothing supports it; it rests on judgement), `contested` (one
|
|
38
|
+
* page supports part of it and another contradicts it) or `refuted` (the only
|
|
39
|
+
* on-point source says the opposite: the check is probably wrong).
|
|
40
|
+
*/
|
|
41
|
+
export type ProvenanceStatus = 'repo-fact' | 'sourced' | 'unverified' | 'contested' | 'refuted';
|
|
42
|
+
export type ProvenanceSource = {
|
|
43
|
+
/** A page that was actually read; never reconstructed from memory. */
|
|
44
|
+
url: string;
|
|
45
|
+
/** What the page is, in a few words. */
|
|
46
|
+
title: string;
|
|
47
|
+
/** `YYYY-MM-DD` the page was read. */
|
|
48
|
+
readOn: string;
|
|
49
|
+
stance: SourceStance;
|
|
50
|
+
/** What on the page bears on the claim, in one sentence. */
|
|
51
|
+
note: string;
|
|
52
|
+
};
|
|
53
|
+
export type ProvenanceThreshold = {
|
|
54
|
+
/** The constant or option, as named in the detector. */
|
|
55
|
+
name: string;
|
|
56
|
+
value: number | string;
|
|
57
|
+
unit?: string;
|
|
58
|
+
/** Where it lives, `file.ts:CONSTANT`. */
|
|
59
|
+
where: string;
|
|
60
|
+
/** What supports the number, or `unverified`. An arbitrary but declared heuristic cut-off is `unverified`. */
|
|
61
|
+
source: ProvenanceSource | 'unverified';
|
|
62
|
+
};
|
|
63
|
+
export type CheckProvenance = {
|
|
64
|
+
/** Stable id: the detector id, or `<detector-id>/<family>` when one detector rests on several claims. */
|
|
65
|
+
id: string;
|
|
66
|
+
/** The `DETECTORS` id (packages/core/src/detectors.ts) this record belongs to. */
|
|
67
|
+
detector: string;
|
|
68
|
+
/** Plain-words name of the check family. */
|
|
69
|
+
title: string;
|
|
70
|
+
kind: ProvenanceKind;
|
|
71
|
+
/** One sentence the check depends on, written so it can be false. */
|
|
72
|
+
claim: string;
|
|
73
|
+
/**
|
|
74
|
+
* The AI tools the claim is about; `all` when it holds for every AI tool (or the
|
|
75
|
+
* scanned repository), `n/a` when it is not about an AI tool at all (a package
|
|
76
|
+
* manager, a language, a framework, git).
|
|
77
|
+
*/
|
|
78
|
+
appliesTo: readonly ProvenanceTool[] | 'all' | 'n/a';
|
|
79
|
+
/**
|
|
80
|
+
* Pages read for this claim. A `tool-fact` is sourced only by a `supports`
|
|
81
|
+
* source; `context` pages are related reading and `contradicts` pages mean the
|
|
82
|
+
* claim is `refuted`. Stances are judged against `appliesTo`.
|
|
83
|
+
*/
|
|
84
|
+
sources: readonly ProvenanceSource[];
|
|
85
|
+
/**
|
|
86
|
+
* For an opinion: an eval (a path or URL) that shows the advice changes what an
|
|
87
|
+
* agent does. A documentation page is not an eval: an opinion with none is `unverified`.
|
|
88
|
+
*/
|
|
89
|
+
evals?: readonly string[];
|
|
90
|
+
/**
|
|
91
|
+
* True when nothing supports the claim: no `supports` source for a tool-fact, no
|
|
92
|
+
* eval for an opinion. A result, not a failure: the check rests on judgement and
|
|
93
|
+
* stays visible until someone sources it. May list `context` sources (related reading).
|
|
94
|
+
*/
|
|
95
|
+
unverified?: true;
|
|
96
|
+
/**
|
|
97
|
+
* True when the only on-point source contradicts the claim. It needs at least one
|
|
98
|
+
* `contradicts` source and no `supports` one; the check is reviewed by a person,
|
|
99
|
+
* never retired automatically.
|
|
100
|
+
*/
|
|
101
|
+
refuted?: true;
|
|
102
|
+
/**
|
|
103
|
+
* Something a reader of the record should know that is not a source: a banner on
|
|
104
|
+
* the vendor's page saying the product is being replaced, a caveat on a claim.
|
|
105
|
+
*/
|
|
106
|
+
caveat?: string;
|
|
107
|
+
/** Every numeric threshold the check uses, each with its own source. */
|
|
108
|
+
thresholds?: readonly ProvenanceThreshold[];
|
|
109
|
+
lastVerified: {
|
|
110
|
+
/** `YYYY-MM-DD`. */
|
|
111
|
+
date: string;
|
|
112
|
+
/** Who or what verified it: a person, or the agent run that read the sources. */
|
|
113
|
+
by: string;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnE,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,kFAAmF,CAAC;AACjH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,8GAA8G;IAC9G,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,yGAAyG;IACzG,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;IACrD;;;;OAIG;IACH,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,YAAY,EAAE;QACZ,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,iFAAiF;QACjF,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provenance for the checks (pcic-kvv3.1, issue #162).
|
|
3
|
+
*
|
|
4
|
+
* Every check encodes a claim: about a repository, about a tool, or about how a
|
|
5
|
+
* model behaves. A provenance record says which, where the claim comes from, which
|
|
6
|
+
* tools it is about and when it was last verified, so that a vendor change can be
|
|
7
|
+
* traced to the checks it touches and a check nobody re-verified can be seen as such.
|
|
8
|
+
*
|
|
9
|
+
* Records are plain data, kept in `packages/core/src/provenance/` next to the
|
|
10
|
+
* detectors they describe, and exported from `@promptci/core` so a consumer can
|
|
11
|
+
* show "applies to" and "last verified" per check. Nothing here runs at scan time
|
|
12
|
+
* and nothing here touches the network: sources are URLs a person or an agent read
|
|
13
|
+
* on the stated date, never fetched by the scanner.
|
|
14
|
+
*/
|
|
15
|
+
/** The tools a claim can be about. A `repo-fact` applies to `all`. */
|
|
16
|
+
export const PROVENANCE_TOOLS = ['claude-code', 'codex', 'cursor', 'copilot', 'gemini-cli', 'windsurf'];
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provenance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC"}
|
package/dist/repo-context.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AiConfigFiles } from './ai-config.js';
|
|
|
2
2
|
import type { ManifestData } from './manifest-consistency.js';
|
|
3
3
|
import type { WorkspaceManifest } from './workspace-manifests.js';
|
|
4
4
|
import type { MakefileFacts } from './makefile.js';
|
|
5
|
+
import { RepoTree } from './repo-tree.js';
|
|
5
6
|
import type { InstructionFile, ProjectType, ScanInput, ScanMetrics } from './types.js';
|
|
6
7
|
import type { CustomRule } from './custom-rules.js';
|
|
7
8
|
export type PackageManagerName = 'pnpm' | 'npm' | 'yarn' | 'bun' | 'unknown';
|
|
@@ -41,6 +42,14 @@ export type WorkflowFacts = {
|
|
|
41
42
|
};
|
|
42
43
|
export type RepoContext = {
|
|
43
44
|
repoRoot: string;
|
|
45
|
+
/**
|
|
46
|
+
* The scan's containment-safe view of the repository (pcic-e6xa): the one
|
|
47
|
+
* way a detector asks whether a path exists, and the carrier of a caller's
|
|
48
|
+
* `knownPaths` inventory (pcic-csf). Built once here so every detector
|
|
49
|
+
* shares its directory listings. Optional so hand-built contexts keep
|
|
50
|
+
* type-checking; `treeFor(context)` gives them a plain one over `repoRoot`.
|
|
51
|
+
*/
|
|
52
|
+
tree?: RepoTree;
|
|
44
53
|
files: InstructionFile[];
|
|
45
54
|
projectType: ProjectType;
|
|
46
55
|
manifests: ManifestData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-context.d.ts","sourceRoot":"","sources":["../src/repo-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"repo-context.d.ts","sourceRoot":"","sources":["../src/repo-context.ts"],"names":[],"mappings":"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"}
|
package/dist/repo-context.js
CHANGED
|
@@ -8,8 +8,10 @@ import { discoverWorkspaceManifests } from './workspace-manifests.js';
|
|
|
8
8
|
import { readMakefile } from './makefile.js';
|
|
9
9
|
import { isOnDemandFileType } from './types.js';
|
|
10
10
|
import { realPathWithinRoot } from './path-containment.js';
|
|
11
|
+
import { RepoTree } from './repo-tree.js';
|
|
11
12
|
import { budgetForTargetModel } from './model-budgets.js';
|
|
12
13
|
import { loadCustomRules } from './custom-rules.js';
|
|
14
|
+
import { COMPOSITE_ACTION_GLOBS } from './discovery.js';
|
|
13
15
|
const LOCKFILES = [
|
|
14
16
|
'pnpm-lock.yaml',
|
|
15
17
|
'package-lock.json',
|
|
@@ -46,19 +48,14 @@ async function readRootFile(repoRoot, relativePath) {
|
|
|
46
48
|
return undefined;
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
catch {
|
|
58
|
-
// absent file
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return found;
|
|
51
|
+
/**
|
|
52
|
+
* pcic-e6xa: which of these fixed root names the repository holds, asked
|
|
53
|
+
* through the tree so a committed link out of the repository cannot make the
|
|
54
|
+
* answer depend on a path outside the scan root — and so a caller's inventory
|
|
55
|
+
* answers it when the files are not on disk (pcic-csf).
|
|
56
|
+
*/
|
|
57
|
+
function existingRootFiles(tree, relativePaths) {
|
|
58
|
+
return relativePaths.filter((rel) => tree.isFile(rel));
|
|
62
59
|
}
|
|
63
60
|
function packageManagerFromString(packageManager) {
|
|
64
61
|
if (!packageManager)
|
|
@@ -87,12 +84,9 @@ function packageManagerFromLockfiles(lockfiles) {
|
|
|
87
84
|
function stringRecord(value) {
|
|
88
85
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
89
86
|
return {};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
out[key] = v;
|
|
94
|
-
}
|
|
95
|
-
return out;
|
|
87
|
+
// fromEntries defines own properties: assigning `out['__proto__'] = v` would
|
|
88
|
+
// set the prototype instead and drop an entry of that name.
|
|
89
|
+
return Object.fromEntries(Object.entries(value).filter((entry) => typeof entry[1] === 'string'));
|
|
96
90
|
}
|
|
97
91
|
export function parsePackageJsonFacts(raw, lockfiles) {
|
|
98
92
|
const facts = emptyPackageJsonFacts();
|
|
@@ -162,17 +156,16 @@ function extractWorkflowCommands(filePath, content) {
|
|
|
162
156
|
}
|
|
163
157
|
return commands;
|
|
164
158
|
}
|
|
165
|
-
async function readWorkflowFacts(repoRoot, exclude = []) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
catch {
|
|
159
|
+
async function readWorkflowFacts(repoRoot, tree, exclude = []) {
|
|
160
|
+
// pcic-e6xa: the workflow directory is a fixed name, listed through the tree
|
|
161
|
+
// so a `.github/workflows` committed as a link out of the repository is not
|
|
162
|
+
// read; pcic-csf: a caller's inventory supplies it when it is not on disk.
|
|
163
|
+
const workflowDir = path.join(repoRoot, '.github', 'workflows');
|
|
164
|
+
const entries = tree.entries(workflowDir);
|
|
165
|
+
if (typeof entries === 'string') {
|
|
173
166
|
return { files: [], commands: [], sources: await readCompositeActionSources(repoRoot, exclude) };
|
|
174
167
|
}
|
|
175
|
-
const files = entries
|
|
168
|
+
const files = [...entries.values()]
|
|
176
169
|
.filter((entry) => entry.isFile() && /\.(ya?ml)$/i.test(entry.name))
|
|
177
170
|
.map((entry) => path.join(workflowDir, entry.name))
|
|
178
171
|
.sort();
|
|
@@ -204,16 +197,9 @@ async function readWorkflowFacts(repoRoot, exclude = []) {
|
|
|
204
197
|
sources,
|
|
205
198
|
};
|
|
206
199
|
}
|
|
207
|
-
/** Composite actions: a root `action.yml` and any under `.github/actions/`. */
|
|
208
|
-
const COMPOSITE_ACTION_GLOBS = [
|
|
209
|
-
'action.yml',
|
|
210
|
-
'action.yaml',
|
|
211
|
-
'.github/actions/**/action.yml',
|
|
212
|
-
'.github/actions/**/action.yaml',
|
|
213
|
-
];
|
|
214
200
|
async function readCompositeActionSources(repoRoot, exclude) {
|
|
215
201
|
const sources = [];
|
|
216
|
-
for (const rel of listFiles(repoRoot, COMPOSITE_ACTION_GLOBS)) {
|
|
202
|
+
for (const rel of listFiles(repoRoot, [...COMPOSITE_ACTION_GLOBS])) {
|
|
217
203
|
if (isExcludedPath(rel, exclude))
|
|
218
204
|
continue;
|
|
219
205
|
const abs = resolveReadableWithinRoot(repoRoot, rel);
|
|
@@ -298,7 +284,14 @@ function buildMetrics(files, onDemandFiles) {
|
|
|
298
284
|
}
|
|
299
285
|
export async function buildRepoContext(input) {
|
|
300
286
|
const repoRoot = path.resolve(input.repoPath);
|
|
301
|
-
|
|
287
|
+
// One tree per scan (pcic-e6xa): every existence check any detector makes
|
|
288
|
+
// goes through it, so listings are read once and nothing outside the root is
|
|
289
|
+
// touched. It carries the caller's file inventory when one was given (pcic-csf).
|
|
290
|
+
const tree = new RepoTree(repoRoot, {
|
|
291
|
+
...(input.knownPaths !== undefined ? { knownPaths: input.knownPaths } : {}),
|
|
292
|
+
...(input.knownPathsComplete !== undefined ? { knownPathsComplete: input.knownPathsComplete } : {}),
|
|
293
|
+
});
|
|
294
|
+
const { files: scanned, aliases: aliasFiles } = await scanFilesWithAliases({ ...input, repoPath: repoRoot }, tree);
|
|
302
295
|
// Split load-on-demand skill/agent bodies out of the always-loaded set the
|
|
303
296
|
// prose/bloat detectors consume via `context.files`. They stay available on
|
|
304
297
|
// `onDemandFiles` for reporting and suppression parsing.
|
|
@@ -324,7 +317,7 @@ export async function buildRepoContext(input) {
|
|
|
324
317
|
onDemandFiles.sort((a, b) => a.path.localeCompare(b.path));
|
|
325
318
|
let projectType = input.projectType && input.projectType !== 'auto'
|
|
326
319
|
? input.projectType
|
|
327
|
-
: await detectProjectType(repoRoot);
|
|
320
|
+
: await detectProjectType(repoRoot, tree);
|
|
328
321
|
if (projectType === 'unknown') {
|
|
329
322
|
projectType = detectProjectTypeFromContent(files);
|
|
330
323
|
}
|
|
@@ -332,13 +325,13 @@ export async function buildRepoContext(input) {
|
|
|
332
325
|
readRootFile(repoRoot, 'package.json'),
|
|
333
326
|
readRootFile(repoRoot, 'pyproject.toml'),
|
|
334
327
|
readRootFile(repoRoot, 'requirements.txt'),
|
|
335
|
-
existingRootFiles(
|
|
336
|
-
readWorkflowFacts(repoRoot, input.exclude),
|
|
328
|
+
Promise.resolve(existingRootFiles(tree, LOCKFILES)),
|
|
329
|
+
readWorkflowFacts(repoRoot, tree, input.exclude),
|
|
337
330
|
// Throws a clear CustomRulesError on malformed config, surfaced at scan time.
|
|
338
331
|
loadCustomRules(repoRoot),
|
|
339
332
|
]);
|
|
340
333
|
const workspaceDiscovery = await discoverWorkspaceManifests(repoRoot, packageJson, (posix) => isExcludedPath(posix, input.exclude ?? []));
|
|
341
|
-
const makefile = readMakefile(repoRoot, '.');
|
|
334
|
+
const makefile = readMakefile(repoRoot, '.', tree);
|
|
342
335
|
const manifests = {};
|
|
343
336
|
if (packageJson)
|
|
344
337
|
manifests.packageJson = packageJson;
|
|
@@ -351,6 +344,7 @@ export async function buildRepoContext(input) {
|
|
|
351
344
|
const modelPreset = input.targetModel ? budgetForTargetModel(input.targetModel) : undefined;
|
|
352
345
|
return {
|
|
353
346
|
repoRoot,
|
|
347
|
+
tree,
|
|
354
348
|
files,
|
|
355
349
|
projectType,
|
|
356
350
|
manifests,
|
package/dist/repo-context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-context.js","sourceRoot":"","sources":["../src/repo-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repo-context.js","sourceRoot":"","sources":["../src/repo-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAqHxD,MAAM,SAAS,GAAG;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,UAAU;CACX,CAAC;AAEF,SAAS,qBAAqB;IAC5B,OAAO;QACL,kBAAkB,EAAE,SAAS;QAC7B,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE;QACpB,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,SAAS,iBAAiB,CAAC,QAAgB,EAAE,YAAoB;IAC/D,MAAM,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,YAAoB;IAChE,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAc,EAAE,aAAuB;IAChE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,wBAAwB,CAAC,cAAkC;IAClE,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACtD,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAmB;IACtD,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,MAAM,CAAC;IACxD,IAAI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IACnD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnF,6EAA6E;IAC7E,4DAA4D;IAC5D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;AAC9H,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAuB,EAAE,SAAmB;IAChF,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAE5B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,KAAK,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,KAAK,CAAC,cAAc,GAAG,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,KAAK,CAAC,kBAAkB;QACtB,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS;YAC1D,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC;YAChD,CAAC,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1D,KAAK,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE5D,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,OAAkC,CAAC;QACvD,KAAK,CAAC,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,OAAe;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YACvD,IAAI,UAAU,IAAI,MAAM;gBAAE,MAAM;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAc,EAAE,UAAoB,EAAE;IACvF,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAClD,IAAI,EAAE,CAAC;IACV,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,SAAS,CAAC,2BAA2B;QAC9E,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7D,sEAAsE;QACtE,2EAA2E;QAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,QAAQ;QACR,OAAO;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,QAAgB,EAAE,OAAiB;IAC3E,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,SAAS;QAC3C,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa;gBAAE,SAAS;YAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAiB;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,YAAoB,EAAE,OAAe;IAClF,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa;YAAE,OAAO,SAAS,CAAC;QAClE,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,YAAY;QACZ,QAAQ,EAAE,OAAO;QACjB,OAAO;QACP,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;QACvD,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAwB,EAAE,aAAgC;IAC9E,MAAM,OAAO,GAAgB;QAC3B,0BAA0B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACtF,oBAAoB,EAAE,KAAK,CAAC,MAAM;QAClC,uBAAuB,EAAE,CAAC,GAAG,KAAK,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;aACrD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KAC/E,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC;QACjD,OAAO,CAAC,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAgB;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,6EAA6E;IAC7E,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE;QAClC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpG,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnH,2EAA2E;IAC3E,4EAA4E;IAC5E,yDAAyD;IACzD,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,MAAM,aAAa,GAAsB,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3D,IAAI,WAAW,GACb,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM;QAC/C,CAAC,CAAC,KAAK,CAAC,WAAW;QACnB,CAAC,CAAC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClG,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC;QACtC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACxC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC1C,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAChD,8EAA8E;QAC9E,eAAe,CAAC,QAAQ,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAM,0BAA0B,CACzD,QAAQ,EACR,WAAW,EACX,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CACtD,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,WAAW;QAAE,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;IACrD,IAAI,SAAS;QAAE,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/C,IAAI,YAAY,KAAK,SAAS;QAAE,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;IAEtE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,WAAW;QACX,SAAS;QACT,WAAW,EAAE,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC;QAC1D,SAAS;QACT,UAAU,EAAE,kBAAkB,CAAC,SAAS;QACxC,mBAAmB,EAAE,kBAAkB,CAAC,SAAS;QACjD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC;QAC3C,2EAA2E;QAC3E,uEAAuE;QACvE,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,WAAW,EAAE,aAAa;QAChE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,WAAW,EAAE,iBAAiB;QAC5E,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,aAAa;QACb,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/repo-tree.d.ts
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* Every such check goes through {@link RepoTree}, which never touches a path
|
|
10
10
|
* outside the root.
|
|
11
11
|
*/
|
|
12
|
-
import * as fs from 'node:fs';
|
|
13
|
-
import type fg from 'fast-glob';
|
|
14
12
|
import type { IssueCategory, PromptCiIssue } from './types.js';
|
|
13
|
+
import { PathInventory } from './known-paths.js';
|
|
14
|
+
import type { KnownPaths } from './known-paths.js';
|
|
15
15
|
/**
|
|
16
16
|
* True for a path that is absolute on ANY platform: POSIX (`/x`), Windows drive
|
|
17
17
|
* or UNC (`C:\x`, `\\host\share`), or drive-relative (`C:x`, which Windows
|
|
@@ -37,6 +37,53 @@ export type Lookup = {
|
|
|
37
37
|
| {
|
|
38
38
|
state: 'unreadable';
|
|
39
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* One directory entry, as much of `fs.Dirent` as a detector needs. A real
|
|
42
|
+
* `fs.Dirent` satisfies it; so does an entry synthesized from a
|
|
43
|
+
* {@link PathInventory} (pcic-csf), which never stands for a symlink.
|
|
44
|
+
*/
|
|
45
|
+
export type TreeEntry = {
|
|
46
|
+
name: string;
|
|
47
|
+
isFile(): boolean;
|
|
48
|
+
isDirectory(): boolean;
|
|
49
|
+
isSymbolicLink(): boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* What {@link RepoTree.readText} found. See its doc comment for why
|
|
53
|
+
* `unreadable` and `unfetched` are different answers.
|
|
54
|
+
*/
|
|
55
|
+
export type ReadResult = {
|
|
56
|
+
state: 'found';
|
|
57
|
+
content: string;
|
|
58
|
+
} | {
|
|
59
|
+
state: 'missing' | 'outside' | 'unreadable' | 'unfetched' | 'too-large';
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* The slice of fast-glob's `FileSystemAdapter` {@link RepoTree.walkFs} supplies.
|
|
63
|
+
* Declared structurally on purpose: fast-glob is an implementation detail of
|
|
64
|
+
* this package, and naming its type here would put it in the published
|
|
65
|
+
* declarations of everything that touches a tree.
|
|
66
|
+
*/
|
|
67
|
+
export type WalkFsAdapter = {
|
|
68
|
+
readdirSync: (dir: string, options?: {
|
|
69
|
+
withFileTypes: true;
|
|
70
|
+
}) => never;
|
|
71
|
+
};
|
|
72
|
+
/** How a {@link RepoTree} answers existence questions. */
|
|
73
|
+
export type RepoTreeOptions = {
|
|
74
|
+
/**
|
|
75
|
+
* pcic-csf: the repo-relative POSIX paths the repository holds. Consulted
|
|
76
|
+
* before the filesystem by every existence check a scan makes.
|
|
77
|
+
*/
|
|
78
|
+
knownPaths?: KnownPaths;
|
|
79
|
+
/**
|
|
80
|
+
* True when `knownPaths` is the WHOLE repository, so a path it does not list
|
|
81
|
+
* is genuinely absent and the filesystem is never consulted. False (the
|
|
82
|
+
* default) treats it as a partial view: an unlisted path is still looked for
|
|
83
|
+
* on disk.
|
|
84
|
+
*/
|
|
85
|
+
knownPathsComplete?: boolean;
|
|
86
|
+
};
|
|
40
87
|
/** The `code` of a filesystem error (`EACCES`, `ENOENT`, …), when it has one. */
|
|
41
88
|
export declare function errorCode(err: unknown): string | undefined;
|
|
42
89
|
/**
|
|
@@ -65,19 +112,111 @@ export declare class RepoTree {
|
|
|
65
112
|
/** The root's real path, when it differs (a root under a symlink, like macOS `/var`). */
|
|
66
113
|
private readonly realRoot;
|
|
67
114
|
private readonly listings;
|
|
115
|
+
/**
|
|
116
|
+
* pcic-csf: the caller's inventory of the repository, when one was given.
|
|
117
|
+
* Consulted before the filesystem; see {@link PathInventory}.
|
|
118
|
+
*/
|
|
119
|
+
readonly inventory: PathInventory | undefined;
|
|
68
120
|
/** What could not be read, as shown in the report (`dir/` or a link's path) → why. */
|
|
69
121
|
readonly unreadable: Map<string, string>;
|
|
70
|
-
constructor(repoRoot: string);
|
|
122
|
+
constructor(repoRoot: string, options?: RepoTreeOptions);
|
|
71
123
|
/** Forward-slash path relative to the root (`.` for the root itself); never absolute. */
|
|
72
124
|
relative(abs: string): string;
|
|
125
|
+
/** {@link relative} in the inventory's own spelling: `''` for the root, never `.`. */
|
|
126
|
+
private relativePosix;
|
|
73
127
|
/** Record what could not be read: a directory (shown as `dir/`) or a link (shown as its path). */
|
|
74
128
|
noteUnreadable(p: string, reason: string, kind?: 'dir' | 'link'): void;
|
|
75
|
-
/** The entries of an in-root directory, by exact name. */
|
|
129
|
+
/** The entries of an in-root directory on the filesystem, by exact name. */
|
|
130
|
+
private listFs;
|
|
131
|
+
/**
|
|
132
|
+
* The entries of an in-root directory, by exact name.
|
|
133
|
+
*
|
|
134
|
+
* pcic-csf: with an inventory, its listing is authoritative when it is
|
|
135
|
+
* complete; otherwise the two are merged, so a path the caller named is
|
|
136
|
+
* found even though the scan root holds only the instruction files. A
|
|
137
|
+
* directory the inventory describes is never reported as unreadable, since
|
|
138
|
+
* nothing had to be read to answer.
|
|
139
|
+
*
|
|
140
|
+
* On a name they both carry the inventory wins — EXCEPT when what is on disk
|
|
141
|
+
* is a symlink. An inventory entry is a plain file or directory, so letting
|
|
142
|
+
* one shadow a real link would hide it from {@link lookup}'s containment
|
|
143
|
+
* check and the subsequent read would follow it wherever it points. The link
|
|
144
|
+
* wins, and `lookup` judges it as it judges any other.
|
|
145
|
+
*/
|
|
76
146
|
private list;
|
|
77
147
|
/** In-root equivalent of a link target written against the root's real path. */
|
|
78
148
|
private fromRealRoot;
|
|
149
|
+
/**
|
|
150
|
+
* Where a link's target lands inside the root, or `null` when following it
|
|
151
|
+
* would leave the root.
|
|
152
|
+
*
|
|
153
|
+
* pcic-e6xa: a RELATIVE target is resolved segment by segment against the
|
|
154
|
+
* link's own directory and refused the moment it climbs above the root —
|
|
155
|
+
* even when a later segment names the root's own directory again
|
|
156
|
+
* (`x -> ../<root dir name>/y`). Resolving such a link lexically lands back
|
|
157
|
+
* inside the root, so the old containment check passed it and the verdict
|
|
158
|
+
* came to depend on the name of the directory the scan runs in: whoever
|
|
159
|
+
* wrote the scanned repository could learn it, and a hosted scan's temp
|
|
160
|
+
* directory name is not theirs to learn. An ABSOLUTE target cannot climb, so
|
|
161
|
+
* it keeps the plain containment check (plus the root's real path, for a root
|
|
162
|
+
* that itself sits under a link, like macOS `/var`) — a Windows junction's
|
|
163
|
+
* target, which is always absolute, resolves this way.
|
|
164
|
+
*
|
|
165
|
+
* A Windows drive or UNC target (`C:\x`, `\\host\share\x`) read on POSIX, and
|
|
166
|
+
* a drive-RELATIVE one (`C:x`) anywhere, are outside full stop: neither is
|
|
167
|
+
* absolute to `path` there, so `path.resolve` would join it to the process's
|
|
168
|
+
* working directory and the verdict would depend on where the scan was
|
|
169
|
+
* started from — which could be the root itself.
|
|
170
|
+
*/
|
|
171
|
+
private linkTargetWithinRoot;
|
|
79
172
|
lookup(candidate: string): Lookup;
|
|
80
173
|
isDir(candidate: string): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* pcic-e6xa: the one way a detector asks whether a FIXED name exists
|
|
176
|
+
* (`.env`, `supabase/migrations`, `Cargo.toml`, `requirements.txt`,
|
|
177
|
+
* `.clinerules`). The name is not user input, but the tree around it is: a
|
|
178
|
+
* committed link out of the repository made the answer depend on a path
|
|
179
|
+
* outside the scan root, and a hosted scan's root is a server temp
|
|
180
|
+
* directory. Going through {@link lookup} keeps every such check inside the
|
|
181
|
+
* root — and lets a caller's inventory answer it (pcic-csf).
|
|
182
|
+
*
|
|
183
|
+
* `candidate` may be repo-relative or absolute inside the root. Anything
|
|
184
|
+
* outside, or under a directory that could not be listed, reads as absent:
|
|
185
|
+
* these checks are signals ("does this repo use Supabase?"), and the honest
|
|
186
|
+
* answer when the scan cannot look is the one that adds no finding.
|
|
187
|
+
*/
|
|
188
|
+
exists(candidate: string): boolean;
|
|
189
|
+
/** {@link exists}, restricted to a regular file (or a link to one inside the root). */
|
|
190
|
+
isFile(candidate: string): boolean;
|
|
191
|
+
/**
|
|
192
|
+
* The text of an in-root file, or why there is none to read. The only way a
|
|
193
|
+
* detector reads a file it located through this tree.
|
|
194
|
+
*
|
|
195
|
+
* `missing` and `outside` come from {@link lookup}, so a path the walk judged
|
|
196
|
+
* out of the root is never opened. The read is ALSO containment-checked
|
|
197
|
+
* against the file actually on disk, which `lookup` alone cannot guarantee:
|
|
198
|
+
* an inventory entry is a plain file (pcic-csf), so with a complete inventory
|
|
199
|
+
* no directory is listed and a real symlink sitting at that path is never
|
|
200
|
+
* seen — opening it by name would follow it wherever it points. The same
|
|
201
|
+
* check that governs every other read in the scan
|
|
202
|
+
* ({@link realPathWithinRoot}) runs here, so an in-repo link stays readable
|
|
203
|
+
* and one leaving the repository reads as `outside`.
|
|
204
|
+
*
|
|
205
|
+
* The two "cannot read" states are kept apart on purpose:
|
|
206
|
+
* - `unreadable` — the file is on disk and the scan failed to read it
|
|
207
|
+
* (permissions, a cycle, an unlistable parent). Recorded in
|
|
208
|
+
* {@link unreadable} so the scan can name it, and callers may raise a
|
|
209
|
+
* "check incomplete" warning.
|
|
210
|
+
* - `unfetched` — a caller's inventory says the repository has it but its
|
|
211
|
+
* bytes were never fetched. Nothing failed and there is nothing to name,
|
|
212
|
+
* so callers stay SILENT: no finding, and no warning either.
|
|
213
|
+
*
|
|
214
|
+
* Neither may be read as "absent": that is what keeps a hosted scan from
|
|
215
|
+
* reporting a file it never downloaded as missing.
|
|
216
|
+
*/
|
|
217
|
+
readText(candidate: string, options?: {
|
|
218
|
+
maxBytes?: number;
|
|
219
|
+
}): ReadResult;
|
|
81
220
|
/**
|
|
82
221
|
* An extension-less module path names the file that carries the extension:
|
|
83
222
|
* `src/lib/db` is `src/lib/db.ts`. True when the directory holds `<name>.*`.
|
|
@@ -87,14 +226,29 @@ export declare class RepoTree {
|
|
|
87
226
|
* pcic-x1vl: the entries of the in-root directory at `candidate`, by exact
|
|
88
227
|
* name, or why there are none to give (a file counts as `missing`).
|
|
89
228
|
*/
|
|
90
|
-
entries(candidate: string): ReadonlyMap<string,
|
|
229
|
+
entries(candidate: string): ReadonlyMap<string, TreeEntry> | 'missing' | 'outside' | 'unreadable';
|
|
91
230
|
/**
|
|
92
|
-
* fast-glob's directory reads, routed through
|
|
93
|
-
* walk cannot list is recorded instead of silently dropping out of the
|
|
94
|
-
*
|
|
231
|
+
* fast-glob's directory reads, routed through this tree so a directory the
|
|
232
|
+
* walk cannot list is recorded instead of silently dropping out of the
|
|
233
|
+
* result — and so a caller's inventory is what the walk sees (pcic-csf),
|
|
234
|
+
* which is the whole repository rather than the handful of files a hosted
|
|
235
|
+
* scan fetched. The walk itself (`cwd` = root, links not followed) never
|
|
236
|
+
* leaves the root.
|
|
95
237
|
*/
|
|
96
|
-
walkFs(onError: () => void):
|
|
238
|
+
walkFs(onError: () => void): WalkFsAdapter;
|
|
97
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* The scan's {@link RepoTree}: the one built while the context was assembled,
|
|
242
|
+
* so every detector shares its directory cache and its inventory (pcic-csf).
|
|
243
|
+
*
|
|
244
|
+
* Hand-built contexts (tests, older callers) carry no tree, and get a plain
|
|
245
|
+
* filesystem-backed one over the same root — the behavior before pcic-e6xa
|
|
246
|
+
* routed these checks through the tree, minus the out-of-root access.
|
|
247
|
+
*/
|
|
248
|
+
export declare function treeFor(context: {
|
|
249
|
+
repoRoot: string;
|
|
250
|
+
tree?: RepoTree;
|
|
251
|
+
}): RepoTree;
|
|
98
252
|
/** A reference left unchecked because part of the tree could not be read, aggregated per evidence line. */
|
|
99
253
|
export type UncheckedRef = {
|
|
100
254
|
filePaths: Set<string>;
|
package/dist/repo-tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-tree.d.ts","sourceRoot":"","sources":["../src/repo-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"repo-tree.d.ts","sourceRoot":"","sources":["../src/repo-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,2CAA2C;AAC3C,MAAM,MAAM,MAAM,GACd;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE;AACtB,yEAAyE;GACvE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE;AACtB,8EAA8E;GAC5E;IAAE,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAE5B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,cAAc,IAAI,OAAO,CAAC;CAC3B,CAAC;AAIF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAA;CAAE,CAAC;AAYhF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC;CACxE,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG1D;AAKD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS,CAAC;IAC9C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,sBAA6B;gBAEpC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IAO3D,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI7B,sFAAsF;IACtF,OAAO,CAAC,aAAa;IAKrB,kGAAkG;IAClG,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAS7E,4EAA4E;IAC5E,OAAO,CAAC,MAAM;IAWd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,IAAI;IAuBZ,gFAAgF;IAChF,OAAO,CAAC,YAAY;IAKpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,oBAAoB;IAiB5B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IA+CjC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKjC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC,uFAAuF;IACvF,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKlC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,UAAU;IAwB5E;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAU1C;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY;IAOjG;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,aAAa;CAe3C;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,QAAQ,CAEhF;AAED,2GAA2G;AAC3G,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAKxG;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,YAAY,EAAE,EACpB,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,aAAa,CAmCf"}
|