@descryy/core 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sources/git/diff.d.ts +24 -0
- package/dist/sources/git/diff.d.ts.map +1 -1
- package/dist/sources/git/diff.js +66 -0
- package/dist/sources/git/diff.js.map +1 -1
- package/dist/sources/git/index.d.ts +2 -2
- package/dist/sources/git/index.d.ts.map +1 -1
- package/dist/sources/git/index.js +1 -1
- package/dist/sources/git/index.js.map +1 -1
- package/dist/validation/env.d.ts +40 -7
- package/dist/validation/env.d.ts.map +1 -1
- package/dist/validation/env.js +116 -30
- package/dist/validation/env.js.map +1 -1
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/orm-registration.d.ts +106 -0
- package/dist/validation/orm-registration.d.ts.map +1 -0
- package/dist/validation/orm-registration.js +191 -0
- package/dist/validation/orm-registration.js.map +1 -0
- package/package.json +2 -2
|
@@ -28,6 +28,30 @@ export interface GitDiffOptions {
|
|
|
28
28
|
/** Cap on the sum of all returned patches; files past it keep their stats. Default 40,000. */
|
|
29
29
|
readonly maxTotalPatchBytes?: number;
|
|
30
30
|
}
|
|
31
|
+
/** One contiguous run of added lines, in the new (head-side) file. 1-based, inclusive on both ends. */
|
|
32
|
+
export interface LineRange {
|
|
33
|
+
readonly start: number;
|
|
34
|
+
readonly end: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Which lines a unified-diff patch actually *added*, in new-file line numbers.
|
|
38
|
+
*
|
|
39
|
+
* C2 (UAT phase 4): `checkEnvironment`'s `NEW_READ_UNDECLARED` used to call any
|
|
40
|
+
* undeclared read in a `files`-scoped file "new", even a pre-existing read the
|
|
41
|
+
* diff never touched — this is what lets a caller ask the narrower, true
|
|
42
|
+
* question instead: is this line one the diff actually added?
|
|
43
|
+
*
|
|
44
|
+
* Parses the hunk headers (`@@ -a,b +c,d @@`) and walks each hunk counting the
|
|
45
|
+
* new-file line pointer: a `+` line claims the current pointer and advances it,
|
|
46
|
+
* a context line (or blank) advances the pointer without claiming a line, and a
|
|
47
|
+
* `-` line does neither — it consumes no new-file line — but does end any run
|
|
48
|
+
* of consecutive additions in progress, so an added block interrupted by a
|
|
49
|
+
* removed line reports as two ranges, not one spanning the gap. Takes the raw
|
|
50
|
+
* `patch` text `GitDiffFile` already carries; a `null` patch (binary, or
|
|
51
|
+
* withheld by a size budget) has nothing to parse and is the caller's problem
|
|
52
|
+
* to ask for separately — this function only ever sees text that exists.
|
|
53
|
+
*/
|
|
54
|
+
export declare function addedLineRanges(patch: string): readonly LineRange[];
|
|
31
55
|
/** `base...head` (three dots) — two dots would include everything changed on `base` since the branch point. */
|
|
32
56
|
export declare function gitDiff(cwd: string, base: string, head?: string, options?: GitDiffOptions): Promise<readonly GitDiffFile[]>;
|
|
33
57
|
export interface GitWorkingTreeDiffOptions extends GitDiffOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/sources/git/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,2GAA2G;AAC3G,eAAO,MAAM,gCAAgC,mCAAmC,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kGAAkG;IAClG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA+HD,+GAA+G;AAC/G,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,SAAS,EACb,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAEjC;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,yGAAyG;IACzG,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAIjC;AAKD,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,6CAA6C;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,oBAAoB,CAAC,CA6C/B"}
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/sources/git/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,2GAA2G;AAC3G,eAAO,MAAM,gCAAgC,mCAAmC,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kGAAkG;IAClG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA+HD,uGAAuG;AACvG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CA4CnE;AAED,+GAA+G;AAC/G,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,SAAS,EACb,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAEjC;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,yGAAyG;IACzG,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAIjC;AAKD,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,6CAA6C;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,oBAAoB,CAAC,CA6C/B"}
|
package/dist/sources/git/diff.js
CHANGED
|
@@ -133,6 +133,72 @@ async function runGitDiff(cwd, revisionArgs, options) {
|
|
|
133
133
|
}),
|
|
134
134
|
}).items;
|
|
135
135
|
}
|
|
136
|
+
const HUNK_HEADER = /^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/;
|
|
137
|
+
/**
|
|
138
|
+
* Which lines a unified-diff patch actually *added*, in new-file line numbers.
|
|
139
|
+
*
|
|
140
|
+
* C2 (UAT phase 4): `checkEnvironment`'s `NEW_READ_UNDECLARED` used to call any
|
|
141
|
+
* undeclared read in a `files`-scoped file "new", even a pre-existing read the
|
|
142
|
+
* diff never touched — this is what lets a caller ask the narrower, true
|
|
143
|
+
* question instead: is this line one the diff actually added?
|
|
144
|
+
*
|
|
145
|
+
* Parses the hunk headers (`@@ -a,b +c,d @@`) and walks each hunk counting the
|
|
146
|
+
* new-file line pointer: a `+` line claims the current pointer and advances it,
|
|
147
|
+
* a context line (or blank) advances the pointer without claiming a line, and a
|
|
148
|
+
* `-` line does neither — it consumes no new-file line — but does end any run
|
|
149
|
+
* of consecutive additions in progress, so an added block interrupted by a
|
|
150
|
+
* removed line reports as two ranges, not one spanning the gap. Takes the raw
|
|
151
|
+
* `patch` text `GitDiffFile` already carries; a `null` patch (binary, or
|
|
152
|
+
* withheld by a size budget) has nothing to parse and is the caller's problem
|
|
153
|
+
* to ask for separately — this function only ever sees text that exists.
|
|
154
|
+
*/
|
|
155
|
+
export function addedLineRanges(patch) {
|
|
156
|
+
const ranges = [];
|
|
157
|
+
let newLine = 0;
|
|
158
|
+
let inHunk = false;
|
|
159
|
+
let start = null;
|
|
160
|
+
let end = null;
|
|
161
|
+
const flush = () => {
|
|
162
|
+
if (start !== null && end !== null)
|
|
163
|
+
ranges.push({ start, end });
|
|
164
|
+
start = null;
|
|
165
|
+
end = null;
|
|
166
|
+
};
|
|
167
|
+
for (const line of patch.split("\n")) {
|
|
168
|
+
const header = HUNK_HEADER.exec(line);
|
|
169
|
+
if (header !== null) {
|
|
170
|
+
flush();
|
|
171
|
+
newLine = Number(header[1]);
|
|
172
|
+
inHunk = true;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (!inHunk)
|
|
176
|
+
continue;
|
|
177
|
+
if (line.startsWith("+") && !line.startsWith("+++")) {
|
|
178
|
+
if (start === null)
|
|
179
|
+
start = newLine;
|
|
180
|
+
end = newLine;
|
|
181
|
+
newLine += 1;
|
|
182
|
+
}
|
|
183
|
+
else if (line.startsWith("-") && !line.startsWith("---")) {
|
|
184
|
+
// A deletion consumes no new-file line, but it does break a run of
|
|
185
|
+
// consecutive additions — the two sides of it are not contiguous.
|
|
186
|
+
flush();
|
|
187
|
+
}
|
|
188
|
+
else if (line.startsWith("\\")) {
|
|
189
|
+
// "" — not a line, claims no pointer.
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// Context line (or the trailing empty split element): advances the
|
|
194
|
+
// pointer, claims nothing.
|
|
195
|
+
flush();
|
|
196
|
+
newLine += 1;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
flush();
|
|
200
|
+
return ranges;
|
|
201
|
+
}
|
|
136
202
|
/** `base...head` (three dots) — two dots would include everything changed on `base` since the branch point. */
|
|
137
203
|
export async function gitDiff(cwd, base, head = "HEAD", options = {}) {
|
|
138
204
|
return runGitDiff(cwd, [`${base}...${head}`], options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/sources/git/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEjE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,+GAA+G;AAC/G,SAAS,GAAG,CACV,OAAe,EACf,IAAuB,EACvB,OAA4C;IAE5C,OAAO,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,wBAAwB,EAAE,GAAG,IAAI,CAAa,EAAE;QAChF,GAAG,OAAO;QACV,QAAQ,EAAE,MAAe;QACzB,GAAG,EAAE,WAAW,EAAE;KACnB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,6LAA6L;AAC7L,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAE7C,2GAA2G;AAC3G,MAAM,CAAC,MAAM,gCAAgC,GAAG,gCAAgC,CAAC;AAoCjF,SAAS,WAAW,CAAC,IAAY,EAAE,MAAc;IAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC;aAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,SAAS,GAAG,IAAI,CAAC;aAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,QAAQ;gBAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,WAAW;gBAAE,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,SAAS,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,SAAS,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;IAC/D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,MAAM,GAA0B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE3F,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC1C,MAAM;QACN,MAAM;QACN,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACjC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,GAAW,EACX,YAA+B,EAC/B,OAAuB;IAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,6BAA6B,CAAC;IACvF,iEAAiE;IACjE,qDAAqD;IACrD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/F,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,SAAS;QAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC;QAExD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;YAClD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;YAClD,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC9C,kBAAkB,EAAE,MAAM,CAAC,MAAM;gBAC/B,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,yBAAyB,KAAK,oBAAoB,aAAa,qBAAqB;wBACpF,0DAA0D;oBAC5D,CAAC,CAAC,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,mDAAmD;IACnD,OAAO,yBAAyB,CAAC,KAAK,EAAE;QACtC,aAAa,EAAE,kBAAkB;QACjC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,yEAAyE;QACzE,wFAAwF;QACxF,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,KAAK,EAAE,IAAI;YACX,kBAAkB,EAChB,GAAG,gCAAgC,OAAO,kBAAkB,2BAA2B;gBACvF,IAAI,UAAU,0BAA0B;SAC3C,CAAC;KACH,CAAC,CAAC,KAAK,CAAC;AACX,CAAC;AAED,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAW,EACX,IAAY,EACZ,IAAI,GAAG,MAAM,EACb,UAA0B,EAAE;IAE5B,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAOD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,UAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC;IAC1C,MAAM,YAAY,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,OAAO,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAqClC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,UAAuC,EAAE;IAEzC,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,MAAM;SACrB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACnE,IAAI,EAAE,CAAC;IAEV,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;gBAC/E,GAAG;gBACH,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;aAC7B,CAAC,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,gEAAgE;YAChE,MAAM,MAAM,GAAI,KAA6B,CAAC,MAAM,CAAC;YACrD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjE,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,cAAc,EAAE,SAAS,CAAC,MAAM;QAChC,kBAAkB,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;KACrD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,OAAsC;IACtE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,iFAAiF;AACjF,SAAS,mBAAmB,CAC1B,IAAY,EACZ,IAAY,EACZ,OAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IACvF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC;IACxD,OAAO;QACL,0EAA0E;QAC1E,iEAAiE;QACjE,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,2EAA2E;QAC3E,iCAAiC;QACjC,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;QAClD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9C,kBAAkB,EAAE,MAAM,CAAC,MAAM;YAC/B,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,yBAAyB,KAAK,oBAAoB,aAAa,qBAAqB;oBACpF,0DAA0D;gBAC5D,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/sources/git/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ export { createGitSource, revertedShaOf, GIT_SOURCE_ID, GIT_SOURCE_VERSION, UNDI
|
|
|
2
2
|
export type { GitSourceOptions } from "./source.ts";
|
|
3
3
|
export { readHistory, gitHead, isGitRepository, GitUnavailableError, isPathTrackedByGit, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.ts";
|
|
4
4
|
export type { Commit, CommitChange, HistoryOptions, PathLogCommit, PathLogOptions, PathLogResult, } from "./history.ts";
|
|
5
|
-
export { gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.ts";
|
|
5
|
+
export { addedLineRanges, gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX, } from "./diff.ts";
|
|
6
6
|
export { uncommittedAmong, workingTreeChangedFiles } from "./history.ts";
|
|
7
7
|
export type { WorkingTreeFilesOptions } from "./history.ts";
|
|
8
|
-
export type { GitDiffFile, GitDiffOptions, GitWorkingTreeChange, GitWorkingTreeChangeOptions, GitWorkingTreeDiffOptions, } from "./diff.ts";
|
|
8
|
+
export type { GitDiffFile, GitDiffOptions, GitWorkingTreeChange, GitWorkingTreeChangeOptions, GitWorkingTreeDiffOptions, LineRange, } from "./diff.ts";
|
|
9
9
|
export { detectIncidents } from "./incidents.ts";
|
|
10
10
|
export type { DetectedIncident, DetectedRefusal, IncidentDetection, IncidentMechanism, UnresolvedTrailer, } from "./incidents.ts";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,SAAS,GACV,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createGitSource, revertedShaOf, GIT_SOURCE_ID, GIT_SOURCE_VERSION, UNDIRECTED_EDGE_TYPES, } from "./source.js";
|
|
2
2
|
export { readHistory, gitHead, isGitRepository, GitUnavailableError, isPathTrackedByGit, filesInCommit, changedFiles, resolveCommitBySha, logForPath, } from "./history.js";
|
|
3
|
-
export { gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX } from "./diff.js";
|
|
3
|
+
export { addedLineRanges, gitDiff, gitWorkingTreeChange, gitWorkingTreeDiff, TOTAL_PATCH_BUDGET_REASON_PREFIX, } from "./diff.js";
|
|
4
4
|
export { uncommittedAmong, workingTreeChangedFiles } from "./history.js";
|
|
5
5
|
export { detectIncidents } from "./incidents.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AAUtB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AAUtB,OAAO,EACL,eAAe,EACf,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAWzE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/validation/env.d.ts
CHANGED
|
@@ -137,15 +137,29 @@
|
|
|
137
137
|
* own coverage guard exists to prevent — the same near-total-precision
|
|
138
138
|
* discipline, just moved to a different precondition.
|
|
139
139
|
*
|
|
140
|
-
* A pre-existing read in a file the diff also touches
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
140
|
+
* A pre-existing read in a file the diff also touches counted as "new" here
|
|
141
|
+
* unconditionally, until C2 (UAT phase 4, field-report round): a two-line,
|
|
142
|
+
* unrelated addition to a file that also happened to contain an untouched,
|
|
143
|
+
* long-standing undeclared read reported that read as "a new read this
|
|
144
|
+
* change introduces" — a `defect` claim the diff did not support. `files`
|
|
145
|
+
* alone can only ever say *which file*, never *which line*, so the fix is an
|
|
146
|
+
* optional second input: `options.changedLines`, the added-line ranges of a
|
|
147
|
+
* real diff (`addedLineRanges` over `get_git_diff`/`pr_analysis`'s own patch
|
|
148
|
+
* text), keyed by the same repo-relative paths as `files`. When a scoped
|
|
149
|
+
* read's file has an entry there, this rule asks the narrower, true question
|
|
150
|
+
* — does *this line* fall inside a range the diff actually added — instead of
|
|
151
|
+
* the file-level one, and says nothing at all about a read the diff proves is
|
|
152
|
+
* pre-existing.
|
|
153
|
+
*
|
|
154
|
+
* `changedLines` is optional and per-file: a file present in `files` but
|
|
155
|
+
* absent from the map is reported exactly as this check behaved before C2 —
|
|
156
|
+
* a `lead`, not a `defect`, and worded without the "new" claim, because no
|
|
157
|
+
* line-level information exists to support either. The scope disclosure below
|
|
158
|
+
* says which case applied and to how many variables.
|
|
145
159
|
*
|
|
146
160
|
* Deduplicated against `REQUIRED_NOT_DECLARED`: a variable this rule already
|
|
147
|
-
* flagged is skipped by that one, so a required,
|
|
148
|
-
* is reported once, not twice
|
|
161
|
+
* flagged — `defect` or `lead` — is skipped by that one, so a required,
|
|
162
|
+
* undeclared, diff-scoped read is reported once, not twice.
|
|
149
163
|
*
|
|
150
164
|
* ## Resolution, and why a config read is not R0
|
|
151
165
|
*
|
|
@@ -275,6 +289,25 @@ export interface EnvCheckOptions {
|
|
|
275
289
|
readonly files?: readonly string[];
|
|
276
290
|
/** Cap on file nodes enumerated. Truncation is reported. */
|
|
277
291
|
readonly limit?: number;
|
|
292
|
+
/**
|
|
293
|
+
* Which lines the diff actually added, by repo-relative file — e.g. from
|
|
294
|
+
* `addedLineRanges` over a real patch (`get_git_diff`/`pr_analysis` already
|
|
295
|
+
* compute the diff this would come from). When given, `NEW_READ_UNDECLARED`
|
|
296
|
+
* only fires for an undeclared read whose line falls inside one of these
|
|
297
|
+
* ranges for its file — a verified "new in this diff", not merely "in a
|
|
298
|
+
* file this call scoped to". C2 (UAT phase 4): without line information the
|
|
299
|
+
* old rule called any undeclared read in a scoped file "new", including one
|
|
300
|
+
* a diff never went near.
|
|
301
|
+
*
|
|
302
|
+
* A file present in `files` but absent from this map is treated the same as
|
|
303
|
+
* when this option is omitted entirely: no diff information was available
|
|
304
|
+
* for it, so a would-be finding there falls back to a `lead`, worded
|
|
305
|
+
* without an authorship claim, rather than a `defect` — see the header.
|
|
306
|
+
*/
|
|
307
|
+
readonly changedLines?: ReadonlyMap<string, readonly {
|
|
308
|
+
readonly start: number;
|
|
309
|
+
readonly end: number;
|
|
310
|
+
}[]>;
|
|
278
311
|
}
|
|
279
312
|
export declare const DEFAULT_COVERAGE_FLOOR = 0.6;
|
|
280
313
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
package/dist/validation/env.js
CHANGED
|
@@ -137,15 +137,29 @@
|
|
|
137
137
|
* own coverage guard exists to prevent — the same near-total-precision
|
|
138
138
|
* discipline, just moved to a different precondition.
|
|
139
139
|
*
|
|
140
|
-
* A pre-existing read in a file the diff also touches
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
140
|
+
* A pre-existing read in a file the diff also touches counted as "new" here
|
|
141
|
+
* unconditionally, until C2 (UAT phase 4, field-report round): a two-line,
|
|
142
|
+
* unrelated addition to a file that also happened to contain an untouched,
|
|
143
|
+
* long-standing undeclared read reported that read as "a new read this
|
|
144
|
+
* change introduces" — a `defect` claim the diff did not support. `files`
|
|
145
|
+
* alone can only ever say *which file*, never *which line*, so the fix is an
|
|
146
|
+
* optional second input: `options.changedLines`, the added-line ranges of a
|
|
147
|
+
* real diff (`addedLineRanges` over `get_git_diff`/`pr_analysis`'s own patch
|
|
148
|
+
* text), keyed by the same repo-relative paths as `files`. When a scoped
|
|
149
|
+
* read's file has an entry there, this rule asks the narrower, true question
|
|
150
|
+
* — does *this line* fall inside a range the diff actually added — instead of
|
|
151
|
+
* the file-level one, and says nothing at all about a read the diff proves is
|
|
152
|
+
* pre-existing.
|
|
153
|
+
*
|
|
154
|
+
* `changedLines` is optional and per-file: a file present in `files` but
|
|
155
|
+
* absent from the map is reported exactly as this check behaved before C2 —
|
|
156
|
+
* a `lead`, not a `defect`, and worded without the "new" claim, because no
|
|
157
|
+
* line-level information exists to support either. The scope disclosure below
|
|
158
|
+
* says which case applied and to how many variables.
|
|
145
159
|
*
|
|
146
160
|
* Deduplicated against `REQUIRED_NOT_DECLARED`: a variable this rule already
|
|
147
|
-
* flagged is skipped by that one, so a required,
|
|
148
|
-
* is reported once, not twice
|
|
161
|
+
* flagged — `defect` or `lead` — is skipped by that one, so a required,
|
|
162
|
+
* undeclared, diff-scoped read is reported once, not twice.
|
|
149
163
|
*
|
|
150
164
|
* ## Resolution, and why a config read is not R0
|
|
151
165
|
*
|
|
@@ -319,34 +333,83 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
319
333
|
const findings = [];
|
|
320
334
|
// UAT round 3, Suggestion 4 — see the header. Fires only when `options.files`
|
|
321
335
|
// scoped this call to a diff: `reads` above is already restricted to it, so
|
|
322
|
-
// every entry here is "
|
|
336
|
+
// every entry here is at least "in a file this call scoped to". Not gated by
|
|
323
337
|
// `CoverageGuard` at all — that guard protects a different quantity
|
|
324
338
|
// (whether the *required-read* denominator is large enough to trust a
|
|
325
|
-
// ratio), and this rule's precision comes
|
|
326
|
-
// per the header
|
|
339
|
+
// ratio), and this rule's precision comes from the diff scope (and, where
|
|
340
|
+
// `changedLines` is given, the line range within it) per the header.
|
|
327
341
|
const diffFlagged = new Set();
|
|
342
|
+
// C2 (UAT phase 4): only the names actually verified against a real added
|
|
343
|
+
// line — used to pick the wording/claim, never to change the dedup above,
|
|
344
|
+
// which stays keyed on `diffFlagged` so a variable this rule reports at all
|
|
345
|
+
// (defect or lead) is still not also reported by `REQUIRED_NOT_DECLARED`.
|
|
346
|
+
const diffFlaggedVerified = new Set();
|
|
328
347
|
if (scoped !== null) {
|
|
329
|
-
const
|
|
348
|
+
const changedLines = options.changedLines;
|
|
349
|
+
const readsByName = new Map();
|
|
330
350
|
for (const read of reads) {
|
|
331
|
-
|
|
332
|
-
if (
|
|
333
|
-
|
|
351
|
+
let sites = readsByName.get(read.name);
|
|
352
|
+
if (sites === undefined)
|
|
353
|
+
readsByName.set(read.name, (sites = []));
|
|
354
|
+
sites.push(read);
|
|
334
355
|
}
|
|
335
|
-
|
|
356
|
+
const byFileThenLine = (a, b) => a.file.localeCompare(b.file) || a.line - b.line;
|
|
357
|
+
for (const [name, sites] of readsByName) {
|
|
336
358
|
if (declaredAt.has(name))
|
|
337
359
|
continue;
|
|
360
|
+
let citation;
|
|
361
|
+
let verified = false;
|
|
362
|
+
if (changedLines === undefined) {
|
|
363
|
+
// No diff information anywhere in this call — every site is equally
|
|
364
|
+
// "in scope, unknown recency". Same site-choice as before C2.
|
|
365
|
+
citation = [...sites].sort(byFileThenLine)[0];
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
const inAddedRange = sites
|
|
369
|
+
.filter((r) => {
|
|
370
|
+
const ranges = changedLines.get(r.file);
|
|
371
|
+
return ranges !== undefined && ranges.some((rg) => r.line >= rg.start && r.line <= rg.end);
|
|
372
|
+
})
|
|
373
|
+
.sort(byFileThenLine);
|
|
374
|
+
if (inAddedRange.length > 0) {
|
|
375
|
+
citation = inAddedRange[0];
|
|
376
|
+
verified = true;
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
// Nothing verified new. Fall back only for a site whose own file has
|
|
380
|
+
// no diff information at all — a site whose file *does* have ranges
|
|
381
|
+
// and still did not match is proven pre-existing, and says nothing.
|
|
382
|
+
citation = sites.filter((r) => changedLines.get(r.file) === undefined).sort(byFileThenLine)[0];
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
if (citation === undefined)
|
|
386
|
+
continue;
|
|
338
387
|
diffFlagged.add(name);
|
|
339
|
-
|
|
388
|
+
if (verified)
|
|
389
|
+
diffFlaggedVerified.add(name);
|
|
390
|
+
const where = citation.line > 0 ? `${citation.file}:${citation.line}` : citation.file;
|
|
340
391
|
findings.push({
|
|
341
392
|
kind: "NEW_READ_UNDECLARED",
|
|
342
393
|
name,
|
|
343
|
-
claim: "defect",
|
|
344
|
-
detail:
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
394
|
+
claim: verified ? "defect" : "lead",
|
|
395
|
+
detail: verified
|
|
396
|
+
? `${name} is read at ${where}, a file this call scoped to, and no configuration file in ` +
|
|
397
|
+
"this repository declares it anywhere. This is a new read this change introduces, not a " +
|
|
398
|
+
"claim about whether the accessor fails when the variable is absent — see " +
|
|
399
|
+
"REQUIRED_NOT_DECLARED for that rule."
|
|
400
|
+
: `${name} is read at ${where}, in a file this call scoped to, and no configuration file ` +
|
|
401
|
+
"declares it. This is not a claim about whether the accessor fails when the variable is " +
|
|
402
|
+
"absent — see REQUIRED_NOT_DECLARED for that rule — and it is not a claim that this read " +
|
|
403
|
+
"is new: no line-level diff information was available for this file, so a pre-existing " +
|
|
404
|
+
"read here is reported the same as one the change just added.",
|
|
405
|
+
evidence: [
|
|
406
|
+
{
|
|
407
|
+
file: citation.file,
|
|
408
|
+
line: citation.line,
|
|
409
|
+
says: verified ? "added by the diff, here" : "read here, in a file this call scoped to",
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
resolution: Math.min(DECLARATIVE_RESOLUTION, citation.resolution),
|
|
350
413
|
});
|
|
351
414
|
}
|
|
352
415
|
}
|
|
@@ -379,12 +442,23 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
379
442
|
}
|
|
380
443
|
// Documentation drift, between same-application files only. Gated on the same
|
|
381
444
|
// floor: an example file documenting almost nothing is a fact about the file.
|
|
445
|
+
//
|
|
446
|
+
// C4 (UAT phase 4): the *scan* of .env/.env-example stays repository-wide —
|
|
447
|
+
// a declaration is repository-wide regardless of what changed, and the
|
|
448
|
+
// coverage ratio below is computed over that same repo-wide set so a scoped
|
|
449
|
+
// call cannot flip whether this section reports at all. Only *emission* is
|
|
450
|
+
// scoped: when `files` was given, a variable nothing in scope reads is not
|
|
451
|
+
// this call's business to report, the same way the read side above already
|
|
452
|
+
// narrows itself. `namedVariables` is already exactly "read by a scoped
|
|
453
|
+
// file" by construction (the read-side loop above skips unscoped files
|
|
454
|
+
// before it is populated), so no separate scoping pass is needed here.
|
|
382
455
|
const undocumented = [...dotenvSet.keys()].filter((n) => !dotenvExample.has(n));
|
|
383
456
|
if (dotenvExample.size > 0 && dotenvSet.size > 0) {
|
|
384
457
|
const documented = dotenvSet.size - undocumented.length;
|
|
385
458
|
const ratio = documented / dotenvSet.size;
|
|
386
459
|
if (ratio >= floor) {
|
|
387
|
-
|
|
460
|
+
const emitted = scoped === null ? undocumented : undocumented.filter((n) => namedVariables.has(n));
|
|
461
|
+
for (const name of emitted) {
|
|
388
462
|
const evidence = dotenvSet.get(name);
|
|
389
463
|
if (evidence === undefined)
|
|
390
464
|
continue;
|
|
@@ -399,6 +473,11 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
399
473
|
resolution: DECLARATIVE_RESOLUTION,
|
|
400
474
|
});
|
|
401
475
|
}
|
|
476
|
+
if (scoped !== null && emitted.length < undocumented.length) {
|
|
477
|
+
notes.push(`${undocumented.length - emitted.length} further variable(s) are set and undocumented ` +
|
|
478
|
+
"elsewhere in this repository; they are not listed because no file this call scoped to " +
|
|
479
|
+
"reads them.");
|
|
480
|
+
}
|
|
402
481
|
}
|
|
403
482
|
else {
|
|
404
483
|
notes.push(`${undocumented.length} variable(s) are set in a configuration file and documented in no ` +
|
|
@@ -480,12 +559,19 @@ export function checkEnvironment(provider, scan, options = {}) {
|
|
|
480
559
|
if (scoped !== null) {
|
|
481
560
|
notes.push(`The read side was restricted to ${scoped.size} scoped file(s). Configuration files were ` +
|
|
482
561
|
"read in full, because a declaration is repository-wide regardless of what changed.");
|
|
483
|
-
if (
|
|
484
|
-
notes.push(`${
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
562
|
+
if (diffFlaggedVerified.size > 0) {
|
|
563
|
+
notes.push(`${diffFlaggedVerified.size} variable(s) read on a line the diff actually added in these ` +
|
|
564
|
+
`scoped file(s) are declared nowhere: ${[...diffFlaggedVerified].sort().join(", ")} — see ` +
|
|
565
|
+
"NEW_READ_UNDECLARED in findings, reported as a defect.");
|
|
566
|
+
}
|
|
567
|
+
const diffFlaggedFallback = [...diffFlagged].filter((name) => !diffFlaggedVerified.has(name));
|
|
568
|
+
if (diffFlaggedFallback.length > 0) {
|
|
569
|
+
notes.push(`${diffFlaggedFallback.length} further variable(s) read in these scoped file(s) are declared ` +
|
|
570
|
+
`nowhere, with no line-level diff information available to confirm the read is new: ` +
|
|
571
|
+
`${diffFlaggedFallback.sort().join(", ")} — see NEW_READ_UNDECLARED in findings, reported as ` +
|
|
572
|
+
'a lead rather than a defect. Scoped at file granularity, like every other check here that ' +
|
|
573
|
+
'takes "files": a pre-existing read in a file this call also scoped is reported the same as ' +
|
|
574
|
+
"one the change just added, because no diff was passed to tell them apart.");
|
|
489
575
|
}
|
|
490
576
|
}
|
|
491
577
|
if (kept.length < findings.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/validation/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ export { checkRollbackReadiness, readMigrationOps } from "./rollback.ts";
|
|
|
11
11
|
export type { RollbackFinding, RollbackOptions, RollbackReport } from "./rollback.ts";
|
|
12
12
|
export { checkRouteDrift } from "./route-drift.ts";
|
|
13
13
|
export type { DriftOptions, DriftReport, DriftRoute, Introspection } from "./route-drift.ts";
|
|
14
|
+
export { ancestorInitPaths, checkOrmModelRegistration } from "./orm-registration.ts";
|
|
15
|
+
export type { OrmRegistrationFinding, OrmRegistrationFindingKind, OrmRegistrationOptions, OrmRegistrationReport, } from "./orm-registration.ts";
|
|
14
16
|
export { runJoinSubstitutionControl } from "./join-substitution.ts";
|
|
15
17
|
export type { FlaggedSubstitution, JoinSubstitutionOptions, JoinSubstitutionReport, SubstitutionCaller, SubstitutionRoute, SubstitutionUncontrollable, UnreproducibleJoin, } from "./join-substitution.ts";
|
|
16
18
|
export { scanConfigSurfaces, skipDirectory, readDotenv, readImageBuild, readStructured, readWranglerVars, readWranglerVarsEntries, } from "./sources.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC/G,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC/G,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClF,YAAY,EACV,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,UAAU,CAAC"}
|
package/dist/validation/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { checkAttributeExistence, readUnresolvedFields } from "./attributes.js";
|
|
|
5
5
|
export { buildConfigGraph } from "./config-graph.js";
|
|
6
6
|
export { checkRollbackReadiness, readMigrationOps } from "./rollback.js";
|
|
7
7
|
export { checkRouteDrift } from "./route-drift.js";
|
|
8
|
+
export { ancestorInitPaths, checkOrmModelRegistration } from "./orm-registration.js";
|
|
8
9
|
export { runJoinSubstitutionControl } from "./join-substitution.js";
|
|
9
10
|
export { scanConfigSurfaces, skipDirectory, readDotenv, readImageBuild, readStructured, readWranglerVars, readWranglerVarsEntries, } from "./sources.js";
|
|
10
11
|
export { checkEnvironment, readEnvReads, DEFAULT_COVERAGE_FLOOR } from "./env.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAW/G,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAWpE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAW/G,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAQrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAWpE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/** ORM model registration — the UAT phase-4 audit's "Bug B": a SQLAlchemy-style model
|
|
2
|
+
* class inherits the declarative base but is defined in a module no `__init__.py` in
|
|
3
|
+
* its own package imports. A package's `__init__.py` conventionally re-imports every
|
|
4
|
+
* model module specifically so `Base.metadata` — the registry `alembic
|
|
5
|
+
* --autogenerate` reads — actually includes them; miss the import and the model is
|
|
6
|
+
* invisible to that registry. Alembic then sees a table the database has but the
|
|
7
|
+
* declared models don't, and `--autogenerate` writes a migration that **drops** it.
|
|
8
|
+
*
|
|
9
|
+
* Both edges this reuses are already produced elsewhere in the pipeline, never
|
|
10
|
+
* reinvented here: `INHERITS` (a class descending from a base) and `IMPORTS`
|
|
11
|
+
* (whether a package's `__init__.py` reaches the defining module).
|
|
12
|
+
*
|
|
13
|
+
* ## Recognising "inherits the ORM declarative base" without naming a framework
|
|
14
|
+
*
|
|
15
|
+
* Core carries no notion of "SQLAlchemy" or "Django" above the IR boundary (rule 1),
|
|
16
|
+
* and a name check on the base class ("is it called `Base`?") is exactly the kind of
|
|
17
|
+
* heuristic rule 2 forbids. The one signal already on the graph that says "this
|
|
18
|
+
* class's inheritance chain reaches an ORM declarative base" is the extractor's own
|
|
19
|
+
* `MODEL` classification: per the golden corpus (`fixtures/golden/patterns.json`,
|
|
20
|
+
* patterns 06/07) and `capabilities.ts`'s `ORM_EXTRACTOR` doc comment, `MODEL` is
|
|
21
|
+
* minted *because* the extractor found "a persistence annotation, a declarative
|
|
22
|
+
* base, a table binding" — never a name match. So this check's recognition rule is:
|
|
23
|
+
* **a `MODEL` node with at least one outgoing `INHERITS` edge** is, by construction
|
|
24
|
+
* of the extractor that classified it, a class inheriting the ORM declarative base.
|
|
25
|
+
*
|
|
26
|
+
* An abstract intermediate class that maps no column of its own is not itself
|
|
27
|
+
* promoted to `MODEL` — see the `Base`/`Order` example in
|
|
28
|
+
* `fixtures/languages/python/src/models.py`, where the comment on `Base` reads
|
|
29
|
+
* "maps no column, so it is not itself a model." So an abstract base is never a seed
|
|
30
|
+
* here, which is exactly the "don't flag an abstract intermediate the same way as a
|
|
31
|
+
* concrete leaf model" distinction — it falls out of reusing the existing `MODEL`
|
|
32
|
+
* classification rather than needing separate chain-walking logic.
|
|
33
|
+
*
|
|
34
|
+
* ## Reachability: "own package's `__init__.py`, walking up, transitively"
|
|
35
|
+
*
|
|
36
|
+
* `IMPORTS` is file-level (vocabulary.ts), so both endpoints are `MODULE`/`FILE`
|
|
37
|
+
* nodes (`fileScopedNodes`). For a model defined in `a/b/model.py`, the candidate
|
|
38
|
+
* aggregators are `a/b/__init__.py`, `a/__init__.py`, `__init__.py` — every ancestor
|
|
39
|
+
* package's own `__init__.py`, not only the immediate one: a nested package can be
|
|
40
|
+
* reached solely through a parent's `__init__` re-export. Reachability is `bfs`
|
|
41
|
+
* (`../query/traverse.ts`, the same transitive-reachability primitive
|
|
42
|
+
* `impactOf`/`testsCovering` already use), seeded at whichever of those candidate
|
|
43
|
+
* paths actually have a MODULE/FILE node in this graph, walking `IMPORTS` outward
|
|
44
|
+
* with no depth cap (only the node budget). An `__init__.py` that imports a
|
|
45
|
+
* `models_registry.py` that in turn imports the model module is therefore reached —
|
|
46
|
+
* exactly the false-positive shape the design review called out: this traversal is
|
|
47
|
+
* not restricted to direct imports.
|
|
48
|
+
*
|
|
49
|
+
* ## Why this is a lead, never a defect
|
|
50
|
+
*
|
|
51
|
+
* `Base.metadata` can be populated by an explicit scan/glob instead of manual
|
|
52
|
+
* imports (this check cannot see that from the graph), a model can be an
|
|
53
|
+
* intentionally unmigrated abstract/mixin base, or deliberately excluded from
|
|
54
|
+
* migrations for now. Promoting straight to `defect` needs a measured precision
|
|
55
|
+
* this check has not been run against yet — the same discipline this codebase
|
|
56
|
+
* already holds itself to elsewhere (a heuristic measured at 25% precision against
|
|
57
|
+
* a 90% bar was not shipped as a defect). So every finding here carries
|
|
58
|
+
* `claim: "lead"` and says so in its own text, never promoted silently. */
|
|
59
|
+
import type { ResolutionLevel } from "@descryy/ir";
|
|
60
|
+
import type { ContractClaim } from "../contracts/orphans.ts";
|
|
61
|
+
import type { AdjacencyProvider, QueryResult } from "../query/provider.ts";
|
|
62
|
+
export type OrmRegistrationFindingKind = "MODEL_NOT_REACHED_BY_INIT";
|
|
63
|
+
export interface OrmRegistrationFinding {
|
|
64
|
+
readonly kind: OrmRegistrationFindingKind;
|
|
65
|
+
/** Always "lead" today — see the header's "Why this is a lead, never a defect". */
|
|
66
|
+
readonly claim: ContractClaim;
|
|
67
|
+
readonly model: string;
|
|
68
|
+
readonly modelId: string;
|
|
69
|
+
readonly file: string;
|
|
70
|
+
readonly line: number;
|
|
71
|
+
/** The sentence a developer reads, including the reasoning for `claim: "lead"`. */
|
|
72
|
+
readonly detail: string;
|
|
73
|
+
readonly resolution: ResolutionLevel;
|
|
74
|
+
}
|
|
75
|
+
export interface OrmRegistrationReport {
|
|
76
|
+
readonly findings: readonly OrmRegistrationFinding[];
|
|
77
|
+
/** The count before `maxFindings` capped it — P27's disclosed remainder: a structured field, not only a prose note. */
|
|
78
|
+
readonly findingsTotal: number;
|
|
79
|
+
readonly examined: {
|
|
80
|
+
/** MODEL nodes with at least one outgoing INHERITS edge — this check's population. */
|
|
81
|
+
readonly candidates: number;
|
|
82
|
+
};
|
|
83
|
+
/** True when at least one candidate was examined. */
|
|
84
|
+
readonly ran: boolean;
|
|
85
|
+
readonly withheld: {
|
|
86
|
+
/** A candidate whose package tree carries no `__init__.py` node anywhere in this
|
|
87
|
+
* graph — nothing to check reachability against, so refused rather than guessed. */
|
|
88
|
+
readonly noInitInPackage: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export interface OrmRegistrationOptions {
|
|
92
|
+
/** Restrict candidates to these repo-relative files. Reachability is still resolved
|
|
93
|
+
* against the whole graph — a reaching `__init__.py` commonly sits outside the diff. */
|
|
94
|
+
readonly files?: readonly string[];
|
|
95
|
+
readonly maxFindings?: number;
|
|
96
|
+
/** Cap on MODEL/file-scoped nodes enumerated. Truncation is reported. */
|
|
97
|
+
readonly limit?: number;
|
|
98
|
+
/** Node budget per candidate's reachability traversal. */
|
|
99
|
+
readonly budget?: number;
|
|
100
|
+
}
|
|
101
|
+
/** Every `__init__.py` path that could aggregate `file`'s module: its own package's,
|
|
102
|
+
* and every ancestor package's, own package first. Pure path arithmetic — whether any
|
|
103
|
+
* of these actually exist as a node in the graph is decided by the caller. */
|
|
104
|
+
export declare function ancestorInitPaths(file: string): readonly string[];
|
|
105
|
+
export declare function checkOrmModelRegistration(provider: AdjacencyProvider, options?: OrmRegistrationOptions): QueryResult<OrmRegistrationReport>;
|
|
106
|
+
//# sourceMappingURL=orm-registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm-registration.d.ts","sourceRoot":"","sources":["../../src/validation/orm-registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAyD4E;AAE5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAc,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvF,MAAM,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACrD,uHAAuH;IACvH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,sFAAsF;QACtF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,qDAAqD;IACrD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB;6FACqF;QACrF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC;6FACyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD;;+EAE+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CASjE;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,sBAA2B,GACnC,WAAW,CAAC,qBAAqB,CAAC,CAuIpC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/** ORM model registration — the UAT phase-4 audit's "Bug B": a SQLAlchemy-style model
|
|
2
|
+
* class inherits the declarative base but is defined in a module no `__init__.py` in
|
|
3
|
+
* its own package imports. A package's `__init__.py` conventionally re-imports every
|
|
4
|
+
* model module specifically so `Base.metadata` — the registry `alembic
|
|
5
|
+
* --autogenerate` reads — actually includes them; miss the import and the model is
|
|
6
|
+
* invisible to that registry. Alembic then sees a table the database has but the
|
|
7
|
+
* declared models don't, and `--autogenerate` writes a migration that **drops** it.
|
|
8
|
+
*
|
|
9
|
+
* Both edges this reuses are already produced elsewhere in the pipeline, never
|
|
10
|
+
* reinvented here: `INHERITS` (a class descending from a base) and `IMPORTS`
|
|
11
|
+
* (whether a package's `__init__.py` reaches the defining module).
|
|
12
|
+
*
|
|
13
|
+
* ## Recognising "inherits the ORM declarative base" without naming a framework
|
|
14
|
+
*
|
|
15
|
+
* Core carries no notion of "SQLAlchemy" or "Django" above the IR boundary (rule 1),
|
|
16
|
+
* and a name check on the base class ("is it called `Base`?") is exactly the kind of
|
|
17
|
+
* heuristic rule 2 forbids. The one signal already on the graph that says "this
|
|
18
|
+
* class's inheritance chain reaches an ORM declarative base" is the extractor's own
|
|
19
|
+
* `MODEL` classification: per the golden corpus (`fixtures/golden/patterns.json`,
|
|
20
|
+
* patterns 06/07) and `capabilities.ts`'s `ORM_EXTRACTOR` doc comment, `MODEL` is
|
|
21
|
+
* minted *because* the extractor found "a persistence annotation, a declarative
|
|
22
|
+
* base, a table binding" — never a name match. So this check's recognition rule is:
|
|
23
|
+
* **a `MODEL` node with at least one outgoing `INHERITS` edge** is, by construction
|
|
24
|
+
* of the extractor that classified it, a class inheriting the ORM declarative base.
|
|
25
|
+
*
|
|
26
|
+
* An abstract intermediate class that maps no column of its own is not itself
|
|
27
|
+
* promoted to `MODEL` — see the `Base`/`Order` example in
|
|
28
|
+
* `fixtures/languages/python/src/models.py`, where the comment on `Base` reads
|
|
29
|
+
* "maps no column, so it is not itself a model." So an abstract base is never a seed
|
|
30
|
+
* here, which is exactly the "don't flag an abstract intermediate the same way as a
|
|
31
|
+
* concrete leaf model" distinction — it falls out of reusing the existing `MODEL`
|
|
32
|
+
* classification rather than needing separate chain-walking logic.
|
|
33
|
+
*
|
|
34
|
+
* ## Reachability: "own package's `__init__.py`, walking up, transitively"
|
|
35
|
+
*
|
|
36
|
+
* `IMPORTS` is file-level (vocabulary.ts), so both endpoints are `MODULE`/`FILE`
|
|
37
|
+
* nodes (`fileScopedNodes`). For a model defined in `a/b/model.py`, the candidate
|
|
38
|
+
* aggregators are `a/b/__init__.py`, `a/__init__.py`, `__init__.py` — every ancestor
|
|
39
|
+
* package's own `__init__.py`, not only the immediate one: a nested package can be
|
|
40
|
+
* reached solely through a parent's `__init__` re-export. Reachability is `bfs`
|
|
41
|
+
* (`../query/traverse.ts`, the same transitive-reachability primitive
|
|
42
|
+
* `impactOf`/`testsCovering` already use), seeded at whichever of those candidate
|
|
43
|
+
* paths actually have a MODULE/FILE node in this graph, walking `IMPORTS` outward
|
|
44
|
+
* with no depth cap (only the node budget). An `__init__.py` that imports a
|
|
45
|
+
* `models_registry.py` that in turn imports the model module is therefore reached —
|
|
46
|
+
* exactly the false-positive shape the design review called out: this traversal is
|
|
47
|
+
* not restricted to direct imports.
|
|
48
|
+
*
|
|
49
|
+
* ## Why this is a lead, never a defect
|
|
50
|
+
*
|
|
51
|
+
* `Base.metadata` can be populated by an explicit scan/glob instead of manual
|
|
52
|
+
* imports (this check cannot see that from the graph), a model can be an
|
|
53
|
+
* intentionally unmigrated abstract/mixin base, or deliberately excluded from
|
|
54
|
+
* migrations for now. Promoting straight to `defect` needs a measured precision
|
|
55
|
+
* this check has not been run against yet — the same discipline this codebase
|
|
56
|
+
* already holds itself to elsewhere (a heuristic measured at 25% precision against
|
|
57
|
+
* a 90% bar was not shipped as a defect). So every finding here carries
|
|
58
|
+
* `claim: "lead"` and says so in its own text, never promoted silently. */
|
|
59
|
+
import { bfs } from "../query/traverse.js";
|
|
60
|
+
import { fileScopedNodes } from "./nodes.js";
|
|
61
|
+
const DEFAULT_MAX_FINDINGS = 25;
|
|
62
|
+
const DEFAULT_TRAVERSAL_BUDGET = 500;
|
|
63
|
+
/** Every `__init__.py` path that could aggregate `file`'s module: its own package's,
|
|
64
|
+
* and every ancestor package's, own package first. Pure path arithmetic — whether any
|
|
65
|
+
* of these actually exist as a node in the graph is decided by the caller. */
|
|
66
|
+
export function ancestorInitPaths(file) {
|
|
67
|
+
const parts = file.split("/");
|
|
68
|
+
parts.pop(); // drop the file's own name
|
|
69
|
+
const paths = [];
|
|
70
|
+
for (let i = parts.length; i >= 0; i -= 1) {
|
|
71
|
+
const dir = parts.slice(0, i).join("/");
|
|
72
|
+
paths.push(dir === "" ? "__init__.py" : `${dir}/__init__.py`);
|
|
73
|
+
}
|
|
74
|
+
return paths;
|
|
75
|
+
}
|
|
76
|
+
export function checkOrmModelRegistration(provider, options = {}) {
|
|
77
|
+
const maxFindings = options.maxFindings ?? DEFAULT_MAX_FINDINGS;
|
|
78
|
+
const budget = options.budget ?? DEFAULT_TRAVERSAL_BUDGET;
|
|
79
|
+
const scoped = options.files === undefined ? null : new Set(options.files);
|
|
80
|
+
const notes = [];
|
|
81
|
+
const moduleFiles = fileScopedNodes(provider, options.limit);
|
|
82
|
+
const moduleIdByPath = new Map();
|
|
83
|
+
for (const node of moduleFiles.nodes) {
|
|
84
|
+
if (node.file !== null)
|
|
85
|
+
moduleIdByPath.set(node.file, node.id);
|
|
86
|
+
}
|
|
87
|
+
const modelSet = provider.nodesOfType("MODEL", options.limit);
|
|
88
|
+
const findings = [];
|
|
89
|
+
let candidates = 0;
|
|
90
|
+
let noInitInPackage = 0;
|
|
91
|
+
let anyTraversalTruncated = false;
|
|
92
|
+
for (const model of modelSet.nodes) {
|
|
93
|
+
if (model.file === null)
|
|
94
|
+
continue; // fileless — no package to reason about.
|
|
95
|
+
if (scoped !== null && !scoped.has(model.file))
|
|
96
|
+
continue;
|
|
97
|
+
// Recognition: a MODEL with no INHERITS edge was classified from a persistence
|
|
98
|
+
// annotation or table binding alone, not an inheritance chain — see the header.
|
|
99
|
+
const inherits = provider.outgoing(model.id, { types: ["INHERITS"] });
|
|
100
|
+
if (inherits.length === 0)
|
|
101
|
+
continue;
|
|
102
|
+
candidates += 1;
|
|
103
|
+
const ownModuleId = moduleIdByPath.get(model.file);
|
|
104
|
+
if (ownModuleId === undefined)
|
|
105
|
+
continue; // no MODULE/FILE node for its own file — IMPORTS is unreasoned-about here.
|
|
106
|
+
const initSeeds = ancestorInitPaths(model.file)
|
|
107
|
+
.map((path) => moduleIdByPath.get(path))
|
|
108
|
+
.filter((id) => id !== undefined);
|
|
109
|
+
if (initSeeds.length === 0) {
|
|
110
|
+
noInitInPackage += 1;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const outcome = bfs(provider, initSeeds, { types: ["IMPORTS"], direction: "out", budget });
|
|
114
|
+
if (outcome.truncated)
|
|
115
|
+
anyTraversalTruncated = true;
|
|
116
|
+
const reached = new Set(outcome.reached.map((r) => r.id));
|
|
117
|
+
if (reached.has(ownModuleId))
|
|
118
|
+
continue; // reached, directly or transitively — clean.
|
|
119
|
+
const base = provider.node(inherits[0].to);
|
|
120
|
+
const baseName = base?.name ?? "its declarative base";
|
|
121
|
+
const where = model.range === null ? model.file : `${model.file}:${model.range.startLine}`;
|
|
122
|
+
findings.push({
|
|
123
|
+
kind: "MODEL_NOT_REACHED_BY_INIT",
|
|
124
|
+
claim: "lead",
|
|
125
|
+
model: model.name,
|
|
126
|
+
modelId: model.id,
|
|
127
|
+
file: model.file,
|
|
128
|
+
line: model.range?.startLine ?? 0,
|
|
129
|
+
detail: `${model.name} (${where}) inherits ${baseName}, the ORM declarative base, but no ` +
|
|
130
|
+
"__init__.py in its own package — or an ancestor package's — imports the module that " +
|
|
131
|
+
"defines it, directly or transitively. If this model needs to be picked up by " +
|
|
132
|
+
"migrations, it may be silently invisible to them: the same shape as a model that never " +
|
|
133
|
+
"reaches Base.metadata and has its table dropped by the next autogenerate run. This is a " +
|
|
134
|
+
"lead, not a defect: a model registered through an explicit scan/glob rather than by " +
|
|
135
|
+
"import, or one deliberately excluded (an abstract/mixin base, or a model not yet wired " +
|
|
136
|
+
"into migrations), is expected to trigger this without being a bug.",
|
|
137
|
+
resolution: Math.min(model.resolution, inherits[0].resolution, outcome.resolutionFloor),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
findings.sort((a, b) => a.file.localeCompare(b.file) || a.model.localeCompare(b.model));
|
|
141
|
+
const kept = findings.slice(0, maxFindings);
|
|
142
|
+
const ran = candidates > 0;
|
|
143
|
+
if (!ran) {
|
|
144
|
+
notes.push("No MODEL node in the graph carries an outgoing INHERITS edge, so nothing was checked for " +
|
|
145
|
+
"package-import reachability. This check treats a MODEL node with at least one INHERITS " +
|
|
146
|
+
"edge as a class inheriting an ORM declarative base; either no such class exists in this " +
|
|
147
|
+
"graph, or no adapter emitted both the MODEL classification and the INHERITS edge on this " +
|
|
148
|
+
"run. This is not a result of every model being correctly wired to its package's __init__.");
|
|
149
|
+
}
|
|
150
|
+
if (noInitInPackage > 0) {
|
|
151
|
+
notes.push(`${noInitInPackage} candidate(s) sit in a package with no __init__.py node anywhere in its ` +
|
|
152
|
+
"ancestor chain in this graph, so reachability from a package aggregator could not be " +
|
|
153
|
+
"evaluated at all and nothing was reported for them. Absence of a finding here is not " +
|
|
154
|
+
"evidence that they are wired in.");
|
|
155
|
+
}
|
|
156
|
+
if (scoped !== null) {
|
|
157
|
+
notes.push(`Candidates were restricted to ${scoped.size} scoped file(s), by the file the model class ` +
|
|
158
|
+
"is defined in. Reachability is still resolved against the whole graph, because the " +
|
|
159
|
+
"reaching __init__.py commonly sits outside the diff.");
|
|
160
|
+
}
|
|
161
|
+
if (kept.length < findings.length) {
|
|
162
|
+
notes.push(`${findings.length - kept.length} further finding(s) were withheld: a report is capped at ` +
|
|
163
|
+
`${maxFindings} so a short list stays worth reading. They were found, not missed.`);
|
|
164
|
+
}
|
|
165
|
+
if (anyTraversalTruncated) {
|
|
166
|
+
notes.push("At least one reachability traversal hit its node budget before finishing. A model reported " +
|
|
167
|
+
"here as unreached may in fact be reached by a path this run did not get to walk.");
|
|
168
|
+
}
|
|
169
|
+
if (modelSet.truncated || moduleFiles.truncated) {
|
|
170
|
+
notes.push("More MODEL or file-scoped nodes exist in the graph than were enumerated, so this check " +
|
|
171
|
+
"covers a prefix of the repository rather than all of it.");
|
|
172
|
+
}
|
|
173
|
+
let resolutionFloor = 4;
|
|
174
|
+
for (const finding of kept)
|
|
175
|
+
if (finding.resolution < resolutionFloor)
|
|
176
|
+
resolutionFloor = finding.resolution;
|
|
177
|
+
const stamp = { ...provider.baseStamp(), resolutionFloor };
|
|
178
|
+
return {
|
|
179
|
+
data: {
|
|
180
|
+
findings: kept,
|
|
181
|
+
findingsTotal: findings.length,
|
|
182
|
+
examined: { candidates },
|
|
183
|
+
ran,
|
|
184
|
+
withheld: { noInitInPackage },
|
|
185
|
+
},
|
|
186
|
+
stamp,
|
|
187
|
+
truncated: modelSet.truncated || moduleFiles.truncated || anyTraversalTruncated || kept.length < findings.length,
|
|
188
|
+
notes,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=orm-registration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm-registration.js","sourceRoot":"","sources":["../../src/validation/orm-registration.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descryy/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Descry graph engine: storage, graph builder, query layer, traversal, diff scoping, git source, MCP server.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,6 +33,6 @@
|
|
|
33
33
|
"build": "tsc -b"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@descryy/ir": "0.5.
|
|
36
|
+
"@descryy/ir": "0.5.1"
|
|
37
37
|
}
|
|
38
38
|
}
|