@postman/sdk-config 0.6.0 → 0.7.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 (34) hide show
  1. package/dist/index.cjs +112 -27
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +112 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/sdk-config/index.cjs +112 -27
  8. package/dist/sdk-config/index.cjs.map +1 -1
  9. package/dist/sdk-config/index.d.cts +1 -1
  10. package/dist/sdk-config/index.d.ts +1 -1
  11. package/dist/sdk-config/index.js +112 -27
  12. package/dist/sdk-config/index.js.map +1 -1
  13. package/dist/sdk-config/v1/index.cjs +112 -27
  14. package/dist/sdk-config/v1/index.cjs.map +1 -1
  15. package/dist/sdk-config/v1/index.d.cts +13 -1
  16. package/dist/sdk-config/v1/index.d.ts +13 -1
  17. package/dist/sdk-config/v1/index.js +112 -27
  18. package/dist/sdk-config/v1/index.js.map +1 -1
  19. package/dist/sdk-config-ir/index.cjs +5 -0
  20. package/dist/sdk-config-ir/index.cjs.map +1 -1
  21. package/dist/sdk-config-ir/index.d.cts +1 -1
  22. package/dist/sdk-config-ir/index.d.ts +1 -1
  23. package/dist/sdk-config-ir/index.js +5 -0
  24. package/dist/sdk-config-ir/index.js.map +1 -1
  25. package/dist/sdk-config-ir/v1/index.cjs +5 -0
  26. package/dist/sdk-config-ir/v1/index.cjs.map +1 -1
  27. package/dist/sdk-config-ir/v1/index.d.cts +20 -2
  28. package/dist/sdk-config-ir/v1/index.d.ts +20 -2
  29. package/dist/sdk-config-ir/v1/index.js +5 -0
  30. package/dist/sdk-config-ir/v1/index.js.map +1 -1
  31. package/dist/{typescript-BruxA5zG.d.cts → typescript-BdDv_kwT.d.cts} +8 -0
  32. package/dist/{typescript-BruxA5zG.d.ts → typescript-BdDv_kwT.d.ts} +8 -0
  33. package/package.json +1 -1
  34. package/src/sdk-config-ir/v1/README.md +4 -2
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
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
- 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';
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-BdDv_kwT.cjs';
3
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
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
- 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';
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-BdDv_kwT.js';
3
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
@@ -784,6 +784,7 @@ function githubOutput(value, publishInfo, rawOutput, language, sourcePath, state
784
784
  consume(state, [...sourcePath, "repo"]);
785
785
  const publication = publishInfo ? mapPublication(publishInfo, rawOutput, language, [...sourcePath, "publishInfo"], state, index) : void 0;
786
786
  const type = stringValue(value.type);
787
+ const licensePackage = mapGithubLicense(value.license, [...sourcePath, "license"], state);
787
788
  const reviewers = mapReviewers(value.reviewers, [...sourcePath, "reviewers"], state);
788
789
  if (type) consume(state, [...sourcePath, "type"]);
789
790
  if (typeof value.makePr === "boolean") consume(state, [...sourcePath, "makePr"]);
@@ -810,9 +811,20 @@ function githubOutput(value, publishInfo, rawOutput, language, sourcePath, state
810
811
  },
811
812
  ...publication ? { publish: publication.publish } : {}
812
813
  },
813
- ...optional("package", publication?.package)
814
+ // The GitHub license wins over a publication-supplied one; `licensePackage` is `{}` or `{ license }`.
815
+ ...optionalObject("package", { ...publication?.package, ...licensePackage })
814
816
  };
815
817
  }
