@schema-hub/stryker-zod-mutator 0.0.3 → 0.0.5

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 CHANGED
@@ -41,5 +41,5 @@
41
41
  "./stryker-zod-mutator/zod-bindings.js"
42
42
  ],
43
43
  "type": "module",
44
- "version": "0.0.3"
44
+ "version": "0.0.5"
45
45
  }
package/readme.md CHANGED
@@ -162,7 +162,26 @@ The default set enables every operator below.
162
162
 
163
163
  `ZodPrimitiveFactorySwap` swaps zero-argument calls among `z.string()`, `z.number()`, `z.bigint()`,
164
164
  `z.boolean()`, `z.date()`, `z.symbol()`, `z.null()`, `z.undefined()`, `z.void()`, `z.never()`, `z.any()`,
165
- and `z.unknown()`.
165
+ and `z.unknown()`. It skips swaps between `z.any()` and `z.unknown()`, and between `z.void()` and
166
+ `z.undefined()`, because those pairs validate identically at runtime and would only produce equivalent
167
+ mutants.
168
+
169
+ `ZodObjectPolicyAdd` applies only to the `object`, `strictObject`, and `looseObject` factories, and never
170
+ adds the policy that already matches the factory default (`strip` for `object`, `strict` for
171
+ `strictObject`, `passthrough` for `looseObject`), since that has no runtime effect.
172
+
173
+ `ZodOptionalAdd` and `ZodObjectFieldOptionalAdd` skip schemas that already accept `undefined` (`z.any()`,
174
+ `z.unknown()`, `z.undefined()`, `z.void()`), and `ZodNullableAdd` and `ZodObjectFieldNullableAdd` skip
175
+ schemas that already accept `null` (`z.any()`, `z.unknown()`, `z.null()`), because wrapping them changes
176
+ nothing at runtime. `ZodOptionalAdd` and `ZodNullableAdd` also wrap only at the root of a schema value
177
+ chain, so `z.string().min(2)` yields `z.string().min(2).optional()` rather than the invalid
178
+ `z.string().optional().min(2)`.
179
+
180
+ `ZodReadonlyAdd` only targets schemas whose parsed value is frozen observably at runtime, namely the
181
+ object, `array`, `tuple`, and record families, including those wrapped in `optional`, `nullable`, `nullish`,
182
+ `nonoptional`, `default`, `prefault`, or `catch`. Primitives and other schemas are skipped because freezing
183
+ them has no effect. It emits a single mutant per schema value and skips schemas that already apply
184
+ `readonly` anywhere in that chain, so it never produces a redundant double `readonly`.
166
185
 
167
186
  Boolean and string literal values are left to Stryker’s built-in literal mutators.
168
187
 
package/sbom.cdx.json CHANGED
@@ -16,9 +16,9 @@
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "@schema-hub/stryker-zod-mutator",
19
- "version": "0.0.3",
20
- "bom-ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.3",
21
- "purl": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.3"
19
+ "version": "0.0.5",
20
+ "bom-ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.5",
21
+ "purl": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.5"
22
22
  }
23
23
  },
24
24
  "components": [
@@ -67,7 +67,7 @@
67
67
  "ref": "pkg:npm/@babel/types@8.0.4"
68
68
  },
