@postman/sdk-config 0.3.2 → 0.3.4

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 (35) hide show
  1. package/dist/index.cjs +90 -22
  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 +90 -22
  6. package/dist/index.js.map +1 -1
  7. package/dist/sdk-config/index.cjs +90 -22
  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 +90 -22
  12. package/dist/sdk-config/index.js.map +1 -1
  13. package/dist/sdk-config/v1/index.cjs +90 -22
  14. package/dist/sdk-config/v1/index.cjs.map +1 -1
  15. package/dist/sdk-config/v1/index.d.cts +53 -1
  16. package/dist/sdk-config/v1/index.d.ts +53 -1
  17. package/dist/sdk-config/v1/index.js +90 -22
  18. package/dist/sdk-config/v1/index.js.map +1 -1
  19. package/dist/sdk-config-ir/index.cjs +10 -2
  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 +10 -2
  24. package/dist/sdk-config-ir/index.js.map +1 -1
  25. package/dist/sdk-config-ir/v1/index.cjs +10 -2
  26. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  27. package/dist/sdk-config-ir/v1/index.d.cts +27 -2
  28. package/dist/sdk-config-ir/v1/index.d.ts +27 -2
  29. package/dist/sdk-config-ir/v1/index.js +10 -2
  30. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  31. package/dist/{typescript-DNqK3T3v.d.cts → typescript-CKRe_6MB.d.cts} +5 -0
  32. package/dist/{typescript-DNqK3T3v.d.ts → typescript-CKRe_6MB.d.ts} +5 -0
  33. package/package.json +1 -1
  34. package/src/sdk-config/v1/README.md +19 -16
  35. package/src/sdk-config-ir/v1/README.md +35 -21
@@ -91,6 +91,7 @@ Legacy aliases below intentionally converge on one normalized behavior.
91
91
 
92
92
  Fields are not duplicated under `generation.language` when a shared row above can represent them.
93
93
  Translators are responsible for alias resolution, unit conversion, and inverted legacy booleans.
94
+ For Python Fern configs, `skip_validation` is read from the nested `pydantic_config` object.
94
95
 
95
96
  ## Source and target boundaries
96
97
 
@@ -174,7 +175,7 @@ Translators are responsible for alias resolution, unit conversion, and inverted
174
175
  | TypeScript `generateEnumAs` | `generation.serialization.enumRepresentation` |
175
176
  | TypeScript versions, compiler options, bundle, default export, naming strategy, scripts | `generation.language.typescript` |
176
177
  | Python `pypiPackageName`, classifiers, and project URLs | `package.packageName`, `classifiers`, and `projectUrls` |
177
- | Python Pydantic version and optional initialization | `generation.language.python` |
178
+ | Python Pydantic version, optional initialization, and additional `__init__` exports | `generation.language.python` |
178
179
  | Java/Kotlin `groupId` / `artifactId` | `package.groupId` / `package.artifactId` |
179
180
  | Java/Kotlin `includeKotlinSnippets` | `generation.language.java.includeKotlinSnippets` |
180
181
  | Java/Go/C#/Rust `validateResponses` | `client.responseValidation` |
@@ -214,7 +215,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
214
215
  | `customPagerName`, `custom-pager-name`, `custom_pager_name` | `generation.naming.pagerName` | 2-5 per language |
215
216
  | `smart-casing`, `smart-casing-digit-word-boundary` | `generation.naming` | Preserved only when explicitly set. |
216
217
  | timeout aliases in seconds or milliseconds | `client.timeoutMs` | Translator converts units. |
217
- | `skipResponseValidation`, Python `skip_validation` | `client.responseValidation` | Inverted; 12 TS, 8 Python |
218
+ | `skipResponseValidation`, Python `pydantic_config.skip_validation` | `client.responseValidation` | Inverted; 12 TS, 8 Python |
218
219
  | `useDefaultRequestParameterValues` aliases | `client.useDefaultRequestParameterValues` | 1 |
219
220
  | `respectOptionalRequestBody`, `respect-optional-request-body` | `client.respectOptionalRequestBody` | Not in the project snapshot; see below |
220
221
  | `enable-wire-tests`, `enableWireTests`, `generateWireTests` | `generation.wireTests` | 1-15 per language |
@@ -224,7 +225,10 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
224
225
  | base API/general exception class aliases | `generation.naming.apiErrorName` / `generation.naming.baseErrorName` | 3-6 Java/C# |
225
226
  | namespace/package-prefix aliases | `package.namespace` | 1-30 per language |
226
227
  | output registry package names | `package.packageName` | 5-28 per registry language |
228
+ | TypeScript `packageJson` / PHP `composerJson` portable metadata | `package.packageName`, `description`, `authors`, and `license` | Portable subset only. |
229
+ | TypeScript `fetchSupport: native` | `generation.language.typescript.httpClient.name: "fetch"` | Native only. |
227
230
  | Python custom `package_name` | `package.moduleName` | 18 |
