@qualisero/openapi-endpoint 0.18.1 → 0.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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OpenApiEndpoint
2
2
 
3
- [![npm version](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint.svg?refresh=20260225)](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint)
4
- [![CI](https://github.com/qualisero/openapi-endpoint/workflows/CI/badge.svg?refresh=20260225)](https://github.com/qualisero/openapi-endpoint/actions/workflows/ci.yml)
3
+ [![npm version](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint.svg?v=0.18.1)](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint)
4
+ [![CI](https://github.com/qualisero/openapi-endpoint/workflows/CI/badge.svg?refresh=20260226)](https://github.com/qualisero/openapi-endpoint/actions/workflows/ci.yml)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
  [![Documentation](https://img.shields.io/badge/docs-online-brightgreen.svg)](https://qualisero.github.io/openapi-endpoint/)
7
7
 
@@ -171,19 +171,19 @@ const mutation = api.createPet.useMutation({
171
171
 
172
172
  ```typescript
173
173
  import type {
174
- ApiResponse, // Response type (all fields required)
175
- ApiResponseSafe, // Response with optional fields
174
+ ApiResponse, // Response type (ALL fields required - default)
175
+ ApiResponseStrict, // Response type (only readonly/required fields required - strict mode)
176
176
  ApiRequest, // Request body type
177
177
  ApiPathParams, // Path parameters type
178
178
  ApiQueryParams, // Query parameters type
179
179
  } from './generated/api-operations'
180
180
 
181
- // ApiResponse - ALL fields required
181
+ // ApiResponse - default, ALL fields required
182
182
  type PetResponse = ApiResponse<OpType.getPet>
183
183
  // { readonly id: string, name: string, tag: string, status: 'available' | ... }
184
184
 
185
- // ApiResponseSafe - only readonly required, others optional
186
- type PetResponseSafe = ApiResponseSafe<OpType.getPet>
185
+ // ApiResponseStrict - strict mode, only readonly/required fields required
186
+ type PetResponseStrict = ApiResponseStrict<OpType.getPet>
187
187
  // { readonly id: string, name: string, tag?: string, status?: 'available' | ... }
188
188
  ```
189
189
 
package/dist/cli.js CHANGED
@@ -359,25 +359,47 @@ function addEnumIfUnique(enumName, enumValues, sourcePath, enums, seenEnumValues
359
359
  /**
360
360
  * Extracts all enums from an OpenAPI spec.
361
361
  * Walks through:
362
- * 1. components.schemas and their properties
362
+ * 1. components.schemas and their properties (inline enum or $ref to enum schema)
363
363
  * 2. Operation parameters (query, header, path, cookie)
364
364
  * Deduplicates by comparing enum value sets.
365
365
  */
366
366
  function extractEnumsFromSpec(openApiSpec) {
367
367
  const enums = [];
368
368
  const seenEnumValues = new Map(); // Maps JSON stringified values -> enum name (for deduplication)
369
+ // Build lookup of schemas that ARE enums (have enum property on the schema itself)
370
+ const schemaEnumLookup = new Map();
371
+ if (openApiSpec.components?.schemas) {
372
+ for (const [schemaName, schema] of Object.entries(openApiSpec.components.schemas)) {
373
+ if (schema.enum && Array.isArray(schema.enum)) {
374
+ const enumValues = schema.enum.filter((v) => v !== null);
375
+ if (enumValues.length > 0) {
376
+ schemaEnumLookup.set(schemaName, enumValues);
377
+ }
378
+ }
379
+ }
380
+ }
381
+ // Helper to resolve enum values from a schema (inline or $ref)
382
+ function resolveEnumValues(schema) {
383
+ // Inline enum
384
+ if (schema.enum && Array.isArray(schema.enum)) {
385
+ const enumValues = schema.enum.filter((v) => v !== null);
386
+ return enumValues.length > 0 ? enumValues : null;
387
+ }
388
+ // $ref to an enum schema
389
+ if (typeof schema.$ref === 'string') {
390
+ const refName = schema.$ref.split('/').pop();
391
+ return schemaEnumLookup.get(refName) ?? null;
392
+ }
393
+ return null;
394
+ }
369
395
  // Extract from components.schemas
370
396
  if (openApiSpec.components?.schemas) {
371
397
  for (const [schemaName, schema] of Object.entries(openApiSpec.components.schemas)) {
372
398
  if (!schema.properties)
373
399
  continue;
374
400
  for (const [propName, propSchema] of Object.entries(schema.properties)) {
375
- if (!propSchema.enum || !Array.isArray(propSchema.enum))
376
- continue;
377
- // Filter out null values from enum array
378
- const enumValues = propSchema.enum.filter((v) => v !== null);
379
- // Skip if all values were null
380
- if (enumValues.length === 0)
401
+ const enumValues = resolveEnumValues(propSchema);
402
+ if (!enumValues)
381
403
  continue;
382
404
  // Use schema name as-is (already PascalCase), convert property name from snake_case
383
405
  const enumName = schemaName + toPascalCase(propName);
@@ -401,10 +423,10 @@ function extractEnumsFromSpec(openApiSpec) {
401
423
  const paramName = paramObj.name;
402
424
  const paramIn = paramObj.in;
403
425
  const paramSchema = paramObj.schema;
404
- if (!paramName || !paramIn || !paramSchema?.enum)
426
+ if (!paramName || !paramIn || !paramSchema)
405
427
  continue;
406
- const enumValues = paramSchema.enum.filter((v) => v !== null);
407
- if (enumValues.length === 0)
428
+ const enumValues = resolveEnumValues(paramSchema);
429
+ if (!enumValues)
408
430
  continue;
409
431
  // Create a descriptive name: OperationName + ParamName
410
432
  const operationName = op.operationId
@@ -808,13 +830,15 @@ function _generateOperationJSDoc(operationId, method, apiPath) {
808
830
  lines.push(' */');
809
831
  return lines.join('\n');
810
832
  }
811
- function generateApiClientContent(operationMap) {
833
+ function generateApiClientContent(operationMap, useStrictResponse = false) {
812
834
  const ids = Object.keys(operationMap).sort();
813
835
  const QUERY_HTTP = new Set(['GET', 'HEAD', 'OPTIONS']);
814
836
  const isQuery = (id) => QUERY_HTTP.has(operationMap[id].method);
815
837
  const hasPathParams = (id) => operationMap[id].path.includes('{');
816
838
  // Registry for invalidateOperations support
817
839
  const registryEntries = ids.map((id) => ` ${id}: { path: '${operationMap[id].path}' },`).join('\n');
840
+ // Response type to use for ALL operations (queries and mutations)
841
+ const responseType = useStrictResponse ? 'ApiResponseStrict' : 'ApiResponse';
818
842
  // Generic factory helpers (4 patterns)
819
843
  const helpers = `/**
820
844
  * Generic query helper for operations without path parameters.
@@ -825,7 +849,7 @@ function _queryNoParams<Op extends AllOps>(
825
849
  cfg: { path: string; method: HttpMethod; listPath: string | null },
826
850
  enums: Record<string, unknown>,
827
851
  ) {
828
- type Response = ApiResponse<Op>
852
+ type Response = ${responseType}<Op>
829
853
  type QueryParams = ApiQueryParams<Op>
830
854
 
831
855
  const useQuery = (
@@ -892,7 +916,7 @@ function _queryWithParams<Op extends AllOps>(
892
916
  ) {
893
917
  type PathParams = ApiPathParams<Op>
894
918
  type PathParamsInput = ApiPathParamsInput<Op>
895
- type Response = ApiResponse<Op>
919
+ type Response = ${responseType}<Op>
896
920
  type QueryParams = ApiQueryParams<Op>
897
921
 
898
922
  // Two-overload interface: non-function (exact via object-literal checking) +
@@ -986,7 +1010,7 @@ function _mutationNoParams<Op extends AllOps>(
986
1010
  enums: Record<string, unknown>,
987
1011
  ) {
988
1012
  type RequestBody = ApiRequest<Op>
989
- type Response = ApiResponse<Op>
1013
+ type Response = ${responseType}<Op>
990
1014
  type QueryParams = ApiQueryParams<Op>
991
1015
 
992
1016
  const useMutation = (
@@ -1031,7 +1055,7 @@ function _mutationWithParams<Op extends AllOps>(
1031
1055
  type PathParams = ApiPathParams<Op>
1032
1056
  type PathParamsInput = ApiPathParamsInput<Op>
1033
1057
  type RequestBody = ApiRequest<Op>
1034
- type Response = ApiResponse<Op>
1058
+ type Response = ${responseType}<Op>
1035
1059
  type QueryParams = ApiQueryParams<Op>
1036
1060
 
1037
1061
  // Three-overload interface:
@@ -1155,7 +1179,7 @@ import {
1155
1179
  import type { QueryClient } from '@tanstack/vue-query'
1156
1180
 
1157
1181
  import type {
1158
- ApiResponse,
1182
+ ApiResponse${useStrictResponse ? ',\n ApiResponseStrict' : ''},
1159
1183
  ApiRequest,
1160
1184
  ApiPathParams,
1161
1185
  ApiPathParamsInput,
@@ -1239,9 +1263,9 @@ ${factoryCalls}
1239
1263
  export type ApiClient = ReturnType<typeof createApiClient>
1240
1264
  `;
1241
1265
  }
1242
- async function generateApiClientFile(openApiSpec, outputDir, excludePrefix) {
1266
+ async function generateApiClientFile(openApiSpec, outputDir, excludePrefix, useStrictResponse = false) {
1243
1267
  const operationMap = buildOperationMap(openApiSpec, excludePrefix);
1244
- const content = generateApiClientContent(operationMap);
1268
+ const content = generateApiClientContent(operationMap, useStrictResponse);
1245
1269
  fs.writeFileSync(path.join(outputDir, 'api-client.ts'), content);
1246
1270
  console.log(`✅ Generated api-client.ts (${Object.keys(operationMap).length} operations)`);
1247
1271
  }
@@ -1255,16 +1279,18 @@ Arguments:
1255
1279
  output-directory Directory where generated files will be saved
1256
1280
 
1257
1281
  Options:
1258
- --exclude-prefix PREFIX Exclude operations with operationId starting with PREFIX
1259
- (default: '_deprecated')
1260
- --no-exclude Disable operation exclusion (include all operations)
1261
- --help, -h Show this help message
1282
+ --exclude-prefix PREFIX Exclude operations with operationId starting with PREFIX
1283
+ (default: '_deprecated', use 'false' to disable)
1284
+ --use-strict-response Use ApiResponseStrict for responses (only readonly/required fields required)
1285
+ (default: false; when disabled, ALL fields required)
1286
+ --help, -h Show this help message
1262
1287
 
1263
1288
  Examples:
1264
1289
  npx @qualisero/openapi-endpoint ./api/openapi.json ./src/generated
1265
1290
  npx @qualisero/openapi-endpoint https://api.example.com/openapi.json ./src/api
1266
1291
  npx @qualisero/openapi-endpoint ./api.json ./src/gen --exclude-prefix _internal
1267
- npx @qualisero/openapi-endpoint ./api.json ./src/gen --no-exclude
1292
+ npx @qualisero/openapi-endpoint ./api.json ./src/gen --exclude-prefix false
1293
+ npx @qualisero/openapi-endpoint ./api.json ./src/gen --use-strict-response true
1268
1294
 
1269
1295
  This command will generate:
1270
1296
  - openapi-types.ts (TypeScript types from OpenAPI spec)
@@ -1273,6 +1299,20 @@ This command will generate:
1273
1299
  - api-types.ts (Types namespace for type-only access)
1274
1300
  - api-enums.ts (Type-safe enum objects from OpenAPI spec)
1275
1301
  - api-schemas.ts (Type aliases for schema objects from OpenAPI spec)
1302
+
1303
+ Response Typing (--use-strict-response):
1304
+ By default, ApiResponse makes ALL fields required for all endpoint responses
1305
+ (GET, POST, PUT, PATCH, DELETE). This assumes the API always returns all fields
1306
+ regardless of how they're marked in the OpenAPI spec.
1307
+
1308
+ When --use-strict-response is enabled, ApiResponseStrict is used instead, which
1309
+ only marks fields as required if they are:
1310
+ - readonly (server-generated fields like 'id'), OR
1311
+ - marked as required in the OpenAPI spec
1312
+ All other fields remain optional.
1313
+
1314
+ Note: readonly only affects REQUEST BODIES (mutations), not response types.
1315
+ Request bodies always exclude readonly fields (client cannot set them).
1276
1316
  `);
1277
1317
  }
1278
1318
  // ============================================================================
@@ -1449,10 +1489,10 @@ function generateApiOperationsContent(operationMap, opEnums, schemaEnumNames) {
1449
1489
  const typeHelpers = `
1450
1490
  type AllOps = keyof operations
1451
1491
 
1452
- /** Response data type for an operation (all fields required). */
1492
+ /** Response data type (ALL fields required - default). */
1453
1493
  export type ApiResponse<K extends AllOps> = _ApiResponse<operations, K>
1454
- /** Response data type - only \`readonly\` fields required. */
1455
- export type ApiResponseSafe<K extends AllOps> = _ApiResponseSafe<operations, K>
1494
+ /** Response data type (only readonly/required fields required - strict mode). */
1495
+ export type ApiResponseStrict<K extends AllOps> = _ApiResponseStrict<operations, K>
1456
1496
  /** Request body type. */
1457
1497
  export type ApiRequest<K extends AllOps> = _ApiRequest<operations, K>
1458
1498
  /** Path parameters type. */
@@ -1473,7 +1513,7 @@ import type { operations } from './openapi-types.js'
1473
1513
  import { HttpMethod } from '@qualisero/openapi-endpoint'
1474
1514
  import type {
1475
1515
  ApiResponse as _ApiResponse,
1476
- ApiResponseSafe as _ApiResponseSafe,
1516
+ ApiResponseStrict as _ApiResponseStrict,
1477
1517
  ApiRequest as _ApiRequest,
1478
1518
  ApiPathParams as _ApiPathParams,
1479
1519
  ApiPathParamsInput as _ApiPathParamsInput,
@@ -1544,10 +1584,10 @@ function generateApiTypesContent(operationMap, opEnums) {
1544
1584
  })
1545
1585
  .join('\n');
1546
1586
  const commonLines = [
1547
- ` /** Full response type - all fields required. */`,
1548
- ` export type Response = _ApiResponse<OpenApiOperations, '${id}'>`,
1549
- ` /** Response type - only \`readonly\` fields required. */`,
1550
- ` export type SafeResponse = _ApiResponseSafe<OpenApiOperations, '${id}'>`,
1587
+ ` /** Response type - ALL fields required (default). */`,
1588
+ ` export type Response = _ApiResponse<OpenApiOperations, '${id}'>`,
1589
+ ` /** Response type - only readonly/required fields required (strict mode). */`,
1590
+ ` export type StrictResponse = _ApiResponseStrict<OpenApiOperations, '${id}'>`,
1551
1591
  ];
1552
1592
  if (!query) {
1553
1593
  commonLines.push(` /** Request body type. */`, ` export type Request = _ApiRequest<OpenApiOperations, '${id}'>`);
@@ -1562,7 +1602,7 @@ function generateApiTypesContent(operationMap, opEnums) {
1562
1602
 
1563
1603
  import type {
1564
1604
  ApiResponse as _ApiResponse,
1565
- ApiResponseSafe as _ApiResponseSafe,
1605
+ ApiResponseStrict as _ApiResponseStrict,
1566
1606
  ApiRequest as _ApiRequest,
1567
1607
  ApiPathParams as _ApiPathParams,
1568
1608
  ApiQueryParams as _ApiQueryParams,
@@ -1612,13 +1652,18 @@ async function main() {
1612
1652
  const [openapiInput, outputDir, ...optionArgs] = args;
1613
1653
  // Parse options
1614
1654
  let excludePrefix = '_deprecated'; // default
1655
+ let useStrictResponse = false; // default to false
1615
1656
  for (let i = 0; i < optionArgs.length; i++) {
1616
- if (optionArgs[i] === '--no-exclude') {
1617
- excludePrefix = null;
1618
- }
1619
- else if (optionArgs[i] === '--exclude-prefix') {
1657
+ if (optionArgs[i] === '--exclude-prefix') {
1620
1658
  if (i + 1 < optionArgs.length) {
1621
- excludePrefix = optionArgs[i + 1];
1659
+ const value = optionArgs[i + 1];
1660
+ // If value is 'false', treat as no exclusion
1661
+ if (value === 'false') {
1662
+ excludePrefix = null;
1663
+ }
1664
+ else {
1665
+ excludePrefix = value;
1666
+ }
1622
1667
  i++; // Skip next arg since we consumed it
1623
1668
  }
1624
1669
  else {
@@ -1627,6 +1672,18 @@ async function main() {
1627
1672
  process.exit(1);
1628
1673
  }
1629
1674
  }
1675
+ else if (optionArgs[i] === '--use-strict-response') {
1676
+ if (i + 1 < optionArgs.length) {
1677
+ const value = optionArgs[i + 1];
1678
+ // Support 'true' or 'false' values
1679
+ useStrictResponse = value !== 'false';
1680
+ i++; // Skip next arg since we consumed it
1681
+ }
1682
+ else {
1683
+ // Flag without value means true
1684
+ useStrictResponse = true;
1685
+ }
1686
+ }
1630
1687
  }
1631
1688
  try {
1632
1689
  // Ensure output directory exists
@@ -1641,6 +1698,13 @@ async function main() {
1641
1698
  else {
1642
1699
  console.log(`✅ Including all operations (no exclusion filter)`);
1643
1700
  }
1701
+ // Log response typing setting
1702
+ if (useStrictResponse) {
1703
+ console.log(`✅ Using ApiResponseStrict (only readonly/required fields required)`);
1704
+ }
1705
+ else {
1706
+ console.log(`✅ Using ApiResponse (ALL fields required)`);
1707
+ }
1644
1708
  // Fetch and parse OpenAPI spec once
1645
1709
  let openapiContent = await fetchOpenAPISpec(openapiInput);
1646
1710
  const openApiSpec = JSON.parse(openapiContent);
@@ -1656,7 +1720,7 @@ async function main() {
1656
1720
  generateApiSchemas(openapiContent, outputDir, excludePrefix),
1657
1721
  generateApiOperationsFile(openApiSpec, outputDir, excludePrefix, schemaEnumNames),
1658
1722
  generateApiTypesFile(openApiSpec, outputDir, excludePrefix),
1659
- generateApiClientFile(openApiSpec, outputDir, excludePrefix),
1723
+ generateApiClientFile(openApiSpec, outputDir, excludePrefix, useStrictResponse),
1660
1724
  ]);
1661
1725
  console.log('🎉 Code generation completed successfully!');
1662
1726
  }
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { useEndpointMutation } from './openapi-mutation';
3
3
  export { defaultQueryClient } from './openapi-helpers';
4
4
  export type { QueryReturn, LazyQueryReturn } from './openapi-query';
5
5
  export type { MutationReturn } from './openapi-mutation';
6
- export type { EndpointConfig, QueryOptions, LazyQueryFetchOptions, MutationOptions, MutationVars, CacheInvalidationOptions, Refetchable, MutateFn, MutateAsyncFn, MutateAsyncReturn, ReactiveOr, NoExcessReturn, AxiosRequestConfigExtended, ApiResponse, ApiResponseSafe, ApiRequest, ApiPathParams, ApiPathParamsInput, ApiQueryParams, } from './types';
6
+ export type { EndpointConfig, QueryOptions, LazyQueryFetchOptions, MutationOptions, MutationVars, CacheInvalidationOptions, Refetchable, MutateFn, MutateAsyncFn, MutateAsyncReturn, ReactiveOr, NoExcessReturn, AxiosRequestConfigExtended, ApiResponse, ApiResponseStrict, ApiRequest, ApiPathParams, ApiPathParamsInput, ApiQueryParams, } from './types';
7
7
  export { HttpMethod, QUERY_METHODS, MUTATION_METHODS, isQueryMethod, isMutationMethod } from './types';
8
8
  export type { Ref, ComputedRef } from 'vue';
9
9
  export type { MaybeRefOrGetter } from '@vue/reactivity';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKtG,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKtG,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/types.d.ts CHANGED
@@ -195,10 +195,10 @@ type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <
195
195
  type IsReadonly<T, K extends keyof T> = IfEquals<Pick<T, K>, {
196
196
  -readonly [Q in K]: T[K];
197
197
  }, false, true>;
198
- type RequireReadonly<T> = {
199
- [K in keyof T as IsReadonly<T, K> extends true ? K : never]-?: T[K];
198
+ type RequireReadonlyOrRequired<T> = {
199
+ [K in keyof T as IsReadonly<T, K> extends true ? K : undefined extends T[K] ? never : K]-?: T[K];
200
200
  } & {
201
- [K in keyof T as IsReadonly<T, K> extends false ? K : never]: T[K];
201
+ [K in keyof T as IsReadonly<T, K> extends false ? (undefined extends T[K] ? K : never) : never]: T[K];
202
202
  };
203
203
  type ExtractResponseData<Ops extends AnyOps, Op extends keyof Ops> = Ops[Op] extends {
204
204
  responses: {
@@ -250,14 +250,26 @@ type ExtractResponseData<Ops extends AnyOps, Op extends keyof Ops> = Ops[Op] ext
250
250
  };
251
251
  } ? Data : unknown;
252
252
  /**
253
- * Extract the response data type (all fields required).
254
- * @example `ApiResponse<operations, 'getPet'>` → `{ readonly id: string, name: string, ... }`
253
+ * Extract response data type (ALL fields required - default behavior).
254
+ *
255
+ * Used for ALL endpoint responses (GET, POST, PUT, PATCH, DELETE) by default.
256
+ * Assumes the API always returns all fields regardless of how they're marked in the spec.
257
+ *
258
+ * @example `ApiResponse<operations, 'getPet'>` → `{ readonly id: string, name: string, tag: string, status: 'available' | ... }`
255
259
  */
256
260
  export type ApiResponse<Ops extends AnyOps, Op extends keyof Ops> = RequireAll<ExtractResponseData<Ops, Op>>;
257
261
  /**
258
- * Extract the response data type (only readonly fields required).
262
+ * Extract response data type (only readonly OR required fields are required - strict mode).
263
+ *
264
+ * Used for ALL endpoint responses when `--use-strict-response` flag is enabled.
265
+ * Only marks fields as required if they are:
266
+ * - readonly (server-generated), OR
267
+ * - marked as required in the OpenAPI spec
268
+ * All other fields remain optional.
269
+ *
270
+ * @example `ApiResponseStrict<operations, 'getPet'>` → `{ readonly id: string, name: string, tag?: string, status?: 'available' | ... }`
259
271
  */
260
- export type ApiResponseSafe<Ops extends AnyOps, Op extends keyof Ops> = RequireReadonly<ExtractResponseData<Ops, Op>>;
272
+ export type ApiResponseStrict<Ops extends AnyOps, Op extends keyof Ops> = RequireReadonlyOrRequired<ExtractResponseData<Ops, Op>>;
261
273
  type Writable<T> = {
262
274
  -readonly [K in keyof T as IfEquals<Pick<T, K>, {
263
275
  -readonly [Q in K]: T[K];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qualisero/openapi-endpoint",
3
- "version": "0.18.1",
3
+ "version": "0.19.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/qualisero/openapi-endpoint.git"