@postman/sdk-config 0.3.4 → 0.3.5

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.
Files changed (34) hide show
  1. package/dist/index.cjs +46 -9
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +46 -9
  6. package/dist/index.js.map +1 -1
  7. package/dist/sdk-config/index.cjs +46 -9
  8. package/dist/sdk-config/index.cjs.map +1 -1
  9. package/dist/sdk-config/index.d.cts +1 -1
  10. package/dist/sdk-config/index.d.ts +1 -1
  11. package/dist/sdk-config/index.js +46 -9
  12. package/dist/sdk-config/index.js.map +1 -1
  13. package/dist/sdk-config/v1/index.cjs +46 -9
  14. package/dist/sdk-config/v1/index.cjs.map +1 -1
  15. package/dist/sdk-config/v1/index.d.cts +85 -5
  16. package/dist/sdk-config/v1/index.d.ts +85 -5
  17. package/dist/sdk-config/v1/index.js +46 -9
  18. package/dist/sdk-config/v1/index.js.map +1 -1
  19. package/dist/sdk-config-ir/index.cjs +14 -0
  20. package/dist/sdk-config-ir/index.cjs.map +1 -1
  21. package/dist/sdk-config-ir/index.d.cts +1 -1
  22. package/dist/sdk-config-ir/index.d.ts +1 -1
  23. package/dist/sdk-config-ir/index.js +14 -0
  24. package/dist/sdk-config-ir/index.js.map +1 -1
  25. package/dist/sdk-config-ir/v1/index.cjs +14 -0
  26. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  27. package/dist/sdk-config-ir/v1/index.d.cts +74 -8
  28. package/dist/sdk-config-ir/v1/index.d.ts +74 -8
  29. package/dist/sdk-config-ir/v1/index.js +14 -0
  30. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  31. package/dist/{typescript-CKRe_6MB.d.cts → typescript-BruxA5zG.d.cts} +10 -2
  32. package/dist/{typescript-CKRe_6MB.d.ts → typescript-BruxA5zG.d.ts} +10 -2
  33. package/package.json +1 -1
  34. package/src/sdk-config-ir/v1/README.md +61 -36
@@ -274,22 +274,28 @@ normalized contract.
274
274
  These settings remain under `source.apiImportSettings` because they affect spec conversion rather
275
275
  than generated-language presentation.
276
276
 
277
- | Fern setting | Normalized field | Observed projects |
278
- | ----------------------------------------- | ------------------------------------ | --------------------------------------: |
279
- | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
280
- | `title-as-schema-name` | `titleAsSchemaName` | 16 |
281
- | `ignore-tags` | `ignoreTags` | Not in the project snapshot; see below. |
282
- | `disambiguate-request-names` | `disambiguateRequestNames` | Not in the project snapshot; see below. |
283
- | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
284
- | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
285
- | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
286
- | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
287
- | `object-query-parameters` | `objectQueryParameters` | 9 |
288
- | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
289
- | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
290
- | `path-parameter-order` | `pathParameterOrder` | 2 |
291
- | `type-dates-as-strings` | `typeDatesAsStrings` | 12 |
292
- | `default-integer-format` | `defaultIntegerFormat` | Importer defaults to `int32`. |
277
+ | Fern setting | Normalized field | Observed projects |
278
+ | ----------------------------------------------------------- | ------------------------------------ | --------------------------------------: |
279
+ | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
280
+ | `title-as-schema-name` | `titleAsSchemaName` | 16 |
281
+ | `ignore-tags` | `ignoreTags` | Not in the project snapshot; see below. |
282
+ | `disambiguate-request-names` | `disambiguateRequestNames` | Not in the project snapshot; see below. |
283
+ | `respect-readonly-schemas` | `respectReadonlySchemas` | Not in the project snapshot; see below. |
284
+ | `unions: v1`, `prefer-undiscriminated-unions-with-literals` | `discriminatedUnionV2` | Not in the project snapshot; see below. |
285
+ | `prefer-undiscriminated-unions-with-literals` | `undiscriminatedUnionsWithLiterals` | Not in the project snapshot; see below. |
286
+ | `inline-all-of-schemas` | `inlineAllOfSchemas` | Not in the project snapshot; see below. |
287
+ | `resolve-schema-collisions` | `resolveSchemaCollisions` | Not in the project snapshot; see below. |
288
+ | `message-naming` | `asyncApiMessageNaming` | Not in the project snapshot; see below. |
289
+ | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
290
+ | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
291
+ | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
292
+ | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
293
+ | `object-query-parameters` | `objectQueryParameters` | 9 |
294
+ | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
295
+ | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
296
+ | `path-parameter-order` | `pathParameterOrder` | 2 |
297
+ | `type-dates-as-strings` | `typeDatesAsStrings` | 12 |
298
+ | `default-integer-format` | `defaultIntegerFormat` | Importer defaults to `int32`. |
293
299
 
