@postman/sdk-config 0.0.3 → 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 +2017 -180
  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 +1980 -181
  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 +155 -19
  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 +154 -20
  25. package/dist/sdk-config-ir/index.js.map +1 -1
  26. package/dist/sdk-config-ir/v1/index.cjs +155 -19
  27. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  28. package/dist/sdk-config-ir/v1/index.d.cts +448 -398
  29. package/dist/sdk-config-ir/v1/index.d.ts +448 -398
  30. package/dist/sdk-config-ir/v1/index.js +154 -20
  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 +46 -27
@@ -63,7 +63,8 @@ Examples of the boolean rule:
63
63
 
64
64
  - Boolean: `generation.webSockets`, `generation.multipleResponses`.
65
65
  - Configurable feature: `client.retry`, `client.tokenRefresh`, `docs.snippets`,
66
- `generation.analytics`, `generation.hooks`, `generation.streams`, and `generation.wireTests`.
66
+ `generation.analytics`, `generation.hooks`, `generation.streams`, `generation.wireTests`, and
67
+ `generation.unitTests`.
67
68
 
68
69
  ## Cross-origin deduplication decisions
69
70
 
@@ -182,10 +183,10 @@ Translators are responsible for alias resolution, unit conversion, and inverted
182
183
  | CLI pagination parameters / skills object | `generation.language.cli.paginationParameters` / `skills` boolean |
183
184
  | language authors, developers, homepage, and repository | `package` metadata |
184
185
 
185
- `usesFormData` is derived from the API and is not configuration. The legacy `ai` flag,
186
- `generateMCP`, MCP language options, Terraform-provider options and plan modifiers, and Bash output
187
- are outside the SDK Config IR v1 target set and must be reported as unsupported. Commented-out
188
- 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.
189
190
 
190
191
  ## Fern common migration map
191
192
 
@@ -203,6 +204,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
203
204
  | `api.environments` | `api.environments` | 20+ |
204
205
  | `api.auth`, `api.auth-schemes` | `api.auth` | 27 |
205
206
  | `api.headers` | `api.headers` | 11+ |
207
+ | generator-group `audiences` | `api.audiences` | Absent selects all audiences. |
206
208
  | generator `inlinePathParameters`, `inline-path-parameters`, and API setting | `client.pathParameterStyle` | 12 API; 1-3 per language |
207
209
  | generator `inlineFileProperties`, `inline-file-properties` | `client.filePropertyStyle` | 1-3 per language |
208
210
  | `inline_request_params` | `client.requestParameterStyle` | 6 Python |
@@ -210,6 +212,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
210
212
  | timeout aliases in seconds or milliseconds | `client.timeoutMs` | Translator converts units. |
211
213
  | `skipResponseValidation`, Python `skip_validation` | `client.responseValidation` | Inverted; 12 TS, 8 Python |
212
214
  | `useDefaultRequestParameterValues` aliases | `client.useDefaultRequestParameterValues` | 1 |
215
+ | `respectOptionalRequestBody`, `respect-optional-request-body` | `client.respectOptionalRequestBody` | Not in the project snapshot; see below |
213
216
  | `enable-wire-tests`, `enableWireTests`, `generateWireTests` | `generation.wireTests` | 1-15 per language |
214
217
  | WebSocket generation aliases | `generation.webSockets` | 3 TS, 3 Python |
215
218
  | `streamType`, `fileResponseType` | `generation.streams` | 1 TS |
@@ -225,6 +228,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
225
228
  | registry output | `output.publish` plus `package` identity | 5-28 per registry language |
226
229
  | GitHub output | `output.delivery: "github"` and `output.github` | Translator resolves Fern owner/repo forms. |
227
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 |
228
232
  | `includeApiReference` | `docs.includeApiReference` | 10 TS |
229
233
 
230
234
  The Rust language config was added after the initial audit. That audit compared existing Fern
@@ -234,6 +238,19 @@ versus `DateTime<Utc>` on every datetime field), `capitalizeInitialisms`, `featu
234
238
  `defaultFeatures`. Crate identity, client name, and package metadata deliberately stay on the
235
239
  shared fields.
236
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
+
237
254
  Fern README endpoint strings such as `GET /users` are parsed into
238
255
  `{ "method": "GET", "path": "/users" }`; the legacy string shorthand is not part of the
239
256
  normalized contract.
@@ -243,19 +260,20 @@ normalized contract.
243
260
  These settings remain under `source.apiImportSettings` because they affect spec conversion rather
244
261
  than generated-language presentation.
245
262
 
246
- | Fern setting | Normalized field | Observed projects |
247
- | ----------------------------------------- | ------------------------------------ | ----------------: |
248
- | `respect-nullable-schemas` | `respectNullableSchemas` | 10 |
249
- | `title-as-schema-name` | `titleAsSchemaName` | 16 |
250
- | `coerce-enums-to-literals` | `coerceEnumsToLiterals` | 14 |
251
- | `idiomatic-request-names` | `idiomaticRequestNames` | 12 |
252
- | `wrap-references-to-nullable-in-optional` | `wrapReferencesToNullableInOptional` | 9 |
253
- | `coerce-optional-schemas-to-nullable` | `coerceOptionalSchemasToNullable` | 9 |
254
- | `object-query-parameters` | `objectQueryParameters` | 9 |
255
- | `only-include-referenced-schemas` | `onlyIncludeReferencedSchemas` | 4 |
256
- | `group-multi-api-environments` | `groupMultiApiEnvironments` | 2 |
257
- | `path-parameter-order` | `pathParameterOrder` | 2 |
258
- | `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`. |
259
277
 
260
278
  ## Fern language-specific migration map
261
279
 
@@ -265,14 +283,15 @@ Only options that remain language-specific stay in `generation.language`.
265
283
  | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
266
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 |
267
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 |
268
- | 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 |
269
- | Go | Legacy complex models, union version (3), and legacy client options (1) | Module/package identity, client name, inline properties, pager, wire tests |
270
- | 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 |
271
289
  | PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests |
272
290
  | Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
273
291
  | Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
274
- | 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. |
275
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 |
276
295
 
277
296
  ## Removed and deferred legacy configuration
278
297
 
@@ -288,8 +307,8 @@ the migration.
288
307
  discriminant removal, schema-collision recovery, forward-compatible inference, default
289
308
  environment inference, const coercion, endpoint filters, example-depth controls, alias
290
309
  resolution, single-schema oneOf preservation, readonly/read variants, binary-response import
291
- coercion, form encoding defaults, additional-properties defaults, inline-allOf, default integer
292
- 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.
293
312
  - TypeScript: linter/formatter selection, consolidated type files, subpackage exports, and endpoint
294
313
  metadata.
295
314
  - Python: ORM/smart-union/coercion/wrapped-alias/positional-constructor/inheritance/validator
@@ -299,10 +318,10 @@ the migration.
299
318
  nullable annotations, and custom interceptors.
300
319
  - C#: union implementation switches, root-client access, generated error-type toggle, interceptor
301
320
  class, unified options, response-body redaction, solution format, and custom output paths.
302
- - Go: toolchain version, import aliases, custom constructor name, error-code layout, empty wrapper,
303
- 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.
304
323
  - Ruby: custom client module and RuboCop switches.
305
- - 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.
306
325
 
307
326
  ### Observed but deliberately deferred as bespoke or low-use
308
327