@postman/sdk-config 0.5.0 → 0.6.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.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { FernConfigMappingDiagnostic, FernConfigMappingError, FernConfigMappingResult, FernResolvedGeneratorGroupInput, FernResolvedGeneratorInput, FernSdkConfigLanguage, SDK_CONFIG_V1_SCHEMA_VERSION, SdkConfigV1, SdkConfigV1ApiConfig, SdkConfigV1ApiConfigInput, SdkConfigV1ClientConfig, SdkConfigV1ClientConfigInput, SdkConfigV1ClientConfigOverride, SdkConfigV1Dependency, SdkConfigV1DocsConfig, SdkConfigV1Document, SdkConfigV1GenerationConfig, SdkConfigV1GenerationConfigInput, SdkConfigV1GenerationConfigOverride, SdkConfigV1Input, SdkConfigV1OutputConfig, SdkConfigV1PackageConfig, SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry, SdkConfigV1ReplayConfig, SdkConfigV1SourceConfig, SdkConfigV1SourceSpec, SdkConfigV1Target, SdkConfigV1WebhookSignature, SdkConfigV1WebhookSignatureInput, mapFernConfigToSdkConfigV1, parseSdkConfigV1, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, sdkConfigV1ClientConfigOverrideSchema, sdkConfigV1ClientConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, sdkConfigV1GenerationConfigOverrideSchema, sdkConfigV1GenerationConfigSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, sdkConfigV1ReplayConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, sdkConfigV1TargetSchema, sdkConfigV1WebhookSignatureSchema, splitSdkConfigV1TargetGeneration, validateSdkConfigV1 } from './sdk-config/v1/index.cjs';
1
+ export { FernConfigMappingDiagnostic, FernConfigMappingError, FernConfigMappingResult, FernResolvedGeneratorGroupInput, FernResolvedGeneratorInput, FernSdkConfigLanguage, SDK_CONFIG_V1_SCHEMA_VERSION, SdkConfigV1, SdkConfigV1ApiConfig, SdkConfigV1ApiConfigInput, SdkConfigV1ClientConfig, SdkConfigV1ClientConfigInput, SdkConfigV1ClientConfigOverride, SdkConfigV1Dependency, SdkConfigV1DocsConfig, SdkConfigV1Document, SdkConfigV1GenerationConfig, SdkConfigV1GenerationConfigInput, SdkConfigV1GenerationConfigOverride, SdkConfigV1Input, SdkConfigV1OutputConfig, SdkConfigV1PackageConfig, SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry, SdkConfigV1ReplayConfig, SdkConfigV1SourceConfig, SdkConfigV1SourceSpec, SdkConfigV1Target, SdkConfigV1WebhookSignature, SdkConfigV1WebhookSignatureInput, mapFernConfigToSdkConfigV1, parseSdkConfigV1, parseSdkConfigV1ForConsumption, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, sdkConfigV1ClientConfigOverrideSchema, sdkConfigV1ClientConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, sdkConfigV1GenerationConfigOverrideSchema, sdkConfigV1GenerationConfigSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, sdkConfigV1ReplayConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, sdkConfigV1TargetSchema, sdkConfigV1WebhookSignatureSchema, splitSdkConfigV1TargetGeneration, validateSdkConfigV1 } from './sdk-config/v1/index.cjs';
2
2
  export { C as CliGenerationConfig, a as CsharpGenerationConfig, D as Dependency, G as GoGenerationConfig, J as JavaGenerationConfig, b as JsonObject, c as JsonValue, K as KotlinGenerationConfig, M as McpAvailabilityStatus, d as McpGenerationConfig, e as McpToolFilter, P as PackageConfig, f as PhpGenerationConfig, g as PlanModifiers, h as PythonGenerationConfig, R as RubyGenerationConfig, i as RustGenerationConfig, S as SwiftGenerationConfig, T as TerraformGenerationConfig, j as TypescriptGenerationConfig, k as cliGenerationConfigSchema, l as composerPackageNameSchema, m as csharpGenerationConfigSchema, n as dependencySchema, o as exactSemverSchema, p as goGenerationConfigSchema, q as goModulePathSchema, r as javaGenerationConfigSchema, s as jsonObjectSchema, t as jsonValueSchema, u as kotlinGenerationConfigSchema, v as mcpAvailabilityStatuses, w as mcpGenerationConfigSchema, x as nonEmptyStringSchema, y as packageConfigSchema, z as phpGenerationConfigSchema, A as pythonGenerationConfigSchema, B as relativePathSchema, E as rubyGenerationConfigSchema, F as rustGenerationConfigSchema, k as sdkConfigV1CliGenerationConfigSchema, l as sdkConfigV1ComposerPackageNameSchema, m as sdkConfigV1CsharpGenerationConfigSchema, o as sdkConfigV1ExactSemverSchema, p as sdkConfigV1GoGenerationConfigSchema, q as sdkConfigV1GoModulePathSchema, r as sdkConfigV1JavaGenerationConfigSchema, u as sdkConfigV1KotlinGenerationConfigSchema, w as sdkConfigV1McpGenerationConfigSchema, x as sdkConfigV1NonEmptyStringSchema, z as sdkConfigV1PhpGenerationConfigSchema, A as sdkConfigV1PythonGenerationConfigSchema, B as sdkConfigV1RelativePathSchema, E as sdkConfigV1RubyGenerationConfigSchema, F as sdkConfigV1RustGenerationConfigSchema, H as sdkConfigV1SwiftGenerationConfigSchema, I as sdkConfigV1TerraformGenerationConfigSchema, L as sdkConfigV1TypescriptGenerationConfigSchema, H as swiftGenerationConfigSchema, I as terraformGenerationConfigSchema, L as typescriptGenerationConfigSchema } from './typescript-BruxA5zG.cjs';
