@systemfsoftware/stryker-js-mutation-run 1.2.5 → 3.0.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 ADDED
@@ -0,0 +1,149 @@
1
+ # @systemfsoftware/stryker-js-mutation-run
2
+
3
+ ## 3.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - Timeout options now take the values they document. `timeoutFactor`, `timeoutMS` and
8
+ `dryRunTimeoutMinutes` arrived unset whenever a configuration left them out, so the
9
+ initial test run was given a budget of one millisecond and every run ended with "Initial
10
+ test run timed out" before testing anything. A run that leaves them out now gets the
11
+ documented 1.5, 5000 and 5
12
+
13
+ Configuration is validated against the same declaration that supplies the defaults, so a
14
+ default can no longer go missing while the option that documents it stays listed. Invalid
15
+ configurations still report every offending option in one pass, and options contributed
16
+ by plugins are still accepted
17
+
18
+ `dashboard` and `eventReporter` are no longer accepted. The reporters they configured
19
+ were already removed, and the two names were already rejected on sight, so a
20
+ configuration setting either has been failing; they are now absent from the option set
21
+ as well. Remove them from your configuration — to publish a report, write the `json` or
22
+ `html` report and publish it yourself
23
+
24
+ One fewer package is installed alongside these
25
+
26
+ ### Minor Changes
27
+
28
+ - The base mutation preset selects at the make boundary.
29
+
30
+ The preset carries both ignorers (`effect-schema-declarations`, `workflow-make-boundary`) and
31
+ `disableBail: true`, so killer recording is structural for every inheriting config. The sandwich
32
+ packages (daemon-spec, stryker-js-cli, omp-claude-compat) widen `mutate` to all non-test source
33
+ at explicit 100/100/100 thresholds — the ignorer is the selector, so membership is forced by the
34
+ brand rather than chosen by a path list. Library packages' mutate arrays are byte-identical.
35
+
36
+ - cut over to effect v4 (4.0.0-rc.108): public surface derives from effect types; peers flip effect ^3→^4
37
+
38
+ ### Patch Changes
39
+
40
+ - Array types are spelled one way. `Array<T>` and `ReadonlyArray<T>` in emitted
41
+ declarations become `T[]` and `readonly T[]`, which the type checker cannot tell
42
+ apart: no exported type changes, only how it is written.
43
+
44
+ - New version is published through npm trusted publishing, so it carries a provenance attestation you can verify.
45
+
46
+ - Config inheritance no longer depends on which module resolver serves the process.
47
+
48
+ A config that extends a package specifier is resolved relative to the directory of the config file that declared it, and the same chain now produces the same merged options whichever resolver is in play. Previously the outcome could differ between environments for the same files.
49
+
50
+ Error reporting is unchanged: an inheritance cycle, an `extends` that is not a string, and a parent that cannot be resolved or read each surface the same configuration error as before, naming the same file.
51
+
52
+ - Mutation runs no longer fail during the initial test run when a call argument
53
+ carries an optional member set to `undefined`, a class instance, or a date. The
54
+ worker protocol now carries the value a caller passes and sends across the wire
55
+ whatever the wire can represent, rather than refusing the call. A method that
56
+ returns nothing still reports no value, and a reply a process cannot read is still
57
+ reported as a failure of that child rather than raised as an unhandled error.
58
+
59
+ - Each of these packages now has a README, so its registry page says what the package is, how
60
+ to install it, and what to import or register — previously the page was blank. The lint
61
+ plugins show the configuration line that enables what they recommend.
62
+
63
+ `@systemfsoftware/stryker-js-mutation-report` also carries its licence text
64
+
65
+ - These packages no longer ship their development files. Sources, tests and build, lint and
66
+ test configuration were all included, which broke consumers in one specific way: oxlint
67
+ discovers configuration by walking directories, finds the published `oxlint.config.ts` under
68
+ `node_modules`, and stops with "Stripping types is currently unsupported for files under
69
+ node_modules" before linting anything.
70
+
71
+ The installed package now contains the compiled output, the runtime schema files it reads,
72
+ and the usual manifest, README and licence
73
+
74
+ - Updated dependencies:
75
+ - @systemfsoftware/stryker-js-plugin-api@2.0.0
76
+
77
+ ## 2.0.0
78
+
79
+ ### Major Changes
80
+
81
+ - Timeout options now take the values they document. `timeoutFactor`, `timeoutMS` and
82
+ `dryRunTimeoutMinutes` arrived unset whenever a configuration left them out, so the
83
+ initial test run was given a budget of one millisecond and every run ended with "Initial
84
+ test run timed out" before testing anything. A run that leaves them out now gets the
85
+ documented 1.5, 5000 and 5
86
+
87
+ Configuration is validated against the same declaration that supplies the defaults, so a
88
+ default can no longer go missing while the option that documents it stays listed. Invalid
89
+ configurations still report every offending option in one pass, and options contributed
90
+ by plugins are still accepted
91
+
92
+ `dashboard` and `eventReporter` are no longer accepted. The reporters they configured
93
+ were already removed, and the two names were already rejected on sight, so a
94
+ configuration setting either has been failing; they are now absent from the option set
95
+ as well. Remove them from your configuration — to publish a report, write the `json` or
96
+ `html` report and publish it yourself
97
+
98
+ One fewer package is installed alongside these
99
+
100
+ ### Minor Changes
101
+
102
+ - The base mutation preset selects at the make boundary.
103
+
104
+ The preset carries both ignorers (`effect-schema-declarations`, `workflow-make-boundary`) and
105
+ `disableBail: true`, so killer recording is structural for every inheriting config. The sandwich
106
+ packages (daemon-spec, stryker-js-cli, omp-claude-compat) widen `mutate` to all non-test source
107
+ at explicit 100/100/100 thresholds — the ignorer is the selector, so membership is forced by the
108
+ brand rather than chosen by a path list. Library packages' mutate arrays are byte-identical.
109
+
110
+ - cut over to effect v4 (4.0.0-rc.108): public surface derives from effect types; peers flip effect ^3→^4
111
+
112
+ ### Patch Changes
113
+
114
+ - Array types are spelled one way. `Array<T>` and `ReadonlyArray<T>` in emitted
115
+ declarations become `T[]` and `readonly T[]`, which the type checker cannot tell
116
+ apart: no exported type changes, only how it is written.
117
+
118
+ - New version is published through npm trusted publishing, so it carries a provenance attestation you can verify.
119
+
120
+ - Config inheritance no longer depends on which module resolver serves the process.
121
+
122
+ A config that extends a package specifier is resolved relative to the directory of the config file that declared it, and the same chain now produces the same merged options whichever resolver is in play. Previously the outcome could differ between environments for the same files.
123
+
124
+ Error reporting is unchanged: an inheritance cycle, an `extends` that is not a string, and a parent that cannot be resolved or read each surface the same configuration error as before, naming the same file.
125
+
126
+ - Mutation runs no longer fail during the initial test run when a call argument
127
+ carries an optional member set to `undefined`, a class instance, or a date. The
128
+ worker protocol now carries the value a caller passes and sends across the wire
129
+ whatever the wire can represent, rather than refusing the call. A method that
130
+ returns nothing still reports no value, and a reply a process cannot read is still
131
+ reported as a failure of that child rather than raised as an unhandled error.
132
+
133
+ - Each of these packages now has a README, so its registry page says what the package is, how
134
+ to install it, and what to import or register — previously the page was blank. The lint
135
+ plugins show the configuration line that enables what they recommend.
136
+
137
+ `@systemfsoftware/stryker-js-mutation-report` also carries its licence text
138
+
139
+ - These packages no longer ship their development files. Sources, tests and build, lint and
140
+ test configuration were all included, which broke consumers in one specific way: oxlint
141
+ discovers configuration by walking directories, finds the published `oxlint.config.ts` under
142
+ `node_modules`, and stops with "Stripping types is currently unsupported for files under
143
+ node_modules" before linting anything.
144
+
145
+ The installed package now contains the compiled output, the runtime schema files it reads,
146
+ and the usual manifest, README and licence
147
+
148
+ - Updated dependencies:
149
+ - @systemfsoftware/stryker-js-plugin-api@1.0.0
package/dist/index.mjs CHANGED
@@ -284,7 +284,7 @@ var MultiPreprocessor = class {
284
284
  }
