@orval/core 8.17.0 → 8.19.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
@@ -31,7 +31,7 @@ interface NormalizedOptions {
31
31
  interface NormalizedOutputOptions {
32
32
  workspace?: string;
33
33
  target: string;
34
- schemas?: string | SchemaOptions;
34
+ schemas?: string | NormalizedSchemaOptions;
35
35
  operationSchemas?: string;
36
36
  namingConvention: NamingConvention;
37
37
  fileExtension: string;
@@ -61,6 +61,8 @@ interface NormalizedOutputOptions {
61
61
  optionsParamRequired: boolean;
62
62
  propertySortOrder: PropertySortOrder;
63
63
  factoryMethods?: NormalizedFactoryMethodsOptions;
64
+ tagsSplitDeduplication: boolean;
65
+ commonTypesFileName: string;
64
66
  }
65
67
  interface NormalizedParamsSerializerOptions {
66
68
  qs?: Record<string, unknown>;
@@ -185,7 +187,7 @@ interface NormalizedOperationOptions {
185
187
  query?: NormalizedQueryOptions;
186
188
  angular?: NormalizedAngularOptions;
187
189
  swr?: SwrOptions;
188
- zod?: NormalizedZodOptions;
190
+ zod?: NormalizedOperationZodOptions;
189
191
  effect?: NormalizedEffectOptions;
190
192
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
191
193
  fetch?: FetchOptions;
@@ -265,13 +267,22 @@ interface NormalizedFactoryMethodsOptions {
265
267
  }
266
268
  interface SchemaOptions {
267
269
  path: string;
268
- type: SchemaGenerationType;
270
+ type?: SchemaGenerationType;
269
271
  importPath?: string;
272
+ /**
273
+ * When `true`, schemas are organized into per-tag subdirectories instead of
274
+ * a single flat directory. Schemas referenced by multiple tags remain at the
275
+ * root of the schema directory.
276
+ *
277
+ * @default false
278
+ */
279
+ splitByTags?: boolean;
270
280
  }
271
281
  interface NormalizedSchemaOptions {
272
282
  path: string;
273
283
  type: SchemaGenerationType;
274
284
  importPath?: string;
285
+ splitByTags: boolean;
275
286
  }
276
287
  interface OutputOptions {
277
288
  workspace?: string;
@@ -312,6 +323,8 @@ interface OutputOptions {
312
323
  optionsParamRequired?: boolean;
313
324
  propertySortOrder?: PropertySortOrder;
314
325
  factoryMethods?: FactoryMethodsOptions;
326
+ tagsSplitDeduplication?: boolean;
327
+ commonTypesFileName?: string;
315
328
  }
316
329
  interface InputFiltersOptions {
317
330
  mode?: 'include' | 'exclude';
@@ -407,6 +420,7 @@ interface MswMockOptions extends CommonMockOptions {
407
420
  interface FakerMockOptions extends CommonMockOptions {
408
421
  type: typeof OutputMockType.FAKER;
409
422
  schemas?: boolean;
423
+ schemasImportPath?: string;
410
424
  operationResponses?: boolean;
411
425
  path?: string;
412
426
  }
@@ -432,10 +446,13 @@ type OverrideMockOptions = Partial<GlobalMockOptions> & {
432
446
  required?: boolean;
433
447
  nonNullable?: boolean;
434
448
  properties?: MockProperties;
449
+ schemas?: Record<string, {
450
+ properties: MockProperties;
451
+ }>;
435
452
  format?: Record<string, unknown>;
436
453
  fractionDigits?: number;
437
454
  };
438
- type MockOptions = Omit<OverrideMockOptions, 'properties'> & {
455
+ type MockOptions = Omit<OverrideMockOptions, 'properties' | 'schemas'> & {
439
456
  properties?: Record<string, unknown>;
440
457
  operations?: Record<string, {
441
458
  properties: Record<string, unknown>;
@@ -443,6 +460,9 @@ type MockOptions = Omit<OverrideMockOptions, 'properties'> & {
443
460
  tags?: Record<string, {
444
461
  properties: Record<string, unknown>;
445
462
  }>;
463
+ schemas?: Record<string, {
464
+ properties: Record<string, unknown>;
465
+ }>;
446
466
  };
447
467
  type MockPropertiesObject = Record<string, unknown>;
448
468
  type MockPropertiesObjectFn = (specs: OpenApiDocument) => MockPropertiesObject;
@@ -605,7 +625,19 @@ interface ZodDateTimeOptions {
605
625
  interface ZodTimeOptions {
606
626
  precision?: -1 | 0 | 1 | 2 | 3;
607
627
  }
608
- interface ZodOptions {
628
+ /**
629
+ * Target Zod major version for generated output.
630
+ *
631
+ * - `4` — always emit Zod 4-style output (`z.strictObject`, `z.looseObject`,
632
+ * `z.iso.datetime()`, `.meta()`, …) regardless of the installed `zod` version.
633
+ * - `3` — always emit Zod 3-compatible output (`.strict()`/`.passthrough()`,
634
+ * `z.string().datetime()`, …) regardless of the installed `zod` version.
635
+ * - `'auto'` — infer the target from the `zod` version resolved in the output
636
+ * project's `package.json`; when no `zod` package can be detected, fall back
637
+ * to Zod 4 output.
638
+ */
639
+ type ZodVersionOption = 3 | 4 | 'auto';
640
+ interface BaseZodOptions {
609
641
  strict?: {
610
642
  param?: boolean;
611
643
  query?: boolean;
@@ -646,10 +678,19 @@ interface ZodOptions {
646
678
  * location.
647
679
  */
648
680
  params?: Mutator;
681
+ useBrandedTypes?: boolean;
682
+ }
683
+ interface ZodOptions extends BaseZodOptions {
684
+ /**
685
+ * Pin the Zod output target so generation is deterministic instead of
686
+ * inferred from the installed `zod` version. Defaults to `'auto'`, which
687
+ * infers from the detected package and otherwise falls back to Zod 4 output.
688
+ * See {@link ZodVersionOption}.
689
+ */
690
+ version?: ZodVersionOption;
649
691
  dateTimeOptions?: ZodDateTimeOptions;
650
692
  timeOptions?: ZodTimeOptions;
651
693
  generateEachHttpStatus?: boolean;
652
- useBrandedTypes?: boolean;
653
694
  /**
654
695
  * When true, emits one reusable Zod schema per `#/components/schemas/*` `$ref`
655
696
  * (with `namingConvention` applied to the name) and references it everywhere
@@ -665,14 +706,22 @@ interface ZodOptions {
665
706
  */
666
707
  generateMeta?: boolean;
667
708
  }
709
+ /**
710
+ * Per-operation/tag Zod overrides only include settings that are actually
711
+ * merged into the operation-specific generator path. Output-wide target and
712
+ * schema-layout settings belong on `override.zod`, not `override.operations.*`
713
+ * / `override.tags.*`.
714
+ */
715
+ type OperationZodOptions = BaseZodOptions;
668
716
  interface EffectOptions {
669
717
  strict?: ZodOptions['strict'];
670
718
  generate?: ZodOptions['generate'];
671
719
  generateEachHttpStatus?: boolean;
672
720
  useBrandedTypes?: boolean;
673
721
  }
674
- type ZodCoerceType = 'string' | 'number' | 'boolean' | 'bigint' | 'date';
722
+ type ZodCoerceType = 'string' | 'number' | 'boolean' | 'bigint' | 'date' | 'array';
675
723
  interface NormalizedZodOptions {
724
+ version: ZodVersionOption;
676
725
  strict: {
677
726
  param: boolean;
678
727
  query: boolean;
@@ -709,6 +758,7 @@ interface NormalizedZodOptions {
709
758
  dateTimeOptions: ZodDateTimeOptions;
710
759
  timeOptions: ZodTimeOptions;
711
760
  }
761
+ type NormalizedOperationZodOptions = Pick<NormalizedZodOptions, 'strict' | 'generate' | 'coerce' | 'preprocess' | 'params' | 'useBrandedTypes'>;
712
762
  interface NormalizedEffectOptions {
713
763
  strict: NormalizedZodOptions['strict'];
714
764
  generate: NormalizedZodOptions['generate'];
@@ -877,6 +927,15 @@ interface NormalizedFetchOptions {
877
927
  jsonReviver?: Mutator;
878
928
  runtimeValidation: boolean;
879
929
  useRuntimeFetcher: boolean;
930
+ /**
931
+ * Serialization format for array query parameters that do not have an explicit
932
+ * `explode` setting in the OpenAPI spec.
933
+ *
934
+ * - `repeat` — repeat the key for each value: `foo=1&foo=2`
935
+ * - `brackets` — append `[]` to the key: `foo[]=1&foo[]=2`
936
+ * - `comma` — join values with a comma: `foo=1,2`
937
+ */
938
+ arrayFormat?: 'repeat' | 'brackets' | 'comma';
880
939
  }
881
940
  interface FetchOptions {
882
941
  includeHttpResponseReturnType?: boolean;
@@ -884,6 +943,15 @@ interface FetchOptions {
884
943
  jsonReviver?: Mutator;
885
944
  runtimeValidation?: boolean;
886
945
  useRuntimeFetcher?: boolean;
946
+ /**
947
+ * Serialization format for array query parameters that do not have an explicit
948
+ * `explode` setting in the OpenAPI spec.
949
+ *
950
+ * - `repeat` — repeat the key for each value: `foo=1&foo=2`
951
+ * - `brackets` — append `[]` to the key: `foo[]=1&foo[]=2`
952
+ * - `comma` — join values with a comma: `foo=1,2`
953
+ */
954
+ arrayFormat?: 'repeat' | 'brackets' | 'comma';
887
955
  }
888
956
  type InputTransformerFn = (spec: OpenApiDocument) => OpenApiDocument | Promise<OpenApiDocument>;
889
957
  type InputTransformer = string | InputTransformerFn;
@@ -900,7 +968,7 @@ interface OperationOptions {
900
968
  query?: QueryOptions;
901
969
  angular?: AngularOptions;
902
970
  swr?: SwrOptions;
903
- zod?: ZodOptions;
971
+ zod?: OperationZodOptions;
904
972
  effect?: EffectOptions;
905
973
  operationName?: (operation: OpenApiOperationObject, route: string, verb: Verbs) => string;
906
974
  fetch?: FetchOptions;
@@ -979,11 +1047,18 @@ interface ContextSpec {
979
1047
  * - `isParameter` — `true`, signals this is a generic type parameter
980
1048
  * - `name` — the `$dynamicAnchor` name used as the type parameter (e.g. `itemType`)
981
1049
  * - `schemaName` — same as `name` for parameters
1050
+ *
1051
+ * Inline entry (anonymous subschema overriding an anchor without a `$ref`):
1052
+ * - `inlineSchema` — the concrete schema object to resolve `$dynamicRef` against.
1053
+ * Takes precedence over the component lookup in `resolveDynamicRef`, so an
1054
+ * inline `$dynamicAnchor` (e.g. inside `allOf` / `items`) correctly shadows
1055
+ * the outer/global anchor. `schemaName` is the anchor name itself.
982
1056
  */
983
1057
  interface DynamicScopeEntry {
984
1058
  name: string;
985
1059
  schemaName: string;
986
1060
  isParameter?: boolean;
1061
+ inlineSchema?: OpenApiSchemaObject;
987
1062
  }
988
1063
  interface GlobalOptions {
989
1064
  watch?: boolean | string | string[];
@@ -1074,11 +1149,13 @@ interface GeneratorApiResponse {
1074
1149
  schemas: GeneratorSchema[];
1075
1150
  }
1076
1151
  type GeneratorOperations = Record<string, GeneratorOperation>;
1152
+ type StrictMockSchemaKind = 'object' | 'alias' | 'binary';
1077
1153
  interface GeneratorMockOutput {
1078
1154
  type: OutputMockType;
1079
1155
  implementation: string;
1080
1156
  imports: GeneratorImport[];
1081
1157
  strictMockSchemaTypeNames?: string[];
1158
+ strictMockSchemaKinds?: Record<string, StrictMockSchemaKind>;
1082
1159
  }
1083
1160
  interface GeneratorMockOutputFull {
1084
1161
  type: OutputMockType;
@@ -1089,6 +1166,7 @@ interface GeneratorMockOutputFull {
1089
1166
  };
1090
1167
  imports: GeneratorImport[];
1091
1168
  strictMockSchemaTypeNames?: string[];
1169
+ strictMockSchemaKinds?: Record<string, StrictMockSchemaKind>;
1092
1170
  }
1093
1171
  interface GeneratorTarget {
1094
1172
  imports: GeneratorImport[];
@@ -1101,6 +1179,7 @@ interface GeneratorTarget {
1101
1179
  paramsSerializer?: GeneratorMutator[];
1102
1180
  paramsFilter?: GeneratorMutator[];
1103
1181
  fetchReviver?: GeneratorMutator[];
1182
+ sharedTypes?: SharedTypeDeclaration[];
1104
1183
  }
1105
1184
  interface GeneratorTargetFull {
1106
1185
  imports: GeneratorImport[];
@@ -1113,6 +1192,7 @@ interface GeneratorTargetFull {
1113
1192
  paramsSerializer?: GeneratorMutator[];
1114
1193
  paramsFilter?: GeneratorMutator[];
1115
1194
  fetchReviver?: GeneratorMutator[];
1195
+ sharedTypes?: SharedTypeDeclaration[];
1116
1196
  }
1117
1197
  interface GeneratorOperation {
1118
1198
  imports: GeneratorImport[];
@@ -1193,6 +1273,15 @@ interface ClientFileBuilder {
1193
1273
  content: string;
1194
1274
  }
1195
1275
  type ClientExtraFilesBuilder = (verbOptions: Record<string, GeneratorVerbOptions>, output: NormalizedOutputOptions, context: ContextSpec) => Promise<ClientFileBuilder[]>;
1276
+ interface SharedTypeDeclaration {
1277
+ name: string;
1278
+ exported: boolean;
1279
+ code: string;
1280
+ }
1281
+ type HeaderResult = {
1282
+ implementation: string;
1283
+ sharedTypes?: SharedTypeDeclaration[];
1284
+ };
1196
1285
  type ClientHeaderBuilder = (params: {
1197
1286
  title: string;
1198
1287
  isRequestOptions: boolean;
@@ -1206,7 +1295,7 @@ type ClientHeaderBuilder = (params: {
1206
1295
  tag?: string;
1207
1296
  isDefaultTagBucket?: boolean;
1208
1297
  clientImplementation: string;
1209
- }) => string;
1298
+ }) => string | HeaderResult;
1210
1299
  type ClientFooterBuilder = (params: {
1211
1300
  noFunction?: boolean | undefined;
1212
1301
  operationNames: string[];
@@ -1225,6 +1314,7 @@ interface ClientMockGeneratorBuilder {
1225
1314
  imports: GeneratorImport[];
1226
1315
  implementation: ClientMockGeneratorImplementation;
1227
1316
  strictMockSchemaTypeNames?: string[];
1317
+ strictMockSchemaKinds?: Record<string, StrictMockSchemaKind>;
1228
1318
  }
1229
1319
  type ClientMockBuilder = (verbOptions: GeneratorVerbOptions, generatorOptions: GeneratorOptions) => ClientMockGeneratorBuilder;
1230
1320
  interface ClientGeneratorsBuilder {
@@ -1364,6 +1454,7 @@ type ResReqTypesValue = ScalarValue & {
1364
1454
  interface FinalizeMockImplementationOptions {
1365
1455
  mockOptions?: Pick<MockOptions, 'required' | 'nonNullable'>;
1366
1456
  strictSchemaTypeNames?: readonly string[];
1457
+ strictMockSchemaKinds?: Readonly<Record<string, StrictMockSchemaKind>>;
1367
1458
  }
1368
1459
  interface WriteSpecBuilder {
1369
1460
  operations: GeneratorOperations;
@@ -1389,6 +1480,7 @@ interface WriteModeProps {
1389
1480
  header: string;
1390
1481
  needSchema: boolean;
1391
1482
  generateSchemasInline?: () => string;
1483
+ schemaTagMap?: Map<string, string>;
1392
1484
  }
1393
1485
  interface GeneratorApiOperations {
1394
1486
  verbOptions: Record<string, GeneratorVerbOptions>;
@@ -1398,6 +1490,7 @@ interface GeneratorApiOperations {
1398
1490
  interface GeneratorClientExtra {
1399
1491
  implementation: string;
1400
1492
  implementationMock: string;
1493
+ sharedTypes?: SharedTypeDeclaration[];
1401
1494
  }
1402
1495
  type GeneratorClientTitle = (data: {
1403
1496
  outputClient?: OutputClient | OutputClientFunc;
@@ -1644,7 +1737,6 @@ interface GenerateAxiosOptions {
1644
1737
  requestOptions?: object | boolean;
1645
1738
  hasSignal: boolean;
1646
1739
  hasSignalParam?: boolean;
1647
- isVue: boolean;
1648
1740
  isAngular: boolean;
1649
1741
  paramsSerializer?: GeneratorMutator;
1650
1742
  paramsSerializerOptions?: ParamsSerializerOptions;
@@ -1662,7 +1754,6 @@ declare function generateAxiosOptions({
1662
1754
  requestOptions,
1663
1755
  hasSignal,
1664
1756
  hasSignalParam,
1665
- isVue,
1666
1757
  isAngular,
1667
1758
  paramsSerializer,
1668
1759
  paramsSerializerOptions,
@@ -1684,7 +1775,6 @@ interface GenerateOptionsOptions {
1684
1775
  isExactOptionalPropertyTypes: boolean;
1685
1776
  hasSignal: boolean;
1686
1777
  hasSignalParam?: boolean;
1687
- isVue?: boolean;
1688
1778
  paramsSerializer?: GeneratorMutator;
1689
1779
  paramsSerializerOptions?: ParamsSerializerOptions;
1690
1780
  paramsFilter?: GeneratorMutator;
@@ -1705,13 +1795,12 @@ declare function generateOptions({
1705
1795
  isExactOptionalPropertyTypes,
1706
1796
  hasSignal,
1707
1797
  hasSignalParam,
1708
- isVue,
1709
1798
  paramsSerializer,
1710
1799
  paramsSerializerOptions,
1711
1800
  paramsFilter
1712
1801
  }: GenerateOptionsOptions): string;
1713
1802
  declare function generateBodyMutatorConfig(body: GetterBody, isFormData: boolean, isFormUrlEncoded: boolean): string;
1714
- declare function generateQueryParamsAxiosConfig(response: GetterResponse, isVue: boolean, isAngular: boolean, requiredNullableQueryParamKeys?: string[], queryParams?: GetterQueryParam, paramsFilter?: GeneratorMutator): string;
1803
+ declare function generateQueryParamsAxiosConfig(response: GetterResponse, isAngular: boolean, requiredNullableQueryParamKeys?: string[], queryParams?: GetterQueryParam, paramsFilter?: GeneratorMutator): string;
1715
1804
  interface GenerateMutatorConfigOptions {
1716
1805
  route: string;
1717
1806
  body: GetterBody;
@@ -1724,7 +1813,6 @@ interface GenerateMutatorConfigOptions {
1724
1813
  hasSignal: boolean;
1725
1814
  hasSignalParam?: boolean;
1726
1815
  isExactOptionalPropertyTypes: boolean;
1727
- isVue?: boolean;
1728
1816
  isAngular?: boolean;
1729
1817
  paramsFilter?: GeneratorMutator;
1730
1818
  }
@@ -1740,7 +1828,6 @@ declare function generateMutatorConfig({
1740
1828
  hasSignal,
1741
1829
  hasSignalParam,
1742
1830
  isExactOptionalPropertyTypes,
1743
- isVue,
1744
1831
  isAngular,
1745
1832
  paramsFilter
1746
1833
  }: GenerateMutatorConfigOptions): string;
@@ -2218,6 +2305,27 @@ declare function extractBoundAliasInfo(schema: OpenApiSchemaObject | OpenApiRefe
2218
2305
  * type entries for self-referential resolution, `$defs` bindings, and sibling anchors.
2219
2306
  */
2220
2307
  declare function buildDynamicScope(schemaName: string, schema: OpenApiSchemaObject, context: ContextSpec): Record<string, DynamicScopeEntry>;
2308
+ /**
2309
+ * Build dynamic scope entries for an **anonymous inline** subschema that declares
2310
+ * `$dynamicAnchor` without a `$ref` (e.g. inside `allOf`, `items`, nested props).
2311
+ *
2312
+ * Unlike {@link buildDynamicScope}, entries carry the concrete `inlineSchema` so
2313
+ * that a descendant `$dynamicRef` resolves to the inline override rather than the
2314
+ * outer/global component. Used when `dereference` enters a subschema without a
2315
+ * named component `$ref`.
2316
+ *
2317
+ * Scope of handling (deliberate, see #3492):
2318
+ * - Direct `$dynamicAnchor` on the subschema → inline entry.
2319
+ * - `$defs` `$dynamicAnchor` *without* a `$ref` → inline entry. Note this
2320
+ * differs from `buildDynamicScope`, which treats unbound `$defs` anchors as
2321
+ * generic parameters (`isParameter`); inline subschemas are concrete
2322
+ * instances, so the anchor resolves to the inline schema object itself.
2323
+ * - `$defs` `$dynamicAnchor` *with* a `$ref` → intentionally NOT collected
2324
+ * here. Such anchors rely on `resolveDynamicRef`'s global fallback (which
2325
+ * finds them when the `$ref` target declares the same anchor). Fully
2326
+ * resolving them would duplicate `buildDynamicScope`'s `$defs` logic.
2327
+ */
2328
+ declare function buildInlineDynamicScope(schema: OpenApiSchemaObject): Record<string, DynamicScopeEntry>;
2221
2329
  /**
2222
2330
  * Resolve a `$dynamicRef` anchor to its concrete type using the current dynamic scope.
2223
2331
  * Returns `{ schema: {}, resolvedTypeName: 'unknown' }` when no scope override exists.
@@ -2751,6 +2859,51 @@ declare function jsStringLiteralEscape(input: string): string;
2751
2859
  */
2752
2860
  declare function dedupeUnionType(unionType: string): string;
2753
2861
  //#endregion
2862
+ //#region src/utils/tags.d.ts
2863
+ /**
2864
+ * Canonical bucket key for a single OpenAPI tag.
2865
+ *
2866
+ * In `tags` / `tags-split` mode operations are routed into files by their first
2867
+ * tag. This function is the **single source of truth** for turning a tag (or a
2868
+ * missing tag) into the key that identifies that file bucket. Every place that
2869
+ * groups operations by tag, derives a per-tag file/directory name, or checks
2870
+ * whether an operation belongs to a tag MUST go through here so that the
2871
+ * "build the key" side and the "look the key up" side can never disagree.
2872
+ *
2873
+ * The result is `kebab`-cased. `kebab` is idempotent
2874
+ * (`kebab(kebab(x)) === kebab(x)`), so it is always safe to call this on a value
2875
+ * that is already a canonical key. Other case functions (`camel`, `pascal`) are
2876
+ * NOT safe here: they do not round-trip through the bucket key for tags
2877
+ * containing acronyms or spaces (e.g. `"AB Widget"`), which is exactly the class
2878
+ * of bug this module exists to prevent.
2879
+ *
2880
+ * Missing or empty tags map to the implicit {@link DefaultTag} bucket.
2881
+ */
2882
+ declare function getTagKey(tag?: string): string;
2883
+ /**
2884
+ * Canonical bucket key for an operation, derived from its primary (first) tag.
2885
+ *
2886
+ * Untagged operations resolve to the {@link DefaultTag} bucket.
2887
+ */
2888
+ declare function getOperationTagKey(operation: {
2889
+ tags: string[];
2890
+ }): string;
2891
+ /**
2892
+ * Whether an operation belongs to the given tag bucket.
2893
+ *
2894
+ * Both sides are normalised through {@link getTagKey}, so the comparison is
2895
+ * correct regardless of how `tagKey` was spelled or cased by the caller. An
2896
+ * absent (`undefined`) `tagKey` matches every operation (the "no tag filter"
2897
+ * case); an empty/whitespace `tagKey` is normalised to the {@link DefaultTag}
2898
+ * bucket like any other tag.
2899
+ *
2900
+ * Prefer this over hand-rolling `operation.tags[0] === tagKey`: a raw tag
2901
+ * compared against a canonical key silently fails for multi-word/acronym tags.
2902
+ */
2903
+ declare function isOperationInTagBucket(operation: {
2904
+ tags: string[];
2905
+ }, tagKey?: string): boolean;
2906
+ //#endregion
2754
2907
  //#region src/utils/tsconfig.d.ts
2755
2908
  declare function isSyntheticDefaultImportsAllow(config?: Tsconfig): boolean;
2756
2909
  declare function getImportExtension(fileExtension: string, tsconfig?: Tsconfig): string;
@@ -2765,6 +2918,10 @@ declare function getImportExtension(fileExtension: string, tsconfig?: Tsconfig):
2765
2918
  */
2766
2919
  declare function writeGeneratedFile(filePath: string, content: string): Promise<void>;
2767
2920
  //#endregion
2921
+ //#region src/writers/schema-tag-mapper.d.ts
2922
+ declare const SHARED_DIR = ".";
2923
+ declare function buildSchemaTagMap(operations: ReadonlyArray<Pick<GeneratorOperation, 'imports' | 'tags'>>, schemas: GeneratorSchema[]): Map<string, string>;
2924
+ //#endregion
2768
2925
  //#region src/writers/schemas.d.ts
2769
2926
  /**
2770
2927
  * Split schemas into regular and operation types.
@@ -2824,6 +2981,35 @@ declare function writeSchemas({
2824
2981
  factoryOutputDirectory
2825
2982
  }: WriteSchemasOptions): Promise<void>;
2826
2983
  //#endregion
2984
+ //#region src/writers/schemas-tags-split.d.ts
2985
+ interface WriteSchemasTagsSplitOptions {
2986
+ schemaPath: string;
2987
+ schemas: GeneratorSchema[];
2988
+ target: string;
2989
+ namingConvention: NamingConvention;
2990
+ fileExtension: string;
2991
+ header: string;
2992
+ indexFiles: boolean;
2993
+ tsconfig?: Tsconfig;
2994
+ factoryOutputDirectory?: string;
2995
+ operations: ReadonlyArray<{
2996
+ imports: GeneratorImport[];
2997
+ tags: string[];
2998
+ }>;
2999
+ }
3000
+ declare function writeSchemasTagsSplit({
3001
+ schemaPath,
3002
+ schemas,
3003
+ target,
3004
+ namingConvention,
3005
+ fileExtension,
3006
+ header,
3007
+ indexFiles,
3008
+ tsconfig,
3009
+ factoryOutputDirectory,
3010
+ operations
3011
+ }: WriteSchemasTagsSplitOptions): Promise<void>;
3012
+ //#endregion
2827
3013
  //#region src/writers/single-mode.d.ts
2828
3014
  declare function writeSingleMode({
2829
3015
  builder,
@@ -2831,7 +3017,8 @@ declare function writeSingleMode({
2831
3017
  projectName,
2832
3018
  header,
2833
3019
  needSchema,
2834
- generateSchemasInline
3020
+ generateSchemasInline,
3021
+ schemaTagMap
2835
3022
  }: WriteModeProps): Promise<string[]>;
2836
3023
  //#endregion
2837
3024
  //#region src/writers/split-mode.d.ts
@@ -2841,7 +3028,8 @@ declare function writeSplitMode({
2841
3028
  projectName,
2842
3029
  header,
2843
3030
  needSchema,
2844
- generateSchemasInline
3031
+ generateSchemasInline,
3032
+ schemaTagMap
2845
3033
  }: WriteModeProps): Promise<string[]>;
2846
3034
  //#endregion
2847
3035
  //#region src/writers/split-tags-mode.d.ts
@@ -2851,7 +3039,8 @@ declare function writeSplitTagsMode({
2851
3039
  projectName,
2852
3040
  header,
2853
3041
  needSchema,
2854
- generateSchemasInline
3042
+ generateSchemasInline,
3043
+ schemaTagMap
2855
3044
  }: WriteModeProps): Promise<string[]>;
2856
3045
  //#endregion
2857
3046
  //#region src/writers/tags-mode.d.ts
@@ -2861,7 +3050,8 @@ declare function writeTagsMode({
2861
3050
  projectName,
2862
3051
  header,
2863
3052
  needSchema,
2864
- generateSchemasInline
3053
+ generateSchemasInline,
3054
+ schemaTagMap
2865
3055
  }: WriteModeProps): Promise<string[]>;
2866
3056
  //#endregion
2867
3057
  //#region src/writers/target.d.ts
@@ -2874,5 +3064,5 @@ declare function generateTargetForTags(builder: WriteSpecBuilder, options: Norma
2874
3064
  declare function getOrvalGeneratedTypes(): string;
2875
3065
  declare function getTypedResponse(): string;
2876
3066
  //#endregion
2877
- 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, FinalizeMockImplementationOptions, 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, HonoHandlerStrategy, 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, SchemaOptionLike, 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, getSchemasImportPath, 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, jsStringLiteralEscape, 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 };
3067
+ 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, FinalizeMockImplementationOptions, 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, HeaderResult, HonoHandlerStrategy, 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, NormalizedOperationZodOptions, 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, OperationZodOptions, 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, SHARED_DIR, ScalarValue, SchemaGenerationType, SchemaOptionLike, SchemaOptions, SchemaType, SharedTypeDeclaration, StrictMockSchemaKind, SupportedFormatter, SwrOptions, TEMPLATE_TAG_REGEX, TsConfigModule, TsConfigModuleResolution, TsConfigTarget, Tsconfig, URL_REGEX, VERBS_WITH_BODY, Verbs, WriteModeProps, WriteSpecBuilder, ZodCoerceType, ZodDateTimeOptions, ZodOptions, ZodTimeOptions, ZodVersionOption, addDependency, asyncReduce, buildAngularParamsFilterExpression, buildDynamicScope, buildInlineDynamicScope, buildSchemaTagMap, 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, getOperationTagKey, getOrvalGeneratedTypes, getParameters, getParams, getParamsInPath, getPropertySafe, getProps, getQueryParams, getRefInfo, getResReqTypes, getResponse, getResponseTypeCategory, getRoute, getRouteAsArray, getScalar, getSchemasImportPath, getSuccessResponseType, getTagKey, getTypedResponse, getWarningCount, isBinaryContentType, isBinaryScalarSchema, isBoolean, isComponentRef, isDirectory, isDynamicReference, isFakerMock, isFunction, isModule, isMswMock, isNullish, isNumber, isNumeric, isObject, isOperationInTagBucket, isReference, isSchema, isString, isStringLike, isSyntheticDefaultImportsAllow, isUrl, isVerb, isVerbose, jsDoc, jsStringEscape, jsStringLiteralEscape, 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, writeSchemasTagsSplit, writeSingleMode, writeSplitMode, writeSplitTagsMode, writeTagsMode };
2878
3068
  //# sourceMappingURL=index.d.mts.map