3
- export { ApiConfig, ApiConfigInput, ApiImportSettings, AuthConfig, AuthScheme, ClientConfig, ClientConfigInput, ClientConfigOverride, CompatibilityConfig, CredentialResolution, DocsConfig, GenerationConfig, LanguageGenerationConfig, LegacyInput, OutputConfig, PublishConfig, PublishRegistry, ReadmeCustomSection, ReadmeEndpoint, ReplayConfig, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SdkConfigIrV1, SdkConfigIrV1Input, SourceConfig, SourceSpecConfig, SourceSpecType, TargetConfig, TargetLanguage, UnsupportedField, WebhookSignature, WebhookSignatureInput, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, clientConfigOverrideSchema, clientConfigSchema, clientRetryOverrideSchema, compatibilityConfigSchema, docsConfigSchema, generationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, outputConfigSchema, parseSdkConfigIrV1, publishConfigSchema, publishRegistrySchema, readmeCustomSectionSchema, readmeEndpointSchema, replayConfigSchema, sdkConfigIrV1Schema, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, targetConfigSchema, targetLanguageSchema, unsupportedFieldSchema, webhookSignatureSchema } from './sdk-config-ir/v1/index.cjs';
3
+ export { ApiConfig, ApiConfigInput, ApiImportSettings, AuthConfig, AuthScheme, ClientConfig, ClientConfigInput, ClientConfigOverride, CompatibilityConfig, CredentialResolution, DocsConfig, GenerationConfig, LanguageGenerationConfig, LegacyInput, OutputConfig, PublishConfig, PublishRegistry, ReadmeCustomSection, ReadmeEndpoint, ReplayConfig, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SdkConfigIrCapability, SdkConfigIrV1, SdkConfigIrV1Input, SerializedSdkConfigIrV1, SourceConfig, SourceSpecConfig, SourceSpecType, TargetConfig, TargetLanguage, UnsupportedField, WebhookSignature, WebhookSignatureInput, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, clientConfigOverrideSchema, clientConfigSchema, clientRetryOverrideSchema, compatibilityConfigSchema, docsConfigSchema, generationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, outputConfigSchema, parseSdkConfigIrV1, parseSdkConfigIrV1ForConsumption, publishConfigSchema, publishRegistrySchema, readmeCustomSectionSchema, readmeEndpointSchema, replayConfigSchema, sdkConfigIrCapabilitySchema, sdkConfigIrV1Schema, serializeSdkConfigIrV1, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, targetConfigSchema, targetLanguageSchema, unsupportedFieldSchema, webhookSignatureSchema } from './sdk-config-ir/v1/index.cjs';
4
4
  import 'zod';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { FernConfigMappingDiagnostic, FernConfigMappingError, FernConfigMappingResult, FernResolvedGeneratorGroupInput, FernResolvedGeneratorInput, FernSdkConfigLanguage, SDK_CONFIG_V1_SCHEMA_VERSION, SdkConfigV1, SdkConfigV1ApiConfig, SdkConfigV1ApiConfigInput, SdkConfigV1ClientConfig, SdkConfigV1ClientConfigInput, SdkConfigV1ClientConfigOverride, SdkConfigV1Dependency, SdkConfigV1DocsConfig, SdkConfigV1Document, SdkConfigV1GenerationConfig, SdkConfigV1GenerationConfigInput, SdkConfigV1GenerationConfigOverride, SdkConfigV1Input, SdkConfigV1OutputConfig, SdkConfigV1PackageConfig, SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry, SdkConfigV1ReplayConfig, SdkConfigV1SourceConfig, SdkConfigV1SourceSpec, SdkConfigV1Target, SdkConfigV1WebhookSignature, SdkConfigV1WebhookSignatureInput, mapFernConfigToSdkConfigV1, parseSdkConfigV1, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, sdkConfigV1ClientConfigOverrideSchema, sdkConfigV1ClientConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, sdkConfigV1GenerationConfigOverrideSchema, sdkConfigV1GenerationConfigSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, sdkConfigV1ReplayConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, sdkConfigV1TargetSchema, sdkConfigV1WebhookSignatureSchema, splitSdkConfigV1TargetGeneration, validateSdkConfigV1 } from './sdk-config/v1/index.js';