294
300
  `ignoreTags` and `disambiguateRequestNames` postdate the project snapshot. Twilio declares both
295
301
  across its namespaced API specs. They stay undefaulted so omission remains distinguishable from an
@@ -298,23 +304,44 @@ of authored tags, not generation-time service-name inference; `disambiguateReque
298
304
  request/schema collisions, not idiomatic request naming. Producers and generators must map and
299
305
  honour these fields before they change generated output.
300
306
 
307
+ `respectReadonlySchemas` and `discriminatedUnionV2` also postdate the snapshot. The 2026-07-17 audit
308
+ read declared project configuration, which is why the first pass recorded no use: both are reached
309
+ through effective-setting resolution rather than a literal key in `generators.yml`. Auth0 declares
310
+ `respect-readonly-schemas` directly, but `discriminatedUnionV2` has two declared spellings that
311
+ resolve to it — `prefer-undiscriminated-unions-with-literals` and `unions: v1` — so a config can be
312
+ refused for a key that appears nowhere in it. The two spellings are not interchangeable, which is
313
+ why `undiscriminatedUnionsWithLiterals` is a separate field rather than an alias: `unions: v1` sets
314
+ only `discriminatedUnionV2`, while `prefer-undiscriminated-unions-with-literals` sets both. A
315
+ contract carrying one of the pair cannot reproduce a config that set the other. All three stay
316
+ undefaulted for the same reason as the
317
+ fields above: `respectReadonlySchemas` changes which properties an imported schema exposes, and
318
+ `discriminatedUnionV2` changes how union variants are converted, so an absent value must leave an
319
+ existing SDK's shapes alone rather than assert one.
320
+
321
+ `inlineAllOfSchemas`, `resolveSchemaCollisions`, and `asyncApiMessageNaming` complete the retained
322
+ import settings with observed customer use. Each is refused today whenever it differs from the
323
+ importer default, which blocks the declaring customer from a post-cutover generator version.
324
+ `asyncApiMessageNaming` is the only enum of the three, and `v2` is its sole non-default value. It
325
+ names AsyncAPI messages, but the importer resolves it as part of one shared settings object, so a
326
+ project's OpenAPI specs carry it too and are refused for it.
327
+
301
328
  ## Fern language-specific migration map
302
329
 
303
330
  Only options that remain language-specific stay in `generation.language`.
304
331
 
305
- | Language | Fern fields retained in language config | Shared mappings lifted out |
306
- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
307
- | TypeScript | `packageManager` (1), `testFramework` (2), `namespaceExportName`, `allowCustomFetcher` (13), branded aliases (1), legacy exports (1), `useBigInt`, and positive `serdeLayer` from `noSerdeLayer` (8) | Namespace, validation, inline types, dependencies, wire tests, streams, WebSockets, pager/client names |
308
- | Python | Python/Pydantic versions, client filenames (13), Pydantic compatibility, frozen models (1), required optionals (2), union naming (1), field aliases (3), always-initialize optionals, TypedDict requests (3) | Package/module names, enum form, extra fields, response validation, request style, dependencies, timeout, layout, wire tests, WebSockets |
309
- | Java/Kotlin | Package layout (3), local dates (2), optional-nullable collapse (2), Gradle settings (7), and JVM async-client style | Maven identity, namespace, names, forward-compatible enums, inline properties, dependencies, pager, wire tests |
310
- | Go | Legacy complex models, union version (3), legacy client options (1), and the fern root-client constructor name | Module/package identity, client name, environments, smart casing, inline properties, pager, wire tests |
311
- | C# | Optional wrapper, simplified dictionaries (1), explicit namespaces (7), core namespace behavior (1), exception handler (5), and the experimental explicit-nullable-optional switch | NuGet identity, namespace, class/error names, pager, wire tests |
312
- | PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests |
313
- | Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
314
- | Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
315
- | Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields. |
316
- | CLI | Pagination parameter names and the `skills` boolean | Go module and package identity use `package`. |
317
- | MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior |
332
+ | Language | Fern fields retained in language config | Shared mappings lifted out |
333
+ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
334
+ | TypeScript | `packageManager` (1), `testFramework` (2), `namespaceExportName`, `allowCustomFetcher` (13), branded aliases (1), legacy exports (1), `useBigInt`, and positive `serdeLayer` from `noSerdeLayer` (8) | Namespace, validation, inline types, dependencies, wire tests, streams, WebSockets, pager/client names |
335
+ | Python | Python/Pydantic versions, client filenames, model switches, TypedDict requests, redirect/chunk/recursion compatibility, and package extras | Package/module names, enum form, extra fields, response validation, request style, dependencies, timeout, layout, wire tests, WebSockets |
336
+ | Java/Kotlin | Package layout (3), local dates (2), optional-nullable collapse (2), Gradle settings (7), and JVM async-client style | Maven identity, namespace, names, forward-compatible enums, inline properties, dependencies, pager, wire tests |
337
+ | Go | Legacy complex models, union version (3), legacy client options (1), and the fern root-client constructor name | Module/package identity, client name, environments, smart casing, inline properties, pager, wire tests |
338
+ | C# | Optional wrapper, simplified dictionaries (1), explicit namespaces (7), core namespace behavior (1), exception handler (5), and the experimental explicit-nullable-optional switch | NuGet identity, namespace, class/error names, pager, wire tests |
339
+ | PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests |
340
+ | Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
341
+ | Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
342
+ | Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields. |
343
+ | CLI | Pagination parameter names and the `skills` boolean | Go module and package identity use `package`. |
344
+ | MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior |
318
345
 
319
346
  ## Removed and deferred legacy configuration
320
347
 
@@ -327,16 +354,14 @@ the migration.
327
354
  - Common Fern generation: include/omit platform-header overrides. Output-profile defaults own this
328
355
  compatibility behavior instead of a second permanent switch.
329
356
  - Source import: optional-additional-properties defaults, environment grouping strategies,
330
- discriminant removal, schema-collision recovery, forward-compatible inference, default
331
- environment inference, const coercion, endpoint filters, example-depth controls, alias
332
- resolution, single-schema oneOf preservation, readonly/read variants, binary-response import
333
- coercion, form encoding defaults, additional-properties defaults, inline-allOf,
334
- discriminated-union inference, and AsyncAPI message naming.
357
+ discriminant removal, forward-compatible inference, default environment inference, const
358
+ coercion, endpoint filters, example-depth controls, alias resolution, single-schema oneOf
359
+ preservation, read-variant responses, binary-response import coercion, form encoding defaults,
360
+ additional-properties defaults, and discriminated-union inference.
335
361
  - TypeScript: linter/formatter selection, consolidated type files, subpackage exports, and endpoint
336
362
  metadata.
337
363
  - Python: ORM/smart-union/coercion/wrapped-alias/positional-constructor/inheritance/validator
338
- switches, flattened union bodies, stream chunk size, recursion limit, lazy imports, and custom
339
- transport.
364
+ switches, flattened union bodies, lazy imports, and custom transport.
340
365
  - Java/JVM: JSON include, required-builder checks, public/extensible constructors, unknown-as-node,
341
366
  nullable annotations, and custom interceptors.
342
367
  - C#: union implementation switches, root-client access, generated error-type toggle, interceptor