@postman/sdk-config 0.1.1 → 0.2.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 (37) hide show
  1. package/README.md +29 -12
  2. package/dist/index.cjs +284 -139
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +3 -3
  5. package/dist/index.d.ts +3 -3
  6. package/dist/index.js +277 -140
  7. package/dist/index.js.map +1 -1
  8. package/dist/sdk-config/index.cjs +281 -109
  9. package/dist/sdk-config/index.cjs.map +1 -1
  10. package/dist/sdk-config/index.d.cts +2 -2
  11. package/dist/sdk-config/index.d.ts +2 -2
  12. package/dist/sdk-config/index.js +276 -110
  13. package/dist/sdk-config/index.js.map +1 -1
  14. package/dist/sdk-config/v1/index.cjs +281 -109
  15. package/dist/sdk-config/v1/index.cjs.map +1 -1
  16. package/dist/sdk-config/v1/index.d.cts +6903 -289
  17. package/dist/sdk-config/v1/index.d.ts +6903 -289
  18. package/dist/sdk-config/v1/index.js +276 -110
  19. package/dist/sdk-config/v1/index.js.map +1 -1
  20. package/dist/sdk-config-ir/index.cjs +58 -24
  21. package/dist/sdk-config-ir/index.cjs.map +1 -1
  22. package/dist/sdk-config-ir/index.d.cts +2 -2
  23. package/dist/sdk-config-ir/index.d.ts +2 -2
  24. package/dist/sdk-config-ir/index.js +57 -25
  25. package/dist/sdk-config-ir/index.js.map +1 -1
  26. package/dist/sdk-config-ir/v1/index.cjs +58 -24
  27. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  28. package/dist/sdk-config-ir/v1/index.d.cts +94 -15
  29. package/dist/sdk-config-ir/v1/index.d.ts +94 -15
  30. package/dist/sdk-config-ir/v1/index.js +57 -25
  31. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  32. package/dist/{typescript-DK97815_.d.cts → typescript-DNqK3T3v.d.cts} +3 -0
  33. package/dist/{typescript-DK97815_.d.ts → typescript-DNqK3T3v.d.ts} +3 -0
  34. package/docs/releasing.md +114 -0
  35. package/package.json +1 -1
  36. package/src/sdk-config/v1/README.md +91 -23
  37. package/src/sdk-config-ir/v1/README.md +3 -2
package/dist/index.js CHANGED
@@ -193,26 +193,42 @@ var apiConfigSchema = z.strictObject({
193
193
  var sdkConfigV1AuthSchemeSchema = authSchemeSchema;
194
194
  var sdkConfigV1AuthConfigSchema = authConfigSchema;
195
195
  var sdkConfigV1ApiConfigSchema = apiConfigSchema;
196
+ var retryOverrideShape = {
197
+ enabled: z.boolean().optional(),
198
+ maxAttempts: z.number().int().min(1).optional(),
199
+ retryDelayMs: z.number().nonnegative().optional(),
200
+ maxDelayMs: z.number().nonnegative().optional(),
201
+ jitterMs: z.number().nonnegative().optional(),
202
+ backoffFactor: z.number().positive().optional(),
203
+ statusCodes: z.array(z.number().int().min(100).max(599)).optional(),
204
+ methods: z.array(nonEmptyStringSchema).optional(),
205
+ statusCodeProfile: z.enum(["legacy", "recommended"]).optional(),
206
+ maxRetryAfterDelayMs: z.number().nonnegative().optional()
207
+ };
208
+ function validateRetryDelays({
209
+ maxDelayMs,
210
+ retryDelayMs
211
+ }, context) {
212
+ if (maxDelayMs !== void 0 && retryDelayMs !== void 0 && maxDelayMs < retryDelayMs) {
213
+ context.addIssue({
214
+ code: "custom",
215
+ message: "maxDelayMs must be greater than or equal to retryDelayMs",
216
+ path: ["maxDelayMs"]
217
+ });
218
+ }
219
+ }
220
+ var clientRetryOverrideSchema = z.strictObject(retryOverrideShape).superRefine(validateRetryDelays);
196
221
  var retryConfigSchema = z.strictObject({
222
+ ...retryOverrideShape,
197
223
  enabled: z.boolean().default(true),
198
224
  maxAttempts: z.number().int().min(1).default(3),
199
225
  retryDelayMs: z.number().nonnegative().default(150),
200
226
  maxDelayMs: z.number().nonnegative().default(5e3),
201
227
  jitterMs: z.number().nonnegative().default(50),
202
228
  backoffFactor: z.number().positive().default(2),
203
- statusCodes: z.array(z.number().int().min(100).max(599)).optional(),
204
229
  methods: z.array(nonEmptyStringSchema).default(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]),
205
- statusCodeProfile: z.enum(["legacy", "recommended"]).optional(),
206
230
  maxRetryAfterDelayMs: z.number().nonnegative().default(6e4)
207
- }).superRefine(({ maxDelayMs, retryDelayMs }, context) => {
208
- if (maxDelayMs < retryDelayMs) {
209
- context.addIssue({
210
- code: "custom",
211
- message: "maxDelayMs must be greater than or equal to retryDelayMs",
212
- path: ["maxDelayMs"]
213
- });
214
- }
215
- });
231
+ }).superRefine(validateRetryDelays);
216
232
  var constructorParameterSchema = z.strictObject({
217
233
  name: nonEmptyStringSchema,
218
234
  example: z.string().optional(),
@@ -234,12 +250,12 @@ var tokenRefreshConfigSchema = z.strictObject({
234
250
  });
235
251
  }
236
252
  });
