@postman/sdk-config 0.7.0 → 0.9.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/README.md +1 -3
- package/dist/index.cjs +882 -747
- 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 +882 -747
- package/dist/index.js.map +1 -1
- package/dist/sdk-config/index.cjs +644 -544
- 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 +644 -544
- package/dist/sdk-config/index.js.map +1 -1
- package/dist/sdk-config/v1/index.cjs +644 -544
- package/dist/sdk-config/v1/index.cjs.map +1 -1
- package/dist/sdk-config/v1/index.d.cts +581 -1047
- package/dist/sdk-config/v1/index.d.ts +581 -1047
- package/dist/sdk-config/v1/index.js +644 -544
- package/dist/sdk-config/v1/index.js.map +1 -1
- package/dist/sdk-config-ir/index.cjs +627 -541
- 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 +627 -541
- package/dist/sdk-config-ir/index.js.map +1 -1
- package/dist/sdk-config-ir/v1/index.cjs +627 -541
- package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
- package/dist/sdk-config-ir/v1/index.d.cts +59 -17
- package/dist/sdk-config-ir/v1/index.d.ts +59 -17
- package/dist/sdk-config-ir/v1/index.js +627 -541
- package/dist/sdk-config-ir/v1/index.js.map +1 -1
- package/dist/{typescript-BdDv_kwT.d.cts → typescript-Chge0X4f.d.cts} +1 -2
- package/dist/{typescript-BdDv_kwT.d.ts → typescript-Chge0X4f.d.ts} +1 -2
- package/package.json +1 -1
- package/src/sdk-config/v1/README.md +15 -14
- package/src/sdk-config-ir/v1/README.md +29 -15
|
@@ -292,9 +292,9 @@ declare const pythonGenerationConfigSchema: z.ZodObject<{
|
|
|
292
292
|
pydanticVersion: z.ZodOptional<z.ZodString>;
|
|
293
293
|
pydantic: z.ZodOptional<z.ZodObject<{
|
|
294
294
|
versionCompatibility: z.ZodOptional<z.ZodEnum<{
|
|
295
|
-
both: "both";
|
|
296
295
|
v1: "v1";
|
|
297
296
|
v2: "v2";
|
|
297
|
+
both: "both";
|
|
298
298
|
"v1-on-v2": "v1-on-v2";
|
|
299
299
|
}>>;
|
|
300
300
|
frozen: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -419,7 +419,6 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
419
419
|
pnpm: "pnpm";
|
|
420
420
|
yarn: "yarn";
|
|
421
421
|
}>>;
|
|
422
|
-
/** e.g. `1.22.22` — from the customer's own `config.packageJson.packageManager` (`yarn@1.22.22`). */
|
|
423
422
|
packageManagerVersion: z.ZodOptional<z.ZodString>;
|
|
424
423
|
testFramework: z.ZodOptional<z.ZodEnum<{
|
|
425
424
|
jest: "jest";
|
|
@@ -292,9 +292,9 @@ declare const pythonGenerationConfigSchema: z.ZodObject<{
|
|
|
292
292
|
pydanticVersion: z.ZodOptional<z.ZodString>;
|
|
293
293
|
pydantic: z.ZodOptional<z.ZodObject<{
|
|
294
294
|
versionCompatibility: z.ZodOptional<z.ZodEnum<{
|
|
295
|
-
both: "both";
|
|
296
295
|
v1: "v1";
|
|
297
296
|
v2: "v2";
|
|
297
|
+
both: "both";
|
|
298
298
|
"v1-on-v2": "v1-on-v2";
|
|
299
299
|
}>>;
|
|
300
300
|
frozen: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -419,7 +419,6 @@ declare const typescriptGenerationConfigSchema: z.ZodObject<{
|
|
|
419
419
|
pnpm: "pnpm";
|
|
420
420
|
yarn: "yarn";
|
|
421
421
|
}>>;
|
|
422
|
-
/** e.g. `1.22.22` — from the customer's own `config.packageJson.packageManager` (`yarn@1.22.22`). */
|
|
423
422
|
packageManagerVersion: z.ZodOptional<z.ZodString>;
|
|
424
423
|
testFramework: z.ZodOptional<z.ZodEnum<{
|
|
425
424
|
jest: "jest";
|
package/package.json
CHANGED
|
@@ -63,8 +63,9 @@ severity, reason, suggested manual action, and the SDK Config destination when o
|
|
|
63
63
|
cases. Generation must not recover omitted values from legacy configuration. Differing
|
|
64
64
|
target-specific values are retained as sparse target overrides when the public shape can represent
|
|
65
65
|
them. Optional `api` enrichment may be supplied after Fern's definition or IR has already been
|
|
66
|
-
lowered into the public API shape.
|
|
67
|
-
|
|
66
|
+
lowered into the public API shape. Supported registry credentials, signing material, and GitHub
|
|
67
|
+
credentials are preserved in SDK Config when present; callers must treat these fields as sensitive
|
|
68
|
+
secrets.
|
|
68
69
|
|
|
69
70
|
## Contract boundaries
|
|
70
71
|
|
|
@@ -88,12 +89,14 @@ server-generated artifact metadata are not valid public locators. The public sch
|
|
|
88
89
|
no `compatibility`, source-origin, artifact ID, credential-resolution, or server-generated
|
|
89
90
|
publishing control fields. Supported registry credentials are flat fields selected by the `registry`
|
|
90
91
|
discriminator: npm and crates accept `token`, PyPI and Maven accept `username` and `password`, and
|
|
91
|
-
Maven accepts a complete `signature` containing `keyId`, `password`, and `secretKey`.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
Maven accepts a complete `signature` containing `keyId`, `password`, and `secretKey`. GitHub delivery
|
|
93
|
+
accepts a `credentials` object containing `username`, `password`, `token`, or `apiKey`. Use
|
|
94
|
+
environment expressions such as `${NPM_TOKEN}` for every credential rather than literal values.
|
|
95
|
+
Unknown fields are rejected at every object boundary. Fern migration copies credential fields only
|
|
96
|
+
when their raw `generators.yml` values are exact environment expressions. It never treats normalized
|
|
97
|
+
or resolved output as credential provenance; literals and untraceable values are omitted with
|
|
98
|
+
credential-safe warnings. Portable API, client, documentation, package, source settings, and
|
|
99
|
+
language field schemas
|
|
97
100
|
come from a neutral shared domain layer to prevent drift; the public and internal envelopes and
|
|
98
101
|
their operational extensions remain separate explicit allowlists.
|
|
99
102
|
|
|
@@ -117,8 +120,6 @@ segments. Absolute paths and `..` traversal are rejected at validation time.
|
|
|
117
120
|
"output": { "delivery": "zip" },
|
|
118
121
|
"replay": { "enabled": false },
|
|
119
122
|
"generation": {
|
|
120
|
-
"includeWatermark": true,
|
|
121
|
-
"generateFullProject": false,
|
|
122
123
|
"naming": { "smartCasing": true, "smartCasingDigitWordBoundary": false }
|
|
123
124
|
},
|
|
124
125
|
"targets": [
|
|
@@ -213,10 +214,10 @@ while an explicitly supplied array replaces the inherited array.
|
|
|
213
214
|
|
|
214
215
|
An integration may also supply operational values at generation time. Those request values take
|
|
215
216
|
precedence over the persisted SDK Config for fields the integration exposes, such as SDK name,
|
|
216
|
-
SDK version, API version, package settings, generator version, output intent
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
217
|
+
SDK version, API version, package settings, generator version, and output intent. Operational
|
|
218
|
+
packaging controls remain on the generation request rather than in the customer-authored SDK
|
|
219
|
+
Config. Schema/domain defaults are applied only after this merge, when the single-target
|
|
220
|
+
`SdkConfigIrV1` is parsed.
|
|
220
221
|
|
|
221
222
|
Package publication requirements are validated after applying package and output precedence. For
|
|
222
223
|
example, a TypeScript target publishing to npm may inherit a root `packageName`, while a Python
|
|
@@ -226,6 +226,9 @@ audited on 2026-07-17. Counts guide the initial contract; they are not a permane
|
|
|
226
226
|
| `skipResponseValidation`, Python `pydantic_config.skip_validation` | `client.responseValidation` | Inverted; 12 TS, 8 Python |
|
|
227
227
|
| `useDefaultRequestParameterValues` aliases | `client.useDefaultRequestParameterValues` | 1 |
|
|
228
228
|
| `respectOptionalRequestBody`, `respect-optional-request-body` | `client.respectOptionalRequestBody` | Not in the project snapshot; see below |
|
|
229
|
+
| `auto-generate-idempotency-key`, API-wide setting | `client.idempotencyKeyGeneration` | Not in the project snapshot; see below |
|
|
230
|
+
| `user-agent`, `includePlatformHeaders`, `allowUserAgentAppInfo` | `client.userAgent` | Not in the project snapshot; see below |
|
|
231
|
+
| `offsetSemantics` | `client.offsetSemantics` | Not in the project snapshot; see below |
|
|
229
232
|
| `enable-wire-tests`, `enableWireTests`, `generateWireTests` | `generation.wireTests` | 1-15 per language |
|
|
230
233
|
| WebSocket generation aliases | `generation.webSockets` | 3 TS, 3 Python |
|
|
231
234
|
| `streamType`, `fileResponseType` | `generation.streams` | 1 TS |
|
|
@@ -273,6 +276,16 @@ enabling it changes the signature of every endpoint whose body the API declares
|
|
|
273
276
|
absent must keep an existing SDK's signatures rather than assert a value the generator would then
|
|
274
277
|
have to honour.
|
|
275
278
|
|
|
279
|
+
`client.idempotencyKeyGeneration`, `client.userAgent` and `client.offsetSemantics` come from the
|
|
280
|
+
Fern PHP configuration page and also postdate the snapshot. Fern's `auto-generate-idempotency-key` is
|
|
281
|
+
`true`, `false`, or an object of `header-name` and `methods` (which enables it); `enabled` is always
|
|
282
|
+
explicit, so a generator's `false` can opt out of the API-wide `api.settings` value, which the
|
|
283
|
+
translator reads from the resolved `idempotencyKeyGenerationConfig` when the generator sets none. An
|
|
284
|
+
object the translator cannot fully read is reported rather than enabled with defaults. The User-Agent
|
|
285
|
+
options are grouped because they describe one header: `template` is Fern's `user-agent`,
|
|
286
|
+
`includePlatformInfo` is `includePlatformHeaders`, and `allowAppInfo` is `allowUserAgentAppInfo`.
|
|
287
|
+
All three stay undefaulted, for the same reason as `respectOptionalRequestBody`.
|
|
288
|
+
|
|
276
289
|
Fern README endpoint strings such as `GET /users` are parsed into
|
|
277
290
|
`{ "method": "GET", "path": "/users" }`; the legacy string shorthand is not part of the
|
|
278
291
|
normalized contract.
|
|
@@ -337,19 +350,19 @@ project's OpenAPI specs carry it too and are refused for it.
|
|
|
337
350
|
|
|
338
351
|
Only options that remain language-specific stay in `generation.language`.
|
|
339
352
|
|
|
340
|
-
| Language | Fern fields retained in language config | Shared mappings lifted out
|
|
341
|
-
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
342
|
-
| 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
|
|
343
|
-
| 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
|
|
344
|
-
| 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
|
|
345
|
-
| 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
|
|
346
|
-
| 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
|
|
347
|
-
| PHP | Property access (2) and generated client interfaces (1) | Composer identity, namespace, client/pager names, request style, dependencies, wire tests
|
|
348
|
-
| Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests
|
|
349
|
-
| Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields.
|
|
350
|
-
| Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields.
|
|
351
|
-
| CLI | Pagination parameter names and the `skills` boolean | Go module and package identity use `package`.
|
|
352
|
-
| MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior
|
|
353
|
+
| Language | Fern fields retained in language config | Shared mappings lifted out |
|
|
354
|
+
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
355
|
+
| 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 |
|
|
356
|
+
| 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 |
|
|
357
|
+
| 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 |
|
|
358
|
+
| 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 |
|
|
359
|
+
| 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 |
|
|
360
|
+
| 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 |
|
|
361
|
+
| Ruby | Require paths (2) | Gem identity, client name, dependencies, pager, wire tests |
|
|
362
|
+
| Rust | Datetime representation, initialism casing, and Cargo features/default-features | Crate identity, client name, and package metadata use shared fields. |
|
|
363
|
+
| Swift | Module name and the nullable-as-optional collapse | Client, environment and error naming use shared fields. |
|
|
364
|
+
| CLI | Pagination parameter names and the `skills` boolean | Go module and package identity use `package`. |
|
|
365
|
+
| MCP | Server identity, availability exclusions, tool filters and named toolsets, plus the TypeScript options | npm package identity, client and serialization behavior |
|
|
353
366
|
|
|
354
367
|
## Removed and deferred legacy configuration
|
|
355
368
|
|
|
@@ -359,8 +372,9 @@ the migration.
|
|
|
359
372
|
|
|
360
373
|
### Removed after finding no customer use and no sdk-gen-core equivalent
|
|
361
374
|
|
|
362
|
-
- Common Fern generation:
|
|
363
|
-
compatibility behavior instead of a second permanent switch.
|
|
375
|
+
- Common Fern generation: the omit platform-header override (`omitFernHeaders`). Output-profile
|
|
376
|
+
defaults own this compatibility behavior instead of a second permanent switch. The include side
|
|
377
|
+
was re-added as `client.userAgent.includePlatformInfo` once the Fern PHP generator documented it.
|
|
364
378
|
- Source import: optional-additional-properties defaults, environment grouping strategies,
|
|
365
379
|
discriminant removal, forward-compatible inference, default environment inference, const
|
|
366
380
|
coercion, endpoint filters, example-depth controls, alias resolution, single-schema oneOf
|