@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 CHANGED
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "author": "Mathias Schreck <schreck.mathias@gmail.com>",
3
3
  "dependencies": {
4
- "@babel/types": "8.0.4"
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.7"
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()`, and anything already `optional`), and
186
- `ZodNullableAdd` and `ZodObjectFieldNullableAdd` skip schemas that already accept `null` (`z.any()`,
187
- `z.unknown()`, `z.null()`, `z.nullish()`, and anything already `nullable`), because wrapping them changes
188
- nothing at runtime. `ZodOptionalRemove` and `ZodNullableRemove` likewise skip removals whose remaining
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 intentionally avoids cross-statement data-flow analysis and only mutates schema expressions
210
- that are visibly rooted in a detected Zod import.
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.65"
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.7",
20
- "bom-ref": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.7",
21
- "purl": "pkg:npm/@schema-hub/stryker-zod-mutator@0.0.7"
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.7",
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;AAYtE,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;IAC3D,OAAO;QACH,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,CAAC,IAAkB;YACrB,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;KACJ,CAAC;AACN,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 createZodMutators(operators) {
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(createZodMutator);
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,iBAAiB,CAAC,SAAyC;IACvE,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,gBAAgB,CAAC,CAAC;AAC/B,CAAC"}
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 { addingWrapperHasNoEffect, buildZodCall, expressionStyle, getZodCallName, isObjectLikeFactory, isZodSchemaExpression, replaceZodCallee } from "./zod-bindings.js";
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":"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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,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 { addingWrapperHasNoEffect, chainAppliesReadonly, isSchemaValueChainRoot, producesFreezableValue } from "./zod-bindings.js";
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":"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"}
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 { addingWrapperHasNoEffect, buildZodCall, expressionStyle, firstExpressionArgument, getZodCallName, isSchemaValueChainRoot, isStringTemplateLiteralPart, isZodSchemaExpression } from "./zod-bindings.js";
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":"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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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"}
@@ -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 readZodBindings(path) {
95
- const program = findProgram(path);
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 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([
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":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EACH,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAInB,MAAM,UAAU,CAAC;AAkClB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAsB;IACjD,CAAE,KAAK,EAAE,SAAS,CAAE;IACpB,CAAE,QAAQ,EAAE,SAAS,CAAE;IACvB,CAAE,UAAU,EAAE,MAAM,CAAE;IACtB,CAAE,aAAa,EAAE,MAAM,CAAE;IACzB,CAAE,aAAa,EAAE,MAAM,CAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,SAAS;CACH,CAAC;AAEX,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAC/B,GAAG,qBAAqB;IACxB,QAAQ;IACR,cAAc;IACd,aAAa;IACb,OAAO;IACP,OAAO;IACP,QAAQ;IACR,eAAe;IACf,aAAa;IACb,OAAO;IACP,oBAAoB;IACpB,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,aAAa;IACb,UAAU;IACV,UAAU;IACV,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;CACR,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,SAA0C;IAC/D,OAAO,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;QACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAC3B,KAAkB,EAClB,SAA0B;IAE1B,IAAI,SAAS,CAAC,IAAI,KAAK,0BAA0B,IAAI,SAAS,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;QAC/F,OAAO,EAAE,UAAU,EAAE,CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO,YAAY,KAAK,GAAG;QACvB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC/E,CAAC,CAAC;YACE,UAAU,EAAE,EAAE;YACd,cAAc,EAAE,CAAE,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAE;SAC/E,CAAC;AACV,CAAC;AAED,SAAS,aAAa,CAAC,SAA0B;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC;QAC9C,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,SAAS;QACzD,OAAO,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,OAAO;YAC1C,OAAO,OAAO,CAAC,UAAU,CAAC;QAC9B,CAAC,CAAC;QACF,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,OAAO;YAC9C,OAAO,OAAO,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC;KACL,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,QAAuB,EAAE,GAAgB;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEhD,OAAO;QACH,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,OAAO;YACzC,OAAO,OAAO,CAAC,UAAU,CAAC;QAC9B,CAAC,CAAC;QACF,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,OAAO;YAC7C,OAAO,OAAO,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC;QACF,OAAO;QACP,QAAQ;QACR,GAAG;KACN,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAkB,EAAE,GAAgB;IAChE,OAAO,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAqB,EAAE,SAAiB;IACrE,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,OAAO;QACjD,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;IAC3C,CAAC,CAAC,IAAI,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAqB,EAAE,SAAiB;IACtE,OAAO,QAAQ;SACV,UAAU;SACV,IAAI,CAAC,UAAU,OAAO;QACnB,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;IACtC,CAAC,CAAC;QACF,EAAE,KAAK,IAAI,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAqB,EAAE,UAAqB;IAC7E,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAoB;IAChD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IAE/B,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;QACpB,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAqB,EAAE,IAAoB;IACpE,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,aAAa,KAAK,IAAI,IAAI,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAqB,EAAE,IAAoB;IACtE,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IAC9E,CAAC;IAED,IAAI,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAqB,EAAE,IAAoB;IACnE,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAqB,EAAE,IAAoB;IACvE,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,OAAO,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAqB,EAAE,UAA4B;IACrF,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEtD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;IAErC,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAqB,EAAE,UAA4B;IAC/E,IAAI,iBAAiB,GAA4B,UAAU,CAAC;IAE5D,SAAS,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAEjE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5G,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;IACxD,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,QAAqB,EACrB,KAAkB,EAClB,IAAY,EACZ,IAAiC;IAEjC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,OAAO;QACxD,OAAO,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,cAAc,CACvB,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAChF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACnB,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,OAAO;QACzD,OAAO,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,QAAqB,EACrB,IAAoB,EACpB,eAAuB;IAEvB,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE9C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAoB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnC,OAAO,QAAQ,KAAK,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC5C,OAAO,CAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC/C,UAAU;IACV,UAAU;IACV,SAAS;IACT,aAAa;IACb,UAAU;IACV,UAAU;IACV,OAAO;IACP,UAAU;CACb,CAAC,CAAC;AAEH,SAAS,sBAAsB,CAAC,IAAkB;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;IAE9C,OAAO,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED,SAAS,0BAA0B,CAC/B,IAAkB,EAClB,QAAqB,EACrB,SAA8B;IAE9B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;IAE5C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC;IAEpD,OAAO,eAAe,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAkB,EAAE,QAAqB;IAC5E,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC;AACrH,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAE,CAAC,CAAC;AAEjF,MAAM,UAAU,mBAAmB,CAAC,IAAkB,EAAE,QAAqB;IACzE,OAAO,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,IAAkB;IACvC,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAkB,EAAE,QAAqB;IAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;IACzC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;QAChF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,aAAa,CAAC,IAAI,aAAa,KAAK,UAAU,CAAC;IAE7F,OAAO,oBAAoB,IAAI,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,iBAAiB,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAkB,EAAE,QAAqB;IACjF,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ;QAChD,+BAA+B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC"}