@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 +43 -1
- package/dist/index.mjs +39 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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")
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
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
|
-
|
|
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
|
-
...
|
|
2604
|
-
parents: [...
|
|
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 (!
|
|
2635
|
+
if (!effectiveContext.parents?.includes(refName)) hasReadonlyProps = getScalar({
|
|
2612
2636
|
item: schemaObject,
|
|
2613
2637
|
name: refName,
|
|
2614
2638
|
context: {
|
|
2615
|
-
...
|
|
2616
|
-
parents: [...
|
|
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
|