@vyuhlabs/dxkit 2.22.0 → 2.24.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/CHANGELOG.md +97 -0
- package/dist/analyzers/correctness/run.d.ts +79 -0
- package/dist/analyzers/correctness/run.d.ts.map +1 -0
- package/dist/analyzers/correctness/run.js +173 -0
- package/dist/analyzers/correctness/run.js.map +1 -0
- package/dist/analyzers/correctness/surface-run.d.ts +73 -0
- package/dist/analyzers/correctness/surface-run.d.ts.map +1 -0
- package/dist/analyzers/correctness/surface-run.js +142 -0
- package/dist/analyzers/correctness/surface-run.js.map +1 -0
- package/dist/analyzers/correctness/surface.d.ts +69 -0
- package/dist/analyzers/correctness/surface.d.ts.map +1 -0
- package/dist/analyzers/correctness/surface.js +281 -0
- package/dist/analyzers/correctness/surface.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +144 -4
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +5 -0
- package/dist/generator.js.map +1 -1
- package/dist/issue-cli.d.ts +2 -1
- package/dist/issue-cli.d.ts.map +1 -1
- package/dist/issue-cli.js +4 -0
- package/dist/issue-cli.js.map +1 -1
- package/dist/languages/capabilities/correctness.d.ts +54 -0
- package/dist/languages/capabilities/correctness.d.ts.map +1 -0
- package/dist/languages/capabilities/correctness.js +20 -0
- package/dist/languages/capabilities/correctness.js.map +1 -0
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +84 -0
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +51 -0
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +11 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +12 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +12 -0
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/jvm-build.d.ts +54 -0
- package/dist/languages/jvm-build.d.ts.map +1 -0
- package/dist/languages/jvm-build.js +245 -0
- package/dist/languages/jvm-build.js.map +1 -0
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +13 -0
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +78 -0
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +64 -0
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +110 -0
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +20 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +109 -0
- package/dist/languages/typescript.js.map +1 -1
- package/dist/loop/floor-gate.d.ts +54 -0
- package/dist/loop/floor-gate.d.ts.map +1 -0
- package/dist/loop/floor-gate.js +157 -0
- package/dist/loop/floor-gate.js.map +1 -0
- package/dist/loop/floor-state.d.ts +66 -0
- package/dist/loop/floor-state.d.ts.map +1 -0
- package/dist/loop/floor-state.js +138 -0
- package/dist/loop/floor-state.js.map +1 -0
- package/dist/loop/scaffold.d.ts +4 -0
- package/dist/loop/scaffold.d.ts.map +1 -1
- package/dist/loop/scaffold.js +7 -7
- package/dist/loop/scaffold.js.map +1 -1
- package/dist/loop/stop-gate.d.ts +2 -1
- package/dist/loop/stop-gate.d.ts.map +1 -1
- package/dist/loop/stop-gate.js +44 -6
- package/dist/loop/stop-gate.js.map +1 -1
- package/dist/ship-installers.d.ts +20 -0
- package/dist/ship-installers.d.ts.map +1 -1
- package/dist/ship-installers.js +17 -16
- package/dist/ship-installers.js.map +1 -1
- package/dist/uninstall/index.d.ts +47 -0
- package/dist/uninstall/index.d.ts.map +1 -0
- package/dist/uninstall/index.js +418 -0
- package/dist/uninstall/index.js.map +1 -0
- package/dist/uninstall/reversals.d.ts +70 -0
- package/dist/uninstall/reversals.d.ts.map +1 -0
- package/dist/uninstall/reversals.js +202 -0
- package/dist/uninstall/reversals.js.map +1 -0
- package/package.json +1 -1
- package/templates/.claude/skills/dxkit-uninstall/SKILL.md +55 -0
- package/templates/.githooks/pre-push +10 -0
- package/templates/.github/workflows/dxkit-guardrails.yml +17 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/languages/java.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/languages/java.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA6C7D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAc/D;AAmGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,YAAY,CAMpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAc1D;AAyKD,eAAO,MAAM,IAAI,EAAE,eA+GlB,CAAC"}
|
package/dist/languages/java.js
CHANGED
|
@@ -46,6 +46,7 @@ const osv_scanner_deps_1 = require("../analyzers/tools/osv-scanner-deps");
|
|
|
46
46
|
const runner_1 = require("../analyzers/tools/runner");
|
|
47
47
|
const run_tests_helper_1 = require("../analyzers/tools/run-tests-helper");
|
|
48
48
|
const tool_registry_1 = require("../analyzers/tools/tool-registry");
|
|
49
|
+
const jvm_build_1 = require("./jvm-build");
|
|
49
50
|
// ─── Detection ──────────────────────────────────────────────────────────────
|
|
50
51
|
/**
|
|
51
52
|
* Walk the project tree looking for a `.java` source file. Java's
|
|
@@ -426,6 +427,16 @@ const javaDepVulnsProvider = {
|
|
|
426
427
|
return (0, osv_scanner_deps_1.gatherOsvScannerDepVulnsResult)(cwd, 'java', 'Maven', JAVA_DEP_MANIFESTS);
|
|
427
428
|
},
|
|
428
429
|
};
|
|
430
|
+
// ─── Correctness floor (Maven/Gradle compile + module-affected tests) ──────
|
|
431
|
+
//
|
|
432
|
+
// Shared with the kotlin pack via `jvmCorrectnessProvider` (CLAUDE.md Rule 2) —
|
|
433
|
+
// both run on Maven/Gradle with the module as the affected unit. Java's only
|
|
434
|
+
// contribution is its source extension. An Android Gradle build declines (its
|
|
435
|
+
// variant-specific test tasks aren't the standard `test`/`testClasses`).
|
|
436
|
+
const javaCorrectnessProvider = (0, jvm_build_1.jvmCorrectnessProvider)({
|
|
437
|
+
sourceExtensions: ['.java'],
|
|
438
|
+
declineWhen: jvm_build_1.isAndroidGradleBuild,
|
|
439
|
+
});
|
|
429
440
|
// ─── Pack export ────────────────────────────────────────────────────────────
|
|
430
441
|
exports.java = {
|
|
431
442
|
id: 'java',
|
|
@@ -491,6 +502,7 @@ exports.java = {
|
|
|
491
502
|
semgrepRulesets: ['p/java'],
|
|
492
503
|
// CodeQL `java` extractor needs a build; Snyk Code supports Java.
|
|
493
504
|
deepSast: { codeqlLanguage: 'java', codeqlBuildRequired: true, snykCode: true },
|
|
505
|
+
correctness: javaCorrectnessProvider,
|
|
494
506
|
capabilities: {
|
|
495
507
|
imports: javaImportsProvider,
|
|
496
508
|
testFramework: javaTestFrameworkProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../src/languages/java.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../src/languages/java.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared JVM build-tool glue for the correctness floor (CLAUDE.md Rule 2 — one
|
|
3
|
+
* gather/command-builder, consumed by every pack that needs it). Both the Java
|
|
4
|
+
* and Kotlin packs run on the same two build systems (Maven, Gradle) with the
|
|
5
|
+
* same multi-module affected unit — the MODULE — so the compile + affected-test
|
|
6
|
+
* command construction lives here once and is parameterized only by which source
|
|
7
|
+
* extensions count as a "relevant change".
|
|
8
|
+
*
|
|
9
|
+
* The floor's two commands:
|
|
10
|
+
* - syntaxCheck: compile the whole reactor/build (main + test sources). Cheap,
|
|
11
|
+
* incremental via the build tool's cache, bounded by the runner's timeout
|
|
12
|
+
* (fail-open → CI backstop). Not narrowed — compile is fast and a partial
|
|
13
|
+
* compile can miss a cross-module break.
|
|
14
|
+
* - affectedTests: run the changed MODULES' tests. Maven narrows via
|
|
15
|
+
* `-pl <modules> -am`; Gradle via `:<project>:test`. A single-module project
|
|
16
|
+
* (no sub-manifests) runs the whole build — that IS its affected surface, the
|
|
17
|
+
* same way Rust's single-crate `cargo test` is. A build-file change anywhere,
|
|
18
|
+
* or a source file that can't be attributed to a sub-module, falls back to
|
|
19
|
+
* the whole build (never silently under-tests). Cross-module DEPENDENTS of a
|
|
20
|
+
* change are caught at full/CI scope, not the affected surface — the same
|
|
21
|
+
* package/module-level rung as Go and C#.
|
|
22
|
+
*
|
|
23
|
+
* The wrapper (`gradlew`) is emitted as an ABSOLUTE path, not `./gradlew`: the
|
|
24
|
+
* runner's availability check stats the bin against the process cwd while
|
|
25
|
+
* execution uses the command cwd, so a relative wrapper path would be checked in
|
|
26
|
+
* the wrong directory. An absolute path is the resolved-path form the runner
|
|
27
|
+
* explicitly supports (venv python, findTool paths).
|
|
28
|
+
*/
|
|
29
|
+
import type { CorrectnessProvider } from './capabilities/correctness';
|
|
30
|
+
/**
|
|
31
|
+
* Is this an Android Gradle build? The Android Gradle Plugin replaces the
|
|
32
|
+
* standard `test` / `testClasses` lifecycle tasks with variant-specific ones
|
|
33
|
+
* (`testDebugUnitTest`, `compileDebugKotlin`, …), so the plain commands this
|
|
34
|
+
* module builds don't apply — an Android project should decline the floor and
|
|
35
|
+
* let CI (which knows the variant) backstop, rather than false-fail on a
|
|
36
|
+
* "task not found". Cheap signal: the `com.android.*` plugin in a root build
|
|
37
|
+
* file. Exported so both JVM packs share the one detector.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isAndroidGradleBuild(cwd: string): boolean;
|
|
40
|
+
export interface JvmCorrectnessOptions {
|
|
41
|
+
/** Extensions that count as a relevant source change (`.java`, `.kt`/`.kts`). */
|
|
42
|
+
readonly sourceExtensions: readonly string[];
|
|
43
|
+
/** Optional escape hatch: decline the floor entirely when true (e.g. an
|
|
44
|
+
* Android Gradle build, whose variant-specific `testDebugUnitTest` tasks the
|
|
45
|
+
* standard `test`/`testClasses` commands don't cover — CI backstops). */
|
|
46
|
+
readonly declineWhen?: (cwd: string) => boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build a `CorrectnessProvider` for a JVM language pack. Shared by the Java and
|
|
50
|
+
* Kotlin packs (CLAUDE.md Rule 2) — the two differ only in which extensions mark
|
|
51
|
+
* a relevant change and whether an Android build should decline.
|
|
52
|
+
*/
|
|
53
|
+
export declare function jvmCorrectnessProvider(opts: JvmCorrectnessOptions): CorrectnessProvider;
|
|
54
|
+
//# sourceMappingURL=jvm-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jvm-build.d.ts","sourceRoot":"","sources":["../../src/languages/jvm-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAwDpC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAezD;AAiFD,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;8EAE0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,mBAAmB,CA6BvF"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared JVM build-tool glue for the correctness floor (CLAUDE.md Rule 2 — one
|
|
4
|
+
* gather/command-builder, consumed by every pack that needs it). Both the Java
|
|
5
|
+
* and Kotlin packs run on the same two build systems (Maven, Gradle) with the
|
|
6
|
+
* same multi-module affected unit — the MODULE — so the compile + affected-test
|
|
7
|
+
* command construction lives here once and is parameterized only by which source
|
|
8
|
+
* extensions count as a "relevant change".
|
|
9
|
+
*
|
|
10
|
+
* The floor's two commands:
|
|
11
|
+
* - syntaxCheck: compile the whole reactor/build (main + test sources). Cheap,
|
|
12
|
+
* incremental via the build tool's cache, bounded by the runner's timeout
|
|
13
|
+
* (fail-open → CI backstop). Not narrowed — compile is fast and a partial
|
|
14
|
+
* compile can miss a cross-module break.
|
|
15
|
+
* - affectedTests: run the changed MODULES' tests. Maven narrows via
|
|
16
|
+
* `-pl <modules> -am`; Gradle via `:<project>:test`. A single-module project
|
|
17
|
+
* (no sub-manifests) runs the whole build — that IS its affected surface, the
|
|
18
|
+
* same way Rust's single-crate `cargo test` is. A build-file change anywhere,
|
|
19
|
+
* or a source file that can't be attributed to a sub-module, falls back to
|
|
20
|
+
* the whole build (never silently under-tests). Cross-module DEPENDENTS of a
|
|
21
|
+
* change are caught at full/CI scope, not the affected surface — the same
|
|
22
|
+
* package/module-level rung as Go and C#.
|
|
23
|
+
*
|
|
24
|
+
* The wrapper (`gradlew`) is emitted as an ABSOLUTE path, not `./gradlew`: the
|
|
25
|
+
* runner's availability check stats the bin against the process cwd while
|
|
26
|
+
* execution uses the command cwd, so a relative wrapper path would be checked in
|
|
27
|
+
* the wrong directory. An absolute path is the resolved-path form the runner
|
|
28
|
+
* explicitly supports (venv python, findTool paths).
|
|
29
|
+
*/
|
|
30
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
33
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
34
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
35
|
+
}
|
|
36
|
+
Object.defineProperty(o, k2, desc);
|
|
37
|
+
}) : (function(o, m, k, k2) {
|
|
38
|
+
if (k2 === undefined) k2 = k;
|
|
39
|
+
o[k2] = m[k];
|
|
40
|
+
}));
|
|
41
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
42
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
43
|
+
}) : function(o, v) {
|
|
44
|
+
o["default"] = v;
|
|
45
|
+
});
|
|
46
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
47
|
+
var ownKeys = function(o) {
|
|
48
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
49
|
+
var ar = [];
|
|
50
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
51
|
+
return ar;
|
|
52
|
+
};
|
|
53
|
+
return ownKeys(o);
|
|
54
|
+
};
|
|
55
|
+
return function (mod) {
|
|
56
|
+
if (mod && mod.__esModule) return mod;
|
|
57
|
+
var result = {};
|
|
58
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
59
|
+
__setModuleDefault(result, mod);
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
})();
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.isAndroidGradleBuild = isAndroidGradleBuild;
|
|
65
|
+
exports.jvmCorrectnessProvider = jvmCorrectnessProvider;
|
|
66
|
+
const fs = __importStar(require("fs"));
|
|
67
|
+
const path = __importStar(require("path"));
|
|
68
|
+
const runner_1 = require("../analyzers/tools/runner");
|
|
69
|
+
/** Per-system sub-module manifest filenames (a directory owning one of these is
|
|
70
|
+
* a build module we can narrow to). */
|
|
71
|
+
const MODULE_MANIFESTS = {
|
|
72
|
+
maven: ['pom.xml'],
|
|
73
|
+
gradle: ['build.gradle', 'build.gradle.kts'],
|
|
74
|
+
};
|
|
75
|
+
/** Any build-descriptor filename. A change to one of these can affect any
|
|
76
|
+
* module (a dependency/plugin/version bump), so it disqualifies narrowing. */
|
|
77
|
+
const JVM_BUILD_FILES = [
|
|
78
|
+
'pom.xml',
|
|
79
|
+
'build.gradle',
|
|
80
|
+
'build.gradle.kts',
|
|
81
|
+
'settings.gradle',
|
|
82
|
+
'settings.gradle.kts',
|
|
83
|
+
'gradle.properties',
|
|
84
|
+
'libs.versions.toml',
|
|
85
|
+
];
|
|
86
|
+
/** The absolute Gradle wrapper path when present, else bare `gradle` (PATH). */
|
|
87
|
+
function gradleBin(cwd) {
|
|
88
|
+
const wrapper = path.join(cwd, 'gradlew');
|
|
89
|
+
return fs.existsSync(wrapper) ? wrapper : 'gradle';
|
|
90
|
+
}
|
|
91
|
+
/** Detect the build system rooted at cwd. Maven-first when both are present
|
|
92
|
+
* (rare); null when neither manifest exists — the floor then skips. */
|
|
93
|
+
function detectJvmBuild(cwd) {
|
|
94
|
+
if ((0, runner_1.fileExists)(cwd, 'pom.xml'))
|
|
95
|
+
return { system: 'maven', bin: 'mvn' };
|
|
96
|
+
if ((0, runner_1.fileExists)(cwd, 'build.gradle') ||
|
|
97
|
+
(0, runner_1.fileExists)(cwd, 'build.gradle.kts') ||
|
|
98
|
+
(0, runner_1.fileExists)(cwd, 'gradlew') ||
|
|
99
|
+
(0, runner_1.fileExists)(cwd, 'settings.gradle') ||
|
|
100
|
+
(0, runner_1.fileExists)(cwd, 'settings.gradle.kts')) {
|
|
101
|
+
return { system: 'gradle', bin: gradleBin(cwd) };
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
function isJvmBuildFile(rel) {
|
|
106
|
+
const base = rel.replace(/\\/g, '/').split('/').pop() ?? '';
|
|
107
|
+
return JVM_BUILD_FILES.includes(base);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Is this an Android Gradle build? The Android Gradle Plugin replaces the
|
|
111
|
+
* standard `test` / `testClasses` lifecycle tasks with variant-specific ones
|
|
112
|
+
* (`testDebugUnitTest`, `compileDebugKotlin`, …), so the plain commands this
|
|
113
|
+
* module builds don't apply — an Android project should decline the floor and
|
|
114
|
+
* let CI (which knows the variant) backstop, rather than false-fail on a
|
|
115
|
+
* "task not found". Cheap signal: the `com.android.*` plugin in a root build
|
|
116
|
+
* file. Exported so both JVM packs share the one detector.
|
|
117
|
+
*/
|
|
118
|
+
function isAndroidGradleBuild(cwd) {
|
|
119
|
+
for (const rel of [
|
|
120
|
+
'build.gradle.kts',
|
|
121
|
+
'build.gradle',
|
|
122
|
+
'settings.gradle.kts',
|
|
123
|
+
'settings.gradle',
|
|
124
|
+
]) {
|
|
125
|
+
if (!(0, runner_1.fileExists)(cwd, rel))
|
|
126
|
+
continue;
|
|
127
|
+
try {
|
|
128
|
+
if (fs.readFileSync(path.join(cwd, rel), 'utf-8').includes('com.android'))
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
/* ignore unreadable */
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The repo-relative directory of the nearest ANCESTOR sub-module owning
|
|
139
|
+
* `relFile` — the closest directory (below the root) that carries a module
|
|
140
|
+
* manifest. Returns null when the nearest manifest is the root itself (a
|
|
141
|
+
* root-level change affects the whole build) or none is found.
|
|
142
|
+
*/
|
|
143
|
+
function nearestModuleDir(cwd, relFile, manifests) {
|
|
144
|
+
let dir = path.dirname(relFile).replace(/\\/g, '/');
|
|
145
|
+
for (;;) {
|
|
146
|
+
if (dir === '.' || dir === '')
|
|
147
|
+
return null; // reached the root → not a sub-module
|
|
148
|
+
try {
|
|
149
|
+
const entries = fs.readdirSync(path.join(cwd, dir));
|
|
150
|
+
if (entries.some((f) => manifests.includes(f)))
|
|
151
|
+
return dir;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
/* dir unreadable — keep walking up */
|
|
155
|
+
}
|
|
156
|
+
dir = path.dirname(dir);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The distinct sub-module directories owning the changed source files. Returns
|
|
161
|
+
* null when ANY changed source file can't be attributed to a sub-module (it
|
|
162
|
+
* lives at the root, or the project is single-module) — the caller then runs the
|
|
163
|
+
* whole build, never under-testing.
|
|
164
|
+
*/
|
|
165
|
+
function jvmChangedModules(cwd, changedSources, manifests) {
|
|
166
|
+
const mods = new Set();
|
|
167
|
+
for (const f of changedSources) {
|
|
168
|
+
const mod = nearestModuleDir(cwd, f, manifests);
|
|
169
|
+
if (mod === null)
|
|
170
|
+
return null; // root-level / single-module → whole build
|
|
171
|
+
mods.add(mod);
|
|
172
|
+
}
|
|
173
|
+
return [...mods];
|
|
174
|
+
}
|
|
175
|
+
/** Whole-build compile (main + test sources). */
|
|
176
|
+
function compileCommand(build) {
|
|
177
|
+
if (build.system === 'maven') {
|
|
178
|
+
return { label: 'compile', bin: build.bin, args: ['-q', '-B', 'test-compile'] };
|
|
179
|
+
}
|
|
180
|
+
// Unqualified `testClasses` runs in every subproject that has it (Gradle
|
|
181
|
+
// executes an unqualified task name across the root + all subprojects), so it
|
|
182
|
+
// compiles main + test for the whole build without the root needing the task.
|
|
183
|
+
return { label: 'compile', bin: build.bin, args: ['testClasses'] };
|
|
184
|
+
}
|
|
185
|
+
/** Whole-build test run (the `full`-scope and safe-fallback command). */
|
|
186
|
+
function testCommandFull(build) {
|
|
187
|
+
if (build.system === 'maven') {
|
|
188
|
+
return { label: 'affected-tests', bin: build.bin, args: ['-q', '-B', 'test'] };
|
|
189
|
+
}
|
|
190
|
+
return { label: 'affected-tests', bin: build.bin, args: ['test'] };
|
|
191
|
+
}
|
|
192
|
+
/** Narrowed test run over the given sub-module directories. */
|
|
193
|
+
function testCommandForModules(build, mods) {
|
|
194
|
+
if (build.system === 'maven') {
|
|
195
|
+
// -pl takes a comma-joined list of module paths; -am also-makes (compiles)
|
|
196
|
+
// the upstream dependencies of the listed modules so their tests can build.
|
|
197
|
+
return {
|
|
198
|
+
label: 'affected-tests',
|
|
199
|
+
bin: build.bin,
|
|
200
|
+
args: ['-q', '-B', '-pl', mods.join(','), '-am', 'test'],
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
// Gradle project path: `a/b` → `:a:b`, task `:a:b:test`.
|
|
204
|
+
const tasks = mods.map((d) => `:${d.replace(/\\/g, '/').split('/').join(':')}:test`);
|
|
205
|
+
return { label: 'affected-tests', bin: build.bin, args: tasks };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Build a `CorrectnessProvider` for a JVM language pack. Shared by the Java and
|
|
209
|
+
* Kotlin packs (CLAUDE.md Rule 2) — the two differ only in which extensions mark
|
|
210
|
+
* a relevant change and whether an Android build should decline.
|
|
211
|
+
*/
|
|
212
|
+
function jvmCorrectnessProvider(opts) {
|
|
213
|
+
const isSource = (f) => opts.sourceExtensions.some((e) => f.endsWith(e));
|
|
214
|
+
return {
|
|
215
|
+
syntaxCheck(ctx) {
|
|
216
|
+
if (opts.declineWhen?.(ctx.cwd))
|
|
217
|
+
return null;
|
|
218
|
+
const build = detectJvmBuild(ctx.cwd);
|
|
219
|
+
if (!build)
|
|
220
|
+
return null;
|
|
221
|
+
return compileCommand(build);
|
|
222
|
+
},
|
|
223
|
+
affectedTests(ctx) {
|
|
224
|
+
if (opts.declineWhen?.(ctx.cwd))
|
|
225
|
+
return null;
|
|
226
|
+
const build = detectJvmBuild(ctx.cwd);
|
|
227
|
+
if (!build)
|
|
228
|
+
return null;
|
|
229
|
+
const undeterminable = ctx.changedFiles.length === 0;
|
|
230
|
+
if (ctx.scope !== 'affected' || undeterminable)
|
|
231
|
+
return testCommandFull(build);
|
|
232
|
+
const changedSources = ctx.changedFiles.filter(isSource);
|
|
233
|
+
if (changedSources.length === 0)
|
|
234
|
+
return null; // no relevant source change → skip
|
|
235
|
+
// A build-descriptor change can affect any module — don't narrow.
|
|
236
|
+
if (ctx.changedFiles.some(isJvmBuildFile))
|
|
237
|
+
return testCommandFull(build);
|
|
238
|
+
const mods = jvmChangedModules(ctx.cwd, changedSources, MODULE_MANIFESTS[build.system]);
|
|
239
|
+
if (mods && mods.length > 0)
|
|
240
|
+
return testCommandForModules(build, mods);
|
|
241
|
+
return testCommandFull(build); // single-module / unattributable → whole build
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=jvm-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jvm-build.js","sourceRoot":"","sources":["../../src/languages/jvm-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAkD7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAMhE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAWpE;AAuLD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjE;AAwGD,eAAO,MAAM,MAAM,EAAE,eAmIpB,CAAC"}
|
package/dist/languages/kotlin.js
CHANGED
|
@@ -47,6 +47,7 @@ const walk_source_files_1 = require("../analyzers/tools/walk-source-files");
|
|
|
47
47
|
const runner_1 = require("../analyzers/tools/runner");
|
|
48
48
|
const run_tests_helper_1 = require("../analyzers/tools/run-tests-helper");
|
|
49
49
|
const tool_registry_1 = require("../analyzers/tools/tool-registry");
|
|
50
|
+
const jvm_build_1 = require("./jvm-build");
|
|
50
51
|
// ─── Detection ──────────────────────────────────────────────────────────────
|
|
51
52
|
/**
|
|
52
53
|
* Walk the project tree (bounded depth) looking for a `.kt` or `.kts`
|
|
@@ -416,6 +417,17 @@ const kotlinTestFrameworkProvider = {
|
|
|
416
417
|
return gatherKotlinTestFrameworkResult(cwd);
|
|
417
418
|
},
|
|
418
419
|
};
|
|
420
|
+
// ─── Correctness floor (Maven/Gradle compile + module-affected tests) ──────
|
|
421
|
+
//
|
|
422
|
+
// Shared with the java pack via `jvmCorrectnessProvider` (CLAUDE.md Rule 2).
|
|
423
|
+
// Kotlin contributes both source extensions (`.kt` for sources, `.kts` for
|
|
424
|
+
// build/scratch scripts). An Android Gradle build declines — its variant-
|
|
425
|
+
// specific `testDebugUnitTest` / `compileDebugKotlin` tasks aren't the standard
|
|
426
|
+
// `test`/`testClasses` the shared commands run, so CI (variant-aware) backstops.
|
|
427
|
+
const kotlinCorrectnessProvider = (0, jvm_build_1.jvmCorrectnessProvider)({
|
|
428
|
+
sourceExtensions: ['.kt', '.kts'],
|
|
429
|
+
declineWhen: jvm_build_1.isAndroidGradleBuild,
|
|
430
|
+
});
|
|
419
431
|
// ─── Pack export ────────────────────────────────────────────────────────────
|
|
420
432
|
exports.kotlin = {
|
|
421
433
|
id: 'kotlin',
|
|
@@ -501,6 +513,7 @@ exports.kotlin = {
|
|
|
501
513
|
codeqlBeta: true,
|
|
502
514
|
snykCode: true,
|
|
503
515
|
},
|
|
516
|
+
correctness: kotlinCorrectnessProvider,
|
|
504
517
|
capabilities: {
|
|
505
518
|
depVulns: kotlinDepVulnsProvider,
|
|
506
519
|
lint: kotlinLintProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/languages/python.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/languages/python.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,6BAA6B,CAAC;AAmCnG,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAgE7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GACV,GAAG,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA6B3D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAC/D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0BvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBnE;AAoBD,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAsCtF;AA6WD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB7D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB7F;AA6MD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8BlE;AAkGD,eAAO,MAAM,MAAM,EAAE,eA0GpB,CAAC"}
|
package/dist/languages/python.js
CHANGED
|
@@ -790,6 +790,83 @@ const pyTestFrameworkProvider = {
|
|
|
790
790
|
return gatherPyTestFrameworkResult(cwd);
|
|
791
791
|
},
|
|
792
792
|
};
|
|
793
|
+
/** The interpreter the floor runs — the project's venv python (absolute path,
|
|
794
|
+
* so it uses the env that actually has pytest installed) when resolvable,
|
|
795
|
+
* else `python3` / `python` on PATH. */
|
|
796
|
+
function floorPython(cwd) {
|
|
797
|
+
return findPyProjectVenvPython(cwd) ?? ((0, runner_1.commandExists)('python3') ? 'python3' : 'python');
|
|
798
|
+
}
|
|
799
|
+
/** Is pytest actually installed for the resolved interpreter? A venv python
|
|
800
|
+
* (`.../bin/python`) has a sibling `.../bin/pytest`; a PATH interpreter uses
|
|
801
|
+
* a PATH `pytest`. Gating on this keeps a project WITHOUT pytest installed
|
|
802
|
+
* fail-OPEN (the check is skipped) rather than a fail-CLOSED "No module named
|
|
803
|
+
* pytest" that would block a developer who hasn't installed test deps. */
|
|
804
|
+
function pytestInstalledFor(python) {
|
|
805
|
+
if (python.includes('/') || python.includes(path.sep)) {
|
|
806
|
+
const pytestBin = path.join(path.dirname(python), 'pytest');
|
|
807
|
+
return isPyExecutable(pytestBin);
|
|
808
|
+
}
|
|
809
|
+
return (0, runner_1.commandExists)('pytest');
|
|
810
|
+
}
|
|
811
|
+
/** A changed Python file that is a pytest test module (`test_*.py` /
|
|
812
|
+
* `*_test.py`, or under a `tests/` directory) — the pack's file-level
|
|
813
|
+
* affected-selection unit. */
|
|
814
|
+
function isPyTestFile(rel) {
|
|
815
|
+
const base = path.basename(rel);
|
|
816
|
+
return (/^test_.*\.py$/.test(base) ||
|
|
817
|
+
/_test\.py$/.test(base) ||
|
|
818
|
+
/(^|\/)tests?\//.test(rel.replace(/\\/g, '/')));
|
|
819
|
+
}
|
|
820
|
+
/**
|
|
821
|
+
* The Python correctness floor.
|
|
822
|
+
*
|
|
823
|
+
* syntaxCheck: `python -m py_compile <changed .py>` — the universal, stdlib
|
|
824
|
+
* parse check (needs only an interpreter, catches exactly syntax errors, and
|
|
825
|
+
* cannot false-positive on lint the way `ruff` would). Runs on the changed
|
|
826
|
+
* `.py` files; on the full/undeterminable surface it returns null because the
|
|
827
|
+
* pytest run below imports every module and surfaces a syntax error on import.
|
|
828
|
+
*
|
|
829
|
+
* affectedTests: `python -m pytest`. Native impact-selection needs a plugin
|
|
830
|
+
* (pytest-testmon / pytest-picked) that cannot be reliably detected without
|
|
831
|
+
* running, so the honest v1 rung is FILE-LEVEL — the changed test modules on
|
|
832
|
+
* the fast surface, the whole suite at full scope. A source-only change with no
|
|
833
|
+
* changed test module is syntax-checked on the fast surface and fully tested in
|
|
834
|
+
* CI. (Documented ceiling; testmon-based per-test selection is a future upgrade.)
|
|
835
|
+
*/
|
|
836
|
+
const pyCorrectnessProvider = {
|
|
837
|
+
syntaxCheck(ctx) {
|
|
838
|
+
const changedPy = ctx.changedFiles.filter((f) => f.endsWith('.py'));
|
|
839
|
+
if (changedPy.length === 0)
|
|
840
|
+
return null; // full-scope backstop is the pytest import
|
|
841
|
+
const python = floorPython(ctx.cwd);
|
|
842
|
+
if (!binaryLike(python))
|
|
843
|
+
return null;
|
|
844
|
+
return { label: 'syntax', bin: python, args: ['-m', 'py_compile', ...changedPy] };
|
|
845
|
+
},
|
|
846
|
+
affectedTests(ctx) {
|
|
847
|
+
if (gatherPyTestFrameworkResult(ctx.cwd) === null)
|
|
848
|
+
return null; // no pytest project
|
|
849
|
+
const python = floorPython(ctx.cwd);
|
|
850
|
+
if (!pytestInstalledFor(python))
|
|
851
|
+
return null; // fail-open: pytest not installed here
|
|
852
|
+
const undeterminable = ctx.changedFiles.length === 0;
|
|
853
|
+
const changedTests = ctx.changedFiles.filter((f) => f.endsWith('.py') && isPyTestFile(f));
|
|
854
|
+
if (ctx.scope === 'affected' && !undeterminable) {
|
|
855
|
+
if (changedTests.length === 0)
|
|
856
|
+
return null; // no changed test module → nothing to run
|
|
857
|
+
return { label: 'affected-tests', bin: python, args: ['-m', 'pytest', ...changedTests] };
|
|
858
|
+
}
|
|
859
|
+
// Full scope, or the diff was undeterminable → run the whole suite.
|
|
860
|
+
return { label: 'affected-tests', bin: python, args: ['-m', 'pytest'] };
|
|
861
|
+
},
|
|
862
|
+
};
|
|
863
|
+
/** A `bin` we can hand the runner: a bare name (resolved on PATH) or an
|
|
864
|
+
* existing interpreter path. Mirrors the runner's own availability gate. */
|
|
865
|
+
function binaryLike(bin) {
|
|
866
|
+
if (bin.includes('/') || bin.includes(path.sep))
|
|
867
|
+
return isPyExecutable(bin);
|
|
868
|
+
return (0, runner_1.commandExists)(bin);
|
|
869
|
+
}
|
|
793
870
|
/**
|
|
794
871
|
* Check whether an absolute path points at a runnable Python
|
|
795
872
|
* interpreter (a file; Windows `python.exe` not yet supported —
|
|
@@ -1012,6 +1089,7 @@ exports.python = {
|
|
|
1012
1089
|
semgrepRulesets: ['p/python'],
|
|
1013
1090
|
// CodeQL `python` extractor (no build); Snyk Code supports Python.
|
|
1014
1091
|
deepSast: { codeqlLanguage: 'python', snykCode: true },
|
|
1092
|
+
correctness: pyCorrectnessProvider,
|
|
1015
1093
|
capabilities: {
|
|
1016
1094
|
depVulns: pyDepVulnsProvider,
|
|
1017
1095
|
lint: pyLintProvider,
|