@postman/sdk-config 0.0.4 → 0.1.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.
Files changed (36) hide show
  1. package/README.md +42 -17
  2. package/dist/index.cjs +2011 -181
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +3 -1
  5. package/dist/index.d.ts +3 -1
  6. package/dist/index.js +1974 -182
  7. package/dist/index.js.map +1 -1
  8. package/dist/sdk-config/index.cjs +2233 -0
  9. package/dist/sdk-config/index.cjs.map +1 -0
  10. package/dist/sdk-config/index.d.cts +3 -0
  11. package/dist/sdk-config/index.d.ts +3 -0
  12. package/dist/sdk-config/index.js +2192 -0
  13. package/dist/sdk-config/index.js.map +1 -0
  14. package/dist/sdk-config/v1/index.cjs +2233 -0
  15. package/dist/sdk-config/v1/index.cjs.map +1 -0
  16. package/dist/sdk-config/v1/index.d.cts +8644 -0
  17. package/dist/sdk-config/v1/index.d.ts +8644 -0
  18. package/dist/sdk-config/v1/index.js +2192 -0
  19. package/dist/sdk-config/v1/index.js.map +1 -0
  20. package/dist/sdk-config-ir/index.cjs +147 -18
  21. package/dist/sdk-config-ir/index.cjs.map +1 -1
  22. package/dist/sdk-config-ir/index.d.cts +2 -1
  23. package/dist/sdk-config-ir/index.d.ts +2 -1
  24. package/dist/sdk-config-ir/index.js +146 -19
  25. package/dist/sdk-config-ir/index.js.map +1 -1
  26. package/dist/sdk-config-ir/v1/index.cjs +147 -18
  27. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  28. package/dist/sdk-config-ir/v1/index.d.cts +422 -400
  29. package/dist/sdk-config-ir/v1/index.d.ts +422 -400
  30. package/dist/sdk-config-ir/v1/index.js +146 -19
  31. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  32. package/dist/typescript-ByDbin_v.d.cts +426 -0
  33. package/dist/typescript-ByDbin_v.d.ts +426 -0
  34. package/package.json +15 -2
  35. package/src/sdk-config/v1/README.md +135 -0
  36. package/src/sdk-config-ir/v1/README.md +44 -26
@@ -183,10 +183,10 @@ Translators are responsible for alias resolution, unit conversion, and inverted
183
183
  | CLI pagination parameters / skills object | `generation.language.cli.paginationParameters` / `skills` boolean |
184
184
  | language authors, developers, homepage, and repository | `package` metadata |
185
185
 
186
- `usesFormData` is derived from the API and is not configuration. The legacy `ai` flag,
187
- `generateMCP`, MCP language options, Terraform-provider options and plan modifiers, and Bash output
188
- are outside the SDK Config IR v1 target set and must be reported as unsupported. Commented-out
189
- custom-template and naming inputs were not restored as part of the normalized contract.
186
+ `usesFormData` is derived from the API and is not configuration. The legacy `generateMCP` switch
187
+ and Bash output are outside the SDK Config IR v1 target set and must be reported as unsupported;
188
+ MCP and Terraform instead use explicit target languages. Commented-out custom-template and naming
189
+ inputs were not restored as part of the normalized contract.
190
190
 
191
191
  ## Fern common migration map
192
192
 
@@ -204,6 +204,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
204
204
  | `api.environments` | `api.environments` | 20+ |
205
205
  | `api.auth`, `api.auth-schemes` | `api.auth` | 27 |
206
206
  | `api.headers` | `api.headers` | 11+ |
207
+ | generator-group `audiences` | `api.audiences` | Absent selects all audiences. |
207
208
  | generator `inlinePathParameters`, `inline-path-parameters`, and API setting | `client.pathParameterStyle` | 12 API; 1-3 per language |
208
209
  | generator `inlineFileProperties`, `inline-file-properties` | `client.filePropertyStyle` | 1-3 per language |
