@systemfsoftware/stryker-js-plugin-interface 5.0.0 → 6.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,87 @@
1
1
  # @systemfsoftware/stryker-js-plugin-interface
2
2
 
3
+ ## 6.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies:
8
+ - @systemfsoftware/stryker-js-instrumenter@8.0.0
9
+
10
+ ## 6.0.0
11
+
12
+ ### Major Changes
13
+
14
+ - `testRunner`, `checkers`, and `ignorers` now carry the plugin and its options together.
15
+
16
+ - `testRunner` is `'command'`, `'vm'`, or `{ plugin, options?, nodeArgs? }`.
17
+ - `checkers` is `{ plugin, options?, nodeArgs? }[]`. Each checker is its own plugin.
18
+ - `ignorers` is plugin file URLs. Every ignorer those modules export runs. There is no separate name list.
19
+ - Put Vitest settings on `testRunner.options` (`configFile`, `dir`, `related`). There is no `vitest` block.
20
+ - Put TypeScript checker settings on that checker's `options` (`prioritizePerformanceOverAccuracy`). There is no `typescriptChecker` block.
21
+
22
+ Before:
23
+
24
+ ```ts
25
+ export default defineConfig({
26
+ testRunner: 'vitest',
27
+ checkers: ['typescript'],
28
+ plugins: [
29
+ import.meta.resolve('@systemfsoftware/stryker-js-vitest-runner'),
30
+ import.meta.resolve('@systemfsoftware/stryker-js-typescript-checker'),
31
+ import.meta.resolve('@systemfsoftware/stryker-ignorer-effect-schema-declarations'),
32
+ ],
33
+ vitest: { configFile: 'vitest.config.ts' },
34
+ typescriptChecker: { prioritizePerformanceOverAccuracy: true },
35
+ ignorers: ['effect-schema-declarations'],
36
+ })
37
+ ```
38
+
39
+ After:
40
+
41
+ ```ts
42
+ export default defineConfig({
43
+ testRunner: {
44
+ plugin: import.meta.resolve('@systemfsoftware/stryker-js-vitest-runner'),
45
+ options: { configFile: 'vitest.config.ts' },
46
+ },
47
+ checkers: [
48
+ {
49
+ plugin: import.meta.resolve('@systemfsoftware/stryker-js-typescript-checker'),
50
+ options: { prioritizePerformanceOverAccuracy: true },
51
+ },
52
+ ],
53
+ ignorers: [
54
+ import.meta.resolve('@systemfsoftware/stryker-ignorer-effect-schema-declarations'),
55
+ ],
56
+ })
57
+ ```
58
+
59
+ - Plugin entries in `plugins` and `appendPlugins` are now the entrypoints
60
+ themselves, as `file:` URLs, instead of package names Stryker resolved for you.
61
+
62
+ Stryker resolved every specifier against its own module before, so a plugin the
63
+ project had installed was only found when Node happened to walk to the right
64
+ `node_modules` from Stryker's location — which is not the project's location for
65
+ a global install, an `npx` run, or a strict isolated store. The project now
66
+ resolves each plugin itself, in the config module where the project's own
67
+ dependencies are visible:
68
+
69
+ ```ts
70
+ import { defineConfig } from '@systemfsoftware/stryker-js/config'
71
+
72
+ export default defineConfig({
73
+ plugins: [import.meta.resolve('@acme/stryker-runner')],
74
+ })
75
+ ```
76
+
77
+ The `--plugins` and `--appendPlugins` flags take the same resolved URLs. A value
78
+ that is not a `file:` URL is refused with the entry named.
79
+
80
+ Stryker no longer reports an unresolved specifier as a warning it can continue
81
+ past, because it no longer resolves one: a plugin that cannot be loaded stops
82
+ the run and names the entry, and a plugin that loads but contributes nothing is
83
+ still reported as before.
84
+
3
85
  ## 5.0.0
4
86
 
5
87
  ### Major Changes
package/README.md CHANGED
@@ -5,8 +5,8 @@ checker, or reporter — ships a spawn entrypoint whose target hosts an `RpcServ
5
5
  for its kind's `@effect/rpc` group; the host resolves that entrypoint from the
6
6
  project's config, spawns it, and drives it over NDJSON. Every payload crossing
7
7
  the boundary is a schema this package owns, and every failure is a typed variant.
8
- The concept modules a plugin implements live in
9
- `@systemfsoftware/stryker-js-language`.
8
+ The concept modules a plugin implements the test-runner and checker services and
9
+ the schemas they carry — ship from this package too.
10
10
 
11
11
  The boundary ships as two packages:
12
12