1
+ export { FernConfigMappingDiagnostic, FernConfigMappingError, FernConfigMappingResult, FernResolvedGeneratorGroupInput, FernResolvedGeneratorInput, FernSdkConfigLanguage, SDK_CONFIG_V1_SCHEMA_VERSION, SdkConfigV1, SdkConfigV1ApiConfig, SdkConfigV1ApiConfigInput, SdkConfigV1ClientConfig, SdkConfigV1ClientConfigInput, SdkConfigV1ClientConfigOverride, SdkConfigV1Dependency, SdkConfigV1DocsConfig, SdkConfigV1Document, SdkConfigV1GenerationConfig, SdkConfigV1GenerationConfigInput, SdkConfigV1GenerationConfigOverride, SdkConfigV1Input, SdkConfigV1OutputConfig, SdkConfigV1PackageConfig, SdkConfigV1PublishConfig, SdkConfigV1PublishRegistry, SdkConfigV1ReplayConfig, SdkConfigV1SourceConfig, SdkConfigV1SourceSpec, SdkConfigV1Target, SdkConfigV1WebhookSignature, SdkConfigV1WebhookSignatureInput, mapFernConfigToSdkConfigV1, parseSdkConfigV1, parseSdkConfigV1ForConsumption, sdkConfigV1ApiConfigSchema, sdkConfigV1AuthConfigSchema, sdkConfigV1AuthSchemeSchema, sdkConfigV1ClientConfigOverrideSchema, sdkConfigV1ClientConfigSchema, sdkConfigV1DependencySchema, sdkConfigV1DocsConfigSchema, sdkConfigV1GenerationConfigOverrideSchema, sdkConfigV1GenerationConfigSchema, sdkConfigV1OutputConfigSchema, sdkConfigV1PackageConfigSchema, sdkConfigV1PublishConfigSchema, sdkConfigV1PublishRegistrySchema, sdkConfigV1ReadmeCustomSectionSchema, sdkConfigV1ReadmeEndpointSchema, sdkConfigV1ReplayConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, sdkConfigV1TargetSchema, sdkConfigV1WebhookSignatureSchema, splitSdkConfigV1TargetGeneration, validateSdkConfigV1 } from './sdk-config/v1/index.js';
2
2
  export { C as CliGenerationConfig, a as CsharpGenerationConfig, D as Dependency, G as GoGenerationConfig, J as JavaGenerationConfig, b as JsonObject, c as JsonValue, K as KotlinGenerationConfig, M as McpAvailabilityStatus, d as McpGenerationConfig, e as McpToolFilter, P as PackageConfig, f as PhpGenerationConfig, g as PlanModifiers, h as PythonGenerationConfig, R as RubyGenerationConfig, i as RustGenerationConfig, S as SwiftGenerationConfig, T as TerraformGenerationConfig, j as TypescriptGenerationConfig, k as cliGenerationConfigSchema, l as composerPackageNameSchema, m as csharpGenerationConfigSchema, n as dependencySchema, o as exactSemverSchema, p as goGenerationConfigSchema, q as goModulePathSchema, r as javaGenerationConfigSchema, s as jsonObjectSchema, t as jsonValueSchema, u as kotlinGenerationConfigSchema, v as mcpAvailabilityStatuses, w as mcpGenerationConfigSchema, x as nonEmptyStringSchema, y as packageConfigSchema, z as phpGenerationConfigSchema, A as pythonGenerationConfigSchema, B as relativePathSchema, E as rubyGenerationConfigSchema, F as rustGenerationConfigSchema, k as sdkConfigV1CliGenerationConfigSchema, l as sdkConfigV1ComposerPackageNameSchema, m as sdkConfigV1CsharpGenerationConfigSchema, o as sdkConfigV1ExactSemverSchema, p as sdkConfigV1GoGenerationConfigSchema, q as sdkConfigV1GoModulePathSchema, r as sdkConfigV1JavaGenerationConfigSchema, u as sdkConfigV1KotlinGenerationConfigSchema, w as sdkConfigV1McpGenerationConfigSchema, x as sdkConfigV1NonEmptyStringSchema, z as sdkConfigV1PhpGenerationConfigSchema, A as sdkConfigV1PythonGenerationConfigSchema, B as sdkConfigV1RelativePathSchema, E as sdkConfigV1RubyGenerationConfigSchema, F as sdkConfigV1RustGenerationConfigSchema, H as sdkConfigV1SwiftGenerationConfigSchema, I as sdkConfigV1TerraformGenerationConfigSchema, L as sdkConfigV1TypescriptGenerationConfigSchema, H as swiftGenerationConfigSchema, I as terraformGenerationConfigSchema, L as typescriptGenerationConfigSchema } from './typescript-BruxA5zG.js';