285
285
  };
286
286
  //#endregion
287
- //#region ../../../node_modules/.pnpm/@jsr+std__jsonc@1.0.2/node_modules/@jsr/std__jsonc/parse.js
287
+ //#region ../../../../../node_modules/.pnpm/@jsr+std__jsonc@1.0.2/node_modules/@jsr/std__jsonc/parse.js
288
288
  /**
289
289
  * Converts a JSON with Comments (JSONC) string into an object.
290
290
  *
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@systemfsoftware/stryker-js-mutation-run",
3
- "version": "1.2.5",
3
+ "version": "3.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/systemfsoftware/systemfsoftware.git",
7
- "directory": "packages/stryker-js/mutation-run"
7
+ "directory": "packages/testing/mutation/stryker-js/mutation-run"
8
8
  },
9
- "homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/stryker-js/mutation-run#readme",
9
+ "homepage": "https://github.com/systemfsoftware/systemfsoftware/tree/main/packages/testing/mutation/stryker-js/mutation-run#readme",
10
10
  "bugs": "https://github.com/systemfsoftware/systemfsoftware/issues",
11
11
  "description": "A source-code fork of @stryker-mutator/core",
12
12
  "type": "module",
@@ -54,7 +54,7 @@
54
54
  "tree-kill": "~1.2.2",
55
55
  "tslib": "~2.8.0",
56
56
  "typed-inject": "~5.0.0",
57
- "@systemfsoftware/stryker-js-plugin-api": "^0.1.0"
57
+ "@systemfsoftware/stryker-js-plugin-api": "^2.0.0"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "effect": "4.0.0-rc.108"
@@ -75,11 +75,11 @@
75
75
  "tsdown": "^0.22.14",
76
76
  "typescript": "^7",
77
77
  "vitest": "^4.1.10",
78
- "@systemfsoftware/effect-gherkin-spec": "^0.5.1",
79
- "@systemfsoftware/tsconfig": "^1.3.1",
80
- "@systemfsoftware/oxlint-config": "^0.1.0",
81
- "@systemfsoftware/stryker-js-vitest-runner": "^0.1.0",
82
- "@systemfsoftware/vitest-config": "^0.1.0"
78
+ "@systemfsoftware/stryker-js-vitest-runner": "^0.1.2",
79
+ "@systemfsoftware/effect-gherkin-spec": "^2.0.0",
80
+ "@systemfsoftware/vitest-config": "^0.1.0",
81
+ "@systemfsoftware/tsconfig": "^1.3.3",
82
+ "@systemfsoftware/oxlint-config": "^0.1.0"
83
83
  },
84
84
  "engines": {
85
85
  "node": ">=20.0.0"