@postman/sdk-config 0.11.0 → 0.12.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/dist/index.cjs +214 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +214 -9
- package/dist/index.js.map +1 -1
- package/dist/sdk-config/index.cjs +214 -9
- package/dist/sdk-config/index.cjs.map +1 -1
- package/dist/sdk-config/index.d.cts +1 -1
- package/dist/sdk-config/index.d.ts +1 -1
- package/dist/sdk-config/index.js +214 -9
- package/dist/sdk-config/index.js.map +1 -1
- package/dist/sdk-config/v1/index.cjs +214 -9
- package/dist/sdk-config/v1/index.cjs.map +1 -1
- package/dist/sdk-config/v1/index.d.cts +234 -2
- package/dist/sdk-config/v1/index.d.ts +234 -2
- package/dist/sdk-config/v1/index.js +214 -9
- package/dist/sdk-config/v1/index.js.map +1 -1
- package/dist/sdk-config-ir/index.cjs +39 -1
- package/dist/sdk-config-ir/index.cjs.map +1 -1
- package/dist/sdk-config-ir/index.d.cts +1 -1
- package/dist/sdk-config-ir/index.d.ts +1 -1
- package/dist/sdk-config-ir/index.js +39 -1
- package/dist/sdk-config-ir/index.js.map +1 -1
- package/dist/sdk-config-ir/v1/index.cjs +39 -1
- package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
- package/dist/sdk-config-ir/v1/index.d.cts +186 -2
- package/dist/sdk-config-ir/v1/index.d.ts +186 -2
- package/dist/sdk-config-ir/v1/index.js +39 -1
- package/dist/sdk-config-ir/v1/index.js.map +1 -1
- package/dist/{typescript-CsAa1VSy.d.cts → typescript-Byhn4MqL.d.cts} +64 -0
- package/dist/{typescript-CsAa1VSy.d.ts → typescript-Byhn4MqL.d.ts} +64 -0
- package/package.json +1 -1
- package/src/sdk-config-ir/v1/README.md +79 -31
|
@@ -44,6 +44,10 @@ declare const packageConfigSchema: z.ZodObject<{
|
|
|
44
44
|
description: z.ZodOptional<z.ZodString>;
|
|
45
45
|
repository: z.ZodOptional<z.ZodString>;
|
|
46
46
|
homepage: z.ZodOptional<z.ZodString>;
|
|
47
|
+
bugs: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
url: z.ZodOptional<z.ZodString>;
|
|
49
|
+
email: z.ZodOptional<z.ZodString>;
|
|
50
|
+
}, z.core.$strict>>;
|
|
47
51
|
documentationUrl: z.ZodOptional<z.ZodString>;
|
|
48
52
|
authors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
49
53
|
name: z.ZodString;
|
|
@@ -304,6 +308,7 @@ declare const mcpGenerationConfigSchema: z.ZodObject<{
|
|
|
304
308
|
name: z.ZodEnum<{
|
|
305
309
|
axios: "axios";
|
|
306
310
|
fetch: "fetch";
|
|
311
|
+
"node-fetch": "node-fetch";
|
|
307
312
|
}>;
|
|
308
313
|
}, z.core.$strict>>;
|
|
309
314
|
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
@@ -323,6 +328,35 @@ declare const mcpGenerationConfigSchema: z.ZodObject<{
|
|
|
323
328
|
exportClassDefault: z.ZodOptional<z.ZodBoolean>;
|
|
324
329
|
namespaceExportName: z.ZodOptional<z.ZodString>;
|
|
325
330
|
consolidateTypeFiles: z.ZodOptional<z.ZodBoolean>;
|
|
331
|
+
formDataSupport: z.ZodOptional<z.ZodEnum<{
|
|
332
|
+
Node16: "Node16";
|
|
333
|
+
Node18: "Node18";
|
|
334
|
+
}>>;
|
|
335
|
+
allowExtraFields: z.ZodOptional<z.ZodBoolean>;
|
|
336
|
+
generateSubpackageExports: z.ZodOptional<z.ZodBoolean>;
|
|
337
|
+
exportAllRequestsAtRoot: z.ZodOptional<z.ZodBoolean>;
|
|
338
|
+
generateEndpointMetadata: z.ZodOptional<z.ZodBoolean>;
|
|
339
|
+
outputEsm: z.ZodOptional<z.ZodBoolean>;
|
|
340
|
+
neverThrowErrors: z.ZodOptional<z.ZodBoolean>;
|
|
341
|
+
includeOtherInUnionTypes: z.ZodOptional<z.ZodBoolean>;
|
|
342
|
+
includeUtilsOnUnionMembers: z.ZodOptional<z.ZodBoolean>;
|
|
343
|
+
omitFernHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
344
|
+
linter: z.ZodOptional<z.ZodEnum<{
|
|
345
|
+
biome: "biome";
|
|
346
|
+
oxlint: "oxlint";
|
|
347
|
+
none: "none";
|
|
348
|
+
}>>;
|
|
349
|
+
formatter: z.ZodOptional<z.ZodEnum<{
|
|
350
|
+
biome: "biome";
|
|
351
|
+
none: "none";
|
|
352
|
+
prettier: "prettier";
|
|
353
|
+
oxfmt: "oxfmt";
|
|
354
|
+
}>>;
|
|
355
|
+
exports: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
356
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
357
|
+
engines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
358
|
+
lintStaged: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
359
|
+
browser: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
326
360
|
allowCustomFetcher: z.ZodOptional<z.ZodBoolean>;
|
|
327
361
|
useBrandedStringAliases: z.ZodOptional<z.ZodBoolean>;
|
|
328
362
|
useLegacyExports: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -493,6 +527,7 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
493
527
|
name: z.ZodEnum<{
|
|
494
528
|
axios: "axios";
|
|
495
529
|
fetch: "fetch";
|
|
530
|
+
"node-fetch": "node-fetch";
|
|
496
531
|
}>;
|
|
497
532
|
}, z.core.$strict>>;
|
|
498
533
|
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
@@ -513,6 +548,35 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
513
548
|
/** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */
|
|
514
549
|
namespaceExportName: z.ZodOptional<z.ZodString>;
|
|
515
550
|
consolidateTypeFiles: z.ZodOptional<z.ZodBoolean>;
|
|
551
|
+
formDataSupport: z.ZodOptional<z.ZodEnum<{
|
|
552
|
+
Node16: "Node16";
|
|
553
|
+
Node18: "Node18";
|
|
554
|
+
}>>;
|
|
555
|
+
allowExtraFields: z.ZodOptional<z.ZodBoolean>;
|
|
556
|
+
generateSubpackageExports: z.ZodOptional<z.ZodBoolean>;
|
|
557
|
+
exportAllRequestsAtRoot: z.ZodOptional<z.ZodBoolean>;
|
|
558
|
+
generateEndpointMetadata: z.ZodOptional<z.ZodBoolean>;
|
|
559
|
+
outputEsm: z.ZodOptional<z.ZodBoolean>;
|
|
560
|
+
neverThrowErrors: z.ZodOptional<z.ZodBoolean>;
|
|
561
|
+
includeOtherInUnionTypes: z.ZodOptional<z.ZodBoolean>;
|
|
562
|
+
includeUtilsOnUnionMembers: z.ZodOptional<z.ZodBoolean>;
|
|
563
|
+
omitFernHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
564
|
+
linter: z.ZodOptional<z.ZodEnum<{
|
|
565
|
+
biome: "biome";
|
|
566
|
+
oxlint: "oxlint";
|
|
567
|
+
none: "none";
|
|
568
|
+
}>>;
|
|
569
|
+
formatter: z.ZodOptional<z.ZodEnum<{
|
|
570
|
+
biome: "biome";
|
|
571
|
+
none: "none";
|
|
572
|
+
prettier: "prettier";
|
|
573
|
+
oxfmt: "oxfmt";
|
|
574
|
+
}>>;
|
|
575
|
+
exports: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
576
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
577
|
+
engines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
578
|
+
lintStaged: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
579
|
+
browser: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
516
580
|
allowCustomFetcher: z.ZodOptional<z.ZodBoolean>;
|
|
517
581
|
useBrandedStringAliases: z.ZodOptional<z.ZodBoolean>;
|
|
518
582
|
useLegacyExports: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -44,6 +44,10 @@ declare const packageConfigSchema: z.ZodObject<{
|
|
|
44
44
|
description: z.ZodOptional<z.ZodString>;
|
|
45
45
|
repository: z.ZodOptional<z.ZodString>;
|
|
46
46
|
homepage: z.ZodOptional<z.ZodString>;
|
|
47
|
+
bugs: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
url: z.ZodOptional<z.ZodString>;
|
|
49
|
+
email: z.ZodOptional<z.ZodString>;
|
|
50
|
+
}, z.core.$strict>>;
|
|
47
51
|
documentationUrl: z.ZodOptional<z.ZodString>;
|
|
48
52
|
authors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
49
53
|
name: z.ZodString;
|
|
@@ -304,6 +308,7 @@ declare const mcpGenerationConfigSchema: z.ZodObject<{
|
|
|
304
308
|
name: z.ZodEnum<{
|
|
305
309
|
axios: "axios";
|
|
306
310
|
fetch: "fetch";
|
|
311
|
+
"node-fetch": "node-fetch";
|
|
307
312
|
}>;
|
|
308
313
|
}, z.core.$strict>>;
|
|
309
314
|
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
@@ -323,6 +328,35 @@ declare const mcpGenerationConfigSchema: z.ZodObject<{
|
|
|
323
328
|
exportClassDefault: z.ZodOptional<z.ZodBoolean>;
|
|
324
329
|
namespaceExportName: z.ZodOptional<z.ZodString>;
|
|
325
330
|
consolidateTypeFiles: z.ZodOptional<z.ZodBoolean>;
|
|
331
|
+
formDataSupport: z.ZodOptional<z.ZodEnum<{
|
|
332
|
+
Node16: "Node16";
|
|
333
|
+
Node18: "Node18";
|
|
334
|
+
}>>;
|
|
335
|
+
allowExtraFields: z.ZodOptional<z.ZodBoolean>;
|
|
336
|
+
generateSubpackageExports: z.ZodOptional<z.ZodBoolean>;
|
|
337
|
+
exportAllRequestsAtRoot: z.ZodOptional<z.ZodBoolean>;
|
|
338
|
+
generateEndpointMetadata: z.ZodOptional<z.ZodBoolean>;
|
|
339
|
+
outputEsm: z.ZodOptional<z.ZodBoolean>;
|
|
340
|
+
neverThrowErrors: z.ZodOptional<z.ZodBoolean>;
|
|
341
|
+
includeOtherInUnionTypes: z.ZodOptional<z.ZodBoolean>;
|
|
342
|
+
includeUtilsOnUnionMembers: z.ZodOptional<z.ZodBoolean>;
|
|
343
|
+
omitFernHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
344
|
+
linter: z.ZodOptional<z.ZodEnum<{
|
|
345
|
+
biome: "biome";
|
|
346
|
+
oxlint: "oxlint";
|
|
347
|
+
none: "none";
|
|
348
|
+
}>>;
|
|
349
|
+
formatter: z.ZodOptional<z.ZodEnum<{
|
|
350
|
+
biome: "biome";
|
|
351
|
+
none: "none";
|
|
352
|
+
prettier: "prettier";
|
|
353
|
+
oxfmt: "oxfmt";
|
|
354
|
+
}>>;
|
|
355
|
+
exports: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
356
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
357
|
+
engines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
358
|
+
lintStaged: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
359
|
+
browser: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
326
360
|
allowCustomFetcher: z.ZodOptional<z.ZodBoolean>;
|
|
327
361
|
useBrandedStringAliases: z.ZodOptional<z.ZodBoolean>;
|
|
328
362
|
useLegacyExports: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -493,6 +527,7 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
493
527
|
name: z.ZodEnum<{
|
|
494
528
|
axios: "axios";
|
|
495
529
|
fetch: "fetch";
|
|
530
|
+
"node-fetch": "node-fetch";
|
|
496
531
|
}>;
|
|
497
532
|
}, z.core.$strict>>;
|
|
498
533
|
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
@@ -513,6 +548,35 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
513
548
|
/** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */
|
|
514
549
|
namespaceExportName: z.ZodOptional<z.ZodString>;
|
|
515
550
|
consolidateTypeFiles: z.ZodOptional<z.ZodBoolean>;
|
|
551
|
+
formDataSupport: z.ZodOptional<z.ZodEnum<{
|
|
552
|
+
Node16: "Node16";
|
|
553
|
+
Node18: "Node18";
|
|
554
|
+
}>>;
|
|
555
|
+
allowExtraFields: z.ZodOptional<z.ZodBoolean>;
|
|
556
|
+
generateSubpackageExports: z.ZodOptional<z.ZodBoolean>;
|
|
557
|
+
exportAllRequestsAtRoot: z.ZodOptional<z.ZodBoolean>;
|
|
558
|
+
generateEndpointMetadata: z.ZodOptional<z.ZodBoolean>;
|
|
559
|
+
outputEsm: z.ZodOptional<z.ZodBoolean>;
|
|
560
|
+
neverThrowErrors: z.ZodOptional<z.ZodBoolean>;
|
|
561
|
+
includeOtherInUnionTypes: z.ZodOptional<z.ZodBoolean>;
|
|
562
|
+
includeUtilsOnUnionMembers: z.ZodOptional<z.ZodBoolean>;
|
|
563
|
+
omitFernHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
564
|
+
linter: z.ZodOptional<z.ZodEnum<{
|
|
565
|
+
biome: "biome";
|
|
566
|
+
oxlint: "oxlint";
|
|
567
|
+
none: "none";
|
|
568
|
+
}>>;
|
|
569
|
+
formatter: z.ZodOptional<z.ZodEnum<{
|
|
570
|
+
biome: "biome";
|
|
571
|
+
none: "none";
|
|
572
|
+
prettier: "prettier";
|
|
573
|
+
oxfmt: "oxfmt";
|
|
574
|
+
}>>;
|
|
575
|
+
exports: z.ZodOptional<z.ZodType<JsonObject, unknown, z.core.$ZodTypeInternals<JsonObject, unknown>>>;
|
|
576
|
+
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
577
|
+
engines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
578
|
+
lintStaged: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
579
|
+
browser: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
516
580
|
allowCustomFetcher: z.ZodOptional<z.ZodBoolean>;
|
|
517
581
|
useBrandedStringAliases: z.ZodOptional<z.ZodBoolean>;
|
|
518
582
|
useLegacyExports: z.ZodOptional<z.ZodBoolean>;
|
package/package.json
CHANGED
|
@@ -239,6 +239,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
|
|
|
239
239
|
| `user-agent`, `includePlatformHeaders`, `allowUserAgentAppInfo` | `client.userAgent` | Not in the project snapshot; see below |
|
|
240
240
|
| `offsetSemantics` | `client.offsetSemantics` | Not in the project snapshot; see below |
|
|
241
241
|
| `enable-wire-tests`, `enableWireTests`, `generateWireTests` | `generation.wireTests` | 1-15 per language |
|
|
242
|
+
| TypeScript `wireTestsFallbackToAutoGeneratedErrorExamples` | `generation.wireTests.fallbackToGeneratedErrorExamples` | Not in the project snapshot; see below |
|
|
242
243
|
| WebSocket generation aliases | `generation.webSockets` | 3 TS, 3 Python |
|
|
243
244
|
| `streamType`, `fileResponseType` | `generation.streams` | 1 TS |
|
|
244
245
|
| client/exported/environment class aliases | `generation.naming` | 1-28 per language |
|
|
@@ -246,7 +247,7 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
|
|
|
246
247
|
| namespace/package-prefix aliases | `package.namespace` | 1-30 per language |
|
|
247
248
|
| output registry package names | `package.packageName` | 5-28 per registry language |
|
|
248
249
|
| TypeScript `packageJson` / PHP `composerJson` portable metadata | `package.packageName`, `description`, `authors`, and `license` | Portable subset only. |
|
|
249
|
-
| TypeScript `fetchSupport
|
|
250
|
+
| TypeScript `fetchSupport` | `generation.language.typescript.httpClient.name`: `native` is `"fetch"`, `node-fetch` is `"node-fetch"` | Native only. |
|
|
250
251
|
| Python custom `package_name` | `package.moduleName` | 18 |
|
|
251
252
|
| Python `additional_init_exports` | `generation.language.python.additionalInitExports` | 3 |
|
|
252
253
|
| Go `module.path` | `package.modulePath` | 3 |
|
|
@@ -263,6 +264,49 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
|
|
|
263
264
|
| Fern README config | `docs.readme` | 12 API names; 11 disabled-section configs |
|
|
264
265
|
| `customReadmeSections` | `docs.readme.customSections` | Not in the project snapshot; see below |
|
|
265
266
|
| `includeApiReference` | `docs.includeApiReference` | 10 TS |
|
|
267
|
+
| TypeScript `formDataSupport` | `generation.language.typescript.formDataSupport` | Not in the project snapshot; see below |
|
|
268
|
+
| TypeScript `allowExtraFields` | `generation.language.typescript.allowExtraFields` | Not in the project snapshot; see below |
|
|
269
|
+
| TypeScript `generateSubpackageExports` | `generation.language.typescript.generateSubpackageExports` | Not in the project snapshot; see below |
|
|
270
|
+
|
|
271
|
+
The TypeScript options below are copied by the mapper only when they have the declared type, and
|
|
272
|
+
anything else is reported in `compatibility.unsupportedFields`. Omitted options stay omitted; the
|
|
273
|
+
generator applies Fern's defaults. Each maps to the field of the same name in
|
|
274
|
+
`generation.language.typescript` unless noted. The mapper reads them for the TypeScript SDK generator
|
|
275
|
+
only. The MCP generator's converter has never read them, so an MCP config that sets one still
|
|
276
|
+
reports it in `compatibility.unsupportedFields` (`fetchSupport: node-fetch` included; `native` still
|
|
277
|
+
maps).
|
|
278
|
+
|
|
279
|
+
| Fern option | Values | Fern default | Maps to |
|
|
280
|
+
| -------------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------- |
|
|
281
|
+
| `formDataSupport` | `Node16`, `Node18` | `Node18` | |
|
|
282
|
+
| `allowExtraFields` | boolean | `false` | |
|
|
283
|
+
| `generateSubpackageExports` | boolean | `true` | |
|
|
284
|
+
| `exportAllRequestsAtRoot`, `generateEndpointMetadata`, `outputEsm`, `neverThrowErrors` | boolean | `false` | |
|
|
285
|
+
| `includeOtherInUnionTypes`, `includeUtilsOnUnionMembers`, `omitFernHeaders` | boolean | `false` | |
|
|
286
|
+
| `linter` | `biome`, `oxlint`, `none` | `biome` | |
|
|
287
|
+
| `formatter` | `prettier`, `biome`, `oxfmt`, `none` | `biome` | |
|
|
288
|
+
| `fetchSupport` | `native`, `node-fetch` | `native` | `httpClient.name` (`fetch`, `node-fetch`) |
|
|
289
|
+
| `wireTestsFallbackToAutoGeneratedErrorExamples` | boolean | `true` | `generation.wireTests.fallbackToGeneratedErrorExamples` |
|
|
290
|
+
| `packageJson.exports` | object keyed by subpath | generated map | `exports` |
|
|
291
|
+
| `packageJson.scripts` | object of name to command | generated scripts | `scripts` (`{ name, command }` list) |
|
|
292
|
+
| `packageJson.files` | string list | generated list | `files` |
|
|
293
|
+
| `packageJson.engines` | object of name to range | generated (`node >=18.0.0`) | `engines` |
|
|
294
|
+
| `packageJson["lint-staged"]` | object of glob to commands | none | `lintStaged` |
|
|
295
|
+
| `packageJson.browser` | object of module to `false` or path | generated (`fs`, `os`, `path`, `stream`, `crypto` set to `false`) | `browser` |
|
|
296
|
+
| `packageJson.bugs` | URL string, or `{ url, email }` | none | `package.bugs` |
|
|
297
|
+
| `packageJson.repository` | URL string, or `{ type: "git", url }` | none | `package.repository` |
|
|
298
|
+
|
|
299
|
+
`generation.wireTests` requires `enabled`, and Fern generates wire tests unless told not to, so a
|
|
300
|
+
config that sets only the fallback option maps to `{ enabled: true, fallbackToGeneratedErrorExamples }`.
|
|
301
|
+
The `packageJson` keys above are the ones that have a typed home. For `engines` and `browser`, Fern merges the
|
|
302
|
+
customer's entries into the generated object key by key, so a customer `node` range replaces the generated one and a
|
|
303
|
+
customer `browser` entry is added to the generated ones. Fern merges the values you set over
|
|
304
|
+
the generated `package.json`; `files` entries come first, and `exports` subpaths replace the
|
|
305
|
+
generated ones one subpath at a time (Fern's default `shallow` merge; `packageJsonMergeStrategy` is
|
|
306
|
+
not carried). A key outside this list, a repository `directory`, or a repository `type` other than
|
|
307
|
+
`git` is still reported as unsupported.
|
|
308
|
+
`outputEsm` marks the package as an ES module while still shipping its CommonJS build; `esmOnly`
|
|
309
|
+
drops the CommonJS build.
|
|
266
310
|
|
|
267
311
|
The Rust language config was added after the initial audit. That audit compared existing Fern
|
|
268
312
|
_customer projects_, which surfaced no Rust-specific options; comparing the Fern Rust generator's
|
|
@@ -359,19 +403,19 @@ project's OpenAPI specs carry it too and are refused for it.
|
|
|
359
403
|
|
|
360
404
|
Only options that remain language-specific stay in `generation.language`.
|
|
361
405
|
|
|
362
|
-
| Language | Fern fields retained in language config
|
|
363
|
-
| ----------- |
|
|
364
|
-
| 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 |
|
|
365
|
-
| Python | Python/Pydantic versions, client filenames, model switches, TypedDict requests, redirect/chunk/recursion compatibility, and package extras
|
|
366
|
-
| Java/Kotlin | Package layout (3), local dates (2), optional-nullable collapse (2), Gradle settings (7), and JVM async-client style
|
|
367
|
-
| Go | Legacy complex models, union version (3), legacy client options (1), and the fern root-client constructor name
|
|
368
|
-
| C# | Optional wrapper, simplified dictionaries (1), explicit namespaces (7), core namespace behavior (1), exception handler (5), and the experimental explicit-nullable-optional switch
|
|
369
|
-
| PHP | Property access (2) and generated client interfaces (1)
|
|
370
|
-
| Ruby | Require paths (2)
|
|
371
|
-
| Rust | Datetime representation, initialism casing, and Cargo features/default-features
|
|
372
|
-
| Swift | Module name and the nullable-as-optional collapse
|
|
373
|
-
| CLI | Pagination parameter names, the `skills` boolean, and the typed CLI settings below
|
|
374
|
-
| MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options
|
|
406
|
+
| Language | Fern fields retained in language config | Shared mappings lifted out |
|
|
407
|
+
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
408
|
+
| TypeScript | `packageManager` (1), `testFramework` (2), `namespaceExportName`, `allowCustomFetcher` (13), branded aliases (1), legacy exports (1), `formDataSupport`, `allowExtraFields`, `generateSubpackageExports`, `exportAllRequestsAtRoot`, `generateEndpointMetadata`, `outputEsm`, `neverThrowErrors`, `includeOtherInUnionTypes`, `includeUtilsOnUnionMembers`, `omitFernHeaders`, `linter`, `formatter`, `useBigInt`, and positive `serdeLayer` from `noSerdeLayer` (8) | Namespace, validation, inline types, dependencies, wire tests, streams, WebSockets, pager/client names |
|
|
409
|
+
| 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 |
|
|
410
|
+
| 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 |
|
|
411
|
+
| 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 |
|
|
412
|
+
| 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 |
|
|
413
|
+
| PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests, idempotency keys, User-Agent, offset semantics |
|
|
414
|
+
| Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
|
|
415
|
+
| Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
|
|
416
|
+
| Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields. |
|
|
417
|
+
| CLI | Pagination parameter names, the `skills` boolean, and the typed CLI settings below | Go module and package identity use `package`. |
|
|
418
|
+
| MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior |
|
|
375
419
|
|
|
376
420
|
`generation.language.cli` also accepts the typed CLI settings `binaryName`, `customCommands`,
|
|
377
421
|
`rootGroup`, `profiles`, `splitTypeCrates`, and `userAgentSuffixFlag`. Their shapes, validation,
|
|
@@ -400,18 +444,22 @@ the migration.
|
|
|
400
444
|
|
|
401
445
|
### Removed after finding no customer use and no sdk-gen-core equivalent
|
|
402
446
|
|
|
403
|
-
- Common Fern generation: the omit platform-header override (`omitFernHeaders`)
|
|
404
|
-
defaults own
|
|
405
|
-
|
|
447
|
+
- Common Fern generation: the omit platform-header override (`omitFernHeaders`) was removed from the
|
|
448
|
+
shared blocks, and Output-profile defaults own that compatibility behavior. The include side was
|
|
449
|
+
re-added as `client.userAgent.includePlatformInfo` once the Fern PHP generator documented it. The
|
|
450
|
+
TypeScript `omitFernHeaders` option is carried as its own TypeScript setting because real
|
|
451
|
+
TypeScript configs set it.
|
|
406
452
|
- Source import: optional-additional-properties defaults, environment grouping strategies,
|
|
407
453
|
discriminant removal, forward-compatible inference, default environment inference, const
|
|
408
454
|
coercion, endpoint filters, example-depth controls, alias resolution, single-schema oneOf
|
|
409
455
|
preservation, read-variant responses, binary-response import coercion, form encoding defaults,
|
|
410
456
|
additional-properties defaults, and discriminated-union inference.
|
|
411
|
-
- TypeScript:
|
|
412
|
-
type files
|
|
413
|
-
|
|
414
|
-
|
|
457
|
+
- TypeScript: the options once removed here were re-added as real configs turned up. Consolidated
|
|
458
|
+
type files is `consolidateTypeFiles` (`intercom` and `auth0_fern` set it), subpackage exports is
|
|
459
|
+
`generateSubpackageExports` (`auth0_fern`, `auth0_teams`, `corti_latest`, and `merge` set it),
|
|
460
|
+
and linter/formatter selection and endpoint metadata are `linter`, `formatter`, and
|
|
461
|
+
`generateEndpointMetadata` (`auth0_fern` and `auth0_teams` set them). None of these entries
|
|
462
|
+
applies to those options any more.
|
|
415
463
|
- Python: ORM/smart-union/coercion/wrapped-alias/positional-constructor/inheritance/validator
|
|
416
464
|
switches, flattened union bodies, lazy imports, and custom transport.
|
|
417
465
|
- Java/JVM: JSON include, required-builder checks, public/extensible constructors, unknown-as-node,
|
|
@@ -425,16 +473,16 @@ the migration.
|
|
|
425
473
|
|
|
426
474
|
### Observed but deliberately deferred as bespoke or low-use
|
|
427
475
|
|
|
428
|
-
| Legacy configuration
|
|
429
|
-
|
|
|
430
|
-
| TypeScript
|
|
431
|
-
|
|
|
432
|
-
| Python excluded `__init__` exports
|
|
433
|
-
| Python improved imports and file-upload-only TypedDict mode
|
|
434
|
-
| Java custom Gradle plugins / include-wrapper
|
|
435
|
-
| C# experimental fully qualified/version namespaces
|
|
436
|
-
| PHP arbitrary Composer autoload files
|
|
437
|
-
| Ruby flattened module structure
|
|
476
|
+
| Legacy configuration | Observed projects | Reason |
|
|
477
|
+
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------: | ------------------------------------------------------------------------------------------------------------- |
|
|
478
|
+
| TypeScript `packageJson` keys without a typed field (everything but `exports`, `scripts`, `files`, `engines`, `lint-staged`, `browser`, `bugs`, `repository` and the portable metadata) | 2 | Open-ended manifest rewriting conflicts with the typed package contract. |
|
|
479
|
+
| README `exampleStyle` | 1 | Only the Fern Java generator reads it and no Postman generator does, so a typed field would have no consumer. |
|
|
480
|
+
| Python excluded `__init__` exports | 6 | File-layout customization with significant generator coupling. |
|
|
481
|
+
| Python improved imports and file-upload-only TypedDict mode | 1-3 | Experimental or narrow compatibility behavior. |
|
|
482
|
+
| Java custom Gradle plugins / include-wrapper | 1 | Arbitrary build-file injection or one-customer behavior. |
|
|
483
|
+
| C# experimental fully qualified/version namespaces | 1 | Experimental one-customer behavior. |
|
|
484
|
+
| PHP arbitrary Composer autoload files | 2 | Open-ended manifest rewriting; typed dependencies remain supported. |
|
|
485
|
+
| Ruby flattened module structure | 1 | One-customer layout behavior. |
|
|
438
486
|
|
|
439
487
|
Adding one of these fields later is additive. Retaining every historical generator flag now would
|
|
440
488
|
make v1 expensive to implement and would turn temporary compatibility behavior into a permanent
|