oxmutate 1.0.0 → 1.0.2
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/README.md +10 -5
- package/binding/oxmutate.darwin-arm64.node +0 -0
- package/binding/oxmutate.darwin-x64.node +0 -0
- package/binding/oxmutate.linux-arm64-gnu.node +0 -0
- package/binding/oxmutate.linux-x64-gnu.node +0 -0
- package/binding/oxmutate.linux-x64-musl.node +0 -0
- package/binding/oxmutate.win32-x64-msvc.node +0 -0
- package/dist/child.js +6 -0
- package/package.json +16 -8
package/README.md
CHANGED
|
@@ -224,11 +224,16 @@ key.
|
|
|
224
224
|
|
|
225
225
|
## Compatibility
|
|
226
226
|
|
|
227
|
-
**
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
**Mutants: graded by Stryker's own specs.** Stryker 10.0.0's 17 mutator spec files, vendored
|
|
228
|
+
unedited, run against oxmutate's native core (`npm run compat:mutation`): **236 of
|
|
229
|
+
236** pass. Four that test Stryker's internals (a private `filter()`, Svelte template context, a
|
|
230
|
+
log message) are listed with their reasons in `compat/not-applicable.ts`.
|
|
231
|
+
|
|
232
|
+
**Verdicts: not graded by `compat-oracle`.** That oracle grades an import path by running the
|
|
233
|
+
incumbent's own test suite against it, and a mutation tester's output is not a passing test but a
|
|
234
|
+
verdict per mutant. So the comparison is verdict agreement: the same project, scored by Stryker
|
|
235
|
+
10.0.0 and by oxmutate, each mutant's verdict compared against Stryker's own JSON report.
|
|
236
|
+
Measured on 2026-10-27
|
|
232
237
|
([`m1-results.md`](https://github.com/ofri-peretz/burgee/blob/main/.sdlc/intents/oxmutate/m1-results.md)):
|
|
233
238
|
|
|
234
239
|
| Subject | Mutants | Same verdict as Stryker |
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/child.js
CHANGED
|
@@ -45,6 +45,12 @@ const vitest = await vitestNode.createVitest('test', {
|
|
|
45
45
|
},
|
|
46
46
|
// A private Vite cache per run, so no cache outside this run can answer for a mutated file.
|
|
47
47
|
{ plugins: [instrumentedSources(config.instrumentedMap)], cacheDir: path.join(path.dirname(config.instrumentedMap), 'vite-cache') });
|
|
48
|
+
// A config with `projects` resolves each project's `runner` and `isolate` from its own inline
|
|
49
|
+
// config, never from these options, so its tests ran without oxmutate's runner and the dry run
|
|
50
|
+
// recorded none (burgee, weekly run 40783405734, 2026-10-28). Each project keeps its own pool:
|
|
51
|
+
// burgee's run in forks, and its process.env lock fails under threads.
|
|
52
|
+
for (const project of vitest.projects)
|
|
53
|
+
Object.assign(project.config, { runner, isolate: true });
|
|
48
54
|
/** Has the runner recorded a kill for this mutant in this unit's results yet? */
|
|
49
55
|
function killed(results, id) {
|
|
50
56
|
let text = '';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxmutate",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Mutation testing for JavaScript and TypeScript on the oxc engine, run warm inside the project's own Vitest, with CI lanes, SARIF and an agent surface. No dependency outside the burgee family. A Stryker migration path.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -46,9 +46,15 @@
|
|
|
46
46
|
},
|
|
47
47
|
"typesVersions": {
|
|
48
48
|
"*": {
|
|
49
|
-
"runner": [
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
"runner": [
|
|
50
|
+
"./dist/runner.d.ts"
|
|
51
|
+
],
|
|
52
|
+
"spec": [
|
|
53
|
+
"./dist/spec.d.ts"
|
|
54
|
+
],
|
|
55
|
+
"vite": [
|
|
56
|
+
"./dist/vite.d.ts"
|
|
57
|
+
]
|
|
52
58
|
}
|
|
53
59
|
},
|
|
54
60
|
"files": [
|
|
@@ -61,14 +67,16 @@
|
|
|
61
67
|
"build": "tsc -p tsconfig.build.json && node ../../scripts/declaration-reach.mts --prune",
|
|
62
68
|
"build:native": "cd native && cargo build --release --features napi --lib && node ../scripts/copy-binding.mjs",
|
|
63
69
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
64
|
-
"test": "vitest run",
|
|
70
|
+
"test": "vitest run && vitest run --config compat/vitest.config.ts",
|
|
65
71
|
"test:native": "cd native && cargo test --release",
|
|
72
|
+
"test:sensitivity": "vitest run src/sensitivity.test.ts",
|
|
66
73
|
"lint": "eslint src",
|
|
67
|
-
"coverage": "vitest run --coverage.enabled"
|
|
74
|
+
"coverage": "vitest run --coverage.enabled",
|
|
75
|
+
"compat:mutation": "vitest run --config compat/vitest.config.ts"
|
|
68
76
|
},
|
|
69
77
|
"dependencies": {
|
|
70
|
-
"bellpull": "
|
|
71
|
-
"burgee": "
|
|
78
|
+
"bellpull": "^1.0.10",
|
|
79
|
+
"burgee": "^1.9.2"
|
|
72
80
|
},
|
|
73
81
|
"peerDependencies": {
|
|
74
82
|
"vitest": ">=4.1.0"
|