818
+ var basicLicenseTypes = { mit: "MIT", apache: "APACHE" };
819
+ function mapGithubLicense(value, sourcePath, state) {
820
+ if (!isObject(value) || stringValue(value.type) !== "basic") return {};
821
+ const id = stringValue(value.id);
822
+ const type = id ? basicLicenseTypes[id.toLowerCase()] : void 0;
823
+ if (!type) return {};
824
+ consume(state, [...sourcePath, "type"]);
825
+ consume(state, [...sourcePath, "id"]);
826
+ return { license: { type } };
827
+ }
816
828
  function consumeCredentialObject(value, sourcePath, state) {
817
829
  if (!isObject(value)) return;
818
830
  for (const field of ["username", "password", "token", "apiKey"]) {
@@ -1812,17 +1824,22 @@ var typescriptGenerationConfigSchema = z.strictObject({
1812
1824
  compilerOptions: compilerOptionsSchema.optional(),
1813
1825
  httpClient: httpClientSchema.optional(),
1814
1826
  packageManager: z.enum(["pnpm", "yarn"]).optional(),
1827
+ /** e.g. `1.22.22` — from the customer's own `config.packageJson.packageManager` (`yarn@1.22.22`). */
1828
+ packageManagerVersion: nonEmptyStringSchema.optional(),
1815
1829
  testFramework: z.enum(["jest", "vitest"]).optional(),
1816
1830
  namingStrategy: z.enum(["base", "originalPropertyNames"]).optional(),
1817
1831
  bundle: z.boolean().optional(),
1818
1832
  exportClassDefault: z.boolean().optional(),
1819
1833
  /** Name of the top-level namespace export emitted by Fern-compatible TypeScript SDKs. */
1820
1834
  namespaceExportName: nonEmptyStringSchema.optional(),
1835
+ consolidateTypeFiles: z.boolean().optional(),
1821
1836
  allowCustomFetcher: z.boolean().optional(),
1822
1837
  useBrandedStringAliases: z.boolean().optional(),
1823
1838
  useLegacyExports: z.boolean().optional(),
1824
1839
  useBigInt: z.boolean().optional(),
1825
1840
  serdeLayer: z.boolean().optional(),
1841
+ /** Ship only the ESM build (drops CJS) to avoid the Node dual-package hazard. */
1842
+ esmOnly: z.boolean().optional(),
1826
1843
  scripts: z.array(packageScriptSchema).optional()
1827
1844
  });
1828
1845
 
@@ -2496,15 +2513,23 @@ function mapCommonConfig(language, config, state, client, generation, packageCon
2496
2513
  };
2497
2514
  }
2498
2515
  const pythonClient = language === "python" ? takeObject(config, ["client"], state, basePath) : void 0;
2516
+ const typescriptNaming = language === "typescript" || language === "mcp" ? takeObject(config, ["naming"], state, basePath) : void 0;
2499
2517
  const directClientName = takeString(config, ["clientName", "clientClassName"], state, basePath);
2500
- const nestedClientName = pythonClient ? takeString(pythonClient.value, ["className"], state, pythonClient.path) : void 0;
2518
+ const nestedClientName = pythonClient ? takeString(pythonClient.value, ["className"], state, pythonClient.path) : typescriptNaming ? takeString(typescriptNaming.value, ["client"], state, typescriptNaming.path) : void 0;
2501
2519
  const directExportedClientName = takeString(
2502
2520
  config,
2503
2521
  ["exportedClientName", "exportedClientClassName"],
2504
2522
  state,
2505
2523
  basePath
2506
2524
  );
2507
- const nestedExportedClientName = pythonClient ? takeString(pythonClient.value, ["exportedClassName"], state, pythonClient.path) : void 0;
2525
+ const nestedExportedClientName = pythonClient ? takeString(pythonClient.value, ["exportedClassName"], state, pythonClient.path) : typescriptNaming ? (
2526
+ // TypeScript's `naming.namespace` is the base every other naming.* field defaults from
2527
+ // (Fern's docs: `client` defaults to `${PascalCase(namespace)}Client`, same for
2528
+ // `environment`/`error`/etc.) — the same role `exportedClientName` already plays for every
2529
+ // other language's `clientPrefix` derivation.
2530
+ takeString(typescriptNaming.value, ["namespace"], state, typescriptNaming.path)
2531
+ ) : void 0;
2532
+ const nestedEnvironmentTypeName = typescriptNaming ? takeString(typescriptNaming.value, ["environment"], state, typescriptNaming.path) : void 0;
2508
2533
  const naming = compact({
2509
2534
  pagerName: takeString(
2510
2535
  config,
@@ -2514,12 +2539,7 @@ function mapCommonConfig(language, config, state, client, generation, packageCon
2514
2539
  ),
2515
2540
  clientName: directClientName ?? nestedClientName,
2516
2541
  exportedClientName: directExportedClientName ?? nestedExportedClientName,
2517
- environmentTypeName: takeString(
2518
- config,
2519
- ["environmentClassName", "environmentEnumName"],
2520
- state,
2521
- basePath
2522
- ),
2542
+ environmentTypeName: takeString(config, ["environmentClassName", "environmentEnumName"], state, basePath) ?? nestedEnvironmentTypeName,
2523
2543
  apiErrorName: takeString(config, ["baseApiExceptionClassName"], state, basePath),
2524
2544
  baseErrorName: takeString(config, ["baseExceptionClassName"], state, basePath)
2525
2545
  });
@@ -2533,6 +2553,10 @@ function mapCommonConfig(language, config, state, client, generation, packageCon
2533
2553
  basePath
2534
2554
  );
2535
2555
  if (webSockets !== void 0) generation.webSockets = webSockets;
2556
+ if (language === "typescript") {
2557
+ const streams = mapTypescriptStreams(config, state, basePath);
2558
+ if (streams) generation.streams = streams;
2559
+ }
2536
2560
  const generateFullProject = takeBoolean(config, ["generateFullProject"], state, basePath);
2537
2561
  if (generateFullProject !== void 0) generation.generateFullProject = generateFullProject;
2538
2562
  const inlineTypes = takeBoolean(config, ["enableInlineTypes"], state, basePath);
@@ -2550,6 +2574,18 @@ function mapCommonConfig(language, config, state, client, generation, packageCon
2550
2574
  if (packagePath !== void 0) generation.layout = { packagePath };
2551
2575
  mapDependencies(config, state, packageConfig, basePath);
2552
2576
  }
2577
+ function mapTypescriptStreams(config, state, basePath) {
2578
+ const responseType = takeEnum(config, ["streamType"], ["wrapper", "web"], state, basePath);
2579
+ const fileResponseType = takeEnum(
2580
+ config,
2581
+ ["fileResponseType"],
2582
+ ["stream", "binary-response"],
2583
+ state,
2584
+ basePath
2585
+ );
2586
+ if (responseType === void 0 && fileResponseType === void 0) return void 0;
2587
+ return { enabled: true, ...compact({ responseType, fileResponseType }) };
2588
+ }
2553
2589
  function mapLanguageConfig(language, config, state, packageConfig, basePath) {
2554
2590
  switch (language) {
2555
2591
  case "typescript":
@@ -2583,29 +2619,39 @@ function mapLanguageConfig(language, config, state, packageConfig, basePath) {
2583
2619
  }
2584
2620
  }
2585
2621
  function mapTypescript(config, state, packageConfig, basePath) {
2586
- mapPackageManifest(config, ["packageJson"], state, packageConfig, basePath);
2622
+ const packageJsonManifest = mapPackageManifest(
2623
+ config,
2624
+ ["packageJson"],
2625
+ state,
2626
+ packageConfig,
2627
+ basePath
2628
+ );
2629
+ const packageJsonPackageManager = packageJsonManifest ? takeString(packageJsonManifest.value, ["packageManager"], state, packageJsonManifest.path) : void 0;
2630
+ const packageManagerAtIndex = packageJsonPackageManager ? packageJsonPackageManager.indexOf("@", packageJsonPackageManager.startsWith("@") ? 1 : 0) : -1;
2631
+ const packageManagerVersionPart = packageManagerAtIndex >= 0 ? packageJsonPackageManager?.slice(packageManagerAtIndex + 1).split("+")[0] : void 0;
2632
+ const packageManagerVersion = packageManagerVersionPart || void 0;
2587
2633
  const serdeLayer = takeBoolean(config, ["serdeLayer"], state, basePath);
2588
2634
  const noSerdeLayer = takeBoolean(config, ["noSerdeLayer"], state, basePath);
2589
2635
  const fetchSupport = takeEnum(config, ["fetchSupport"], ["native"], state, basePath);
2636
+ const namingObject = takeObject(config, ["naming"], state, basePath);
2637
+ const nestedNamespace = namingObject ? takeString(namingObject.value, ["namespace"], state, namingObject.path) : void 0;
2590
2638
  return compact({
2591
2639
  typescriptVersion: takeString(config, ["typescriptVersion"], state, basePath),
2592
2640
  zodVersion: takeString(config, ["zodVersion"], state, basePath),
2593
2641
  packageManager: takeEnum(config, ["packageManager"], ["pnpm", "yarn"], state, basePath),
2642
+ packageManagerVersion,
2594
2643
  testFramework: takeEnum(config, ["testFramework"], ["jest", "vitest"], state, basePath),
2595
2644
  httpClient: fetchSupport === "native" ? { name: "fetch" } : void 0,
2596
2645
  bundle: takeBoolean(config, ["bundle"], state, basePath),
2597
2646
  exportClassDefault: takeBoolean(config, ["exportClassDefault"], state, basePath),
2598
- namespaceExportName: takeString(
2599
- config,
2600
- ["namespaceExportName", "namespaceExport"],
2601
- state,
2602
- basePath
2603
- ),
2647
+ namespaceExportName: takeString(config, ["namespaceExportName", "namespaceExport"], state, basePath) ?? nestedNamespace,
2648
+ consolidateTypeFiles: takeBoolean(config, ["consolidateTypeFiles"], state, basePath),
2604
2649
  allowCustomFetcher: takeBoolean(config, ["allowCustomFetcher"], state, basePath),
2605
2650
  useBrandedStringAliases: takeBoolean(config, ["useBrandedStringAliases"], state, basePath),
2606
2651
  useLegacyExports: takeBoolean(config, ["useLegacyExports"], state, basePath),
2607
2652
  useBigInt: takeBoolean(config, ["useBigInt"], state, basePath),
2608
- serdeLayer: serdeLayer ?? (noSerdeLayer === void 0 ? void 0 : !noSerdeLayer)
2653
+ serdeLayer: serdeLayer ?? (noSerdeLayer === void 0 ? void 0 : !noSerdeLayer),
2654
+ esmOnly: takeBoolean(config, ["esmOnly"], state, basePath)
2609
2655
  });
2610
2656
  }
2611
2657
  function mapPython(config, state, packageConfig, basePath) {
@@ -2716,7 +2762,8 @@ function mapCsharp(config, state, packageConfig, basePath) {
2716
2762
  });
2717
2763
  }
2718
2764
  function mapPhp(config, state, packageConfig, basePath) {
2719
- mapPackageManifest(config, ["composerJson"], state, packageConfig, basePath);
2765
+ const manifest = mapPackageManifest(config, ["composerJson"], state, packageConfig, basePath);
2766
+ if (manifest) mapComposerRequirements(manifest, state, packageConfig);
2720
2767
  const packageName = takeString(config, ["packageName"], state, basePath);
2721
2768
  if (packageName !== void 0) packageConfig.packageName = packageName;
2722
2769
  return compact({
@@ -2724,6 +2771,20 @@ function mapPhp(config, state, packageConfig, basePath) {
2724
2771
  generateClientInterfaces: takeBoolean(config, ["generateClientInterfaces"], state, basePath)
2725
2772
  });
2726
2773
  }
2774
+ function mapComposerRequirements(manifest, state, packageConfig) {
2775
+ const fields = [
2776
+ ["require", "extraDependencies"],
2777
+ ["require-dev", "extraDevDependencies"]
2778
+ ];
2779
+ for (const [composerField, packageField] of fields) {
2780
+ const located = takeObject(manifest.value, [composerField], state, manifest.path);
2781
+ if (!located) continue;
2782
+ const dependencies = Object.entries(located.value).flatMap(
2783
+ ([name, dependency]) => mapDependency(name, dependency, state, [...located.path, name])
2784
+ );
2785
+ if (dependencies.length) packageConfig[packageField] = dependencies;
2786
+ }
2787
+ }
2727
2788
  function mapRuby(config, state, packageConfig, basePath) {
2728
2789
  const moduleName = takeString(config, ["moduleName"], state, basePath);
2729
2790
  if (moduleName !== void 0) packageConfig.moduleName = moduleName;
@@ -2893,28 +2954,52 @@ function takeCustomSections(value, language, activeLanguages, state, basePath) {
2893
2954
  }
2894
2955
  function mapPackageManifest(config, aliases, state, packageConfig, basePath) {
2895
2956
  const manifest = takeObject(config, aliases, state, basePath);
2896
- if (!manifest) return;
2957
+ if (!manifest) return void 0;
2897
2958
  const packageName = takeString(manifest.value, ["name"], state, manifest.path);
2898
2959
  const description = takeString(manifest.value, ["description"], state, manifest.path);
2960
+ const keywords = takeStringArray(manifest.value, ["keywords"], state, manifest.path);
2899
2961
  const license = takeString(manifest.value, ["license"], state, manifest.path);
2900
2962
  const author = takeObject(manifest.value, ["author"], state, manifest.path);
2901
2963
  const authorName = author ? takeString(author.value, ["name"], state, author.path) : void 0;
2902
- const authors = authorName && author ? [
2903
- compact({
2904
- name: authorName,
2905
- email: takeString(author.value, ["email"], state, author.path),
2906
- url: takeString(author.value, ["url"], state, author.path)
2907
- })
2908
- ] : void 0;
2964
+ const authors = [
2965
+ ...authorName && author ? [
2966
+ compact({
2967
+ name: authorName,
2968
+ email: takeString(author.value, ["email"], state, author.path),
2969
+ url: takeString(author.value, ["url"], state, author.path)
2970
+ })
2971
+ ] : [],
2972
+ ...takeManifestAuthors(manifest, state)
2973
+ ];
2909
2974
  Object.assign(
2910
2975
  packageConfig,
2911
2976
  compact({
2912
2977
  packageName,
2913
2978
  description,
2914
- authors,
2979
+ homepage: takeString(manifest.value, ["homepage"], state, manifest.path),
2980
+ keywords,
2981
+ authors: authors.length ? authors : void 0,
2915
2982
  license: license ? { type: license } : void 0
2916
2983
  })
2917
2984
  );
2985
+ return manifest;
2986
+ }
2987
+ function takeManifestAuthors(manifest, state) {
2988
+ const located = locate(manifest.value, ["authors"], manifest.path);
2989
+ if (!located || !Array.isArray(located.value)) return [];
2990
+ return located.value.flatMap((entry, index) => {
2991
+ if (!isObject(entry)) return [];
2992
+ const path = [...located.path, index];
2993
+ const name = takeString(entry, ["name"], state, path);
2994
+ if (!name) return [];
2995
+ return [
2996
+ compact({
2997
+ name,
2998
+ email: takeString(entry, ["email"], state, path),
2999
+ url: takeString(entry, ["url"], state, path)
3000
+ })
3001
+ ];
3002
+ });
2918
3003
  }
2919
3004
  function takePythonAdditionalInitExports(config, state, basePath) {
2920
3005
  const located = locate(config, ["additionalInitExports"], basePath);