231
+ | Python `additional_init_exports` | `generation.language.python.additionalInitExports` | 3 |
228
232
  | Go `module.path` | `package.modulePath` | 3 |
229
233
  | Maven `group` / `artifact` | `package.groupId` / `package.artifactId` | 7 |
230
234
  | custom/extra dependencies | `package.extraDependencies` and related lists | Multiple languages |
@@ -250,8 +254,9 @@ shared fields.
250
254
  `docs.readme.customSections` came from that same generator-schema comparison. Nine Fern generators
251
255
  declare an identical `customReadmeSections` array of `{title, content}`, so it is a shared
252
256
  documentation concern rather than a language one. `title` is the section's identity: a derived
253
- section carrying the same title is replaced rather than duplicated. Fern's per-section `language`
254
- discriminator is dropped, because one IR document already describes one target.
257
+ section carrying the same title is replaced rather than duplicated. During Fern migration, an
258
+ untagged section applies to every target and a language-tagged section applies only to its matching
259
+ selected target. The discriminator is then dropped because one IR document describes one target.
255
260
 
256
261
  `client.respectOptionalRequestBody` came from the same comparison and postdates the project
257
262
  snapshot. Eight Fern generators honour it — Rust, Go, PHP, Ruby, both TypeScript generators, C# and
@@ -269,20 +274,29 @@ normalized contract.
269
274
  These settings remain under `source.apiImportSettings` because they affect spec conversion rather
270
275
  than generated-language presentation.
271
276
 
272
- | Fern setting | Normalized field | Observed projects |
273
- | ----------------------------------------- | ------------------------------------ | ----------------------------: |
274
- | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
275
- | `title-as-schema-name` | `titleAsSchemaName` | 16 |
276
- | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
277
- | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
278
- | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
279
- | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
280
- | `object-query-parameters` | `objectQueryParameters` | 9 |
281
- | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
282
- | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
283
- | `path-parameter-order` | `pathParameterOrder` | 2 |
284
- | `type-dates-as-strings` | `typeDatesAsStrings` | 12 |
285
- | `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
+ | `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`. |
293
+
294
+ `ignoreTags` and `disambiguateRequestNames` postdate the project snapshot. Twilio declares both
295
+ across its namespaced API specs. They stay undefaulted so omission remains distinguishable from an
296
+ explicit value, including `disambiguateRequestNames: false`. `ignoreTags` controls import-time use
297
+ of authored tags, not generation-time service-name inference; `disambiguateRequestNames` controls
298
+ request/schema collisions, not idiomatic request naming. Producers and generators must map and
299
+ honour these fields before they change generated output.
286
300
 
287
301
  ## Fern language-specific migration map
288
302
 
@@ -317,7 +331,7 @@ the migration.
317
331
  environment inference, const coercion, endpoint filters, example-depth controls, alias
318
332
  resolution, single-schema oneOf preservation, readonly/read variants, binary-response import
319
333
  coercion, form encoding defaults, additional-properties defaults, inline-allOf,
320
- discriminated-union inference, request-name disambiguation, and AsyncAPI message naming.
334
+ discriminated-union inference, and AsyncAPI message naming.
321
335
  - TypeScript: linter/formatter selection, consolidated type files, subpackage exports, and endpoint
322
336
  metadata.
323
337
  - Python: ORM/smart-union/coercion/wrapped-alias/positional-constructor/inheritance/validator
@@ -337,8 +351,8 @@ the migration.
337
351
  | Legacy configuration | Observed projects | Reason |
338
352
  | ----------------------------------------------------------- | ----------------: | ------------------------------------------------------------------------ |
339
353
  | TypeScript arbitrary `packageJson` exports/scripts | 2 | Open-ended manifest rewriting conflicts with the typed package contract. |
340
- | TypeScript `outputEsm`, fetch runtime, form-data runtime | 1-2 | Runtime-specific and not required by sdk-gen-core today. |
341
- | Python additional `__init__` exports / excluded exports | 3 / 6 | File-layout customization with significant generator coupling. |
354
+ | TypeScript `outputEsm` and form-data runtime | 1-2 | Runtime-specific and not required by sdk-gen-core today. |
355
+ | Python excluded `__init__` exports | 6 | File-layout customization with significant generator coupling. |
342
356
  | Python improved imports and file-upload-only TypedDict mode | 1-3 | Experimental or narrow compatibility behavior. |
343
357
  | Java custom Gradle plugins / include-wrapper | 1 | Arbitrary build-file injection or one-customer behavior. |
344
358
  | C# experimental fully qualified/version namespaces | 1 | Experimental one-customer behavior. |