@fern-api/fern-api-dev 5.77.0 → 5.78.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 (2) hide show
  1. package/cli.cjs +99 -20
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -145601,7 +145601,7 @@ var init_convertFullExample = __esm({
145601
145601
  });
145602
145602
 
145603
145603
  // ../api-importers/openapi/openapi-ir-to-fern/lib/buildEndpointExample.js
145604
- function buildEndpointExample({ endpointExample, context: context3 }) {
145604
+ function buildEndpointExample({ endpointExample, context: context3, pathParameterRenames }) {
145605
145605
  const example = {};
145606
145606
  if (endpointExample.type !== "full") {
145607
145607
  return endpointExample.value;
@@ -145622,7 +145622,7 @@ function buildEndpointExample({ endpointExample, context: context3 }) {
145622
145622
  }
145623
145623
  }
145624
145624
  if (endpointExample.pathParameters != null && endpointExample.pathParameters.length > 0) {
145625
- Object.assign(pathParametersForExample, convertPathParameterExample(endpointExample.pathParameters));
145625
+ Object.assign(pathParametersForExample, convertPathParameterExample(endpointExample.pathParameters, pathParameterRenames));
145626
145626
  }
145627
145627
  if (Object.keys(pathParametersForExample).length > 0) {
145628
145628
  example["path-parameters"] = pathParametersForExample;
@@ -145724,12 +145724,13 @@ function buildEndpointExample({ endpointExample, context: context3 }) {
145724
145724
  }
145725
145725
  return example;
145726
145726
  }
145727
- function convertPathParameterExample(pathParameterExamples) {
145727
+ function convertPathParameterExample(pathParameterExamples, pathParameterRenames) {
145728
145728
  const result = {};
145729
145729
  pathParameterExamples.forEach((pathParameterExample) => {
145730
145730
  const convertedExample = convertFullExample2(pathParameterExample.value);
145731
145731
  if (convertedExample != null) {
145732
- result[pathParameterExample.parameterNameOverride ?? pathParameterExample.name] = convertedExample;
145732
+ const name2 = pathParameterExample.parameterNameOverride ?? pathParameterRenames?.[pathParameterExample.name] ?? pathParameterExample.name;
145733
+ result[name2] = convertedExample;
145733
145734
  }
145734
145735
  });
145735
145736
  return result;
@@ -145854,17 +145855,92 @@ var init_isWriteMethod = __esm({
145854
145855
  });
145855
145856
 
145856
145857
  // ../api-importers/openapi/openapi-ir-to-fern/lib/buildEndpoint.js
145858
+ function getReservedRequestPropertyNames({ endpoint: endpoint3, context: context3, namespace }) {
145859
+ const reservedNames = /* @__PURE__ */ new Set();
145860
+ for (const queryParameter of endpoint3.queryParameters) {
145861
+ reservedNames.add(queryParameter.name);
145862
+ }
145863
+ for (const header of endpoint3.headers) {
145864
+ reservedNames.add(header.parameterNameOverride ?? header.name);
145865
+ }
145866
+ const request7 = endpoint3.request;
145867
+ if (request7 == null) {
145868
+ return reservedNames;
145869
+ }
145870
+ switch (request7.type) {
145871
+ case "multipart":
145872
+ for (const property24 of request7.properties) {
145873
+ reservedNames.add(property24.key);
145874
+ }
145875
+ break;
145876
+ case "json":
145877
+ case "formUrlEncoded": {
145878
+ const maybeSchemaId = request7.schema.type === "reference" ? request7.schema.schema : void 0;
145879
+ const resolvedSchema = request7.schema.type === "reference" ? context3.getSchema(request7.schema.schema, namespace) : request7.schema;
145880
+ if (resolvedSchema?.type !== "object" || maybeSchemaId != null && context3.isResponseReachable(maybeSchemaId)) {
145881
+ reservedNames.add("body");
145882
+ break;
145883
+ }
145884
+ for (const property24 of resolvedSchema.properties) {
145885
+ reservedNames.add(property24.nameOverride ?? property24.key);
145886
+ }
145887
+ for (const allOfRef of resolvedSchema.allOf) {
145888
+ const { properties: allOfProperties } = getProperties(context3, allOfRef.schema, namespace);
145889
+ for (const property24 of allOfProperties) {
145890
+ reservedNames.add(property24.nameOverride ?? property24.key);
145891
+ }
145892
+ }
145893
+ break;
145894
+ }
145895
+ case "octetStream":
145896
+ break;
145897
+ default:
145898
+ assertNever(request7);
145899
+ }
145900
+ return reservedNames;
145901
+ }
145902
+ function deconflictPathParameterName({ pathParameterName, reservedNames, pathParameters }) {
145903
+ const otherPathParameterNames = /* @__PURE__ */ new Set();
145904
+ for (const pathParameter of pathParameters) {
145905
+ const name2 = pathParameter.parameterNameOverride ?? pathParameter.name;
145906
+ if (name2 !== pathParameterName) {
145907
+ otherPathParameterNames.add(name2);
145908
+ }
145909
+ }
145910
+ let candidate = `${pathParameterName}${PATH_PARAM_DECONFLICT_SUFFIX}`;
145911
+ let counter = 2;
145912
+ while (reservedNames.has(candidate) || otherPathParameterNames.has(candidate)) {
145913
+ candidate = `${pathParameterName}${PATH_PARAM_DECONFLICT_SUFFIX}${counter}`;
145914
+ counter++;
145915
+ }
145916
+ return candidate;
145917
+ }
145857
145918
  function buildEndpoint({ endpoint: endpoint3, declarationFile, context: context3 }) {
145858
145919
  let schemaIdsToExclude = [];
145859
145920
  const names2 = /* @__PURE__ */ new Set();
145860
145921
  let path120 = endpoint3.path;
145861
145922
  const maybeEndpointNamespace = getEndpointNamespace(endpoint3.sdkName, endpoint3.namespace);
145923
+ const reservedRequestPropertyNames = getReservedRequestPropertyNames({
145924
+ endpoint: endpoint3,
145925
+ context: context3,
145926
+ namespace: maybeEndpointNamespace
145927
+ });
145928
+ const pathParameterRenames = {};
145862
145929
  const pathParameters = {};
145863
145930
  for (const pathParameter of endpoint3.pathParameters) {
145864
- if (pathParameter.parameterNameOverride) {
145865
- path120 = path120.replace(pathParameter.name, pathParameter.parameterNameOverride);
145931
+ let parameterNameOverride = pathParameter.parameterNameOverride;
145932
+ if (parameterNameOverride == null && reservedRequestPropertyNames.has(pathParameter.name)) {
145933
+ parameterNameOverride = deconflictPathParameterName({
145934
+ pathParameterName: pathParameter.name,
145935
+ reservedNames: reservedRequestPropertyNames,
145936
+ pathParameters: endpoint3.pathParameters
145937
+ });
145938
+ pathParameterRenames[pathParameter.name] = parameterNameOverride;
145866
145939
  }
145867
- pathParameters[pathParameter.parameterNameOverride ?? pathParameter.name] = buildPathParameter({
145940
+ if (parameterNameOverride) {
145941
+ path120 = path120.replace(`{${pathParameter.name}}`, `{${parameterNameOverride}}`);
145942
+ }
145943
+ pathParameters[parameterNameOverride ?? pathParameter.name] = buildPathParameter({
145868
145944
  pathParameter,
145869
145945
  context: context3,
145870
145946
  fileContainingReference: declarationFile,
@@ -146171,7 +146247,8 @@ function buildEndpoint({ endpoint: endpoint3, declarationFile, context: context3
146171
146247
  if (endpoint3.examples.length > 0) {
146172
146248
  convertedEndpoint.examples = convertEndpointExamples({
146173
146249
  endpointExamples: endpoint3.examples,
146174
- context: context3
146250
+ context: context3,
146251
+ pathParameterRenames
146175
146252
  });
146176
146253
  }
146177
146254
  if (endpoint3.retries != null) {
@@ -146213,10 +146290,10 @@ function convertEndpointAuth({ endpoint: endpoint3, context: context3 }) {
146213
146290
  }
146214
146291
  return endpoint3.security;
146215
146292
  }
146216
- function convertEndpointExamples({ endpointExamples, context: context3 }) {
146293
+ function convertEndpointExamples({ endpointExamples, context: context3, pathParameterRenames }) {
146217
146294
  return endpointExamples.map((endpointExample) => {
146218
146295
  try {
146219
- return buildEndpointExample({ endpointExample, context: context3 });
146296
+ return buildEndpointExample({ endpointExample, context: context3, pathParameterRenames });
146220
146297
  } catch (e2) {
146221
146298
  console.error(`Error building endpoint example: ${e2}`);
146222
146299
  throw e2;
@@ -146548,6 +146625,7 @@ function endpointRequestSupportsInlinedPathParameters({ context: context3, reque
146548
146625
  assertNever(request7);
146549
146626
  }
146550
146627
  }
146628
+ var PATH_PARAM_DECONFLICT_SUFFIX;
146551
146629
  var init_buildEndpoint = __esm({
146552
146630
  "../api-importers/openapi/openapi-ir-to-fern/lib/buildEndpoint.js"() {
146553
146631
  "use strict";
@@ -146573,6 +146651,7 @@ var init_buildEndpoint = __esm({
146573
146651
  init_getNamespaceFromGroup();
146574
146652
  init_getTypeFromTypeReference();
146575
146653
  init_isWriteMethod();
146654
+ PATH_PARAM_DECONFLICT_SUFFIX = "PathParam";
146576
146655
  }
146577
146656
  });
146578
146657
 
@@ -691395,7 +691474,7 @@ var AccessTokenPosthogManager = class {
691395
691474
  properties: {
691396
691475
  ...event,
691397
691476
  ...event.properties,
691398
- version: "5.77.0",
691477
+ version: "5.78.0",
691399
691478
  usingAccessToken: true,
691400
691479
  ...getRunIdProperties()
691401
691480
  }
@@ -691461,7 +691540,7 @@ var UserPosthogManager = class {
691461
691540
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
691462
691541
  event: "CLI",
691463
691542
  properties: {
691464
- version: "5.77.0",
691543
+ version: "5.78.0",
691465
691544
  ...event,
691466
691545
  ...event.properties,
691467
691546
  usingAccessToken: false,
@@ -872567,7 +872646,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
872567
872646
  var LOGS_FOLDER_NAME = "logs";
872568
872647
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
872569
872648
  function getCliSource() {
872570
- const version7 = "5.77.0";
872649
+ const version7 = "5.78.0";
872571
872650
  return `cli@${version7}`;
872572
872651
  }
872573
872652
  var DebugLogger = class {
@@ -905220,7 +905299,7 @@ var LegacyDocsPublisher = class {
905220
905299
  previewId,
905221
905300
  disableTemplates: void 0,
905222
905301
  skipUpload,
905223
- cliVersion: "5.77.0",
905302
+ cliVersion: "5.78.0",
905224
905303
  loginCommand: "fern auth login"
905225
905304
  });
905226
905305
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -924941,6 +925020,8 @@ var Generation = class {
924941
925020
  userAgentNameFromPackage: () => this.customConfig["user-agent-name-from-package"] ?? false,
924942
925021
  /** When true, moves auth params and IR headers into ClientOptions so the constructor takes only named arguments. Default: false. */
924943
925022
  unifiedClientOptions: () => this.customConfig["unified-client-options"] ?? false,
925023
+ /** When true, exposes server URL variables as ClientOptions properties and interpolates them into the environment URL template(s) at construction time. When false, suppresses those options and the interpolation, falling back to the pre-feature base-URL behavior. Default: true. */
925024
+ serverUrlVariables: () => this.customConfig["server-url-variables"] ?? true,
924944
925025
  /** When true, uses PascalCase for environment names (e.g., "Production" instead of "production"). Default: true. */
924945
925026
  pascalCaseEnvironments: () => this.customConfig["pascal-case-environments"] ?? true,
924946
925027
  /** Solution file format: "sln" generates both .sln and .slnx, "slnx" (default) generates only .slnx. */
@@ -948946,8 +949027,7 @@ var DynamicTypeLiteralMapper5 = class {
948946
949027
  if (!enumVariant2) {
948947
949028
  return rust_exports.Expression.raw(`todo!("Unknown enum variant: ${value2}")`);
948948
949029
  }
948949
- const rawVariantName = enumVariant2.name.pascalCase.unsafeName;
948950
- const variantName = this.context.escapeRustReservedType(rawVariantName);
949030
+ const variantName = enumVariant2.name.pascalCase.safeName;
948951
949031
  return rust_exports.Expression.reference(`${enumName}::${variantName}`);
948952
949032
  }
948953
949033
  convertDiscriminatedUnionType({ unionType: unionType2, value: value2 }) {
@@ -950430,8 +950510,7 @@ var EndpointSnippetGenerator7 = class {
950430
950510
  if (namedType.values.length > 0) {
950431
950511
  const firstVariant = namedType.values[0];
950432
950512
  if (firstVariant) {
950433
- const rawVariantName = firstVariant.name.pascalCase.unsafeName;
950434
- const variantName = this.context.escapeRustReservedType(rawVariantName);
950513
+ const variantName = firstVariant.name.pascalCase.safeName;
950435
950514
  return rust_exports.Expression.raw(`${typeName}::${variantName}`);
950436
950515
  }
950437
950516
  }
@@ -972133,7 +972212,7 @@ function getAutomationContextFromEnv() {
972133
972212
  config_branch: process.env.FERN_CONFIG_BRANCH,
972134
972213
  config_pr_number: process.env.FERN_CONFIG_PR_NUMBER,
972135
972214
  trigger: process.env.GITHUB_EVENT_NAME,
972136
- cli_version: "5.77.0"
972215
+ cli_version: "5.78.0"
972137
972216
  };
972138
972217
  }
972139
972218
  function isAutomationMode() {
@@ -972965,7 +973044,7 @@ var CliContext = class _CliContext {
972965
973044
  if (false) {
972966
973045
  this.logger.error("CLI_VERSION is not defined");
972967
973046
  }
972968
- return "5.77.0";
973047
+ return "5.78.0";
972969
973048
  }
972970
973049
  getCliName() {
972971
973050
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.77.0",
2
+ "version": "5.78.0",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",