69
69
  {
70
- "ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.3",
70
+ "ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.5",
71
71
  "dependsOn": [
72
72
  "pkg:npm/@babel/types@8.0.4",
73
73
  "pkg:npm/@stryker-mutator/api@%3E%3D9.6.0%20%3C10",
@@ -1,7 +1,7 @@
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 { buildZodCall, expressionStyle, getZodCallName, isObjectLikeFactory, isZodSchemaExpression, replaceZodCallee } from "./zod-bindings.js";
4
+ import { addingWrapperHasNoEffect, buildZodCall, expressionStyle, getZodCallName, isObjectLikeFactory, isZodSchemaExpression, replaceZodCallee } from "./zod-bindings.js";
5
5
  import { removeMethodOrWrapper } from "./schema-call-mutations.js";
6
6
  function mutateObjectFactory(path, bindings) {
7
7
  const call = callNode(path);
@@ -50,23 +50,47 @@ function objectFieldValue(objectExpression, index) {
50
50
  ? property.value
51
51
  : null;
52
52
  }
53
- function wrapObjectField(bindings, objectExpression, index, wrapperName) {
53
+ function fieldWrapTarget(bindings, objectExpression, index) {
54
54
  const value = objectFieldValue(objectExpression, index);
55
55
  const style = value === null ? null : expressionStyle(bindings, value);
56
56
  if (value === null || style === null || !isZodSchemaExpression(bindings, value)) {
57
57
  return null;
58
58
  }
59
- const wrapper = buildFieldWrapper(bindings, value, style, wrapperName);
59
+ return { value, style };
60
+ }
61
+ function wrapObjectField(bindings, objectExpression, index, wrapperName) {
62
+ const target = fieldWrapTarget(bindings, objectExpression, index);
63
+ if (target === null || addingWrapperHasNoEffect(bindings, target.value, wrapperName)) {
64
+ return null;
65
+ }
66
+ const wrapper = buildFieldWrapper(bindings, target.value, target.style, wrapperName);
60
67
  return wrapper === null ? null : replaceObjectProperty(objectExpression, index, wrapper);
61
68
  }
69
+ const objectPolicyNames = ['strict', 'passthrough', 'strip'];
70
+ const defaultPolicyByObjectFactory = new Map([
71
+ ['object', 'strip'],
72
+ ['strictObject', 'strict'],
73
+ ['looseObject', 'passthrough']
74
+ ]);
75
+ function classicObjectFactoryName(bindings, expression) {
76
+ if (!babel.isCallExpression(expression) || expressionStyle(bindings, expression) !== 'classic') {
77
+ return null;
78
+ }
79
+ const callName = getZodCallName(bindings, expression);
80
+ return callName !== null && isObjectLikeFactory(callName) ? callName : null;
81
+ }
62
82
  function addObjectPolicy(path, bindings) {
63
83
  const expression = isExpressionNode(path.node) ? path.node : null;
64
- if (expression === null ||
65
- expressionStyle(bindings, expression) !== 'classic' ||
66
- !isZodSchemaExpression(bindings, expression)) {
84
+ const factoryName = expression === null ? null : classicObjectFactoryName(bindings, expression);
85
+ if (expression === null || factoryName === null) {
67
86
  return [];
68
87
  }
69
- return ['strict', 'passthrough', 'strip'].map(function (name) {
88
+ const defaultPolicy = defaultPolicyByObjectFactory.get(factoryName);
89
+ return objectPolicyNames
90
+ .filter(function (name) {
91
+ return name !== defaultPolicy;
92
+ })
93
+ .map(function (name) {
70
94
  return memberCall(cloneExpression(expression), name, []);
71
95
  });
72
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"object-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/object-mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/object-mutations.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import { addWrapperOrMethod, removeMethodOrWrapper, replaceNullish } from "./schema-call-mutations.js";
2
+ import { isExpressionNode } from "./ast.js";
2
3
  import { createDefinition } from "./mutation-definition.js";
4
+ import { chainAppliesReadonly, isSchemaValueChainRoot, producesFreezableValue } from "./zod-bindings.js";
5
+ function addReadonlyToFreezableSchema(path, bindings) {
6
+ if (!isExpressionNode(path.node) || !isSchemaValueChainRoot(path, bindings)) {
7
+ return [];
8
+ }
9
+ if (!producesFreezableValue(bindings, path.node) || chainAppliesReadonly(bindings, path.node)) {
10
+ return [];
11
+ }
12
+ return addWrapperOrMethod(path, bindings, 'readonly');
13
+ }
3
14
  export const presenceMutationDefinitions = [
4
15
  createDefinition('ZodOptionalAdd', function (path, bindings) {
5
16
  return addWrapperOrMethod(path, bindings, 'optional');
@@ -25,9 +36,7 @@ export const presenceMutationDefinitions = [
25
36
  createDefinition('ZodNonoptionalRemove', function (path, bindings) {
26
37
  return removeMethodOrWrapper(path, bindings, new Set(['nonoptional']));
27
38
  }),
28
- createDefinition('ZodReadonlyAdd', function (path, bindings) {
29
- return addWrapperOrMethod(path, bindings, 'readonly');
30
- }),
39
+ createDefinition('ZodReadonlyAdd', addReadonlyToFreezableSchema),
31
40
  createDefinition('ZodReadonlyRemove', function (path, bindings) {
32
41
  return removeMethodOrWrapper(path, bindings, new Set(['readonly']));
33
42
  })
@@ -1 +1 @@
1
- {"version":3,"file":"presence-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/presence-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AAErF,MAAM,CAAC,MAAM,2BAA2B,GAAkC;IACtE,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACzD,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,SAAS,CAAE,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,aAAa,CAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IACF,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;CACL,CAAC"}
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,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,SAAS,4BAA4B,CAAC,IAAkB,EAAE,QAAqB;IAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAkC;IACtE,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACvD,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,IAAI,EAAE,QAAQ;QACzD,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,SAAS,CAAE,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC7D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,aAAa,CAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IACF,gBAAgB,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IAChE,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,IAAI,EAAE,QAAQ;QAC1D,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAE,UAAU,CAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;CACL,CAAC"}
@@ -1,9 +1,18 @@
1
1
  import { callNode, createDefinition } from "./mutation-definition.js";
2
2
  import { getZodCallName, isCoerceCall, primitiveFactoryNames, replaceZodCallee } from "./zod-bindings.js";
3
3
  const primitiveFactoryNameSet = new Set(primitiveFactoryNames);
4
+ const runtimeEquivalentFactories = new Map([
5
+ ['any', new Set(['unknown'])],
6
+ ['unknown', new Set(['any'])],
7
+ ['void', new Set(['undefined'])],
8
+ ['undefined', new Set(['void'])]
9
+ ]);
4
10
  function isPrimitiveFactoryCall(callName) {
5
11
  return callName !== null && primitiveFactoryNameSet.has(callName);
6
12
  }
13
+ function isRuntimeEquivalentSwap(sourceName, targetName) {
14
+ return runtimeEquivalentFactories.get(sourceName)?.has(targetName) ?? false;
15
+ }
7
16
  function mutatePrimitiveFactory(path, bindings) {
8
17
  const call = callNode(path);
9
18
  const callName = call === null ? null : getZodCallName(bindings, call);
@@ -15,7 +24,7 @@ function mutatePrimitiveFactory(path, bindings) {
15
24
  }
16
25
  return primitiveFactoryNames
17
26
  .filter(function (target) {
18
- return target !== callName;
27
+ return target !== callName && !isRuntimeEquivalentSwap(callName, target);
19
28
  })
20
29
  .flatMap(function (target) {
21
30
  return replaceZodCallee(bindings, call, target) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"primitive-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/primitive-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EACH,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AAEvE,SAAS,sBAAsB,CAAC,QAAuB;IACnD,OAAO,QAAQ,KAAK,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAkB,EAAE,QAAqB;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEvE,IACI,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACzB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC5B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EACnC,CAAC;QACC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,qBAAqB;SACvB,MAAM,CAAC,UAAU,MAAM;QACpB,OAAO,MAAM,KAAK,QAAQ,CAAC;IAC/B,CAAC,CAAC;SACD,OAAO,CAAC,UAAU,MAAM;QACrB,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACvE,gBAAgB,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;CACtE,CAAC"}
1
+ {"version":3,"file":"primitive-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/primitive-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EACH,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AAEvE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAA8B;IACpE,CAAE,KAAK,EAAE,IAAI,GAAG,CAAC,CAAE,SAAS,CAAE,CAAC,CAAE;IACjC,CAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAE,KAAK,CAAE,CAAC,CAAE;IACjC,CAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAE,WAAW,CAAE,CAAC,CAAE;IACpC,CAAE,WAAW,EAAE,IAAI,GAAG,CAAC,CAAE,MAAM,CAAE,CAAC,CAAE;CACvC,CAAC,CAAC;AAEH,SAAS,sBAAsB,CAAC,QAAuB;IACnD,OAAO,QAAQ,KAAK,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,UAAkB;IACnE,OAAO,0BAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AAChF,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAkB,EAAE,QAAqB;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEvE,IACI,IAAI,KAAK,IAAI;QACb,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACzB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC5B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EACnC,CAAC;QACC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,qBAAqB;SACvB,MAAM,CAAC,UAAU,MAAM;QACpB,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC;SACD,OAAO,CAAC,UAAU,MAAM;QACrB,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAkC;IACvE,gBAAgB,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;CACtE,CAAC"}
@@ -1,7 +1,7 @@
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 { buildZodCall, expressionStyle, firstExpressionArgument, getZodCallName, isZodSchemaExpression } from "./zod-bindings.js";
4
+ import { addingWrapperHasNoEffect, buildZodCall, expressionStyle, firstExpressionArgument, getZodCallName, isSchemaValueChainRoot, isZodSchemaExpression } from "./zod-bindings.js";
5
5
  export function removeMethod(call, bindings, methodNames) {
6
6
  if (!babel.isMemberExpression(call.callee)) {
7
7
  return [];
@@ -40,12 +40,21 @@ function buildWrapperMutation(bindings, expression, style, name) {
40
40
  const wrapped = buildZodCall(bindings, style, name, [cloneExpression(expression)]);
41
41
  return wrapped === null ? [] : [wrapped];
42
42
  }
43
+ function wrapperAlreadyApplied(expression, name) {
44
+ return babel.isCallExpression(expression) && getCallName(expression.callee) === name;
45
+ }
46
+ function shouldSkipWrapping(path, bindings, expression, name) {
47
+ return !isSchemaValueChainRoot(path, bindings) ||
48
+ wrapperAlreadyApplied(expression, name) ||
49
+ addingWrapperHasNoEffect(bindings, expression, name);
50
+ }
43
51
  export function addWrapperOrMethod(path, bindings, name) {
44
52
  const expression = zodSchemaExpression(path, bindings);
45
53
  const style = expression === null ? null : expressionStyle(bindings, expression);
46
- if (expression === null ||
47
- style === null ||
48
- babel.isCallExpression(expression) && getCallName(expression.callee) === name) {
54
+ if (expression === null || style === null) {
55
+ return [];
56
+ }
57
+ if (shouldSkipWrapping(path, bindings, expression, name)) {
49
58
  return [];
50
59
  }
51
60
  return buildWrapperMutation(bindings, expression, style, name);
@@ -1 +1 @@
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
+ {"version":3,"file":"schema-call-mutations.js","sourceRoot":"","sources":["../../../../source/stryker-zod-mutator/schema-call-mutations.ts"],"names":[],"mappings":"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"}
@@ -219,4 +219,93 @@ export function firstExpressionArgument(call) {
219
219
  export function isObjectLikeFactory(name) {
220
220
  return ['object', 'strictObject', 'looseObject'].includes(name);
221
221
  }
222
+ const freezableSchemaFactoryNames = new Set([
223
+ 'object',
224
+ 'strictObject',
225
+ 'looseObject',
226
+ 'array',
227
+ 'tuple',
228
+ 'record',
229
+ 'partialRecord',
230
+ 'looseRecord'
231
+ ]);
232
+ const valuePreservingWrapperNames = new Set([
233
+ 'optional',
234
+ 'nullable',
235
+ 'nullish',
236
+ 'nonoptional',
237
+ '_default',
238
+ 'prefault',
239
+ 'catch',
240
+ 'readonly'
241
+ ]);
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
+ function isReceiverOfMethodCall(path) {
279
+ const enclosingMember = path.parentPath?.node;
280
+ return babel.isMemberExpression(enclosingMember) && enclosingMember.object === path.node;
281
+ }
282
+ function isArgumentOfValuePreservingWrapper(path, bindings) {
283
+ const enclosingCall = path.parentPath?.node;
284
+ if (!babel.isCallExpression(enclosingCall)) {
285
+ return false;
286
+ }
287
+ const firstArgument = enclosingCall.arguments[0];
288
+ if (!isExpressionNode(firstArgument)) {
289
+ return false;
290
+ }
291
+ const wrapsThisNode = firstArgument === path.node;
292
+ return wrapsThisNode && valuePreservingWrapperNames.has(getZodCallName(bindings, enclosingCall) ?? '');
293
+ }
294
+ export function isSchemaValueChainRoot(path, bindings) {
295
+ return !isReceiverOfMethodCall(path) && !isArgumentOfValuePreservingWrapper(path, bindings);
296
+ }
297
+ const factoryNamesAcceptingUndefined = new Set(['any', 'unknown', 'undefined', 'void']);
298
+ const factoryNamesAcceptingNull = new Set(['any', 'unknown', 'null']);
299
+ const alreadyAcceptedValueByWrapper = new Map([
300
+ ['optional', factoryNamesAcceptingUndefined],
301
+ ['nullable', factoryNamesAcceptingNull]
302
+ ]);
303
+ export function addingWrapperHasNoEffect(bindings, expression, wrapperName) {
304
+ const acceptingFactories = alreadyAcceptedValueByWrapper.get(wrapperName);
305
+ if (acceptingFactories === undefined || !babel.isCallExpression(expression)) {
306
+ return false;
307
+ }
308
+ const factoryName = getZodCallName(bindings, expression);
309
+ return factoryName !== null && acceptingFactories.has(factoryName);
310
+ }
222
311
  //# 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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"}