3
- export { ApiConfig, ApiConfigInput, ApiImportSettings, AuthConfig, AuthScheme, ClientConfig, ClientConfigInput, ClientConfigOverride, CompatibilityConfig, CredentialResolution, DocsConfig, GenerationConfig, LanguageGenerationConfig, LegacyInput, OutputConfig, PublishConfig, PublishRegistry, ReadmeCustomSection, ReadmeEndpoint, ReplayConfig, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SdkConfigIrV1, SdkConfigIrV1Input, SourceConfig, SourceSpecConfig, SourceSpecType, TargetConfig, TargetLanguage, UnsupportedField, WebhookSignature, WebhookSignatureInput, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, clientConfigOverrideSchema, clientConfigSchema, clientRetryOverrideSchema, compatibilityConfigSchema, docsConfigSchema, generationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, outputConfigSchema, parseSdkConfigIrV1, publishConfigSchema, publishRegistrySchema, readmeCustomSectionSchema, readmeEndpointSchema, replayConfigSchema, sdkConfigIrV1Schema, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, targetConfigSchema, targetLanguageSchema, unsupportedFieldSchema, webhookSignatureSchema } from './sdk-config-ir/v1/index.js';
3
+ export { ApiConfig, ApiConfigInput, ApiImportSettings, AuthConfig, AuthScheme, ClientConfig, ClientConfigInput, ClientConfigOverride, CompatibilityConfig, CredentialResolution, DocsConfig, GenerationConfig, LanguageGenerationConfig, LegacyInput, OutputConfig, PublishConfig, PublishRegistry, ReadmeCustomSection, ReadmeEndpoint, ReplayConfig, SDK_CONFIG_IR_V1_SCHEMA_VERSION, SdkConfigIrCapability, SdkConfigIrV1, SdkConfigIrV1Input, SerializedSdkConfigIrV1, SourceConfig, SourceSpecConfig, SourceSpecType, TargetConfig, TargetLanguage, UnsupportedField, WebhookSignature, WebhookSignatureInput, apiConfigSchema, apiImportSettingsSchema, authConfigSchema, authSchemeSchema, clientConfigOverrideSchema, clientConfigSchema, clientRetryOverrideSchema, compatibilityConfigSchema, docsConfigSchema, generationConfigSchema, languageGenerationConfigSchema, legacyInputSchema, outputConfigSchema, parseSdkConfigIrV1, parseSdkConfigIrV1ForConsumption, publishConfigSchema, publishRegistrySchema, readmeCustomSectionSchema, readmeEndpointSchema, replayConfigSchema, sdkConfigIrCapabilitySchema, sdkConfigIrV1Schema, serializeSdkConfigIrV1, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, targetConfigSchema, targetLanguageSchema, unsupportedFieldSchema, webhookSignatureSchema } from './sdk-config-ir/v1/index.js';
4
4
  import 'zod';