209
210
  | `inline_request_params` | `client.requestParameterStyle` | 6 Python |
@@ -211,6 +212,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
211
212
  | timeout aliases in seconds or milliseconds | `client.timeoutMs` | Translator converts units. |
212
213
  | `skipResponseValidation`, Python `skip_validation` | `client.responseValidation` | Inverted; 12 TS, 8 Python |
213
214
  | `useDefaultRequestParameterValues` aliases | `client.useDefaultRequestParameterValues` | 1 |
215
+ | `respectOptionalRequestBody`, `respect-optional-request-body` | `client.respectOptionalRequestBody` | Not in the project snapshot; see below |
214
216
  | `enable-wire-tests`, `enableWireTests`, `generateWireTests` | `generation.wireTests` | 1-15 per language |
215
217
  | WebSocket generation aliases | `generation.webSockets` | 3 TS, 3 Python |
216
218
  | `streamType`, `fileResponseType` | `generation.streams` | 1 TS |
@@ -226,6 +228,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
226
228
  | registry output | `output.publish` plus `package` identity | 5-28 per registry language |
227
229
  | GitHub output | `output.delivery: "github"` and `output.github` | Translator resolves Fern owner/repo forms. |
228
230
  | Fern README config | `docs.readme` | 12 API names; 11 disabled-section configs |
231
+ | `customReadmeSections` | `docs.readme.customSections` | Not in the project snapshot; see below |
229
232
  | `includeApiReference` | `docs.includeApiReference` | 10 TS |
230
233
 
231
234
  The Rust language config was added after the initial audit. That audit compared existing Fern
@@ -235,6 +238,19 @@ versus `DateTime<Utc>` on every datetime field), `capitalizeInitialisms`, `featu
235
238
  `defaultFeatures`. Crate identity, client name, and package metadata deliberately stay on the
236
239
  shared fields.
237
240
 
241
+ `docs.readme.customSections` came from that same generator-schema comparison. Nine Fern generators
242
+ declare an identical `customReadmeSections` array of `{title, content}`, so it is a shared
243
+ documentation concern rather than a language one. `title` is the section's identity: a derived
244
+ section carrying the same title is replaced rather than duplicated. Fern's per-section `language`
245
+ discriminator is dropped, because one IR document already describes one target.
246
+
247
+ `client.respectOptionalRequestBody` came from the same comparison and postdates the project
248
+ snapshot. Eight Fern generators honour it — Rust, Go, PHP, Ruby, both TypeScript generators, C# and
249
+ Java — so it is shared client behavior. It stays undefaulted rather than defaulting to `false`:
250
+ enabling it changes the signature of every endpoint whose body the API declares as not required, so
251
+ absent must keep an existing SDK's signatures rather than assert a value the generator would then
252
+ have to honour.
253
+
238
254
  Fern README endpoint strings such as `GET /users` are parsed into
239
255
  `{ "method": "GET", "path": "/users" }`; the legacy string shorthand is not part of the
240
256
  normalized contract.
@@ -244,19 +260,20 @@ normalized contract.
244
260
  These settings remain under `source.apiImportSettings` because they affect spec conversion rather
245
261
  than generated-language presentation.
246
262
 
247
- | Fern setting | Normalized field | Observed projects |
248
- | ----------------------------------------- | ------------------------------------ | ----------------: |
249
- | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
250
- | `title-as-schema-name` | `titleAsSchemaName` | 16 |
251
- | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
252
- | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
253
- | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
254
- | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
255
- | `object-query-parameters` | `objectQueryParameters` | 9 |
256
- | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
257
- | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
258
- | `path-parameter-order` | `pathParameterOrder` | 2 |
259
- | `type-dates-as-strings` | `typeDatesAsStrings` | 12 |
263
+ | Fern setting | Normalized field | Observed projects |
264
+ | ----------------------------------------- | ------------------------------------ | ----------------------------: |
265
+ | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
266
+ | `title-as-schema-name` | `titleAsSchemaName` | 16 |
267
+ | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
268
+ | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
269
+ | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
270
+ | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
271
+ | `object-query-parameters` | `objectQueryParameters` | 9 |
272
+ | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
273
+ | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
274
+ | `path-parameter-order` | `pathParameterOrder` | 2 |
275
+ | `type-dates-as-strings` | `typeDatesAsStrings` | 12 |
276
+ | `default-integer-format` | `defaultIntegerFormat` | Importer defaults to `int32`. |
260
277
 
261
278
  ## Fern language-specific migration map
262
279
 
@@ -266,14 +283,15 @@ Only options that remain language-specific stay in `generation.language`.
266
283
  | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
267
284
  | TypeScript | `packageManager` (1), `testFramework` (2), `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 |
