@schema-hub/stryker-zod-mutator 0.0.7 → 0.0.8
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/package.json +7 -2
- package/readme.md +37 -6
- package/sbom.cdx.json +40 -6
- package/stryker-zod-mutator/ast.js +14 -0
- package/stryker-zod-mutator/ast.js.map +1 -1
- package/stryker-zod-mutator/binding-resolution.js +313 -0
- package/stryker-zod-mutator/binding-resolution.js.map +1 -0
- package/stryker-zod-mutator/filesystem-module-loader.js +71 -0
- package/stryker-zod-mutator/filesystem-module-loader.js.map +1 -0
- package/stryker-zod-mutator/masked-schema-references.js +118 -0
- package/stryker-zod-mutator/masked-schema-references.js.map +1 -0
- package/stryker-zod-mutator/mutation-definition.js +2 -2
- package/stryker-zod-mutator/mutation-definition.js.map +1 -1
- package/stryker-zod-mutator/mutations.js +8 -2
- package/stryker-zod-mutator/mutations.js.map +1 -1
- package/stryker-zod-mutator/object-mutations.js +2 -1
- package/stryker-zod-mutator/object-mutations.js.map +1 -1
- package/stryker-zod-mutator/presence-mutations.js +2 -1
- package/stryker-zod-mutator/presence-mutations.js.map +1 -1
- package/stryker-zod-mutator/schema-call-mutations.js +5 -2
- package/stryker-zod-mutator/schema-call-mutations.js.map +1 -1
- package/stryker-zod-mutator/zod-bindings.js +11 -66
- package/stryker-zod-mutator/zod-bindings.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Mathias Schreck <schreck.mathias@gmail.com>",
|
|
3
3
|
"dependencies": {
|
|
4
|
-
"@babel/
|
|
4
|
+
"@babel/parser": "8.0.4",
|
|
5
|
+
"@babel/types": "8.0.4",
|
|
6
|
+
"typescript": "6.0.3"
|
|
5
7
|
},
|
|
6
8
|
"description": "Zod schema mutators for StrykerJS",
|
|
7
9
|
"engines": {
|
|
@@ -32,8 +34,11 @@
|
|
|
32
34
|
},
|
|
33
35
|
"sideEffects": [
|
|
34
36
|
"./stryker-zod-mutator/behavior-mutations.js",
|
|
37
|
+
"./stryker-zod-mutator/binding-resolution.js",
|
|
35
38
|
"./stryker-zod-mutator/check-mutations.js",
|
|
36
39
|
"./stryker-zod-mutator/collection-mutations.js",
|
|
40
|
+
"./stryker-zod-mutator/filesystem-module-loader.js",
|
|
41
|
+
"./stryker-zod-mutator/masked-schema-references.js",
|
|
37
42
|
"./stryker-zod-mutator/object-mutations.js",
|
|
38
43
|
"./stryker-zod-mutator/presence-mutations.js",
|
|
39
44
|
"./stryker-zod-mutator/primitive-mutations.js",
|
|
@@ -41,5 +46,5 @@
|
|
|
41
46
|
"./stryker-zod-mutator/zod-bindings.js"
|
|
42
47
|
],
|
|
43
48
|
"type": "module",
|
|
44
|
-
"version": "0.0.
|
|
49
|
+
"version": "0.0.8"
|
|
45
50
|
}
|
package/readme.md
CHANGED
|
@@ -182,10 +182,12 @@ mutation is emitted. Raising it (e.g. `min(0)` to `min(1)`) is still emitted, an
|
|
|
182
182
|
`z.number().min(0)` are untouched because there negative values are meaningful.
|
|
183
183
|
|
|
184
184
|
`ZodOptionalAdd` and `ZodObjectFieldOptionalAdd` skip schemas that already accept `undefined` (`z.any()`,
|
|
185
|
-
`z.unknown()`, `z.undefined()`, `z.void()`, `z.nullish()`,
|
|
186
|
-
`ZodNullableAdd` and `ZodObjectFieldNullableAdd` skip schemas that already accept
|
|
187
|
-
`z.unknown()`, `z.null()`, `z.nullish()`, and anything already `nullable`), because
|
|
188
|
-
nothing at runtime.
|
|
185
|
+
`z.unknown()`, `z.undefined()`, `z.void()`, `z.nullish()`, a `default`/`prefault` schema, and anything
|
|
186
|
+
already `optional`), and `ZodNullableAdd` and `ZodObjectFieldNullableAdd` skip schemas that already accept
|
|
187
|
+
`null` (`z.any()`, `z.unknown()`, `z.null()`, `z.nullish()`, and anything already `nullable`), because
|
|
188
|
+
wrapping them changes nothing at runtime. Both also see through `optional`/`nullable` (and other
|
|
189
|
+
value-preserving wrappers) to an `z.any()`/`z.unknown()` leaf, so e.g. `z.nullable(z.optional(z.unknown()))`
|
|
190
|
+
is not emitted. `ZodOptionalRemove` and `ZodNullableRemove` likewise skip removals whose remaining
|
|
189
191
|
schema still admits the value (e.g. removing `.optional()` from `z.unknown().optional()`). `ZodOptionalAdd`
|
|
190
192
|
and `ZodNullableAdd` also wrap only at the root of a schema value chain, so `z.string().min(2)` yields
|
|
191
193
|
`z.string().min(2).optional()` rather than the invalid `z.string().optional().min(2)`. They also skip a
|
|
@@ -206,5 +208,34 @@ Boolean and string literal values are left to Stryker’s built-in literal mutat
|
|
|
206
208
|
## Limits
|
|
207
209
|
|
|
208
210
|
This package monkeypatches Stryker internals because StrykerJS does not currently expose a custom mutator
|
|
209
|
-
plugin API. It
|
|
210
|
-
|
|
211
|
+
plugin API. It only mutates schema expressions that are visibly rooted in a detected Zod import.
|
|
212
|
+
|
|
213
|
+
The guiding rule for every operator: emit a mutant unless it can be _proven_ unkillable from the current
|
|
214
|
+
module. A mutant we cannot prove equivalent is always emitted, even if it duplicates a wrapper already
|
|
215
|
+
applied elsewhere. Suppressing a mutant that some test could kill is never acceptable.
|
|
216
|
+
|
|
217
|
+
`ZodOptionalAdd` and `ZodNullableAdd` apply this with a module-local check: when the mutated node is the
|
|
218
|
+
whole value of, or a `union`/`discriminatedUnion` branch of, a **non-exported** `const`, and every
|
|
219
|
+
reference to that `const` in the module already applies the same wrapper (e.g. `const t = z.union([...])`
|
|
220
|
+
used only as `z.nullable(t)`), no test can observe the added wrapper, so it is skipped. Because the `const`
|
|
221
|
+
is not exported (nor re-exported via `export { t }` or `export default t`, both of which count as unmasked
|
|
222
|
+
uses), every use is visible in the one module and the proof is sound. Exported consts, or any unmasked or
|
|
223
|
+
unresolved reference, cause the mutant to be emitted.
|
|
224
|
+
|
|
225
|
+
## Binding resolution
|
|
226
|
+
|
|
227
|
+
Deciding whether a mutant is equivalent often needs the schema's real shape, which is not always written
|
|
228
|
+
inline. When an operator reaches a reference instead of a schema call (for example `z.optional(user)` where
|
|
229
|
+
`user` is a `const`), it resolves that reference back to its definition and continues the analysis there.
|
|
230
|
+
Resolution follows aliases (`const t = other`), object and array destructuring (`const { t } = shapes`),
|
|
231
|
+
member access into object literals (`const t = shapes.user`), and imports, including across modules: an
|
|
232
|
+
imported name is resolved by loading the source module, mapping the export back to its local definition
|
|
233
|
+
(named, aliased, or default), and recursing.
|
|
234
|
+
|
|
235
|
+
Cross-module resolution reads and parses the imported file. Module specifiers are resolved with the
|
|
236
|
+
TypeScript compiler API using the nearest discovered `tsconfig.json`, so `paths`, `baseUrl`, and extension
|
|
237
|
+
rewriting behave as they do in the project. This stays faithful to the guiding rule: anything that cannot
|
|
238
|
+
be resolved (a missing file, a `paths` alias with no matching config, a reference that turns out not to be
|
|
239
|
+
a schema, or a namespace import) is treated as unknown and the mutant is emitted rather than suppressed.
|
|
240
|
+
Only same-module (`export`) analysis is complete; a schema imported elsewhere and tested there is never
|
|
241
|
+
assumed unkillable.
|
package/sbom.cdx.json
CHANGED
|
@@ -9,19 +9,32 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.66"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@schema-hub/stryker-zod-mutator",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.
|
|
21
|
-
"purl": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.
|
|
19
|
+
"version": "0.0.8",
|
|
20
|
+
"bom-ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.8",
|
|
21
|
+
"purl": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.8"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
25
|
+
{
|
|
26
|
+
"type": "library",
|
|
27
|
+
"name": "@babel/parser",
|
|
28
|
+
"version": "8.0.4",
|
|
29
|
+
"bom-ref": "pkg:npm/@babel/parser@8.0.4",
|
|
30
|
+
"scope": "required",
|
|
31
|
+
"licenses": [
|
|
32
|
+
{
|
|
33
|
+
"expression": "MIT"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"purl": "pkg:npm/@babel/parser@8.0.4"
|
|
37
|
+
},
|
|
25
38
|
{
|
|
26
39
|
"type": "library",
|
|
27
40
|
"name": "@babel/types",
|
|
@@ -60,18 +73,36 @@
|
|
|
60
73
|
}
|
|
61
74
|
],
|
|
62
75
|
"purl": "pkg:npm/@stryker-mutator/instrumenter@%3E%3D9.6.0%20%3C10"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "library",
|
|
79
|
+
"name": "typescript",
|
|
80
|
+
"version": "6.0.3",
|
|
81
|
+
"bom-ref": "pkg:npm/typescript@6.0.3",
|
|
82
|
+
"scope": "required",
|
|
83
|
+
"licenses": [
|
|
84
|
+
{
|
|
85
|
+
"expression": "Apache-2.0"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"purl": "pkg:npm/typescript@6.0.3"
|
|
63
89
|
}
|
|
64
90
|
],
|
|
65
91
|
"dependencies": [
|
|
92
|
+
{
|
|
93
|
+
"ref": "pkg:npm/@babel/parser@8.0.4"
|
|
94
|
+
},
|
|
66
95
|
{
|
|
67
96
|
"ref": "pkg:npm/@babel/types@8.0.4"
|
|
68
97
|
},
|
|
69
98
|
{
|
|
70
|
-
"ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.
|
|
99
|
+
"ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.8",
|
|
71
100
|
"dependsOn": [
|
|
101
|
+
"pkg:npm/@babel/parser@8.0.4",
|
|
72
102
|
"pkg:npm/@babel/types@8.0.4",
|
|
73
103
|
"pkg:npm/@stryker-mutator/api@%3E%3D9.6.0%20%3C10",
|
|
74
|
-
"pkg:npm/@stryker-mutator/instrumenter@%3E%3D9.6.0%20%3C10"
|
|
104
|
+
"pkg:npm/@stryker-mutator/instrumenter@%3E%3D9.6.0%20%3C10",
|
|
105
|
+
"pkg:npm/typescript@6.0.3"
|
|
75
106
|
]
|
|
76
107
|
},
|
|
77
108
|
{
|
|
@@ -79,6 +110,9 @@
|
|
|
79
110
|
},
|
|
80
111
|
{
|
|
81
112
|
"ref": "pkg:npm/@stryker-mutator/instrumenter@%3E%3D9.6.0%20%3C10"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"ref": "pkg:npm/typescript@6.0.3"
|
|
82
116
|
}
|
|
83
117
|
]
|
|
84
118
|
}
|
|
@@ -15,6 +15,20 @@ export function findProgram(path) {
|
|
|
15
15
|
}
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
+
function readProperty(value, key) {
|
|
19
|
+
if (typeof value !== 'object' || value === null) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return Reflect.get(value, key);
|
|
23
|
+
}
|
|
24
|
+
function hubFileName(path) {
|
|
25
|
+
const filename = readProperty(readProperty(readProperty(readProperty(path, 'hub'), 'file'), 'opts'), 'filename');
|
|
26
|
+
return typeof filename === 'string' ? filename : null;
|
|
27
|
+
}
|
|
28
|
+
export function fileNameOf(path) {
|
|
29
|
+
const locationFileName = findProgram(path)?.loc?.filename;
|
|
30
|
+
return hubFileName(path) ?? (typeof locationFileName === 'string' ? locationFileName : null);
|
|
31
|
+
}
|
|
18
32
|
export function namedIdentifier(name) {
|
|
19
33
|
return babel.identifier(name);
|
|
20
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/ast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import * as babel from '@babel/types';
|
|
2
|
+
import { getMemberName, isExpressionNode } from "./ast.js";
|
|
3
|
+
import { buildZodBindings, firstExpressionArgument, getZodCallName, valuePreservingWrapperNames } from "./zod-bindings.js";
|
|
4
|
+
export const inertResolverEnv = {
|
|
5
|
+
loadModule() {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
function seenKey(bindings, name) {
|
|
10
|
+
return `${bindings.fileName ?? ''} ${name}`;
|
|
11
|
+
}
|
|
12
|
+
function getPropertyName(property) {
|
|
13
|
+
if (babel.isIdentifier(property.key)) {
|
|
14
|
+
return property.key.name;
|
|
15
|
+
}
|
|
16
|
+
return babel.isStringLiteral(property.key) ? property.key.value : null;
|
|
17
|
+
}
|
|
18
|
+
function objectPropertyValue(object, name) {
|
|
19
|
+
const match = object.properties.find(function (property) {
|
|
20
|
+
return babel.isObjectProperty(property) && !property.computed && getPropertyName(property) === name;
|
|
21
|
+
});
|
|
22
|
+
return match !== undefined && babel.isObjectProperty(match) && isExpressionNode(match.value) ? match.value : null;
|
|
23
|
+
}
|
|
24
|
+
function propertySourceName(pattern, localName) {
|
|
25
|
+
const match = pattern.properties.find(function (property) {
|
|
26
|
+
return babel.isObjectProperty(property) && babel.isIdentifier(property.value) &&
|
|
27
|
+
property.value.name === localName;
|
|
28
|
+
});
|
|
29
|
+
return match !== undefined && babel.isObjectProperty(match) && !match.computed && babel.isIdentifier(match.key)
|
|
30
|
+
? match.key.name
|
|
31
|
+
: localName;
|
|
32
|
+
}
|
|
33
|
+
function objectPatternValue(pattern, name, init) {
|
|
34
|
+
const holdsName = pattern.properties.some(function (property) {
|
|
35
|
+
return babel.isObjectProperty(property) && babel.isIdentifier(property.value) && property.value.name === name;
|
|
36
|
+
});
|
|
37
|
+
return holdsName && babel.isObjectExpression(init.expression)
|
|
38
|
+
? objectPropertyValue(init.expression, propertySourceName(pattern, name))
|
|
39
|
+
: null;
|
|
40
|
+
}
|
|
41
|
+
function arrayPatternValue(pattern, name, init) {
|
|
42
|
+
const index = pattern.elements.findIndex(function (element) {
|
|
43
|
+
return babel.isIdentifier(element) && element.name === name;
|
|
44
|
+
});
|
|
45
|
+
const element = index !== -1 && babel.isArrayExpression(init.expression)
|
|
46
|
+
? init.expression.elements[index]
|
|
47
|
+
: undefined;
|
|
48
|
+
return isExpressionNode(element) ? element : null;
|
|
49
|
+
}
|
|
50
|
+
function bindingPatternValue(id, name, init) {
|
|
51
|
+
if (babel.isObjectPattern(id)) {
|
|
52
|
+
return objectPatternValue(id, name, init);
|
|
53
|
+
}
|
|
54
|
+
return babel.isArrayPattern(id) ? arrayPatternValue(id, name, init) : null;
|
|
55
|
+
}
|
|
56
|
+
function patternBindsName(pattern, name) {
|
|
57
|
+
if (babel.isObjectPattern(pattern)) {
|
|
58
|
+
return pattern.properties.some(function (property) {
|
|
59
|
+
return babel.isObjectProperty(property) && babel.isIdentifier(property.value) &&
|
|
60
|
+
property.value.name === name;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return babel.isArrayPattern(pattern) && pattern.elements.some(function (element) {
|
|
64
|
+
return babel.isIdentifier(element) && element.name === name;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function declaresName(declarator, name) {
|
|
68
|
+
if (babel.isIdentifier(declarator.id)) {
|
|
69
|
+
return declarator.id.name === name;
|
|
70
|
+
}
|
|
71
|
+
return patternBindsName(declarator.id, name);
|
|
72
|
+
}
|
|
73
|
+
function localDeclarators(program) {
|
|
74
|
+
return program.body.flatMap(function (statement) {
|
|
75
|
+
const declaration = babel.isExportNamedDeclaration(statement) ? statement.declaration : statement;
|
|
76
|
+
return babel.isVariableDeclaration(declaration) ? declaration.declarations : [];
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function importSpecifierEntries(program) {
|
|
80
|
+
return program.body.flatMap(function (statement) {
|
|
81
|
+
return babel.isImportDeclaration(statement)
|
|
82
|
+
? statement.specifiers.map(function (specifier) {
|
|
83
|
+
return { specifier, source: statement.source.value };
|
|
84
|
+
})
|
|
85
|
+
: [];
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function importedExportName(specifier) {
|
|
89
|
+
if (!babel.isImportSpecifier(specifier)) {
|
|
90
|
+
return 'default';
|
|
91
|
+
}
|
|
92
|
+
return babel.isIdentifier(specifier.imported) ? specifier.imported.name : specifier.imported.value;
|
|
93
|
+
}
|
|
94
|
+
function importBindingFor(program, localName) {
|
|
95
|
+
const entry = importSpecifierEntries(program).find(function (candidate) {
|
|
96
|
+
return candidate.specifier.local.name === localName;
|
|
97
|
+
});
|
|
98
|
+
if (entry === undefined || babel.isImportNamespaceSpecifier(entry.specifier)) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return { source: entry.source, exportName: importedExportName(entry.specifier) };
|
|
102
|
+
}
|
|
103
|
+
function defaultExportDeclaration(program) {
|
|
104
|
+
const [declaration] = program.body.flatMap(function (statement) {
|
|
105
|
+
return babel.isExportDefaultDeclaration(statement) ? [statement.declaration] : [];
|
|
106
|
+
});
|
|
107
|
+
return isExpressionNode(declaration) ? declaration : null;
|
|
108
|
+
}
|
|
109
|
+
function exportSpecifiers(program) {
|
|
110
|
+
return program
|
|
111
|
+
.body
|
|
112
|
+
.flatMap(function (statement) {
|
|
113
|
+
return babel.isExportNamedDeclaration(statement) && statement.source === null ? statement.specifiers : [];
|
|
114
|
+
})
|
|
115
|
+
.flatMap(function (specifier) {
|
|
116
|
+
return babel.isExportSpecifier(specifier) ? [specifier] : [];
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function exportedName(specifier) {
|
|
120
|
+
return babel.isIdentifier(specifier.exported) ? specifier.exported.name : specifier.exported.value;
|
|
121
|
+
}
|
|
122
|
+
function localNameForExport(program, exportName) {
|
|
123
|
+
const specifier = exportSpecifiers(program).find(function (candidate) {
|
|
124
|
+
return exportedName(candidate) === exportName;
|
|
125
|
+
});
|
|
126
|
+
return specifier?.local.name ?? exportName;
|
|
127
|
+
}
|
|
128
|
+
function resolveMember(member, state, recurse) {
|
|
129
|
+
const name = getMemberName(member);
|
|
130
|
+
if (name === null || !isExpressionNode(member.object)) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const object = recurse({ kind: 'expression', expression: member.object }, state);
|
|
134
|
+
if (object === null || !babel.isObjectExpression(object.expression)) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
const value = objectPropertyValue(object.expression, name);
|
|
138
|
+
return value === null
|
|
139
|
+
? null
|
|
140
|
+
: recurse({ kind: 'expression', expression: value }, { bindings: object.bindings, seen: state.seen });
|
|
141
|
+
}
|
|
142
|
+
function resolveExpressionTarget(expression, state, recurse) {
|
|
143
|
+
if (babel.isIdentifier(expression)) {
|
|
144
|
+
return recurse({ kind: 'localName', name: expression.name }, state);
|
|
145
|
+
}
|
|
146
|
+
if (babel.isMemberExpression(expression)) {
|
|
147
|
+
return resolveMember(expression, state, recurse);
|
|
148
|
+
}
|
|
149
|
+
return { expression, bindings: state.bindings };
|
|
150
|
+
}
|
|
151
|
+
function declaratorValue(declarator, name, state, recurse) {
|
|
152
|
+
if (!isExpressionNode(declarator.init)) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
const init = recurse({ kind: 'expression', expression: declarator.init }, state);
|
|
156
|
+
if (init === null || babel.isIdentifier(declarator.id) && declarator.id.name === name) {
|
|
157
|
+
return init;
|
|
158
|
+
}
|
|
159
|
+
const value = bindingPatternValue(declarator.id, name, init);
|
|
160
|
+
return value === null
|
|
161
|
+
? null
|
|
162
|
+
: recurse({ kind: 'expression', expression: value }, { bindings: init.bindings, seen: state.seen });
|
|
163
|
+
}
|
|
164
|
+
function resolveLocalTarget(name, state, recurse) {
|
|
165
|
+
const declarator = localDeclarators(state.bindings.program).find(function (candidate) {
|
|
166
|
+
return declaresName(candidate, name);
|
|
167
|
+
});
|
|
168
|
+
return declarator === undefined ? null : declaratorValue(declarator, name, state, recurse);
|
|
169
|
+
}
|
|
170
|
+
function resolveImportedTarget(name, state, recurse) {
|
|
171
|
+
const binding = importBindingFor(state.bindings.program, name);
|
|
172
|
+
if (binding === null || state.bindings.fileName === null) {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
const loaded = state.bindings.env.loadModule(binding.source, state.bindings.fileName);
|
|
176
|
+
if (loaded === null) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const targetBindings = buildZodBindings(loaded.program, loaded.fileName, state.bindings.env);
|
|
180
|
+
return recurse({ kind: 'exportName', name: binding.exportName }, { bindings: targetBindings, seen: state.seen });
|
|
181
|
+
}
|
|
182
|
+
function resolveExportTarget(name, state, recurse) {
|
|
183
|
+
if (name === 'default') {
|
|
184
|
+
const declaration = defaultExportDeclaration(state.bindings.program);
|
|
185
|
+
return declaration === null ? null : recurse({ kind: 'expression', expression: declaration }, state);
|
|
186
|
+
}
|
|
187
|
+
return recurse({ kind: 'localName', name: localNameForExport(state.bindings.program, name) }, state);
|
|
188
|
+
}
|
|
189
|
+
function resolveNameTarget(name, state, recurse) {
|
|
190
|
+
const key = seenKey(state.bindings, name);
|
|
191
|
+
if (state.seen.has(key)) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
const next = { bindings: state.bindings, seen: new Set([...state.seen, key]) };
|
|
195
|
+
return resolveLocalTarget(name, next, recurse) ?? resolveImportedTarget(name, next, recurse);
|
|
196
|
+
}
|
|
197
|
+
function resolve(target, state) {
|
|
198
|
+
if (target.kind === 'expression') {
|
|
199
|
+
return resolveExpressionTarget(target.expression, state, resolve);
|
|
200
|
+
}
|
|
201
|
+
if (target.kind === 'exportName') {
|
|
202
|
+
return resolveExportTarget(target.name, state, resolve);
|
|
203
|
+
}
|
|
204
|
+
return resolveNameTarget(target.name, state, resolve);
|
|
205
|
+
}
|
|
206
|
+
function resolveSchemaReference(bindings, name) {
|
|
207
|
+
return resolve({ kind: 'localName', name }, { bindings, seen: new Set() });
|
|
208
|
+
}
|
|
209
|
+
function resolveExpressionReference(bindings, expression) {
|
|
210
|
+
return resolve({ kind: 'expression', expression }, { bindings, seen: new Set() });
|
|
211
|
+
}
|
|
212
|
+
const freezableSchemaFactoryNames = new Set([
|
|
213
|
+
'object',
|
|
214
|
+
'strictObject',
|
|
215
|
+
'looseObject',
|
|
216
|
+
'array',
|
|
217
|
+
'tuple',
|
|
218
|
+
'record',
|
|
219
|
+
'partialRecord',
|
|
220
|
+
'looseRecord'
|
|
221
|
+
]);
|
|
222
|
+
function underlyingSchemaExpression(bindings, call) {
|
|
223
|
+
const callName = getZodCallName(bindings, call);
|
|
224
|
+
if (callName !== null && valuePreservingWrapperNames.has(callName)) {
|
|
225
|
+
return firstExpressionArgument(call);
|
|
226
|
+
}
|
|
227
|
+
return babel.isMemberExpression(call.callee) && isExpressionNode(call.callee.object)
|
|
228
|
+
? call.callee.object
|
|
229
|
+
: null;
|
|
230
|
+
}
|
|
231
|
+
function stepFromNode(node, bindings) {
|
|
232
|
+
if (babel.isIdentifier(node)) {
|
|
233
|
+
return resolveSchemaReference(bindings, node.name);
|
|
234
|
+
}
|
|
235
|
+
if (babel.isMemberExpression(node) && !babel.isCallExpression(node)) {
|
|
236
|
+
const resolved = resolveExpressionReference(bindings, node);
|
|
237
|
+
return resolved === null || babel.isMemberExpression(resolved.expression) ? null : resolved;
|
|
238
|
+
}
|
|
239
|
+
return { expression: node, bindings };
|
|
240
|
+
}
|
|
241
|
+
function nextResolution(step) {
|
|
242
|
+
const node = step.expression;
|
|
243
|
+
if (!babel.isCallExpression(node)) {
|
|
244
|
+
return stepFromNode(node, step.bindings);
|
|
245
|
+
}
|
|
246
|
+
const next = underlyingSchemaExpression(step.bindings, node);
|
|
247
|
+
return next === null ? null : stepFromNode(next, step.bindings);
|
|
248
|
+
}
|
|
249
|
+
function* schemaChain(expression, bindings) {
|
|
250
|
+
const seen = new Set();
|
|
251
|
+
let resolution = { expression, bindings };
|
|
252
|
+
while (resolution !== null && !seen.has(resolution.expression)) {
|
|
253
|
+
seen.add(resolution.expression);
|
|
254
|
+
if (babel.isCallExpression(resolution.expression)) {
|
|
255
|
+
yield { node: resolution.expression, bindings: resolution.bindings };
|
|
256
|
+
}
|
|
257
|
+
resolution = nextResolution(resolution);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function isFreezableFactoryCall(step) {
|
|
261
|
+
const callName = getZodCallName(step.bindings, step.node);
|
|
262
|
+
return callName !== null && freezableSchemaFactoryNames.has(callName);
|
|
263
|
+
}
|
|
264
|
+
export function producesFreezableValue(bindings, expression) {
|
|
265
|
+
return Array.from(schemaChain(expression, bindings)).some(isFreezableFactoryCall);
|
|
266
|
+
}
|
|
267
|
+
function appliesReadonly(step) {
|
|
268
|
+
return getZodCallName(step.bindings, step.node) === 'readonly' || getMemberName(step.node.callee) === 'readonly';
|
|
269
|
+
}
|
|
270
|
+
export function chainAppliesReadonly(bindings, expression) {
|
|
271
|
+
return Array.from(schemaChain(expression, bindings)).some(appliesReadonly);
|
|
272
|
+
}
|
|
273
|
+
const acceptAnythingFactoryNames = new Set(['any', 'unknown']);
|
|
274
|
+
function schemaName(step) {
|
|
275
|
+
return getZodCallName(step.bindings, step.node) ?? getMemberName(step.node.callee) ?? '';
|
|
276
|
+
}
|
|
277
|
+
function isBreakingWrapper(step) {
|
|
278
|
+
return !valuePreservingWrapperNames.has(schemaName(step));
|
|
279
|
+
}
|
|
280
|
+
export function resolvesToAcceptAnything(bindings, expression) {
|
|
281
|
+
const steps = Array.from(schemaChain(expression, bindings));
|
|
282
|
+
const decisive = steps.find(function (step) {
|
|
283
|
+
return acceptAnythingFactoryNames.has(schemaName(step)) || isBreakingWrapper(step);
|
|
284
|
+
});
|
|
285
|
+
return decisive !== undefined && acceptAnythingFactoryNames.has(schemaName(decisive));
|
|
286
|
+
}
|
|
287
|
+
const factoryNamesAcceptingUndefined = new Set([
|
|
288
|
+
'any',
|
|
289
|
+
'unknown',
|
|
290
|
+
'undefined',
|
|
291
|
+
'void',
|
|
292
|
+
'nullish',
|
|
293
|
+
'prefault',
|
|
294
|
+
'default',
|
|
295
|
+
'_default'
|
|
296
|
+
]);
|
|
297
|
+
const factoryNamesAcceptingNull = new Set(['any', 'unknown', 'null', 'nullish']);
|
|
298
|
+
const alreadyAcceptedValueByWrapper = new Map([
|
|
299
|
+
['optional', factoryNamesAcceptingUndefined],
|
|
300
|
+
['nullable', factoryNamesAcceptingNull]
|
|
301
|
+
]);
|
|
302
|
+
export function addingWrapperHasNoEffect(bindings, expression, wrapperName) {
|
|
303
|
+
const acceptingFactories = alreadyAcceptedValueByWrapper.get(wrapperName);
|
|
304
|
+
const [outer] = Array.from(schemaChain(expression, bindings));
|
|
305
|
+
if (acceptingFactories === undefined || outer === undefined) {
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
const outerName = schemaName(outer);
|
|
309
|
+
return outerName === wrapperName ||
|
|
310
|
+
acceptingFactories.has(outerName) ||
|
|
311
|
+
resolvesToAcceptAnything(bindings, expression);
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=binding-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-resolution.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/binding-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { dirname } from 'node:path';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
import { parse } from '@babel/parser';
|
|
4
|
+
const babelPlugins = ['typescript', 'jsx'];
|
|
5
|
+
const fallbackCompilerOptions = {
|
|
6
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
7
|
+
allowImportingTsExtensions: true,
|
|
8
|
+
allowJs: true
|
|
9
|
+
};
|
|
10
|
+
const programCache = new Map();
|
|
11
|
+
const resolutionCache = new Map();
|
|
12
|
+
const compilerOptionsCache = new Map();
|
|
13
|
+
function parseProgram(source, fileName) {
|
|
14
|
+
try {
|
|
15
|
+
return parse(source, { sourceType: 'module', plugins: Array.from(babelPlugins), sourceFilename: fileName })
|
|
16
|
+
.program;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function readAndParse(absolutePath) {
|
|
23
|
+
const source = ts.sys.readFile(absolutePath);
|
|
24
|
+
return source === undefined ? null : parseProgram(source, absolutePath);
|
|
25
|
+
}
|
|
26
|
+
function loadProgram(absolutePath) {
|
|
27
|
+
if (!programCache.has(absolutePath)) {
|
|
28
|
+
programCache.set(absolutePath, readAndParse(absolutePath));
|
|
29
|
+
}
|
|
30
|
+
return programCache.get(absolutePath) ?? null;
|
|
31
|
+
}
|
|
32
|
+
function readCompilerOptions(configPath) {
|
|
33
|
+
if (configPath === '') {
|
|
34
|
+
return fallbackCompilerOptions;
|
|
35
|
+
}
|
|
36
|
+
const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
37
|
+
const parsed = ts.parseJsonConfigFileContent(configFile.config ?? {}, ts.sys, dirname(configPath));
|
|
38
|
+
return parsed.options;
|
|
39
|
+
}
|
|
40
|
+
function compilerOptionsFor(fromFileName) {
|
|
41
|
+
const configPath = ts.findConfigFile(dirname(fromFileName), ts.sys.fileExists) ?? '';
|
|
42
|
+
const cached = compilerOptionsCache.get(configPath);
|
|
43
|
+
if (cached !== undefined) {
|
|
44
|
+
return cached;
|
|
45
|
+
}
|
|
46
|
+
const options = readCompilerOptions(configPath);
|
|
47
|
+
compilerOptionsCache.set(configPath, options);
|
|
48
|
+
return options;
|
|
49
|
+
}
|
|
50
|
+
function isProjectSource(fileName) {
|
|
51
|
+
return !fileName.includes('/node_modules/') && !fileName.endsWith('.d.ts');
|
|
52
|
+
}
|
|
53
|
+
function resolveOnce(specifier, fromFileName) {
|
|
54
|
+
const result = ts.resolveModuleName(specifier, fromFileName, compilerOptionsFor(fromFileName), ts.sys);
|
|
55
|
+
const resolved = result.resolvedModule?.resolvedFileName;
|
|
56
|
+
return resolved !== undefined && isProjectSource(resolved) ? resolved : null;
|
|
57
|
+
}
|
|
58
|
+
function resolveModulePath(specifier, fromFileName) {
|
|
59
|
+
const key = `${fromFileName}\n${specifier}`;
|
|
60
|
+
if (!resolutionCache.has(key)) {
|
|
61
|
+
resolutionCache.set(key, resolveOnce(specifier, fromFileName));
|
|
62
|
+
}
|
|
63
|
+
return resolutionCache.get(key) ?? null;
|
|
64
|
+
}
|
|
65
|
+
function loadModule(specifier, fromFileName) {
|
|
66
|
+
const resolved = resolveModulePath(specifier, fromFileName);
|
|
67
|
+
const program = resolved === null ? null : loadProgram(resolved);
|
|
68
|
+
return program === null || resolved === null ? null : { program, fileName: resolved };
|
|
69
|
+
}
|
|
70
|
+
export const filesystemResolverEnv = { loadModule };
|
|
71
|
+
//# sourceMappingURL=filesystem-module-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-module-loader.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/filesystem-module-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as babel from '@babel/types';
|
|
2
|
+
import { findProgram, getMemberName, isExpressionNode } from "./ast.js";
|
|
3
|
+
import { getZodCallName } from "./zod-bindings.js";
|
|
4
|
+
const unionFactoryNames = new Set(['union', 'discriminatedUnion']);
|
|
5
|
+
const maskingWrappersByAddedWrapper = new Map([
|
|
6
|
+
['nullable', new Set(['nullable', 'nullish'])],
|
|
7
|
+
['optional', new Set(['optional', 'nullish'])]
|
|
8
|
+
]);
|
|
9
|
+
function isNonExportedModuleConst(declarationPath) {
|
|
10
|
+
const declaration = declarationPath?.node;
|
|
11
|
+
const container = declarationPath?.parentPath?.node;
|
|
12
|
+
return babel.isVariableDeclaration(declaration) &&
|
|
13
|
+
declaration.kind === 'const' &&
|
|
14
|
+
babel.isProgram(container);
|
|
15
|
+
}
|
|
16
|
+
function declaratorInitId(declaratorPath, node) {
|
|
17
|
+
if (declaratorPath === null || !babel.isVariableDeclarator(declaratorPath.node)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const { init, id } = declaratorPath.node;
|
|
21
|
+
return isExpressionNode(init) && init === node && babel.isIdentifier(id) ? id : null;
|
|
22
|
+
}
|
|
23
|
+
function constIdForInit(path) {
|
|
24
|
+
const declaratorPath = path.parentPath;
|
|
25
|
+
const id = declaratorInitId(declaratorPath, path.node);
|
|
26
|
+
return id !== null && isNonExportedModuleConst(declaratorPath?.parentPath ?? null) ? id : null;
|
|
27
|
+
}
|
|
28
|
+
function isUnionCall(unionCallPath, bindings) {
|
|
29
|
+
const unionCall = unionCallPath.node;
|
|
30
|
+
return babel.isCallExpression(unionCall) && unionFactoryNames.has(getZodCallName(bindings, unionCall) ?? '');
|
|
31
|
+
}
|
|
32
|
+
function constIdForUnionOption(path, bindings) {
|
|
33
|
+
const optionsPath = path.parentPath;
|
|
34
|
+
if (optionsPath === null || !babel.isArrayExpression(optionsPath.node)) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const unionCallPath = optionsPath.parentPath;
|
|
38
|
+
if (unionCallPath === null || !isUnionCall(unionCallPath, bindings)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return constIdForInit(unionCallPath);
|
|
42
|
+
}
|
|
43
|
+
function topLevelPathConstId(path, bindings) {
|
|
44
|
+
return constIdForInit(path) ?? constIdForUnionOption(path, bindings);
|
|
45
|
+
}
|
|
46
|
+
function childNodes(node) {
|
|
47
|
+
return Object.values(node).flatMap(function (value) {
|
|
48
|
+
if (Array.isArray(value)) {
|
|
49
|
+
return value.filter(babel.isNode);
|
|
50
|
+
}
|
|
51
|
+
return babel.isNode(value) ? [value] : [];
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function collectIdentifierUses(node, name, ancestors) {
|
|
55
|
+
const [parent, grandparent] = ancestors;
|
|
56
|
+
const here = babel.isIdentifier(node) && node.name === name && parent !== undefined
|
|
57
|
+
? [{ node, parent, grandparent }]
|
|
58
|
+
: [];
|
|
59
|
+
const deeper = [node, ...ancestors];
|
|
60
|
+
return here.concat(childNodes(node).flatMap(function (child) {
|
|
61
|
+
return collectIdentifierUses(child, name, deeper);
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
function isPropertyOrMemberName(use) {
|
|
65
|
+
const { node, parent } = use;
|
|
66
|
+
if (babel.isObjectProperty(parent) || babel.isObjectMethod(parent)) {
|
|
67
|
+
return parent.key === node && !parent.computed;
|
|
68
|
+
}
|
|
69
|
+
return babel.isMemberExpression(parent) && parent.property === node && !parent.computed;
|
|
70
|
+
}
|
|
71
|
+
function isReference(use) {
|
|
72
|
+
return babel.isReferenced(use.node, use.parent, use.grandparent);
|
|
73
|
+
}
|
|
74
|
+
function isForeignBinding(use, constIdNode) {
|
|
75
|
+
return use.node !== constIdNode && !isReference(use) && !isPropertyOrMemberName(use);
|
|
76
|
+
}
|
|
77
|
+
function maskedAsWrapperArgument(use, maskingWrappers, bindings) {
|
|
78
|
+
const { node, parent } = use;
|
|
79
|
+
if (!babel.isCallExpression(parent)) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
const firstArgument = parent.arguments[0];
|
|
83
|
+
if (!isExpressionNode(firstArgument) || firstArgument !== node) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return maskingWrappers.has(getZodCallName(bindings, parent) ?? '');
|
|
87
|
+
}
|
|
88
|
+
function maskedAsWrapperReceiver(use, maskingWrappers) {
|
|
89
|
+
const { node, parent, grandparent } = use;
|
|
90
|
+
if (!babel.isMemberExpression(parent) || parent.object !== node) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (!babel.isCallExpression(grandparent) || grandparent.callee !== parent) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return maskingWrappers.has(getMemberName(parent) ?? '');
|
|
97
|
+
}
|
|
98
|
+
function isMaskedReference(use, maskingWrappers, bindings) {
|
|
99
|
+
return maskedAsWrapperArgument(use, maskingWrappers, bindings) || maskedAsWrapperReceiver(use, maskingWrappers);
|
|
100
|
+
}
|
|
101
|
+
export function presenceWrapperMaskedByEveryUse(path, bindings, wrapperName) {
|
|
102
|
+
const maskingWrappers = maskingWrappersByAddedWrapper.get(wrapperName);
|
|
103
|
+
const program = findProgram(path);
|
|
104
|
+
const constId = topLevelPathConstId(path, bindings);
|
|
105
|
+
if (maskingWrappers === undefined || program === null || constId === null) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const uses = collectIdentifierUses(program, constId.name, []);
|
|
109
|
+
const references = uses.filter(isReference);
|
|
110
|
+
const hasForeignBinding = uses.some(function (use) {
|
|
111
|
+
return isForeignBinding(use, constId);
|
|
112
|
+
});
|
|
113
|
+
const allMasked = references.every(function (use) {
|
|
114
|
+
return isMaskedReference(use, maskingWrappers, bindings);
|
|
115
|
+
});
|
|
116
|
+
return !hasForeignBinding && references.length > 0 && allMasked;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=masked-schema-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masked-schema-references.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/masked-schema-references.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ export function createDefinition(name, mutate) {
|
|
|
6
6
|
export function callNode(path) {
|
|
7
7
|
return babel.isCallExpression(path.node) ? path.node : null;
|
|
8
8
|
}
|
|
9
|
-
export function createZodMutator(definition) {
|
|
9
|
+
export function createZodMutator(definition, env) {
|
|
10
10
|
return {
|
|
11
11
|
name: definition.name,
|
|
12
12
|
mutate(path) {
|
|
13
|
-
return definition.mutate(path, readZodBindings(path));
|
|
13
|
+
return definition.mutate(path, readZodBindings(path, env));
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-definition.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/mutation-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mutation-definition.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/mutation-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAatE,MAAM,UAAU,gBAAgB,CAC5B,IAAyB,EACzB,MAA2E;IAE3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAkB;IACvC,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAA8B,EAAE,GAAgB;IAC7E,OAAO;QACH,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,CAAC,IAAkB;YACrB,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { createZodMutator } from "./mutation-definition.js";
|
|
|
5
5
|
import { objectMutationDefinitions } from "./object-mutations.js";
|
|
6
6
|
import { presenceMutationDefinitions } from "./presence-mutations.js";
|
|
7
7
|
import { primitiveMutationDefinitions } from "./primitive-mutations.js";
|
|
8
|
+
import { filesystemResolverEnv } from "./filesystem-module-loader.js";
|
|
8
9
|
const mutationDefinitions = [
|
|
9
10
|
...primitiveMutationDefinitions,
|
|
10
11
|
...presenceMutationDefinitions,
|
|
@@ -13,12 +14,17 @@ const mutationDefinitions = [
|
|
|
13
14
|
...collectionMutationDefinitions,
|
|
14
15
|
...behaviorMutationDefinitions
|
|
15
16
|
];
|
|
16
|
-
export function
|
|
17
|
+
export function createZodMutatorsWithResolver(operators, env) {
|
|
17
18
|
const selectedOperators = new Set(operators);
|
|
18
19
|
return mutationDefinitions
|
|
19
20
|
.filter(function (definition) {
|
|
20
21
|
return selectedOperators.has(definition.name);
|
|
21
22
|
})
|
|
22
|
-
.map(
|
|
23
|
+
.map(function (definition) {
|
|
24
|
+
return createZodMutator(definition, env);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export function createZodMutators(operators) {
|
|
28
|
+
return createZodMutatorsWithResolver(operators, filesystemResolverEnv);
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=mutations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACH,gBAAgB,EAGnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,mBAAmB,GAAkC;IACvD,GAAG,4BAA4B;IAC/B,GAAG,2BAA2B;IAC9B,GAAG,yBAAyB;IAC5B,GAAG,wBAAwB;IAC3B,GAAG,6BAA6B;IAChC,GAAG,2BAA2B;CACjC,CAAC;AAEF,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACH,gBAAgB,EAGnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,mBAAmB,GAAkC;IACvD,GAAG,4BAA4B;IAC/B,GAAG,2BAA2B;IAC9B,GAAG,yBAAyB;IAC5B,GAAG,wBAAwB;IAC3B,GAAG,6BAA6B;IAChC,GAAG,2BAA2B;CACjC,CAAC;AAEF,MAAM,UAAU,6BAA6B,CACzC,SAAyC,EACzC,GAAgB;IAEhB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,mBAAmB;SACrB,MAAM,CAAC,UAAU,UAAU;QACxB,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;SACD,GAAG,CAAC,UAAU,UAAU;QACrB,OAAO,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAyC;IACvE,OAAO,6BAA6B,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as babel from '@babel/types';
|
|
2
2
|
import { cloneExpression, isExpressionNode, memberCall, removeObjectProperty, replaceObjectProperty } from "./ast.js";
|
|
3
3
|
import { callNode, createDefinition } from "./mutation-definition.js";
|
|
4
|
-
import {
|
|
4
|
+
import { buildZodCall, expressionStyle, getZodCallName, isObjectLikeFactory, isZodSchemaExpression, replaceZodCallee } from "./zod-bindings.js";
|
|
5
|
+
import { addingWrapperHasNoEffect } from "./binding-resolution.js";
|
|
5
6
|
import { removeMethodOrWrapper } from "./schema-call-mutations.js";
|
|
6
7
|
function mutateObjectFactory(path, bindings) {
|
|
7
8
|
const call = callNode(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/object-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EAIxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"object-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/object-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { addWrapperOrMethod, removeMethodOrWrapper, replaceNullish } from "./schema-call-mutations.js";
|
|
2
2
|
import { isExpressionNode } from "./ast.js";
|
|
3
3
|
import { createDefinition } from "./mutation-definition.js";
|
|
4
|
-
import {
|
|
4
|
+
import { isSchemaValueChainRoot } from "./zod-bindings.js";
|
|
5
|
+
import { addingWrapperHasNoEffect, chainAppliesReadonly, producesFreezableValue } from "./binding-resolution.js";
|
|
5
6
|
function addReadonlyToFreezableSchema(path, bindings) {
|
|
6
7
|
if (!isExpressionNode(path.node) || !isSchemaValueChainRoot(path, bindings)) {
|
|
7
8
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presence-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/presence-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACH,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"presence-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/presence-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as babel from '@babel/types';
|
|
2
2
|
import { cloneExpression, getCallName, getMemberName, isExpressionNode, memberCall } from "./ast.js";
|
|
3
3
|
import { callNode } from "./mutation-definition.js";
|
|
4
|
-
import {
|
|
4
|
+
import { presenceWrapperMaskedByEveryUse } from "./masked-schema-references.js";
|
|
5
|
+
import { buildZodCall, expressionStyle, firstExpressionArgument, getZodCallName, isSchemaValueChainRoot, isStringTemplateLiteralPart, isZodSchemaExpression } from "./zod-bindings.js";
|
|
6
|
+
import { addingWrapperHasNoEffect } from "./binding-resolution.js";
|
|
5
7
|
export function removeMethod(call, bindings, methodNames) {
|
|
6
8
|
if (!babel.isMemberExpression(call.callee)) {
|
|
7
9
|
return [];
|
|
@@ -47,7 +49,8 @@ function shouldSkipWrapping(path, bindings, expression, name) {
|
|
|
47
49
|
return !isSchemaValueChainRoot(path, bindings) ||
|
|
48
50
|
wrapperAlreadyApplied(expression, name) ||
|
|
49
51
|
addingWrapperHasNoEffect(bindings, expression, name) ||
|
|
50
|
-
isStringTemplateLiteralPart(path, bindings)
|
|
52
|
+
isStringTemplateLiteralPart(path, bindings) ||
|
|
53
|
+
presenceWrapperMaskedByEveryUse(path, bindings, name);
|
|
51
54
|
}
|
|
52
55
|
export function addWrapperOrMethod(path, bindings, name) {
|
|
53
56
|
const expression = zodSchemaExpression(path, bindings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-call-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/schema-call-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EACH,eAAe,EACf,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,UAAU,EAIb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"schema-call-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/schema-call-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as babel from '@babel/types';
|
|
2
|
-
import { findProgram, getMemberName, isExpressionNode } from "./ast.js";
|
|
2
|
+
import { fileNameOf, findProgram, getMemberName, isExpressionNode } from "./ast.js";
|
|
3
3
|
const zodSourceStyles = new Map([
|
|
4
4
|
['zod', 'classic'],
|
|
5
5
|
['zod/v4', 'classic'],
|
|
@@ -91,18 +91,23 @@ function readZodImport(statement) {
|
|
|
91
91
|
})
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
|
-
export function
|
|
95
|
-
const
|
|
96
|
-
const imports = program?.body.map(readZodImport) ?? [];
|
|
94
|
+
export function buildZodBindings(program, fileName, env) {
|
|
95
|
+
const imports = program.body.map(readZodImport);
|
|
97
96
|
return {
|
|
98
97
|
namespaces: imports.flatMap(function (binding) {
|
|
99
98
|
return binding.namespaces;
|
|
100
99
|
}),
|
|
101
100
|
directBindings: imports.flatMap(function (binding) {
|
|
102
101
|
return binding.directBindings;
|
|
103
|
-
})
|
|
102
|
+
}),
|
|
103
|
+
program,
|
|
104
|
+
fileName,
|
|
105
|
+
env
|
|
104
106
|
};
|
|
105
107
|
}
|
|
108
|
+
export function readZodBindings(path, env) {
|
|
109
|
+
return buildZodBindings(findProgram(path) ?? babel.program([]), fileNameOf(path), env);
|
|
110
|
+
}
|
|
106
111
|
export function getDirectBinding(bindings, localName) {
|
|
107
112
|
return bindings.directBindings.find(function (binding) {
|
|
108
113
|
return binding.localName === localName;
|
|
@@ -219,17 +224,7 @@ export function firstExpressionArgument(call) {
|
|
|
219
224
|
export function isObjectLikeFactory(name) {
|
|
220
225
|
return ['object', 'strictObject', 'looseObject'].includes(name);
|
|
221
226
|
}
|
|
222
|
-
const
|
|
223
|
-
'object',
|
|
224
|
-
'strictObject',
|
|
225
|
-
'looseObject',
|
|
226
|
-
'array',
|
|
227
|
-
'tuple',
|
|
228
|
-
'record',
|
|
229
|
-
'partialRecord',
|
|
230
|
-
'looseRecord'
|
|
231
|
-
]);
|
|
232
|
-
const valuePreservingWrapperNames = new Set([
|
|
227
|
+
export const valuePreservingWrapperNames = new Set([
|
|
233
228
|
'optional',
|
|
234
229
|
'nullable',
|
|
235
230
|
'nullish',
|
|
@@ -239,42 +234,6 @@ const valuePreservingWrapperNames = new Set([
|
|
|
239
234
|
'catch',
|
|
240
235
|
'readonly'
|
|
241
236
|
]);
|
|
242
|
-
function isFreezableFactoryCall(bindings, call) {
|
|
243
|
-
const callName = getZodCallName(bindings, call);
|
|
244
|
-
return callName !== null && freezableSchemaFactoryNames.has(callName);
|
|
245
|
-
}
|
|
246
|
-
function underlyingSchemaExpression(bindings, call) {
|
|
247
|
-
const callName = getZodCallName(bindings, call);
|
|
248
|
-
if (callName !== null && valuePreservingWrapperNames.has(callName)) {
|
|
249
|
-
return firstExpressionArgument(call);
|
|
250
|
-
}
|
|
251
|
-
return babel.isMemberExpression(call.callee) && isExpressionNode(call.callee.object)
|
|
252
|
-
? call.callee.object
|
|
253
|
-
: null;
|
|
254
|
-
}
|
|
255
|
-
export function producesFreezableValue(bindings, expression) {
|
|
256
|
-
let current = expression;
|
|
257
|
-
while (current !== null && babel.isCallExpression(current)) {
|
|
258
|
-
if (isFreezableFactoryCall(bindings, current)) {
|
|
259
|
-
return true;
|
|
260
|
-
}
|
|
261
|
-
current = underlyingSchemaExpression(bindings, current);
|
|
262
|
-
}
|
|
263
|
-
return false;
|
|
264
|
-
}
|
|
265
|
-
function isReadonlyApplication(bindings, call) {
|
|
266
|
-
return getZodCallName(bindings, call) === 'readonly' || getMemberName(call.callee) === 'readonly';
|
|
267
|
-
}
|
|
268
|
-
export function chainAppliesReadonly(bindings, expression) {
|
|
269
|
-
let current = expression;
|
|
270
|
-
while (current !== null && babel.isCallExpression(current)) {
|
|
271
|
-
if (isReadonlyApplication(bindings, current)) {
|
|
272
|
-
return true;
|
|
273
|
-
}
|
|
274
|
-
current = underlyingSchemaExpression(bindings, current);
|
|
275
|
-
}
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
237
|
function isReceiverOfMethodCall(path) {
|
|
279
238
|
const enclosingMember = path.parentPath?.node;
|
|
280
239
|
return babel.isMemberExpression(enclosingMember) && enclosingMember.object === path.node;
|
|
@@ -316,18 +275,4 @@ export function isStringTemplateLiteralPart(path, bindings) {
|
|
|
316
275
|
getZodCallName(bindings, path.node) === 'string' &&
|
|
317
276
|
isElementOfTemplateLiteralParts(path, bindings);
|
|
318
277
|
}
|
|
319
|
-
const factoryNamesAcceptingUndefined = new Set(['any', 'unknown', 'undefined', 'void', 'nullish']);
|
|
320
|
-
const factoryNamesAcceptingNull = new Set(['any', 'unknown', 'null', 'nullish']);
|
|
321
|
-
const alreadyAcceptedValueByWrapper = new Map([
|
|
322
|
-
['optional', factoryNamesAcceptingUndefined],
|
|
323
|
-
['nullable', factoryNamesAcceptingNull]
|
|
324
|
-
]);
|
|
325
|
-
export function addingWrapperHasNoEffect(bindings, expression, wrapperName) {
|
|
326
|
-
const acceptingFactories = alreadyAcceptedValueByWrapper.get(wrapperName);
|
|
327
|
-
if (acceptingFactories === undefined || !babel.isCallExpression(expression)) {
|
|
328
|
-
return false;
|
|
329
|
-
}
|
|
330
|
-
const outerName = getZodCallName(bindings, expression) ?? getMemberName(expression.callee) ?? '';
|
|
331
|
-
return outerName === wrapperName || acceptingFactories.has(outerName);
|
|
332
|
-
}
|
|
333
278
|
//# sourceMappingURL=zod-bindings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod-bindings.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/zod-bindings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zod-bindings.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/zod-bindings.ts"],"names":[],"mappings":"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"}
|