@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
@@ -7,7 +7,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var semver__default = /*#__PURE__*/_interopDefault(semver);
9
9
 
10
- // src/sdk-config-ir/v1/api.ts
10
+ // src/sdk-config-domain/v1/api.ts
11
11
  var nonEmptyStringSchema = zod.z.string().min(1);
12
12
  var exactSemverSchema = zod.z.string().refine(
13
13
  (value) => {
@@ -31,7 +31,7 @@ var jsonValueSchema = zod.z.lazy(
31
31
  );
32
32
  var jsonObjectSchema = zod.z.record(zod.z.string(), jsonValueSchema);
33
33
 
34
- // src/sdk-config-ir/v1/api.ts
34
+ // src/sdk-config-domain/v1/api.ts
35
35
  var authVariableSchema = zod.z.strictObject({
36
36
  name: nonEmptyStringSchema.optional(),
37
37
  environmentVariable: nonEmptyStringSchema.optional(),
@@ -181,7 +181,14 @@ var apiConfigSchema = zod.z.strictObject({
181
181
  environmentVariables: zod.z.array(environmentVariableSchema).default([]),
182
182
  defaultEnvironment: nonEmptyStringSchema.optional(),
183
183
  auth: authConfigSchema.optional(),
184
- headers: zod.z.array(headerSchema).optional()
184
+ headers: zod.z.array(headerSchema).optional(),
185
+ /**
186
+ * Selects the named `x-fern-audiences`.
187
+ *
188
+ * Absent means all audiences. A present empty array selects no tagged audience: untagged nodes
189
+ * remain included, while every audience-tagged node is excluded.
190
+ */
191
+ audiences: zod.z.array(nonEmptyStringSchema).optional()
185
192
  });
186
193
  var retryConfigSchema = zod.z.strictObject({
187
194
  enabled: zod.z.boolean().default(true),
@@ -235,6 +242,7 @@ var clientConfigSchema = zod.z.strictObject({
235
242
  pathParameterStyle: parameterStyleSchema.optional(),
236
243
  filePropertyStyle: parameterStyleSchema.optional(),
237
244
  useDefaultRequestParameterValues: zod.z.boolean().optional(),
245
+ respectOptionalRequestBody: zod.z.boolean().optional(),
238
246
  tokenRefresh: tokenRefreshConfigSchema.optional()
239
247
  });
240
248
  var unsupportedFieldSchema = zod.z.strictObject({
@@ -280,12 +288,17 @@ var readmeEndpointSchema = zod.z.strictObject({
280
288
  path: nonEmptyStringSchema,
281
289
  stream: zod.z.boolean().optional()
282
290
  });
291
+ var readmeCustomSectionSchema = zod.z.strictObject({
292
+ title: nonEmptyStringSchema,
293
+ content: zod.z.string()
294
+ });
283
295
  var readmeConfigSchema = zod.z.strictObject({
284
296
  apiName: nonEmptyStringSchema.optional(),
285
297
  introduction: zod.z.string().optional(),
286
298
  apiReferenceLink: nonEmptyStringSchema.optional(),
287
299
  bannerLink: nonEmptyStringSchema.optional(),
288
300
  disabledSections: zod.z.array(nonEmptyStringSchema).optional(),
301
+ customSections: zod.z.array(readmeCustomSectionSchema).optional(),
289
302
  defaultEndpoint: readmeEndpointSchema.optional(),
290
303
  features: zod.z.record(zod.z.string(), zod.z.array(readmeEndpointSchema)).optional()
291
304
  });
@@ -309,10 +322,15 @@ var csharpGenerationConfigSchema = zod.z.strictObject({
309
322
  simplifyObjectDictionaries: zod.z.boolean().optional(),
310
323
  explicitNamespaces: zod.z.boolean().optional(),
311
324
  rootNamespaceForCoreClasses: zod.z.boolean().optional(),
312
- includeExceptionHandler: zod.z.boolean().optional()
325
+ includeExceptionHandler: zod.z.boolean().optional(),
326
+ experimentalExplicitNullableOptional: zod.z.boolean().optional()
313
327
  });
314
328
  var goGenerationConfigSchema = zod.z.strictObject({
315
329
  legacyComplexModels: zod.z.boolean().optional(),
330
+ /** Uppercase common initialisms in generated names (`UserID` rather than `UserId`). */
331
+ smartCasing: zod.z.boolean().optional(),
332
+ /** Overrides the fern root-client constructor independently from the client type name. */
333
+ clientConstructorName: nonEmptyStringSchema.optional(),
316
334
  unionVersion: zod.z.enum(["v0", "v1"]).optional(),
317
335
  includeLegacyClientOptions: zod.z.boolean().optional()
318
336
  });
@@ -322,15 +340,17 @@ var jvmGenerationConfigSchema = zod.z.strictObject({
322
340
  collapseOptionalNullable: zod.z.boolean().optional(),
323
341
  gradleDistributionUrl: zod.z.string().min(1).optional(),
324
342
  gradlePluginManagement: zod.z.string().optional(),
325
- gradleCentralDependencyManagement: zod.z.boolean().optional()
343
+ gradleCentralDependencyManagement: zod.z.boolean().optional(),
344
+ /** Selects co-located async methods or a separate async client surface. */
345
+ asyncStyle: zod.z.enum(["dedicated-client", "twin-methods"]).optional()
326
346
  });
327
347
 
328
- // src/sdk-config-ir/v1/language/java.ts
348
+ // src/sdk-config-domain/v1/language/java.ts
329
349
  var javaGenerationConfigSchema = jvmGenerationConfigSchema.extend({
330
350
  includeKotlinSnippets: zod.z.boolean().optional()
331
351
  });
332
352
 
333
- // src/sdk-config-ir/v1/language/kotlin.ts
353
+ // src/sdk-config-domain/v1/language/kotlin.ts
334
354
  var kotlinGenerationConfigSchema = jvmGenerationConfigSchema;
335
355
  var compilerOptionsSchema = zod.z.strictObject({
336
356
  target: nonEmptyStringSchema.optional(),
@@ -362,8 +382,32 @@ var typescriptGenerationConfigSchema = zod.z.strictObject({
362
382
  scripts: zod.z.array(packageScriptSchema).optional()
363
383
  });
364
384
 
365
- // src/sdk-config-ir/v1/language/mcp.ts
366
- var mcpGenerationConfigSchema = typescriptGenerationConfigSchema;
385
+ // src/sdk-config-domain/v1/language/mcp.ts
386
+ var mcpAvailabilityStatuses = [
387
+ "IN_DEVELOPMENT",
388
+ "PRE_RELEASE",
389
+ "GENERAL_AVAILABILITY",
390
+ "DEPRECATED",
391
+ "ALPHA",
392
+ "BETA",
393
+ "PREVIEW",
394
+ "LEGACY"
395
+ ];
396
+ var mcpToolFilterSchema = zod.z.strictObject({
397
+ include: zod.z.array(nonEmptyStringSchema).optional(),
398
+ exclude: zod.z.array(nonEmptyStringSchema).optional()
399
+ });
400
+ var mcpToolsetNameSchema = nonEmptyStringSchema.refine(
401
+ (name) => name !== "default" && /^[a-z0-9-]+$/.test(name),
402
+ 'toolset names must match [a-z0-9-]+ and cannot be "default"'
403
+ );
404
+ var mcpGenerationConfigSchema = typescriptGenerationConfigSchema.extend({
405
+ serverName: nonEmptyStringSchema.optional(),
406
+ serverDescription: nonEmptyStringSchema.optional(),
407
+ excludeAvailability: zod.z.array(zod.z.enum(mcpAvailabilityStatuses)).optional(),
408
+ tools: mcpToolFilterSchema.optional(),
409
+ toolsets: zod.z.record(mcpToolsetNameSchema, mcpToolFilterSchema).optional()
410
+ });
367
411
  var phpGenerationConfigSchema = zod.z.strictObject({
368
412
  propertyAccess: zod.z.enum(["public", "private"]).optional(),
369
413
  generateClientInterfaces: zod.z.boolean().optional()
@@ -404,7 +448,8 @@ var rustGenerationConfigSchema = zod.z.strictObject({
404
448
  defaultFeatures: zod.z.array(nonEmptyStringSchema).optional()
405
449
  });
406
450
  var swiftGenerationConfigSchema = zod.z.strictObject({
407
- moduleName: nonEmptyStringSchema.optional()
451
+ moduleName: nonEmptyStringSchema.optional(),
452
+ nullableAsOptional: zod.z.boolean().optional()
408
453
  });
409
454
  var goModulePathSchema = nonEmptyStringSchema.regex(
410
455
  /^(?!.*(?:^|\/)\.{1,2}(?:\/|$))[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)+$/,
@@ -485,7 +530,7 @@ var packageConfigSchema = zod.z.strictObject({
485
530
  extraPeerDependencies: zod.z.array(dependencySchema).optional()
486
531
  });
487
532
 
488
- // src/sdk-config-ir/v1/language/terraform.ts
533
+ // src/sdk-config-domain/v1/language/terraform.ts
489
534
  var planModifierSourceSchema = zod.z.discriminatedUnion("enabled", [
490
535
  zod.z.strictObject({ enabled: zod.z.literal(true), sourceDir: nonEmptyStringSchema }),
491
536
  zod.z.strictObject({ enabled: zod.z.literal(false) })
@@ -559,7 +604,18 @@ var analyticsConfigSchema = zod.z.strictObject({
559
604
  var wireTestsSchema = zod.z.strictObject({
560
605
  enabled: zod.z.boolean(),
561
606
  exclusions: zod.z.array(nonEmptyStringSchema).optional(),
562
- fallbackToGeneratedErrorExamples: zod.z.boolean().optional()
607
+ fallbackToGeneratedErrorExamples: zod.z.boolean().optional(),
608
+ fixtureSource: zod.z.enum(["synthetic", "recorded", "auto"]).optional()
609
+ });
610
+ var unitTestsSchema = zod.z.strictObject({
611
+ enabled: zod.z.boolean(),
612
+ mode: zod.z.enum(["core-runtime", "schema-driven", "both"]).optional(),
613
+ exclusions: zod.z.array(nonEmptyStringSchema).optional()
614
+ });
615
+ var fernDefinitionMetadataSchema = zod.z.strictObject({
616
+ definitionS3DownloadUrl: nonEmptyStringSchema,
617
+ outputPath: nonEmptyStringSchema.optional(),
618
+ cliVersion: nonEmptyStringSchema.optional()
563
619
  });
564
620
  var streamsSchema = zod.z.strictObject({
565
621
  enabled: zod.z.boolean(),
@@ -612,6 +668,17 @@ var generationConfigSchema = zod.z.strictObject({
612
668
  devContainer: zod.z.boolean().default(false),
613
669
  allowMockClient: zod.z.boolean().default(false),
614
670
  ignoreFiles: zod.z.array(nonEmptyStringSchema).optional(),
671
+ /**
672
+ * Raw .fernignore file contents supplied to external publishers that need Fern ignore semantics.
673
+ * This is separate from generation.ignoreFiles because raw contents preserve comments, ordering,
674
+ * blank lines, and negation rules.
675
+ */
676
+ fernignoreContents: zod.z.string().optional(),
677
+ /**
678
+ * Optional Fern definition metadata for publisher paths that need to write definition or
679
+ * mock-server support files. This is not required for core GitHub artifact publishing.
680
+ */
681
+ fernDefinitionMetadata: fernDefinitionMetadataSchema.optional(),
615
682
  reservedKeywords: zod.z.array(nonEmptyStringSchema).optional(),
616
683
  hooks: hooksConfigSchema.optional(),
617
684
  customCode: customCodeConfigSchema.optional(),
@@ -619,6 +686,7 @@ var generationConfigSchema = zod.z.strictObject({
619
686
  customQueryPaths: zod.z.array(nonEmptyStringSchema).optional(),
620
687
  analytics: analyticsConfigSchema.optional(),
621
688
  wireTests: wireTestsSchema.optional(),
689
+ unitTests: unitTestsSchema.optional(),
622
690
  webSockets: zod.z.boolean().optional(),
623
691
  streams: streamsSchema.optional(),
624
692
  naming: namingConfigSchema.optional(),
@@ -636,8 +704,17 @@ var publishRegistrySchema = zod.z.enum([
636
704
  "go",
637
705
  "composer"
638
706
  ]);
707
+ var credentialResolutionSchema = zod.z.enum([
708
+ "refs-only",
709
+ "resolved-by-orchestrator",
710
+ "resolved-by-fiddle"
711
+ ]);
639
712
  var commonPublishShape = {
640
713
  url: nonEmptyStringSchema.optional(),
714
+ /**
715
+ * Reference to registry publishing credentials. Raw tokens/passwords are intentionally not part of
716
+ * SDK Config IR; the external publisher or orchestrator resolves this reference before use.
717
+ */
641
718
  credentialsRef: nonEmptyStringSchema.optional(),
642
719
  releaseBranch: nonEmptyStringSchema.optional(),
643
720
  tolerateRepublish: zod.z.boolean().optional()
@@ -652,6 +729,10 @@ var publishConfigSchema = zod.z.discriminatedUnion("registry", [
652
729
  zod.z.strictObject({ registry: zod.z.literal("composer"), ...commonPublishShape }),
653
730
  zod.z.strictObject({
654
731
  registry: zod.z.literal("maven"),
732
+ /**
733
+ * Reference to Maven signing credentials. Raw signing keys are intentionally not part of SDK
734
+ * Config IR; the external publisher or orchestrator resolves this reference before use.
735
+ */
655
736
  signingCredentialsRef: nonEmptyStringSchema.optional(),
656
737
  ...commonPublishShape
657
738
  })
@@ -660,29 +741,54 @@ var reviewersSchema = zod.z.strictObject({
660
741
  teams: zod.z.array(nonEmptyStringSchema).optional(),
661
742
  users: zod.z.array(nonEmptyStringSchema).optional()
662
743
  });
744
+ var replayControlSchema = zod.z.strictObject({
745
+ enabled: zod.z.boolean()
746
+ });
663
747
  var githubOutputSchema = zod.z.strictObject({
664
748
  repository: nonEmptyStringSchema,
665
749
  host: nonEmptyStringSchema.optional(),
666
750
  branch: nonEmptyStringSchema.optional(),
667
751
  mode: zod.z.enum(["release", "pull-request", "push"]).optional(),
668
752
  reviewers: reviewersSchema.optional(),
753
+ /**
754
+ * Reference to GitHub credentials. Raw tokens are intentionally not part of SDK Config IR; the
755
+ * external publisher or orchestrator resolves this reference before use.
756
+ */
669
757
  credentialsRef: nonEmptyStringSchema.optional(),
670
- privateRepository: zod.z.boolean().optional()
671
- });
758
+ privateRepository: zod.z.boolean().optional(),
759
+ /** GitHub replay control. If omitted, the external publisher applies its default behavior. */
760
+ replay: replayControlSchema.optional(),
761
+ /** Run GitHub publishing verification. Defaults to false to match current Fiddle job behavior. */
762
+ verify: zod.z.boolean().default(false),
763
+ /** Skip creating/updating a GitHub PR when no files changed. Defaults to false. */
764
+ skipIfNoDiff: zod.z.boolean().default(false),
765
+ /** Automatically merge the GitHub publishing PR. Defaults to false. */
766
+ autoMerge: zod.z.boolean().default(false)
767
+ });
768
+ var credentialResolutionShape = {
769
+ /**
770
+ * Where output credential references are resolved. SDK Config IR carries refs only; raw resolved
771
+ * credentials belong at the external publisher/orchestrator boundary, not in this config.
772
+ */
773
+ credentialResolution: credentialResolutionSchema.default("refs-only")
774
+ };
672
775
  var filesOutputSchema = zod.z.strictObject({
673
776
  delivery: zod.z.literal("files"),
674
777
  path: nonEmptyStringSchema.optional(),
675
- publish: publishConfigSchema.optional()
778
+ publish: publishConfigSchema.optional(),
779
+ ...credentialResolutionShape
676
780
  });
677
781
  var zipOutputSchema = zod.z.strictObject({
678
782
  delivery: zod.z.literal("zip"),
679
783
  fileName: nonEmptyStringSchema.optional(),
680
- publish: publishConfigSchema.optional()
784
+ publish: publishConfigSchema.optional(),
785
+ ...credentialResolutionShape
681
786
  });
682
787
  var githubDeliverySchema = zod.z.strictObject({
683
788
  delivery: zod.z.literal("github"),
684
789
  github: githubOutputSchema,
685
- publish: publishConfigSchema.optional()
790
+ publish: publishConfigSchema.optional(),
791
+ ...credentialResolutionShape
686
792
  });
687
793
  var outputConfigSchema = zod.z.discriminatedUnion(
688
794
  "delivery",
@@ -702,7 +808,8 @@ var apiImportSettingsSchema = zod.z.strictObject({
702
808
  onlyIncludeReferencedSchemas: zod.z.boolean().optional(),
703
809
  objectQueryParameters: zod.z.boolean().optional(),
704
810
  typeDatesAsStrings: zod.z.boolean().optional(),
705
- groupMultiApiEnvironments: zod.z.boolean().optional()
811
+ groupMultiApiEnvironments: zod.z.boolean().optional(),
812
+ defaultIntegerFormat: zod.z.enum(["int32", "int64", "uint32", "uint64"]).optional()
706
813
  });
707
814
  var sourceSpecTypeSchema = zod.z.enum([
708
815
  "openapi",
@@ -759,7 +866,19 @@ var targetConfigSchema = zod.z.strictObject({
759
866
  generatorVersion: exactSemverSchema.optional(),
760
867
  sourceOrigin: zod.z.enum(["postman", "fern"]),
761
868
  sdkName: nonEmptyStringSchema,
869
+ /**
870
+ * Stable Fern/Fiddle API identity for external publishing.
871
+ * Producers must set this explicitly for GitHub or registry publishing; it is not inferred from
872
+ * target.sdkName because SDK display names and Fern API names are not equivalent.
873
+ */
874
+ apiName: nonEmptyStringSchema.optional(),
762
875
  organization: nonEmptyStringSchema.optional(),
876
+ /**
877
+ * Stable Fern/Fiddle organization identity for external publishing.
878
+ * Producers must set this explicitly for GitHub or registry publishing; it is not inferred from
879
+ * target.organization because source organization metadata is optional and may not match Fern.
880
+ */
881
+ organizationName: nonEmptyStringSchema.optional(),
763
882
  sdkVersion: nonEmptyStringSchema.default("1.0.0"),
764
883
  apiVersion: nonEmptyStringSchema.optional()
765
884
  });
@@ -767,7 +886,7 @@ var targetConfigSchema = zod.z.strictObject({
767
886
  // src/sdk-config-ir/v1/sdk-config-ir-v1.ts
768
887
  var SDK_CONFIG_IR_V1_SCHEMA_VERSION = "sdk-config-ir/v1";
769
888
  var publishRegistryLanguages = {
770
- npm: ["typescript"],
889
+ npm: ["typescript", "mcp"],
771
890
  pypi: ["python"],
772
891
  maven: ["java", "kotlin"],
773
892
  nuget: ["csharp"],
@@ -835,6 +954,21 @@ var sdkConfigIrV1Schema = zod.z.strictObject({
835
954
  compatibility: compatibilityConfigSchema.optional()
836
955
  }).superRefine(({ compatibility, generation, output, package: packageConfig, target }, context) => {
837
956
  const configuredLanguages = Object.keys(generation.language ?? {});
957
+ const requiresExternalPublishIdentity = output.delivery === "github" || output.publish !== void 0;
958
+ if (requiresExternalPublishIdentity) {
959
+ [
960
+ ["apiName", "target.apiName is required for external publishing"],
961
+ ["organizationName", "target.organizationName is required for external publishing"]
962
+ ].forEach(([field, message]) => {
963
+ if (!target[field]) {
964
+ context.addIssue({
965
+ code: "custom",
966
+ message,
967
+ path: ["target", field]
968
+ });
969
+ }
970
+ });
971
+ }
838
972
  configuredLanguages.forEach((language) => {
839
973
  if (language !== target.language) {
840
974
  context.addIssue({
@@ -893,6 +1027,7 @@ exports.jsonValueSchema = jsonValueSchema;
893
1027
  exports.kotlinGenerationConfigSchema = kotlinGenerationConfigSchema;
894
1028
  exports.languageGenerationConfigSchema = languageGenerationConfigSchema;
895
1029
  exports.legacyInputSchema = legacyInputSchema;
1030
+ exports.mcpAvailabilityStatuses = mcpAvailabilityStatuses;
896
1031
  exports.mcpGenerationConfigSchema = mcpGenerationConfigSchema;
897
1032
  exports.nonEmptyStringSchema = nonEmptyStringSchema;
898
1033
  exports.outputConfigSchema = outputConfigSchema;
@@ -902,6 +1037,7 @@ exports.phpGenerationConfigSchema = phpGenerationConfigSchema;
902
1037
  exports.publishConfigSchema = publishConfigSchema;
903
1038
  exports.publishRegistrySchema = publishRegistrySchema;
904
1039
  exports.pythonGenerationConfigSchema = pythonGenerationConfigSchema;
1040
+ exports.readmeCustomSectionSchema = readmeCustomSectionSchema;
905
1041
  exports.readmeEndpointSchema = readmeEndpointSchema;
906
1042
  exports.rubyGenerationConfigSchema = rubyGenerationConfigSchema;
907
1043
  exports.rustGenerationConfigSchema = rustGenerationConfigSchema;