268
285
  | 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 |
269
- | Java/Kotlin | Package layout (3), local dates (2), optional-nullable collapse (2), and Gradle settings (7) | Maven identity, namespace, names, forward-compatible enums, inline properties, dependencies, pager, wire tests |
270
- | Go | Legacy complex models, union version (3), and legacy client options (1) | Module/package identity, client name, inline properties, pager, wire tests |
271
- | C# | Optional wrapper, simplified dictionaries (1), explicit namespaces (7), core namespace behavior (1), exception handler (5) | NuGet identity, namespace, class/error names, pager, wire tests |
286
+ | 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 |
287
+ | Go | Legacy complex models, union version (3), legacy client options (1), smart casing, and the fern root-client constructor name | Module/package identity, client name, environments, inline properties, pager, wire tests |
288
+ | 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 |
272
289
  | PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests |
273
290
  | Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
274
291
  | Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
275
- | Swift | No retained language-specific options | Shared generation behavior is sufficient for observed configs. |
292
+ | Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields. |
276
293
  | CLI | Pagination parameter names and the `skills` boolean | Go module and package identity use `package`. |
294
+ | MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior |
277
295
 
278
296
  ## Removed and deferred legacy configuration
279
297
 
@@ -289,8 +307,8 @@ the migration.
289
307
  discriminant removal, schema-collision recovery, forward-compatible inference, default
290
308
  environment inference, const coercion, endpoint filters, example-depth controls, alias
291
309
  resolution, single-schema oneOf preservation, readonly/read variants, binary-response import
292
- coercion, form encoding defaults, additional-properties defaults, inline-allOf, default integer
293
- formats, discriminated-union inference, request-name disambiguation, and AsyncAPI message naming.
310
+ coercion, form encoding defaults, additional-properties defaults, inline-allOf,
311
+ discriminated-union inference, request-name disambiguation, and AsyncAPI message naming.
294
312
  - TypeScript: linter/formatter selection, consolidated type files, subpackage exports, and endpoint
295
313
  metadata.
296
314
  - Python: ORM/smart-union/coercion/wrapped-alias/positional-constructor/inheritance/validator
@@ -300,10 +318,10 @@ the migration.
300
318
  nullable annotations, and custom interceptors.
301
319
  - C#: union implementation switches, root-client access, generated error-type toggle, interceptor
302
320
  class, unified options, response-body redaction, solution format, and custom output paths.
303
- - Go: toolchain version, import aliases, custom constructor name, error-code layout, empty wrapper,
304
- byte reader, getter, union-base deduplication, and root-request export switches.
321
+ - Go: toolchain version, import aliases, error-code layout, empty wrapper, byte reader, getter,
322
+ union-base deduplication, and root-request export switches.
305
323
  - Ruby: custom client module and RuboCop switches.
306
- - Rust and Swift: all previously proposed language-specific switches had no observed customer use.
324
+ - Rust: all previously proposed language-specific switches had no observed customer use.
307
325
 
308
326
  ### Observed but deliberately deferred as bespoke or low-use
309
327