package/dist/index.js CHANGED
@@ -1240,10 +1240,16 @@ function finishOutputMapping(mapping, outputMode, sourcePath, state, index) {
1240
1240
  for (const path of collectLeafPaths(outputMode, sourcePath)) {
1241
1241
  if (path[path.length - 1] === "_visit") consume(state, path);
1242
1242
  }
1243
+ const legacyGenerateFullProject = isObject(outputMode) ? outputMode.generateFullProject : void 0;
1244
+ const generationShape = typeof legacyGenerateFullProject === "boolean" ? { generation: { ...mapping.generation, generateFullProject: legacyGenerateFullProject } } : {};
1245
+ if (typeof legacyGenerateFullProject === "boolean") {
1246
+ consume(state, [...sourcePath, "generateFullProject"]);
1247
+ }
1243
1248
  const unsupported = collectUnsupported(outputMode, sourcePath, state);
1244
1249
  const hasCredentials = unsupported.some((diagnostic) => isCredentialPath(diagnostic.path));
1245
1250
  return {
1246
1251
  ...mapping,
1252
+ ...generationShape,
1247
1253
  unsupportedFields: [
1248
1254
  ...state.credentialDiagnostics ?? [],
1249
1255
  ...hasCredentials ? [
@@ -1327,6 +1333,125 @@ function outputDiagnostic(path, index) {
1327
1333
  suggestedAction: resolvedGuidance?.suggestedAction ?? "Review this output setting and preserve it outside SDK Config when no equivalent exists."
1328
1334
  };
1329
1335
  }
1336
+ var OMIT = /* @__PURE__ */ Symbol("omit");
1337
+ function inputJsonSchema(schema) {
1338
+ return z.toJSONSchema(schema, {
1339
+ io: "input",
1340
+ unrepresentable: "any"
1341
+ });
1342
+ }
1343
+ function stripUnknownProperties(value, schema) {
1344
+ return project(value, schema, schema, false);
1345
+ }
1346
+ function omitSchemaDefaults(value, schema) {
1347
+ const projected = project(value, schema, schema, true);
1348
+ return projected === OMIT ? void 0 : projected;
1349
+ }
1350
+ function project(value, candidateSchema, rootSchema, omitDefaults) {
1351
+ const resolvedCandidate = resolveSchema(candidateSchema, rootSchema);
1352
+ if (omitDefaults && Object.hasOwn(resolvedCandidate, "default") && deepEqual(value, resolvedCandidate.default)) {
1353
+ return OMIT;
1354
+ }
1355
+ const schema = selectSchema(value, resolvedCandidate, rootSchema);
1356
+ if (omitDefaults && schema !== resolvedCandidate && Object.hasOwn(schema, "default") && deepEqual(value, schema.default)) {
1357
+ return OMIT;
1358
+ }
1359
+ if (Array.isArray(value)) {
1360
+ if (!schema.items) return value;
1361
+ return value.map((item) => {
1362
+ const projected = project(item, schema.items, rootSchema, omitDefaults);
1363
+ return projected === OMIT ? item : projected;
1364
+ });
1365
+ }
1366
+ if (!isRecord(value) || schema.type !== "object") return value;
1367
+ const entries = [];
1368
+ const properties = schema.properties ?? {};
1369
+ const unionProperties = omitDefaults ? properties : collectAlternativeProperties(resolvedCandidate, rootSchema);
1370
+ for (const [key, propertySchema] of Object.entries(properties)) {
1371
+ if (!Object.hasOwn(value, key)) continue;
1372
+ const projected = project(value[key], propertySchema, rootSchema, omitDefaults);
1373
+ if (projected !== OMIT) entries.push([key, projected]);
1374
+ }
1375
+ for (const [key, fieldValue] of Object.entries(value)) {
1376
+ if (Object.hasOwn(properties, key)) continue;
1377
+ if (Object.hasOwn(unionProperties, key)) {
1378
+ entries.push([key, fieldValue]);
1379
+ continue;
1380
+ }
1381
+ if (schema.additionalProperties !== false) {
1382
+ const projected = typeof schema.additionalProperties === "object" ? project(fieldValue, schema.additionalProperties, rootSchema, omitDefaults) : fieldValue;
1383
+ if (projected !== OMIT) entries.push([key, projected]);
1384
+ } else if (omitDefaults) {
1385
+ throw new Error(`Cannot serialize property unknown to the wire schema: ${key}`);
1386
+ }
1387
+ }
1388
+ return Object.fromEntries(entries);
1389
+ }
1390
+ function collectAlternativeProperties(schema, rootSchema) {
1391
+ const alternatives = schema.oneOf ?? schema.anyOf;
1392
+ if (!alternatives) return schema.properties ?? {};
1393
+ return Object.assign(
1394
+ {},
1395
+ ...alternatives.map((alternative) => resolveSchema(alternative, rootSchema).properties ?? {})
1396
+ );
1397
+ }
1398
+ function selectSchema(value, schema, rootSchema) {
1399
+ const alternatives = schema.oneOf ?? schema.anyOf;
1400
+ if (!alternatives || alternatives.length === 0) return schema;
1401
+ const best = alternatives.map((alternative, index) => {
1402
+ const resolved = resolveSchema(alternative, rootSchema);
1403
+ return { index, schema: resolved, score: schemaMatchScore(value, resolved) };
1404
+ }).sort((left, right) => right.score - left.score || left.index - right.index)[0];
1405
+ return best.score === Number.NEGATIVE_INFINITY ? schema : best.schema;
1406
+ }
1407
+ function schemaMatchScore(value, schema) {
1408
+ if (Object.hasOwn(schema, "const") && !deepEqual(value, schema.const)) {
1409
+ return Number.NEGATIVE_INFINITY;
1410
+ }
1411
+ if (schema.enum && !schema.enum.some((candidate) => deepEqual(value, candidate))) {
1412
+ return Number.NEGATIVE_INFINITY;
1413
+ }
1414
+ if (schema.type === "object") {
1415
+ if (!isRecord(value)) return Number.NEGATIVE_INFINITY;
1416
+ const properties = schema.properties ?? {};
1417
+ for (const [key, propertySchema] of Object.entries(properties)) {
1418
+ if (!Object.hasOwn(value, key)) continue;
1419
+ if (Object.hasOwn(propertySchema, "const") && !deepEqual(value[key], propertySchema.const)) {
1420
+ return Number.NEGATIVE_INFINITY;
1421
+ }
1422
+ }
1423
+ return Object.keys(value).filter((key) => Object.hasOwn(properties, key)).length;
1424
+ }
1425
+ if (schema.type === "array") return Array.isArray(value) ? 1 : Number.NEGATIVE_INFINITY;
1426
+ if (schema.type === "string") return typeof value === "string" ? 1 : Number.NEGATIVE_INFINITY;
1427
+ if (schema.type === "number" || schema.type === "integer") {
1428
+ return typeof value === "number" ? 1 : Number.NEGATIVE_INFINITY;
1429
+ }
1430
+ if (schema.type === "boolean") return typeof value === "boolean" ? 1 : Number.NEGATIVE_INFINITY;
1431
+ if (schema.type === "null") return value === null ? 1 : Number.NEGATIVE_INFINITY;
1432
+ return 0;
1433
+ }
1434
+ function resolveSchema(schema, rootSchema) {
1435
+ if (!schema.$ref) return schema;
1436
+ if (!schema.$ref.startsWith("#/$defs/")) return schema;
1437
+ const name = schema.$ref.slice("#/$defs/".length).replaceAll("~1", "/").replaceAll("~0", "~");
1438
+ return rootSchema.$defs?.[name] ?? schema;
1439
+ }
1440
+ function isRecord(value) {
1441
+ return value !== null && typeof value === "object" && !Array.isArray(value);
1442
+ }
1443
+ function deepEqual(left, right) {
1444
+ if (Object.is(left, right)) return true;
1445
+ if (Array.isArray(left) && Array.isArray(right)) {
1446
+ return left.length === right.length && left.every((value, index) => deepEqual(value, right[index]));
1447
+ }
1448
+ if (isRecord(left) && isRecord(right)) {
1449
+ const leftKeys = Object.keys(left);
1450
+ const rightKeys = Object.keys(right);
1451
+ return leftKeys.length === rightKeys.length && leftKeys.every((key) => Object.hasOwn(right, key) && deepEqual(left[key], right[key]));
1452
+ }
1453
+ return false;
1454
+ }
1330
1455
  var namingConfigSchema = z.strictObject({
1331
1456
  clientName: nonEmptyStringSchema.optional(),
1332
1457
  exportedClientName: nonEmptyStringSchema.optional(),
@@ -1425,6 +1550,8 @@ var generationConfigOverrideShape = {
1425
1550
  inferServiceNames: z.boolean().optional(),
1426
1551
  includeDeprecatedOperations: z.boolean().optional(),
1427
1552
  multipleResponses: z.boolean().optional(),
1553
+ /** Generate the entire SDK project, including package manifests and publishable artifacts. */
1554
+ generateFullProject: z.boolean().optional(),
1428
1555
  devContainer: z.boolean().optional(),
1429
1556
  allowMockClient: z.boolean().optional(),
1430
1557
  ignoreFiles: z.array(nonEmptyStringSchema).optional(),
@@ -1453,6 +1580,7 @@ var sdkConfigV1GenerationConfigSchema = z.strictObject({
1453
1580
  inferServiceNames: z.boolean().default(false),
1454
1581
  includeDeprecatedOperations: z.boolean().default(true),
1455
1582
  multipleResponses: z.boolean().default(false),
1583
+ generateFullProject: z.boolean().default(false),
1456
1584
  devContainer: z.boolean().default(false),
1457
1585
  allowMockClient: z.boolean().default(false)
1458
1586
  });
@@ -2002,6 +2130,10 @@ function validateSdkConfigV1(value) {
2002
2130
  function parseSdkConfigV1(value) {
2003
2131
  return sdkConfigV1Schema.parse(value);
2004
2132
  }
2133
+ var sdkConfigV1InputJsonSchema = inputJsonSchema(sdkConfigV1Schema);
2134
+ function parseSdkConfigV1ForConsumption(value) {
2135
+ return parseSdkConfigV1(stripUnknownProperties(value, sdkConfigV1InputJsonSchema));
2136
+ }
2005
2137
 
2006
2138
  // src/sdk-config/v1/fern-config-mapper.ts
2007
2139
  var generatorLanguages = {
@@ -2057,7 +2189,14 @@ function mapFernConfigToSdkConfigV1(input) {
2057
2189
  api.audiences = [...input.group.audiences.audiences];
2058
2190
  }
2059
2191
  const targets = mapped.map(
2060
- ({ generator, invocation, language, output, package: outputPackage }, index) => {
2192
+ ({
2193
+ generator,
2194
+ invocation,
2195
+ language,
2196
+ output,
2197
+ package: outputPackage,
2198
+ generation: outputGeneration
2199
+ }, index) => {
2061
2200
  const target = {
2062
2201
  language,
2063
2202
  output,
@@ -2071,6 +2210,7 @@ function mapFernConfigToSdkConfigV1(input) {
2071
2210
  }
2072
2211
  const targetGeneration = {
2073
2212
  ...generations.targetOverrides[index],
2213
+ ...outputGeneration,
2074
2214
  ...invocation.targetGeneration
2075
2215
  };
2076
2216
  if (Object.keys(targetGeneration).length > 0) {
@@ -2248,6 +2388,9 @@ function mapInvocation(generator, language, activeLanguages, index) {
2248
2388
  if (generator.keywords?.length) {
2249
2389
  generation.reservedKeywords = [...generator.keywords];
2250
2390
  }
2391
+ if (generator.generateFullProject !== void 0) {
2392
+ generation.generateFullProject = generator.generateFullProject;
2393
+ }
2251
2394
  const settings = isObject(generator.settings) ? generator.settings : void 0;
2252
2395
  if (settings) {
2253
2396
  const inlinePathParameters = takeBoolean(settings, ["inlinePathParameters"], state, [
@@ -2390,6 +2533,8 @@ function mapCommonConfig(language, config, state, client, generation, packageCon
2390
2533
  basePath
2391
2534
  );
2392
2535
  if (webSockets !== void 0) generation.webSockets = webSockets;
2536
+ const generateFullProject = takeBoolean(config, ["generateFullProject"], state, basePath);
2537
+ if (generateFullProject !== void 0) generation.generateFullProject = generateFullProject;
2393
2538
  const inlineTypes = takeBoolean(config, ["enableInlineTypes"], state, basePath);
2394
2539
  const omitUndefined = takeBoolean(config, ["omitUndefined"], state, basePath);
2395
2540
  const forwardEnums = takeBoolean(config, ["enableForwardCompatibleEnums"], state, basePath);
@@ -2994,6 +3139,8 @@ var generationConfigSchema = z.strictObject({
2994
3139
  inferServiceNames: z.boolean().default(false),
2995
3140
  includeDeprecatedOperations: z.boolean().default(true),
2996
3141
  multipleResponses: z.boolean().default(false),
3142
+ /** Generate the entire SDK project, including package manifests and publishable artifacts. */
3143
+ generateFullProject: z.boolean().default(false),
2997
3144
  devContainer: z.boolean().default(false),
2998
3145
  allowMockClient: z.boolean().default(false),
2999
3146
  ignoreFiles: z.array(nonEmptyStringSchema).optional(),
@@ -3393,7 +3540,31 @@ var sdkConfigIrV1Schema = z.strictObject({
3393
3540
  function parseSdkConfigIrV1(value) {
3394
3541
  return sdkConfigIrV1Schema.parse(value);
3395
3542
  }
3543
+ var sdkConfigIrCapabilitySchema = z.enum(["generation.generateFullProject"]);
3544
+ var sdkConfigIrV1InputJsonSchema = inputJsonSchema(sdkConfigIrV1Schema);
3545
+ function serializeSdkConfigIrV1(value) {
3546
+ const parsed = parseSdkConfigIrV1(value);
3547
+ const wireValue = omitSchemaDefaults(parsed, sdkConfigIrV1InputJsonSchema);
3548
+ const requiredCapabilities = [];
3549
+ if (wireValue === void 0) {
3550
+ throw new Error("SDK Config IR v1 root cannot be omitted from its wire payload");
3551
+ }
3552
+ if (parsed.generation.generateFullProject) {
3553
+ requiredCapabilities.push("generation.generateFullProject");
3554
+ }
3555
+ const json = JSON.stringify(wireValue);
3556
+ if (json === void 0) {
3557
+ throw new Error("SDK Config IR v1 could not be serialized as JSON");
3558
+ }
3559
+ return {
3560
+ body: new TextEncoder().encode(json),
3561
+ requiredCapabilities
3562
+ };
3563
+ }
3564
+ function parseSdkConfigIrV1ForConsumption(value) {
3565
+ return parseSdkConfigIrV1(stripUnknownProperties(value, sdkConfigIrV1InputJsonSchema));
3566
+ }
3396
3567
 
3397
- 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, replayConfigSchema, 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, sdkConfigV1ReplayConfigSchema, rubyGenerationConfigSchema as sdkConfigV1RubyGenerationConfigSchema, rustGenerationConfigSchema as sdkConfigV1RustGenerationConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, swiftGenerationConfigSchema as sdkConfigV1SwiftGenerationConfigSchema, sdkConfigV1TargetSchema, terraformGenerationConfigSchema as sdkConfigV1TerraformGenerationConfigSchema, typescriptGenerationConfigSchema as sdkConfigV1TypescriptGenerationConfigSchema, sdkConfigV1WebhookSignatureSchema, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, splitSdkConfigV1TargetGeneration, swiftGenerationConfigSchema, targetConfigSchema, targetLanguageSchema, terraformGenerationConfigSchema, typescriptGenerationConfigSchema, unsupportedFieldSchema, validateSdkConfigV1, webhookSignatureSchema };
3568
+ 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, parseSdkConfigIrV1ForConsumption, parseSdkConfigV1, parseSdkConfigV1ForConsumption, phpGenerationConfigSchema, publishConfigSchema, publishRegistrySchema, pythonGenerationConfigSchema, readmeCustomSectionSchema, readmeEndpointSchema, relativePathSchema, replayConfigSchema, rubyGenerationConfigSchema, rustGenerationConfigSchema, sdkConfigIrCapabilitySchema, 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, sdkConfigV1ReplayConfigSchema, rubyGenerationConfigSchema as sdkConfigV1RubyGenerationConfigSchema, rustGenerationConfigSchema as sdkConfigV1RustGenerationConfigSchema, sdkConfigV1Schema, sdkConfigV1SourceConfigSchema, sdkConfigV1SourceSpecSchema, swiftGenerationConfigSchema as sdkConfigV1SwiftGenerationConfigSchema, sdkConfigV1TargetSchema, terraformGenerationConfigSchema as sdkConfigV1TerraformGenerationConfigSchema, typescriptGenerationConfigSchema as sdkConfigV1TypescriptGenerationConfigSchema, sdkConfigV1WebhookSignatureSchema, serializeSdkConfigIrV1, sourceConfigSchema, sourceSpecConfigSchema, sourceSpecTypeSchema, splitSdkConfigV1TargetGeneration, swiftGenerationConfigSchema, targetConfigSchema, targetLanguageSchema, terraformGenerationConfigSchema, typescriptGenerationConfigSchema, unsupportedFieldSchema, validateSdkConfigV1, webhookSignatureSchema };
3398
3569
  //# sourceMappingURL=index.js.map
3399
3570
  //# sourceMappingURL=index.js.map