237
- var clientConfigSchema = z.strictObject({
238
- retry: retryConfigSchema.prefault({}),
239
- responseHeaders: z.boolean().default(false),
253
+ var clientOverrideShape = {
254
+ retry: clientRetryOverrideSchema.optional(),
255
+ responseHeaders: z.boolean().optional(),
240
256
  responseValidation: z.boolean().optional(),
241
- multiTenant: z.boolean().default(false),
242
- additionalConstructorParameters: z.array(constructorParameterSchema).default([]),
257
+ multiTenant: z.boolean().optional(),
258
+ additionalConstructorParameters: z.array(constructorParameterSchema).optional(),
243
259
  timeoutMs: z.union([z.number().nonnegative(), z.literal("infinity")]).optional(),
244
260
  requestParameterStyle: parameterStyleSchema.optional(),
245
261
  pathParameterStyle: parameterStyleSchema.optional(),
@@ -247,10 +263,19 @@ var clientConfigSchema = z.strictObject({
247
263
  useDefaultRequestParameterValues: z.boolean().optional(),
248
264
  respectOptionalRequestBody: z.boolean().optional(),
249
265
  tokenRefresh: tokenRefreshConfigSchema.optional()
266
+ };
267
+ var clientConfigOverrideSchema = z.strictObject(clientOverrideShape);
268
+ var clientConfigSchema = z.strictObject({
269
+ ...clientOverrideShape,
270
+ retry: retryConfigSchema.prefault({}),
271
+ responseHeaders: z.boolean().default(false),
272
+ multiTenant: z.boolean().default(false),
273
+ additionalConstructorParameters: z.array(constructorParameterSchema).default([])
250
274
  });
251
275
 
252
276
  // src/sdk-config/v1/client.ts
253
277
  var sdkConfigV1ClientConfigSchema = clientConfigSchema;
278
+ var sdkConfigV1ClientConfigOverrideSchema = clientConfigOverrideSchema;
254
279
  var goModulePathSchema = relativePathSchema.regex(
255
280
  /^(?!.*(?:^|\/)\.{1,2}(?:\/|$))[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)+$/,
256
281
  "Go module path must be a slash-delimited path using letters, numbers, dots, dashes, underscores, or tildes"
@@ -855,26 +880,32 @@ function finishOutputMapping(mapping, outputMode, sourcePath, state, index) {
855
880
  for (const path of collectLeafPaths(outputMode, sourcePath)) {
856
881
  if (path[path.length - 1] === "_visit") consume(state, path);
857
882
  }
883
+ const unsupported = collectUnsupported(outputMode, sourcePath, state);
884
+ const hasCredentials = unsupported.some((diagnostic) => isCredentialPath(diagnostic.path));
858
885
  return {
859
886
  ...mapping,
860
- unsupportedFields: collectUnsupported(outputMode, sourcePath, state).map(
861
- (diagnostic) => outputDiagnostic(diagnostic.path, index)
862
- )
887
+ unsupportedFields: [
888
+ ...hasCredentials ? [
889
+ {
890
+ code: "FERN_OUTPUT_CREDENTIAL_UNSUPPORTED",
891
+ severity: "warning",
892
+ path: sourcePath,
893
+ reason: "Fern output credentials and signatures are intentionally excluded from SDK Config v1",
894
+ suggestedAction: "Provide publishing credentials through the build request or external secret resolution."
895
+ }
896
+ ] : [],
897
+ ...unsupported.filter((diagnostic) => !isCredentialPath(diagnostic.path)).map((diagnostic) => outputDiagnostic(diagnostic.path, index))
898
+ ]
863
899
  };
864
900
  }
901
+ function isCredentialPath(path) {
902
+ const fields = path.filter((part) => typeof part === "string");
903
+ const field = fields[fields.length - 1];
904
+ return fields.some((part) => part === "credentials" || part === "signature") || ["apiKey", "keyId", "password", "secretKey", "token", "username"].includes(field ?? "");
905
+ }
865
906
  function outputDiagnostic(path, index) {
866
907
  const fields = path.filter((part) => typeof part === "string");
867
908
  const field = fields[fields.length - 1];
868
- const credential = fields.some((part) => part === "credentials" || part === "signature") || ["apiKey", "keyId", "password", "secretKey", "token", "username"].includes(field ?? "");
869
- if (credential) {
870
- return {
871
- code: "FERN_OUTPUT_CREDENTIAL_UNSUPPORTED",
872
- severity: "warning",
873
- path,
874
- reason: "Fern output credentials and signatures are not represented by SDK Config v1",
875
- suggestedAction: "Configure publication credentials and signing secrets outside SDK Config."
876
- };
877
- }
878
909
  const guidance = {
879
910
  directory: {
880
911
  suggestedAction: "Preserve the GitHub output subdirectory outside SDK Config; public v1 has no repository subdirectory field."
@@ -931,6 +962,20 @@ function outputDiagnostic(path, index) {
931
962
  suggestedAction: resolvedGuidance?.suggestedAction ?? "Review this output setting and preserve it outside SDK Config when no equivalent exists."
932
963
  };
933
964
  }
965
+ var namingConfigSchema = z.strictObject({
966
+ clientName: nonEmptyStringSchema.optional(),
967
+ exportedClientName: nonEmptyStringSchema.optional(),
968
+ environmentTypeName: nonEmptyStringSchema.optional(),
969
+ apiErrorName: nonEmptyStringSchema.optional(),
970
+ baseErrorName: nonEmptyStringSchema.optional(),
971
+ pagerName: nonEmptyStringSchema.optional(),
972
+ /** Apply Fern's initialism-aware casing rules when deriving generated identifiers. */
973
+ smartCasing: z.boolean().optional(),
974
+ /** Preserve a word boundary after digits when Fern smart casing is enabled. */
975
+ smartCasingDigitWordBoundary: z.boolean().optional()
976
+ });
977
+
978
+ // src/sdk-config/v1/generation.ts
934
979
  var customerGenerationAssetSchema = z.discriminatedUnion("type", [
935
980
  z.strictObject({ type: z.literal("path"), location: relativePathSchema }),
936
981
  z.strictObject({ type: z.literal("url"), location: nonEmptyStringSchema })
@@ -997,14 +1042,6 @@ var streamsSchema = z.strictObject({
997
1042
  fileResponseType: z.enum(["stream", "binary-response"]).optional(),
998
1043
  defaultChunkSizeBytes: z.number().int().positive().optional()
999
1044
  });
1000
- var namingConfigSchema = z.strictObject({
1001
- clientName: nonEmptyStringSchema.optional(),
1002
- exportedClientName: nonEmptyStringSchema.optional(),
1003
- environmentTypeName: nonEmptyStringSchema.optional(),
1004
- apiErrorName: nonEmptyStringSchema.optional(),
1005
- baseErrorName: nonEmptyStringSchema.optional(),
1006
- pagerName: nonEmptyStringSchema.optional()
1007
- });
1008
1045
  var layoutConfigSchema = z.strictObject({
1009
1046
  outputDirectory: z.enum(["project-root", "source-root"]).optional(),
1010
1047
  packagePath: nonEmptyStringSchema.optional()
@@ -1015,16 +1052,16 @@ var serializationConfigSchema = z.strictObject({
1015
1052
  inlineTypes: z.boolean().optional(),
1016
1053
  omitUndefined: z.boolean().optional()
1017
1054
  });
1018
- var sdkConfigV1GenerationConfigSchema = z.strictObject({
1019
- includeWatermark: z.boolean().default(false),
1020
- ai: z.boolean().default(false),
1055
+ var generationConfigOverrideShape = {
1056
+ includeWatermark: z.boolean().optional(),
1057
+ ai: z.boolean().optional(),
1021
1058
  includeOptionalSnippetParameters: z.boolean().optional(),
1022
- buildAllModels: z.boolean().default(false),
1023
- inferServiceNames: z.boolean().default(false),
1024
- includeDeprecatedOperations: z.boolean().default(true),
1025
- multipleResponses: z.boolean().default(false),
1026
- devContainer: z.boolean().default(false),
1027
- allowMockClient: z.boolean().default(false),
1059
+ buildAllModels: z.boolean().optional(),
1060
+ inferServiceNames: z.boolean().optional(),
1061
+ includeDeprecatedOperations: z.boolean().optional(),
1062
+ multipleResponses: z.boolean().optional(),
1063
+ devContainer: z.boolean().optional(),
1064
+ allowMockClient: z.boolean().optional(),
1028
1065
  ignoreFiles: z.array(nonEmptyStringSchema).optional(),
1029
1066
  reservedKeywords: z.array(nonEmptyStringSchema).optional(),
1030
1067
  hooks: hooksConfigSchema.optional(),
@@ -1039,7 +1076,30 @@ var sdkConfigV1GenerationConfigSchema = z.strictObject({
1039
1076
  naming: namingConfigSchema.optional(),
1040
1077
  layout: layoutConfigSchema.optional(),
1041
1078
  serialization: serializationConfigSchema.optional()
1042
- });
1079
+ };
1080
+ var sdkConfigV1GenerationConfigOverrideSchema = z.strictObject(
1081
+ generationConfigOverrideShape
1082
+ );
1083
+ var sdkConfigV1GenerationConfigSchema = z.strictObject({
1084
+ ...generationConfigOverrideShape,
1085
+ includeWatermark: z.boolean().default(false),
1086
+ ai: z.boolean().default(false),
1087
+ buildAllModels: z.boolean().default(false),
1088
+ inferServiceNames: z.boolean().default(false),
1089
+ includeDeprecatedOperations: z.boolean().default(true),
1090
+ multipleResponses: z.boolean().default(false),
1091
+ devContainer: z.boolean().default(false),
1092
+ allowMockClient: z.boolean().default(false)
1093
+ });
1094
+ var commonGenerationKeys = new Set(Object.keys(generationConfigOverrideShape));
1095
+ function splitSdkConfigV1TargetGeneration(generation) {
1096
+ const common = {};
1097
+ const language = {};
1098
+ for (const [key, value] of Object.entries(generation ?? {})) {
1099
+ (commonGenerationKeys.has(key) ? common : language)[key] = value;
1100
+ }
1101
+ return { common, language };
1102
+ }
1043
1103
  var sdkConfigV1PublishRegistrySchema = z.enum([
1044
1104
  "npm",
1045
1105
  "pypi",
@@ -1101,6 +1161,64 @@ var sdkConfigV1OutputConfigSchema = z.discriminatedUnion(
1101
1161
  // src/sdk-config/v1/package.ts
1102
1162
  var sdkConfigV1DependencySchema = dependencySchema;
1103
1163
  var sdkConfigV1PackageConfigSchema = packageConfigSchema;
1164
+ var apiImportSettingsSchema = z.strictObject({
1165
+ respectNullableSchemas: z.boolean().optional(),
1166
+ titleAsSchemaName: z.boolean().optional(),
1167
+ coerceEnumsToLiterals: z.boolean().optional(),
1168
+ idiomaticRequestNames: z.boolean().optional(),
1169
+ wrapReferencesToNullableInOptional: z.boolean().optional(),
1170
+ coerceOptionalSchemasToNullable: z.boolean().optional(),
1171
+ pathParameterOrder: z.enum(["url-order", "spec-order"]).optional(),
1172
+ onlyIncludeReferencedSchemas: z.boolean().optional(),
1173
+ objectQueryParameters: z.boolean().optional(),
1174
+ typeDatesAsStrings: z.boolean().optional(),
1175
+ groupMultiApiEnvironments: z.boolean().optional(),
1176
+ defaultIntegerFormat: z.enum(["int32", "int64", "uint32", "uint64"]).optional()
1177
+ });
1178
+ var sourceSpecTypeSchema = z.enum([
1179
+ "openapi",
1180
+ "swagger",
1181
+ "postman",
1182
+ "asyncapi",
1183
+ "graphql"
1184
+ ]);
1185
+
1186
+ // src/sdk-config/v1/source.ts
1187
+ var sourceSpecShape = {
1188
+ id: nonEmptyStringSchema,
1189
+ type: sourceSpecTypeSchema,
1190
+ name: nonEmptyStringSchema.optional(),
1191
+ namespace: nonEmptyStringSchema.optional(),
1192
+ apiImportSettings: apiImportSettingsSchema.optional(),
1193
+ overlays: z.array(relativePathSchema).optional(),
1194
+ overrides: z.array(relativePathSchema).optional()
1195
+ };
1196
+ var sdkConfigV1SourceSpecSchema = z.union(
1197
+ [
1198
+ z.strictObject({ ...sourceSpecShape, path: relativePathSchema }),
1199
+ z.strictObject({
1200
+ ...sourceSpecShape,
1201
+ url: z.url({ protocol: /^https?$/ })
1202
+ })
1203
+ ],
1204
+ { error: "source spec must contain exactly one locator: path or HTTP(S) url" }
1205
+ );
1206
+ var sdkConfigV1SourceConfigSchema = z.strictObject({
1207
+ specs: z.array(sdkConfigV1SourceSpecSchema).min(1, "source.specs must contain at least one source spec"),
1208
+ apiImportSettings: apiImportSettingsSchema.optional()
1209
+ }).superRefine(({ specs }, context) => {
1210
+ const seenIds = /* @__PURE__ */ new Set();
1211
+ specs.forEach(({ id }, index) => {
1212
+ if (seenIds.has(id)) {
1213
+ context.addIssue({
1214
+ code: "custom",
1215
+ message: `source spec id "${id}" must be unique`,
1216
+ path: ["specs", index, "id"]
1217
+ });
1218
+ }
1219
+ seenIds.add(id);
1220
+ });
1221
+ });
1104
1222
  var cliGenerationConfigSchema = z.strictObject({
1105
1223
  paginationParameters: z.array(nonEmptyStringSchema).optional(),
1106
1224
  skills: z.boolean().optional()
@@ -1162,6 +1280,8 @@ var typescriptGenerationConfigSchema = z.strictObject({
1162
1280
  namingStrategy: z.enum(["base", "originalPropertyNames"]).optional(),
1163
1281
  bundle: z.boolean().optional(),
1164
1282
  exportClassDefault: z.boolean().optional(),
1283
+ /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */
1284
+ namespaceExportName: nonEmptyStringSchema.optional(),
1165
1285
  allowCustomFetcher: z.boolean().optional(),
1166
1286
  useBrandedStringAliases: z.boolean().optional(),
1167
1287
  useLegacyExports: z.boolean().optional(),
@@ -1266,73 +1386,75 @@ var targetOverrideShape = {
1266
1386
  generatorVersion: exactSemverSchema.optional(),
1267
1387
  sdkName: nonEmptyStringSchema.optional(),
1268
1388
  sdkVersion: nonEmptyStringSchema.optional(),
1389
+ client: sdkConfigV1ClientConfigOverrideSchema.optional(),
1390
+ docs: sdkConfigV1DocsConfigSchema.optional(),
1269
1391
  package: sdkConfigV1PackageConfigSchema.optional(),
1270
1392
  output: sdkConfigV1OutputConfigSchema.optional()
1271
1393
  };
1272
1394
  var sdkConfigV1TargetSchema = z.discriminatedUnion("language", [
1273
1395
  z.strictObject({
1274
1396
  language: z.literal("typescript"),
1275
- generation: typescriptGenerationConfigSchema.optional(),
1397
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(typescriptGenerationConfigSchema.shape).optional(),
1276
1398
  ...targetOverrideShape
1277
1399
  }),
1278
1400
  z.strictObject({
1279
1401
  language: z.literal("python"),
1280
- generation: pythonGenerationConfigSchema.optional(),
1402
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(pythonGenerationConfigSchema.shape).optional(),
1281
1403
  ...targetOverrideShape
1282
1404
  }),
1283
1405
  z.strictObject({
1284
1406
  language: z.literal("java"),
1285
- generation: javaGenerationConfigSchema.optional(),
1407
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(javaGenerationConfigSchema.shape).optional(),
1286
1408
  ...targetOverrideShape
1287
1409
  }),
1288
1410
  z.strictObject({
1289
1411
  language: z.literal("kotlin"),
1290
- generation: kotlinGenerationConfigSchema.optional(),
1412
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(kotlinGenerationConfigSchema.shape).optional(),
1291
1413
  ...targetOverrideShape
1292
1414
  }),
1293
1415
  z.strictObject({
1294
1416
  language: z.literal("go"),
1295
- generation: goGenerationConfigSchema.optional(),
1417
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(goGenerationConfigSchema.shape).optional(),
1296
1418
  ...targetOverrideShape
1297
1419
  }),
1298
1420
  z.strictObject({
1299
1421
  language: z.literal("csharp"),
1300
- generation: csharpGenerationConfigSchema.optional(),
1422
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(csharpGenerationConfigSchema.shape).optional(),
1301
1423
  ...targetOverrideShape
1302
1424
  }),
1303
1425
  z.strictObject({
1304
1426
  language: z.literal("php"),
1305
- generation: phpGenerationConfigSchema.optional(),
1427
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(phpGenerationConfigSchema.shape).optional(),
1306
1428
  ...targetOverrideShape
1307
1429
  }),
1308
1430
  z.strictObject({
1309
1431
  language: z.literal("ruby"),
1310
- generation: rubyGenerationConfigSchema.optional(),
1432
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(rubyGenerationConfigSchema.shape).optional(),
1311
1433
  ...targetOverrideShape
1312
1434
  }),
1313
1435
  z.strictObject({
1314
1436
  language: z.literal("rust"),
1315
- generation: rustGenerationConfigSchema.optional(),
1437
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(rustGenerationConfigSchema.shape).optional(),
1316
1438
  ...targetOverrideShape
1317
1439
  }),
1318
1440
  z.strictObject({
1319
1441
  language: z.literal("swift"),
1320
- generation: swiftGenerationConfigSchema.optional(),
1442
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(swiftGenerationConfigSchema.shape).optional(),
1321
1443
  ...targetOverrideShape
1322
1444
  }),
1323
1445
  z.strictObject({
1324
1446
  language: z.literal("cli"),
1325
- generation: cliGenerationConfigSchema.optional(),
1447
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(cliGenerationConfigSchema.shape).optional(),
1326
1448
  ...targetOverrideShape
1327
1449
  }),
1328
1450
  z.strictObject({
1329
1451
  language: z.literal("mcp"),
1330
- generation: mcpGenerationConfigSchema.optional(),
1452
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(mcpGenerationConfigSchema.shape).optional(),
1331
1453
  ...targetOverrideShape
1332
1454
  }),
1333
1455
  z.strictObject({
1334
1456
  language: z.literal("terraform"),
1335
- generation: terraformGenerationConfigSchema.optional(),
1457
+ generation: sdkConfigV1GenerationConfigOverrideSchema.extend(terraformGenerationConfigSchema.shape).optional(),
1336
1458
  ...targetOverrideShape
1337
1459
  })
1338
1460
  ]);
@@ -1397,6 +1519,14 @@ function validatePublishingIdentity(packageConfig, registry, targetIndex, contex
1397
1519
  }
1398
1520
  function validateTargetPublishing(target, targetIndex, globalPackage, globalOutput, context) {
1399
1521
  const output = target.output ?? globalOutput;
1522
+ if (!output) {
1523
+ context.addIssue({
1524
+ code: "custom",
1525
+ message: "output is required on the target when no global output is configured",
1526
+ path: ["targets", targetIndex, "output"]
1527
+ });
1528
+ return;
1529
+ }
1400
1530
  if (!output.publish) {
1401
1531
  return;
1402
1532
  }
@@ -1421,10 +1551,11 @@ var sdkConfigV1Schema = z.strictObject({
1421
1551
  sdkName: nonEmptyStringSchema,
1422
1552
  sdkVersion: nonEmptyStringSchema.default("1.0.0"),
1423
1553
  apiVersion: nonEmptyStringSchema.optional(),
1554
+ source: sdkConfigV1SourceConfigSchema,
1424
1555
  api: sdkConfigV1ApiConfigSchema,
1425
1556
  client: sdkConfigV1ClientConfigSchema,
1426
1557
  package: sdkConfigV1PackageConfigSchema,
1427
- output: sdkConfigV1OutputConfigSchema,
1558
+ output: sdkConfigV1OutputConfigSchema.optional(),
1428
1559
  docs: sdkConfigV1DocsConfigSchema,
1429
1560
  generation: sdkConfigV1GenerationConfigSchema,
1430
1561
  targets: z.array(sdkConfigV1TargetSchema).min(1)
@@ -1442,6 +1573,10 @@ var sdkConfigV1Schema = z.strictObject({
1442
1573
  validateTargetPublishing(target, targetIndex, globalPackage, output, context);
1443
1574
  });
1444
1575
  });
1576
+ function validateSdkConfigV1(value) {
1577
+ sdkConfigV1Schema.parse(value);
1578
+ return value;
1579
+ }
1445
1580
  function parseSdkConfigV1(value) {
1446
1581
  return sdkConfigV1Schema.parse(value);
1447
1582
  }
@@ -1487,21 +1622,9 @@ function mapFernConfigToSdkConfigV1(input) {
1487
1622
  };
1488
1623
  });
1489
1624
  requireUniqueLanguages(mapped.map(({ language }) => language));
1490
- const client = requireSharedBlock(
1491
- mapped.map(({ invocation }) => invocation.client),
1492
- "client",
1493
- (value) => sdkConfigV1ClientConfigSchema.parse(value)
1494
- );
1495
- const docs = requireSharedBlock(
1496
- mapped.map(({ invocation }) => invocation.docs),
1497
- "docs",
1498
- (value) => sdkConfigV1DocsConfigSchema.parse(value)
1499
- );
1500
- const generation = requireSharedBlock(
1501
- mapped.map(({ invocation }) => invocation.generation),
1502
- "generation",
1503
- (value) => sdkConfigV1GenerationConfigSchema.parse(value)
1504
- );
1625
+ const clients = partitionSharedBlock(mapped.map(({ invocation }) => invocation.client));
1626
+ const docs = partitionSharedBlock(mapped.map(({ invocation }) => invocation.docs));
1627
+ const generations = partitionSharedBlock(mapped.map(({ invocation }) => invocation.generation));
1505
1628
  const api = { ...input.api ?? {} };
1506
1629
  delete api.audiences;
1507
1630
  if (input.group.audiences.type === "select") {
@@ -1513,13 +1636,19 @@ function mapFernConfigToSdkConfigV1(input) {
1513
1636
  language,
1514
1637
  output,
1515
1638
  ...optional("sdkName", generator.sdkName),
1516
- ...optional("sdkVersion", generator.sdkVersion)
1639
+ ...optional("sdkVersion", generator.sdkVersion),
1640
+ ...optional("client", clients.targetOverrides[index]),
1641
+ ...optional("docs", docs.targetOverrides[index])
1517
1642
  };
1518
1643
  if (Object.keys(invocation.package).length > 0 || outputPackage || generator.package) {
1519
1644
  target.package = { ...invocation.package, ...outputPackage, ...generator.package };
1520
1645
  }
1521
- if (Object.keys(invocation.targetGeneration).length > 0) {
1522
- target.generation = invocation.targetGeneration;
1646
+ const targetGeneration = {
1647
+ ...generations.targetOverrides[index],
1648
+ ...invocation.targetGeneration
1649
+ };
1650
+ if (Object.keys(targetGeneration).length > 0) {
1651
+ target.generation = targetGeneration;
1523
1652
  }
1524
1653
  if (generator.version) {
1525
1654
  if (exactSemverSchema.safeParse(generator.version).success) {
@@ -1538,19 +1667,20 @@ function mapFernConfigToSdkConfigV1(input) {
1538
1667
  return target;
1539
1668
  }
1540
1669
  );
1541
- const parsed = sdkConfigV1Schema.safeParse({
1670
+ const sdkConfig = {
1542
1671
  schemaVersion: "sdk-config/v1",
1543
1672
  sdkName: input.apiName,
1673
+ source: input.source,
1544
1674
  ...optional("sdkVersion", input.sdkVersion),
1545
1675
  ...optional("apiVersion", input.apiVersion),
1546
1676
  api,
1547
- client,
1677
+ client: clients.shared,
1548
1678
  package: {},
1549
- output: mapped[0].output,
1550
- docs,
1551
- generation,
1679
+ docs: docs.shared,
1680
+ generation: generations.shared,
1552
1681
  targets
1553
- });
1682
+ };
1683
+ const parsed = sdkConfigV1Schema.safeParse(sdkConfig);
1554
1684
  if (!parsed.success) {
1555
1685
  throw new FernConfigMappingError(
1556
1686
  parsed.error.issues.map((issue) => {
@@ -1568,8 +1698,9 @@ function mapFernConfigToSdkConfigV1(input) {
1568
1698
  })
1569
1699
  );
1570
1700
  }
1701
+ const validatedSdkConfig = sdkConfig;
1571
1702
  return {
1572
- sdkConfig: parsed.data,
1703
+ sdkConfig: validatedSdkConfig,
1573
1704
  unsupportedFields: mapped.flatMap(({ invocation, unsupportedFields }) => [
1574
1705
  ...invocation.unsupportedFields,
1575
1706
  ...unsupportedFields
@@ -1621,19 +1752,46 @@ function requireUniqueLanguages(languages) {
1621
1752
  seen.add(language);
1622
1753
  }
1623
1754
  }
1624
- function requireSharedBlock(values, name, normalize) {
1625
- const first = normalize(values[0]);
1626
- const serialized = stableJson(first);
1627
- if (values.some((value) => stableJson(normalize(value)) !== serialized)) {
1628
- fail(
1629
- "FERN_TARGET_SPECIFIC_SHARED_CONFIG",
1630
- ["group", "generators"],
1631
- `SDK Config v1 cannot represent target-specific Fern ${name} configuration`,
1632
- `Choose one shared ${name} configuration manually or create separate SDK Config documents for the differing targets.`,
1633
- [name]
1634
- );
1755
+ function partitionSharedBlock(values) {
1756
+ const partition = partitionObjectValues(values);
1757
+ return {
1758
+ shared: partition.shared,
1759
+ targetOverrides: partition.overrides.map(
1760
+ (override) => Object.keys(override).length > 0 ? override : void 0
1761
+ )
1762
+ };
1763
+ }
1764
+ function partitionObjectValues(values) {
1765
+ const shared = {};
1766
+ const overrides = values.map(() => ({}));
1767
+ const keys = new Set(values.flatMap((value) => Object.keys(value)));
1768
+ for (const key of keys) {
1769
+ const fieldValues = values.map((value) => value[key]);
1770
+ const presentOnEveryTarget = fieldValues.every((value) => value !== void 0);
1771
+ if (!presentOnEveryTarget) {
1772
+ fieldValues.forEach((value, index) => {
1773
+ if (value !== void 0) overrides[index][key] = value;
1774
+ });
1775
+ continue;
1776
+ }
1777
+ if (fieldValues.every(isObject)) {
1778
+ const nested = partitionObjectValues(fieldValues);
1779
+ if (Object.keys(nested.shared).length > 0) shared[key] = nested.shared;
1780
+ nested.overrides.forEach((override, index) => {
1781
+ if (Object.keys(override).length > 0) overrides[index][key] = override;
1782
+ });
1783
+ continue;
1784
+ }
1785
+ const first = fieldValues[0];
1786
+ if (fieldValues.every((value) => stableJson(value) === stableJson(first))) {
1787
+ shared[key] = first;
1788
+ } else {
1789
+ fieldValues.forEach((value, index) => {
1790
+ overrides[index][key] = value;
1791
+ });
1792
+ }
1635
1793
  }
1636
- return first;
1794
+ return { shared, overrides };
1637
1795
  }
1638
1796
  function mapInvocation(generator, language, index) {
1639
1797
  const prefix = ["group", "generators", index];
@@ -1643,14 +1801,21 @@ function mapInvocation(generator, language, index) {
1643
1801
  const generation = {};
1644
1802
  const packageConfig = {};
1645
1803
  mapCommonConfig(config, state, client, generation, packageConfig, [...prefix, "config"]);
1804
+ const rawGenerator = isObject(generator.raw) ? generator.raw : void 0;
1805
+ const smartCasing = typeof rawGenerator?.["smart-casing"] === "boolean" ? rawGenerator["smart-casing"] : generator.smartCasing === false ? false : void 0;
1806
+ const smartCasingDigitWordBoundary = typeof rawGenerator?.["smart-casing-digit-word-boundary"] === "boolean" ? rawGenerator["smart-casing-digit-word-boundary"] : generator.smartCasingDigitWordBoundary === true ? true : void 0;
1807
+ if (smartCasing !== void 0 || smartCasingDigitWordBoundary !== void 0) {
1808
+ generation.naming = {
1809
+ ...generation.naming,
1810
+ ...optional("smartCasing", smartCasing),
1811
+ ...optional("smartCasingDigitWordBoundary", smartCasingDigitWordBoundary)
1812
+ };
1813
+ }
1646
1814
  const targetGeneration = mapLanguageConfig(language, config, state, packageConfig, [
1647
1815
  ...prefix,
1648
1816
  "config"
1649
1817
  ]);
1650
1818
  mapPublishMetadata(generator.publishMetadata, packageConfig);
1651
- if (language === "go" && generator.smartCasing !== void 0) {
1652
- targetGeneration.smartCasing = generator.smartCasing;
1653
- }
1654
1819
  if (generator.keywords?.length) {
1655
1820
  generation.reservedKeywords = [...generator.keywords];
1656
1821
  }
@@ -1669,27 +1834,22 @@ function mapInvocation(generator, language, index) {
1669
1834
  ...collectUnsupported(config, [...prefix, "config"], state),
1670
1835
  ...settings ? collectUnsupported(settings, [...prefix, "settings"], state) : [],
1671
1836
  ...isObject(generator.readme) ? collectUnsupported(generator.readme, [...prefix, "readme"], state) : [],
1672
- ...unsupportedResolvedFields(generator, index, language)
1837
+ ...unsupportedResolvedFields(generator, index)
1673
1838
  ];
1674
1839
  return { client, docs, generation, package: packageConfig, targetGeneration, unsupportedFields };
1675
1840
  }
1676
- function unsupportedResolvedFields(generator, index, language) {
1841
+ function unsupportedResolvedFields(generator, index) {
1677
1842
  const values = [
1678
1843
  ["automation", isDefaultAutomation(generator.automation) ? void 0 : generator.automation],
1679
1844
  ["containerImage", generator.containerImage],
1680
1845
  ["irVersionOverride", generator.irVersionOverride],
1681
1846
  ["idempotencyKeyGenerationConfig", generator.idempotencyKeyGenerationConfig],
1682
1847
  ["absolutePathToLocalSnippets", generator.absolutePathToLocalSnippets],
1683
- [
1684
- "smartCasingDigitWordBoundary",
1685
- generator.smartCasingDigitWordBoundary === false ? void 0 : generator.smartCasingDigitWordBoundary
1686
- ],
1687
1848
  [
1688
1849
  "disableExamples",
1689
1850
  generator.disableExamples === false ? void 0 : generator.disableExamples
1690
1851
  ],
1691
- ["apiOverride", generator.apiOverride],
1692
- ...language === "go" || generator.smartCasing === true ? [] : [["smartCasing", generator.smartCasing]]
1852
+ ["apiOverride", generator.apiOverride]
1693
1853
  ];
1694
1854
  return values.flatMap(([field, value]) => {
1695
1855
  if (value === void 0) return [];
@@ -1853,6 +2013,12 @@ function mapTypescript(config, state, packageConfig, basePath) {
1853
2013
  testFramework: takeEnum(config, ["testFramework"], ["jest", "vitest"], state, basePath),
1854
2014
  bundle: takeBoolean(config, ["bundle"], state, basePath),
1855
2015
  exportClassDefault: takeBoolean(config, ["exportClassDefault"], state, basePath),
2016
+ namespaceExportName: takeString(
2017
+ config,
2018
+ ["namespaceExportName", "namespaceExport"],
2019
+ state,
2020
+ basePath
2021
+ ),
1856
2022
  allowCustomFetcher: takeBoolean(config, ["allowCustomFetcher"], state, basePath),
1857
2023
  useBrandedStringAliases: takeBoolean(config, ["useBrandedStringAliases"], state, basePath),
1858
2024
  useLegacyExports: takeBoolean(config, ["useLegacyExports"], state, basePath),
@@ -2287,14 +2453,6 @@ var streamsSchema2 = z.strictObject({
2287
2453
  fileResponseType: z.enum(["stream", "binary-response"]).optional(),
2288
2454
  defaultChunkSizeBytes: z.number().int().positive().optional()
2289
2455
  });
2290
- var namingConfigSchema2 = z.strictObject({
2291
- clientName: nonEmptyStringSchema.optional(),
2292
- exportedClientName: nonEmptyStringSchema.optional(),
2293
- environmentTypeName: nonEmptyStringSchema.optional(),
2294
- apiErrorName: nonEmptyStringSchema.optional(),
2295
- baseErrorName: nonEmptyStringSchema.optional(),
2296
- pagerName: nonEmptyStringSchema.optional()
2297
- });
2298
2456
  var layoutConfigSchema2 = z.strictObject({
2299
2457
  outputDirectory: z.enum(["project-root", "source-root"]).optional(),
2300
2458
  packagePath: nonEmptyStringSchema.optional()
@@ -2353,7 +2511,7 @@ var generationConfigSchema = z.strictObject({
2353
2511
  unitTests: unitTestsSchema2.optional(),
2354
2512
  webSockets: z.boolean().optional(),
2355
2513
  streams: streamsSchema2.optional(),
2356
- naming: namingConfigSchema2.optional(),
2514
+ naming: namingConfigSchema.optional(),
2357
2515
  layout: layoutConfigSchema2.optional(),
2358
2516
  serialization: serializationConfigSchema2.optional(),
2359
2517
  language: languageGenerationConfigSchema.optional()
@@ -2461,27 +2619,6 @@ var outputConfigSchema = z.discriminatedUnion(
2461
2619
  error: 'output.delivery must be one of "files", "zip", or "github"'
2462
2620
  }
2463
2621
  );
2464
- var apiImportSettingsSchema = z.strictObject({
2465
- respectNullableSchemas: z.boolean().optional(),
2466
- titleAsSchemaName: z.boolean().optional(),
2467
- coerceEnumsToLiterals: z.boolean().optional(),
2468
- idiomaticRequestNames: z.boolean().optional(),
2469
- wrapReferencesToNullableInOptional: z.boolean().optional(),
2470
- coerceOptionalSchemasToNullable: z.boolean().optional(),
2471
- pathParameterOrder: z.enum(["url-order", "spec-order"]).optional(),
2472
- onlyIncludeReferencedSchemas: z.boolean().optional(),
2473
- objectQueryParameters: z.boolean().optional(),
2474
- typeDatesAsStrings: z.boolean().optional(),
2475
- groupMultiApiEnvironments: z.boolean().optional(),
2476
- defaultIntegerFormat: z.enum(["int32", "int64", "uint32", "uint64"]).optional()
2477
- });
2478
- var sourceSpecTypeSchema = z.enum([
2479
- "openapi",
2480
- "swagger",
2481
- "postman",
2482
- "asyncapi",
2483
- "graphql"
2484
- ]);
2485
2622
  var sourceSpecConfigSchema = z.strictObject({
2486
2623
  id: nonEmptyStringSchema.optional(),
2487
2624
  name: nonEmptyStringSchema.optional(),
@@ -2669,6 +2806,6 @@ function parseSdkConfigIrV1(value) {
2669
2806
  return sdkConfigIrV1Schema.parse(value);
2670
2807
  }
2671
2808
 
2672
- export { FernConfigMappingError, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SDK_CONFIG_V1_SCHEMA_VERSION, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, cliGenerationConfigSchema, clientConfigSchema, compatibilityConfigSchema, composerPackageNameSchema, csharpGenerationConfigSchema, dependencySchema, docsConfigSchema, exactSemverSchema, generationConfigSchema, goGenerationConfigSchema, goModulePathSchema, javaGenerationConfigSchema, jsonObjectSchema, jsonValueSchema, kotlinGenerationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, mapFernConfigToSdkConfigV1, mcpAvailabilityStatuses, mcpGenerationConfigSchema, nonEmptyStringSchema, outputConfigSchema, packageConfigSchema, parseSdkConfigIrV1, parseSdkConfigV1, phpGenerationConfigSchema, publishConfigSchema, publishRegistrySchema, pythonGenerationConfigSchema, readmeCustomSectionSchema, readmeEndpointSchema, relativePathSchema, rubyGenerationConfigSchema, rustGenerationConfigSchema, sdkConfigIrV1Schema, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, cliGenerationConfigSchema as sdkConfigV1CliGenerationConfigSchema, sdkConfigV1ClientConfigSchema, composerPackageNameSchema as sdkConfigV1ComposerPackageNameSchema, csharpGenerationConfigSchema as sdkConfigV1CsharpGenerationConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, exactSemverSchema as sdkConfigV1ExactSemverSchema, sdkConfigV1GenerationConfigSchema, goGenerationConfigSchema as sdkConfigV1GoGenerationConfigSchema, goModulePathSchema as sdkConfigV1GoModulePathSchema, javaGenerationConfigSchema as sdkConfigV1JavaGenerationConfigSchema, kotlinGenerationConfigSchema as sdkConfigV1KotlinGenerationConfigSchema, mcpGenerationConfigSchema as sdkConfigV1McpGenerationConfigSchema, nonEmptyStringSchema as sdkConfigV1NonEmptyStringSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, phpGenerationConfigSchema as sdkConfigV1PhpGenerationConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, pythonGenerationConfigSchema as sdkConfigV1PythonGenerationConfigSchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, relativePathSchema as sdkConfigV1RelativePathSchema, rubyGenerationConfigSchema as sdkConfigV1RubyGenerationConfigSchema, rustGenerationConfigSchema as sdkConfigV1RustGenerationConfigSchema, sdkConfigV1Schema, swiftGenerationConfigSchema as sdkConfigV1SwiftGenerationConfigSchema, sdkConfigV1TargetSchema, terraformGenerationConfigSchema as sdkConfigV1TerraformGenerationConfigSchema, typescriptGenerationConfigSchema as sdkConfigV1TypescriptGenerationConfigSchema, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, swiftGenerationConfigSchema, targetConfigSchema, targetLanguageSchema, terraformGenerationConfigSchema, typescriptGenerationConfigSchema, unsupportedFieldSchema };
2809
+ export { FernConfigMappingError, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SDK_CONFIG_V1_SCHEMA_VERSION, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, cliGenerationConfigSchema, clientConfigOverrideSchema, clientConfigSchema, clientRetryOverrideSchema, compatibilityConfigSchema, composerPackageNameSchema, csharpGenerationConfigSchema, dependencySchema, docsConfigSchema, exactSemverSchema, generationConfigSchema, goGenerationConfigSchema, goModulePathSchema, javaGenerationConfigSchema, jsonObjectSchema, jsonValueSchema, kotlinGenerationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, mapFernConfigToSdkConfigV1, mcpAvailabilityStatuses, mcpGenerationConfigSchema, nonEmptyStringSchema, outputConfigSchema, packageConfigSchema, parseSdkConfigIrV1, parseSdkConfigV1, phpGenerationConfigSchema, publishConfigSchema, publishRegistrySchema, pythonGenerationConfigSchema, readmeCustomSectionSchema, readmeEndpointSchema, relativePathSchema, rubyGenerationConfigSchema, rustGenerationConfigSchema, sdkConfigIrV1Schema, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, cliGenerationConfigSchema as sdkConfigV1CliGenerationConfigSchema, sdkConfigV1ClientConfigOverrideSchema, sdkConfigV1ClientConfigSchema, composerPackageNameSchema as sdkConfigV1ComposerPackageNameSchema, csharpGenerationConfigSchema as sdkConfigV1CsharpGenerationConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, exactSemverSchema as sdkConfigV1ExactSemverSchema, sdkConfigV1GenerationConfigOverrideSchema, sdkConfigV1GenerationConfigSchema, goGenerationConfigSchema as sdkConfigV1GoGenerationConfigSchema, goModulePathSchema as sdkConfigV1GoModulePathSchema, javaGenerationConfigSchema as sdkConfigV1JavaGenerationConfigSchema, kotlinGenerationConfigSchema as sdkConfigV1KotlinGenerationConfigSchema, mcpGenerationConfigSchema as sdkConfigV1McpGenerationConfigSchema, nonEmptyStringSchema as sdkConfigV1NonEmptyStringSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, phpGenerationConfigSchema as sdkConfigV1PhpGenerationConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, pythonGenerationConfigSchema as sdkConfigV1PythonGenerationConfigSchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, relativePathSchema as sdkConfigV1RelativePathSchema, rubyGenerationConfigSchema as sdkConfigV1RubyGenerationConfigSchema, rustGenerationConfigSchema as sdkConfigV1RustGenerationConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, swiftGenerationConfigSchema as sdkConfigV1SwiftGenerationConfigSchema, sdkConfigV1TargetSchema, terraformGenerationConfigSchema as sdkConfigV1TerraformGenerationConfigSchema, typescriptGenerationConfigSchema as sdkConfigV1TypescriptGenerationConfigSchema, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, splitSdkConfigV1TargetGeneration, swiftGenerationConfigSchema, targetConfigSchema, targetLanguageSchema, terraformGenerationConfigSchema, typescriptGenerationConfigSchema, unsupportedFieldSchema, validateSdkConfigV1 };
2673
2810
  //# sourceMappingURL=index.js.map
2674
2811
  //# sourceMappingURL=index.js.map