@orval/core 8.13.0 → 8.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -122,6 +122,7 @@ interface NormalizedOverrideOutput {
122
122
  angular: NormalizedAngularOptions;
123
123
  swr: SwrOptions;
124
124
  zod: NormalizedZodOptions;
125
+ effect: NormalizedEffectOptions;
125
126
  fetch: NormalizedFetchOptions;
126
127
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
127
128
  requestOptions: Record<string, unknown> | boolean;
@@ -185,6 +186,7 @@ interface NormalizedOperationOptions {
185
186
  angular?: NormalizedAngularOptions;
186
187
  swr?: SwrOptions;
187
188
  zod?: NormalizedZodOptions;
189
+ effect?: NormalizedEffectOptions;
188
190
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
189
191
  fetch?: FetchOptions;
190
192
  formData?: NormalizedFormDataType<NormalizedMutator>;
@@ -347,6 +349,7 @@ declare const OutputClient: {
347
349
  readonly VUE_QUERY: "vue-query";
348
350
  readonly SWR: "swr";
349
351
  readonly ZOD: "zod";
352
+ readonly EFFECT: "effect";
350
353
  readonly HONO: "hono";
351
354
  readonly FETCH: "fetch";
352
355
  readonly MCP: "mcp";
@@ -409,6 +412,7 @@ type OverrideMockOptions = Partial<GlobalMockOptions> & {
409
412
  numberMin?: number;
410
413
  numberMax?: number;
411
414
  required?: boolean;
415
+ nonNullable?: boolean;
412
416
  properties?: MockProperties;
413
417
  format?: Record<string, unknown>;
414
418
  fractionDigits?: number;
@@ -504,6 +508,7 @@ interface OverrideOutput {
504
508
  swr?: SwrOptions;
505
509
  angular?: AngularOptions;
506
510
  zod?: ZodOptions;
511
+ effect?: EffectOptions;
507
512
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
508
513
  fetch?: FetchOptions;
509
514
  requestOptions?: Record<string, unknown> | boolean;
@@ -598,6 +603,18 @@ interface ZodOptions {
598
603
  body?: Mutator;
599
604
  response?: Mutator;
600
605
  };
606
+ /**
607
+ * Mutator referencing a function called once per emitted validator at schema
608
+ * construction time. It receives codegen-time context (operation, location,
609
+ * schema name, field path, validator name) and returns a Zod `params` object
610
+ * (e.g. `{ error: ... }`) that is appended as the trailing argument.
611
+ *
612
+ * The plural name follows Zod's own term for the validator's second argument
613
+ * (`z.string(params)`) and is unrelated to the singular `param` key used by
614
+ * `generate` / `coerce` / `preprocess` above, which refers to the path-parameter
615
+ * location.
616
+ */
617
+ params?: Mutator;
601
618
  dateTimeOptions?: ZodDateTimeOptions;
602
619
  timeOptions?: ZodTimeOptions;
603
620
  generateEachHttpStatus?: boolean;
@@ -608,6 +625,20 @@ interface ZodOptions {
608
625
  * instead of inlining. Default `false`. See `docs/superpowers/specs/2026-05-26-reusable-zod-schemas-design.md`.
609
626
  */
610
627
  generateReusableSchemas?: boolean;
628
+ /**
629
+ * When true (zod v4 only), attaches registry metadata to generated
630
+ * **component** schemas via `.meta({ id, description?, deprecated? })`: `id` is
631
+ * the schema name, plus `description`/`deprecated` when the OpenAPI schema
632
+ * provides them. On zod v3 (which has no `.meta()`) descriptions still emit
633
+ * via `.describe()`. Default `false`.
634
+ */
635
+ generateMeta?: boolean;
636
+ }
637
+ interface EffectOptions {
638
+ strict?: ZodOptions['strict'];
639
+ generate?: ZodOptions['generate'];
640
+ generateEachHttpStatus?: boolean;
641
+ useBrandedTypes?: boolean;
611
642
  }
612
643
  type ZodCoerceType = 'string' | 'number' | 'boolean' | 'bigint' | 'date';
613
644
  interface NormalizedZodOptions {
@@ -639,12 +670,20 @@ interface NormalizedZodOptions {
639
670
  body?: NormalizedMutator;
640
671
  response?: NormalizedMutator;
641
672
  };
673
+ params?: NormalizedMutator;
642
674
  generateEachHttpStatus: boolean;
643
675
  useBrandedTypes: boolean;
644
676
  generateReusableSchemas: boolean;
677
+ generateMeta: boolean;
645
678
  dateTimeOptions: ZodDateTimeOptions;
646
679
  timeOptions: ZodTimeOptions;
647
680
  }
681
+ interface NormalizedEffectOptions {
682
+ strict: NormalizedZodOptions['strict'];
683
+ generate: NormalizedZodOptions['generate'];
684
+ generateEachHttpStatus: boolean;
685
+ useBrandedTypes: boolean;
686
+ }
648
687
  /**
649
688
  * A single parameter value for `mutationInvalidates` params.
650
689
  *
@@ -705,6 +744,7 @@ interface NormalizedQueryOptions {
705
744
  shouldExportMutatorHooks?: boolean;
706
745
  shouldExportHttpClient?: boolean;
707
746
  shouldExportQueryKey?: boolean;
747
+ shouldFilterQueryKey?: boolean;
708
748
  shouldSplitQueryKey?: boolean;
709
749
  useOperationIdAsQueryKey?: boolean;
710
750
  signal?: boolean;
@@ -730,6 +770,7 @@ interface QueryOptions {
730
770
  shouldExportMutatorHooks?: boolean;
731
771
  shouldExportHttpClient?: boolean;
732
772
  shouldExportQueryKey?: boolean;
773
+ shouldFilterQueryKey?: boolean;
733
774
  shouldSplitQueryKey?: boolean;
734
775
  useOperationIdAsQueryKey?: boolean;
735
776
  signal?: boolean;
@@ -826,6 +867,7 @@ interface OperationOptions {
826
867
  angular?: AngularOptions;
827
868
  swr?: SwrOptions;
828
869
  zod?: ZodOptions;
870
+ effect?: EffectOptions;
829
871
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
830
872
  fetch?: FetchOptions;
831
873
  formData?: boolean | Mutator | FormDataType<Mutator>;
@@ -2682,5 +2724,5 @@ declare function generateTargetForTags(builder: WriteSpecBuilder, options: Norma
2682
2724
  declare function getOrvalGeneratedTypes(): string;
2683
2725
  declare function getTypedResponse(): string;
2684
2726
  //#endregion
2685
- export { AngularHttpResourceOptions, AngularOptions, BODY_TYPE_NAME, BaseUrlFromConstant, BaseUrlFromSpec, BaseUrlRuntime, BoundAliasInfo, ClientBuilder, ClientDependenciesBuilder, ClientExtraFilesBuilder, ClientFileBuilder, ClientFooterBuilder, ClientGeneratorsBuilder, ClientHeaderBuilder, ClientMockBuilder, ClientMockGeneratorBuilder, ClientMockGeneratorImplementation, ClientTitleBuilder, CommonMockOptions, Config, ConfigExternal, ConfigFn, ContentTypeFilter, ContextSpec, DeepNonNullable, DefaultTag, DynamicScopeEntry, EnumGeneration, ErrorWithTag, FactoryMethodsMode, FactoryMethodsOptions, FakerMockOptions, FetchOptions, FormDataArrayHandling, FormDataContext, FormDataType, GenerateMockImports, GenerateVerbOptionsParams, GenerateVerbsOptionsParams, GeneratorApiBuilder, GeneratorApiOperations, GeneratorApiResponse, GeneratorClient, GeneratorClientExtra, GeneratorClientFooter, GeneratorClientHeader, GeneratorClientImports, GeneratorClientTitle, GeneratorClients, GeneratorDependency, GeneratorImport, GeneratorMockOutput, GeneratorMockOutputFull, GeneratorMutator, GeneratorMutatorParsingInfo, GeneratorOperation, GeneratorOperations, GeneratorOptions, GeneratorSchema, GeneratorTarget, GeneratorTargetFull, GeneratorVerbOptions, GeneratorVerbsOptions, GetterBody, GetterParam, GetterParameters, GetterParams, GetterProp, GetterPropType, GetterProps, GetterQueryParam, GetterResponse, GlobalMockOptions, GlobalOptions, HonoOptions, Hook, HookCommand, HookFunction, HookOption, HooksOptions, ImportOpenApi, InputFiltersOptions, InputOptions, InputTransformerFn, InvalidateTarget, InvalidateTargetParam, JsDocOptions, LogLevel, LogLevels, LogOptions, LogType, Logger, LoggerOptions, McpOptions, McpServerOptions, MockData, MockDataArray, MockDataArrayFn, MockDataObject, MockDataObjectFn, MockOptions, MockProperties, MockPropertiesObject, MockPropertiesObjectFn, MswMockOptions, MutationInvalidatesConfig, MutationInvalidatesRule, Mutator, MutatorObject, NAMED_COMPONENT_SECTIONS, NamingConvention, NormalizedAngularOptions, NormalizedConfig, NormalizedFactoryMethodsOptions, NormalizedFetchOptions, NormalizedFormDataType, NormalizedHonoOptions, NormalizedHookCommand, NormalizedHookOptions, NormalizedInputOptions, NormalizedJsDocOptions, NormalizedMcpOptions, NormalizedMcpServerOptions, NormalizedMocksConfig, NormalizedMutator, NormalizedOperationOptions, NormalizedOptions, NormalizedOutputOptions, NormalizedOverrideOutput, NormalizedParamsSerializerOptions, NormalizedQueryOptions, NormalizedSchemaOptions, NormalizedZodOptions, OpenApiComponentsObject, OpenApiDocument, OpenApiDynamicReferenceObject, OpenApiEncodingObject, OpenApiExampleObject, OpenApiInfoObject, OpenApiMediaTypeObject, OpenApiOperationObject, OpenApiParameterObject, OpenApiPathItemObject, OpenApiPathsObject, OpenApiReferenceObject, OpenApiRequestBodyObject, OpenApiResponseObject, OpenApiResponsesObject, OpenApiSchemaObject, OpenApiSchemaObjectType, OpenApiSchemasObject, OpenApiServerObject, OperationOptions, Options, OptionsExport, OptionsFn, OutputClient, OutputClientFunc, OutputDocsOptions, OutputHttpClient, OutputMockType, OutputMocksConfig, OutputMocksOption, OutputMode, OutputOptions, OverrideInput, OverrideMockOptions, OverrideOutput, OverrideOutputContentType, PackageJson, ParamsSerializerOptions, PreferredContentType, PropertySortOrder, QueryOptions, ReadonlyRequestBodiesMode, RefComponentSuffix, RefInfo, ResReqTypesValue, ResolverValue, ResponseTypeCategory, ScalarValue, SchemaGenerationType, SchemaOptions, SchemaType, SupportedFormatter, SwrOptions, TEMPLATE_TAG_REGEX, TsConfigModule, TsConfigModuleResolution, TsConfigTarget, Tsconfig, URL_REGEX, VERBS_WITH_BODY, Verbs, WriteModeProps, WriteSpecBuilder, ZodCoerceType, ZodDateTimeOptions, ZodOptions, ZodTimeOptions, addDependency, asyncReduce, buildAngularParamsFilterExpression, buildDynamicScope, camel, collectReferencedComponents, combineSchemas, compareVersions, conventionName, count, createDebugger, createLogger, createSuccessMessage, createTypeAliasIfNeeded, dedupeUnionType, dynamicAnchorToParamName, dynamicAnchorsToUniqueParamNames, dynamicImport, escape, escapeRegExp, extractBoundAliasInfo, filterByContentType, filteredVerbs, fixCrossDirectoryImports, fixRegularSchemaImports, generalJSTypes, generalJSTypesWithArray, generateAxiosOptions, generateBodyMutatorConfig, generateBodyOptions, generateComponentDefinition, generateDependencyImports, generateFactory, generateFormDataAndUrlEncodedFunction, generateImports, generateModelInline, generateModelsInline, generateMutator, generateMutatorConfig, generateMutatorImports, generateMutatorRequestOptions, generateOptions, generateParameterDefinition, generateQueryParamsAxiosConfig, generateSchemasDefinition, generateTarget, generateTargetForTags, generateVerbImports, generateVerbOptions, generateVerbsOptions, getAngularFilteredParamsCallExpression, getAngularFilteredParamsExpression, getAngularFilteredParamsHelperBody, getArray, getBaseUrlRuntimeImports, getBodiesByContentType, getBody, getCombinedEnumValue, getDefaultContentType, getDynamicAnchorName, getEnum, getEnumDescriptions, getEnumImplementation, getEnumNames, getEnumUnionFromSchema, getExtension, getFileInfo, getFormDataFieldFileType, getFullRoute, getImportExtension, getIsBodyVerb, getKey, getMockFileExtensionByTypeName, getNumberWord, getObject, getOperationId, getOrvalGeneratedTypes, getParameters, getParams, getParamsInPath, getPropertySafe, getProps, getQueryParams, getRefInfo, getResReqTypes, getResponse, getResponseTypeCategory, getRoute, getRouteAsArray, getScalar, getSuccessResponseType, getTypedResponse, getWarningCount, isBinaryContentType, isBinaryScalarSchema, isBoolean, isComponentRef, isDirectory, isDynamicReference, isFakerMock, isFunction, isModule, isMswMock, isNullish, isNumber, isNumeric, isObject, isReference, isSchema, isString, isStringLike, isSyntheticDefaultImportsAllow, isUrl, isVerb, isVerbose, jsDoc, jsStringEscape, kebab, keyValuePairsToJsDoc, log, logError, logVerbose, logWarning, makeRouteSafe, mergeDeep, mismatchArgsMessage, pascal, removeFilesAndEmptyFolders, resetWarnings, resolveDiscriminators, resolveDynamicRef, resolveExampleRefs, resolveInstalledVersion, resolveInstalledVersions, resolveObject, resolveRef, resolveValue, sanitize, setVerbose, snake, sortByPriority, splitSchemasByType, startMessage, stringify, toObjectString, path_d_exports as upath, upper, wrapRouteParameters, writeGeneratedFile, writeModelInline, writeModelsInline, writeSchema, writeSchemas, writeSingleMode, writeSplitMode, writeSplitTagsMode, writeTagsMode };
2727
+ export { AngularHttpResourceOptions, AngularOptions, BODY_TYPE_NAME, BaseUrlFromConstant, BaseUrlFromSpec, BaseUrlRuntime, BoundAliasInfo, ClientBuilder, ClientDependenciesBuilder, ClientExtraFilesBuilder, ClientFileBuilder, ClientFooterBuilder, ClientGeneratorsBuilder, ClientHeaderBuilder, ClientMockBuilder, ClientMockGeneratorBuilder, ClientMockGeneratorImplementation, ClientTitleBuilder, CommonMockOptions, Config, ConfigExternal, ConfigFn, ContentTypeFilter, ContextSpec, DeepNonNullable, DefaultTag, DynamicScopeEntry, EffectOptions, EnumGeneration, ErrorWithTag, FactoryMethodsMode, FactoryMethodsOptions, FakerMockOptions, FetchOptions, FormDataArrayHandling, FormDataContext, FormDataType, GenerateMockImports, GenerateVerbOptionsParams, GenerateVerbsOptionsParams, GeneratorApiBuilder, GeneratorApiOperations, GeneratorApiResponse, GeneratorClient, GeneratorClientExtra, GeneratorClientFooter, GeneratorClientHeader, GeneratorClientImports, GeneratorClientTitle, GeneratorClients, GeneratorDependency, GeneratorImport, GeneratorMockOutput, GeneratorMockOutputFull, GeneratorMutator, GeneratorMutatorParsingInfo, GeneratorOperation, GeneratorOperations, GeneratorOptions, GeneratorSchema, GeneratorTarget, GeneratorTargetFull, GeneratorVerbOptions, GeneratorVerbsOptions, GetterBody, GetterParam, GetterParameters, GetterParams, GetterProp, GetterPropType, GetterProps, GetterQueryParam, GetterResponse, GlobalMockOptions, GlobalOptions, HonoOptions, Hook, HookCommand, HookFunction, HookOption, HooksOptions, ImportOpenApi, InputFiltersOptions, InputOptions, InputTransformerFn, InvalidateTarget, InvalidateTargetParam, JsDocOptions, LogLevel, LogLevels, LogOptions, LogType, Logger, LoggerOptions, McpOptions, McpServerOptions, MockData, MockDataArray, MockDataArrayFn, MockDataObject, MockDataObjectFn, MockOptions, MockProperties, MockPropertiesObject, MockPropertiesObjectFn, MswMockOptions, MutationInvalidatesConfig, MutationInvalidatesRule, Mutator, MutatorObject, NAMED_COMPONENT_SECTIONS, NamingConvention, NormalizedAngularOptions, NormalizedConfig, NormalizedEffectOptions, NormalizedFactoryMethodsOptions, NormalizedFetchOptions, NormalizedFormDataType, NormalizedHonoOptions, NormalizedHookCommand, NormalizedHookOptions, NormalizedInputOptions, NormalizedJsDocOptions, NormalizedMcpOptions, NormalizedMcpServerOptions, NormalizedMocksConfig, NormalizedMutator, NormalizedOperationOptions, NormalizedOptions, NormalizedOutputOptions, NormalizedOverrideOutput, NormalizedParamsSerializerOptions, NormalizedQueryOptions, NormalizedSchemaOptions, NormalizedZodOptions, OpenApiComponentsObject, OpenApiDocument, OpenApiDynamicReferenceObject, OpenApiEncodingObject, OpenApiExampleObject, OpenApiInfoObject, OpenApiMediaTypeObject, OpenApiOperationObject, OpenApiParameterObject, OpenApiPathItemObject, OpenApiPathsObject, OpenApiReferenceObject, OpenApiRequestBodyObject, OpenApiResponseObject, OpenApiResponsesObject, OpenApiSchemaObject, OpenApiSchemaObjectType, OpenApiSchemasObject, OpenApiServerObject, OperationOptions, Options, OptionsExport, OptionsFn, OutputClient, OutputClientFunc, OutputDocsOptions, OutputHttpClient, OutputMockType, OutputMocksConfig, OutputMocksOption, OutputMode, OutputOptions, OverrideInput, OverrideMockOptions, OverrideOutput, OverrideOutputContentType, PackageJson, ParamsSerializerOptions, PreferredContentType, PropertySortOrder, QueryOptions, ReadonlyRequestBodiesMode, RefComponentSuffix, RefInfo, ResReqTypesValue, ResolverValue, ResponseTypeCategory, ScalarValue, SchemaGenerationType, SchemaOptions, SchemaType, SupportedFormatter, SwrOptions, TEMPLATE_TAG_REGEX, TsConfigModule, TsConfigModuleResolution, TsConfigTarget, Tsconfig, URL_REGEX, VERBS_WITH_BODY, Verbs, WriteModeProps, WriteSpecBuilder, ZodCoerceType, ZodDateTimeOptions, ZodOptions, ZodTimeOptions, addDependency, asyncReduce, buildAngularParamsFilterExpression, buildDynamicScope, camel, collectReferencedComponents, combineSchemas, compareVersions, conventionName, count, createDebugger, createLogger, createSuccessMessage, createTypeAliasIfNeeded, dedupeUnionType, dynamicAnchorToParamName, dynamicAnchorsToUniqueParamNames, dynamicImport, escape, escapeRegExp, extractBoundAliasInfo, filterByContentType, filteredVerbs, fixCrossDirectoryImports, fixRegularSchemaImports, generalJSTypes, generalJSTypesWithArray, generateAxiosOptions, generateBodyMutatorConfig, generateBodyOptions, generateComponentDefinition, generateDependencyImports, generateFactory, generateFormDataAndUrlEncodedFunction, generateImports, generateModelInline, generateModelsInline, generateMutator, generateMutatorConfig, generateMutatorImports, generateMutatorRequestOptions, generateOptions, generateParameterDefinition, generateQueryParamsAxiosConfig, generateSchemasDefinition, generateTarget, generateTargetForTags, generateVerbImports, generateVerbOptions, generateVerbsOptions, getAngularFilteredParamsCallExpression, getAngularFilteredParamsExpression, getAngularFilteredParamsHelperBody, getArray, getBaseUrlRuntimeImports, getBodiesByContentType, getBody, getCombinedEnumValue, getDefaultContentType, getDynamicAnchorName, getEnum, getEnumDescriptions, getEnumImplementation, getEnumNames, getEnumUnionFromSchema, getExtension, getFileInfo, getFormDataFieldFileType, getFullRoute, getImportExtension, getIsBodyVerb, getKey, getMockFileExtensionByTypeName, getNumberWord, getObject, getOperationId, getOrvalGeneratedTypes, getParameters, getParams, getParamsInPath, getPropertySafe, getProps, getQueryParams, getRefInfo, getResReqTypes, getResponse, getResponseTypeCategory, getRoute, getRouteAsArray, getScalar, getSuccessResponseType, getTypedResponse, getWarningCount, isBinaryContentType, isBinaryScalarSchema, isBoolean, isComponentRef, isDirectory, isDynamicReference, isFakerMock, isFunction, isModule, isMswMock, isNullish, isNumber, isNumeric, isObject, isReference, isSchema, isString, isStringLike, isSyntheticDefaultImportsAllow, isUrl, isVerb, isVerbose, jsDoc, jsStringEscape, kebab, keyValuePairsToJsDoc, log, logError, logVerbose, logWarning, makeRouteSafe, mergeDeep, mismatchArgsMessage, pascal, removeFilesAndEmptyFolders, resetWarnings, resolveDiscriminators, resolveDynamicRef, resolveExampleRefs, resolveInstalledVersion, resolveInstalledVersions, resolveObject, resolveRef, resolveValue, sanitize, setVerbose, snake, sortByPriority, splitSchemasByType, startMessage, stringify, toObjectString, path_d_exports as upath, upper, wrapRouteParameters, writeGeneratedFile, writeModelInline, writeModelsInline, writeSchema, writeSchemas, writeSingleMode, writeSplitMode, writeSplitTagsMode, writeTagsMode };
2686
2728
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -48,6 +48,7 @@ const OutputClient = {
48
48
  VUE_QUERY: "vue-query",
49
49
  SWR: "swr",
50
50
  ZOD: "zod",
51
+ EFFECT: "effect",
51
52
  HONO: "hono",
52
53
  FETCH: "fetch",
53
54
  MCP: "mcp"
@@ -2385,15 +2386,19 @@ function resolveDynamicRef(anchorName, context, imports = []) {
2385
2386
  let scopeEntry = (context.dynamicScope ?? {})[anchorName];
2386
2387
  if (!scopeEntry) {
2387
2388
  const schemas = context.spec.components?.schemas;
2388
- if (schemas && typeof schemas === "object") for (const [schemaName, schemaObj] of Object.entries(schemas)) {
2389
- if (!schemaObj || typeof schemaObj !== "object") continue;
2390
- if (schemaObj.$dynamicAnchor === anchorName) {
2391
- const refInfo = getRefInfo(`#/components/schemas/${encodeJsonPointerSegment(schemaName)}`, context);
2389
+ if (schemas && typeof schemas === "object") {
2390
+ const matches = [];
2391
+ for (const [schemaName, schemaObj] of Object.entries(schemas)) {
2392
+ if (!schemaObj || typeof schemaObj !== "object") continue;
2393
+ if (schemaObj.$dynamicAnchor === anchorName) matches.push(schemaName);
2394
+ }
2395
+ const match = matches.length === 1 ? matches[0] : matches.find((m) => m === anchorName);
2396
+ if (match) {
2397
+ const refInfo = getRefInfo(`#/components/schemas/${encodeJsonPointerSegment(match)}`, context);
2392
2398
  scopeEntry = {
2393
2399
  name: refInfo.name,
2394
2400
  schemaName: refInfo.originalName
2395
2401
  };
2396
- break;
2397
2402
  }
2398
2403
  }
2399
2404
  }
@@ -2595,25 +2600,44 @@ function resolveValue({ schema, name, context, formDataContext }) {
2595
2600
  const resolvedImport = imports[0];
2596
2601
  let hasReadonlyProps = false;
2597
2602
  const refName = resolvedImport.name;
2598
- if (!context.parents?.includes(refName) && hasScopeAffectedDynamicRef(schemaObject, context, refName)) return {
2603
+ let effectiveContext = context;
2604
+ const refAnchor = schemaObject.$dynamicAnchor;
2605
+ if (typeof refAnchor === "string" && context.dynamicScope?.[refAnchor] && context.dynamicScope[refAnchor].name !== refName && !context.dynamicScope[refAnchor].isParameter) {
2606
+ const scopeEntry = context.dynamicScope[refAnchor];
2607
+ const allOf = ((context.spec.components?.schemas)?.[scopeEntry.schemaName])?.allOf;
2608
+ if (!(Array.isArray(allOf) && allOf.some((el) => {
2609
+ if (!el || typeof el !== "object") return false;
2610
+ const rec = el;
2611
+ if (typeof rec.$ref !== "string" || !isComponentRef(rec.$ref)) return false;
2612
+ const { name } = getRefInfo(rec.$ref, context);
2613
+ return name === refName;
2614
+ }))) {
2615
+ const filteredScope = Object.fromEntries(Object.entries(context.dynamicScope).filter(([key]) => key !== refAnchor));
2616
+ effectiveContext = {
2617
+ ...context,
2618
+ dynamicScope: filteredScope
2619
+ };
2620
+ }
2621
+ }
2622
+ if (!effectiveContext.parents?.includes(refName) && hasScopeAffectedDynamicRef(schemaObject, effectiveContext, refName)) return {
2599
2623
  ...getScalar({
2600
2624
  item: schemaObject,
2601
2625
  name: name ?? refName,
2602
2626
  context: {
2603
- ...context,
2604
- parents: [...context.parents ?? [], refName]
2627
+ ...effectiveContext,
2628
+ parents: [...effectiveContext.parents ?? [], refName]
2605
2629
  },
2606
2630
  formDataContext
2607
2631
  }),
2608
2632
  originalSchema: schemaObject,
2609
2633
  isRef: false
2610
2634
  };
2611
- if (!context.parents?.includes(refName)) hasReadonlyProps = getScalar({
2635
+ if (!effectiveContext.parents?.includes(refName)) hasReadonlyProps = getScalar({
2612
2636
  item: schemaObject,
2613
2637
  name: refName,
2614
2638
  context: {
2615
- ...context,
2616
- parents: [...context.parents ?? [], refName]
2639
+ ...effectiveContext,
2640
+ parents: [...effectiveContext.parents ?? [], refName]
2617
2641
  }
2618
2642
  }).hasReadonlyProps;
2619
2643
  const isAnyOfNullable = schemaObject.anyOf?.some((anyOfItem) => !isReference(anyOfItem) && (anyOfItem.type === "null" || Array.isArray(anyOfItem.type) && anyOfItem.type.includes("null")));
@@ -4399,6 +4423,9 @@ function parseFile(file, name) {
4399
4423
  return;
4400
4424
  }
4401
4425
  }
4426
+ function standardMutatorInfo() {
4427
+ return { numberOfParams: 1 };
4428
+ }
4402
4429
  function parseFunction(ast, funcName) {
4403
4430
  const node = ast.body.find((childNode) => {
4404
4431
  if (childNode.type === "VariableDeclaration") return childNode.declarations.find((d) => d.id.type === "Identifier" && d.id.name === funcName);
@@ -4423,6 +4450,7 @@ function parseFunction(ast, funcName) {
4423
4450
  const declaration = "declarations" in node ? node.declarations.find((d) => d.id.type === "Identifier" && d.id.name === funcName) : void 0;
4424
4451
  if (declaration?.init) {
4425
4452
  if ("name" in declaration.init) return parseFunction(ast, declaration.init.name);
4453
+ if (declaration.init.type === "CallExpression") return standardMutatorInfo();
4426
4454
  if ("body" in declaration.init && "params" in declaration.init && declaration.init.body.type === "ArrowFunctionExpression") return {
4427
4455
  numberOfParams: declaration.init.params.length,
4428
4456
  returnNumberOfParams: declaration.init.body.params.length