@fern-api/fern-api-dev 5.20.1 → 5.21.0-3-g6ffb37058a9

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 +126 -27
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -519482,7 +519482,8 @@ var StreamFormat2 = schemas_exports.enum_(["sse", "json"]);
519482
519482
  var HttpResponseStreamSchemaDetailed = schemas_exports.object({
519483
519483
  type: schemas_exports.string(),
519484
519484
  format: StreamFormat2.optional(),
519485
- terminator: schemas_exports.string().optional()
519485
+ terminator: schemas_exports.string().optional(),
519486
+ resumable: schemas_exports.boolean().optional()
519486
519487
  }).extend(WithDocsSchema);
519487
519488
 
519488
519489
  // ../fern-definition/schema/lib/schemas/serialization/resources/service/types/HttpResponseStreamSchema.js
@@ -529682,7 +529683,8 @@ var JsonStreamChunk = schemas_exports3.objectWithoutOptionalProperties({
529682
529683
  // ../../ir-sdk/lib/sdk/serialization/resources/http/types/SseStreamChunk.js
529683
529684
  var SseStreamChunk = schemas_exports3.objectWithoutOptionalProperties({
529684
529685
  payload: schemas_exports3.lazy(() => TypeReference3),
529685
- terminator: schemas_exports3.string().optional()
529686
+ terminator: schemas_exports3.string().optional(),
529687
+ resumable: schemas_exports3.boolean().optional()
529686
529688
  }).extend(WithDocs).extend(WithV2Examples);
529687
529689
 
529688
529690
  // ../../ir-sdk/lib/sdk/serialization/resources/http/types/TextStreamChunk.js
@@ -560869,7 +560871,8 @@ var FileResponse = schemas_exports9.objectWithoutOptionalProperties({}).extend(W
560869
560871
  var JsonResponse3 = schemas_exports9.objectWithoutOptionalProperties({
560870
560872
  schema: schemas_exports9.lazy(() => Schema2),
560871
560873
  responseProperty: schemas_exports9.string().optional(),
560872
- terminator: schemas_exports9.string().optional()
560874
+ terminator: schemas_exports9.string().optional(),
560875
+ resumable: schemas_exports9.boolean().optional()
560873
560876
  }).extend(WithDescription).extend(WithSource).extend(WithStatusCode);
560874
560877
 
560875
560878
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/finalIr/types/TextResponse.js
@@ -561568,7 +561571,8 @@ var JsonResponseWithExample = schemas_exports9.objectWithoutOptionalProperties({
561568
561571
  schema: schemas_exports9.lazy(() => SchemaWithExample2),
561569
561572
  responseProperty: schemas_exports9.string().optional(),
561570
561573
  terminator: schemas_exports9.string().optional(),
561571
- fullExamples: schemas_exports9.list(NamedFullExample).optional()
561574
+ fullExamples: schemas_exports9.list(NamedFullExample).optional(),
561575
+ resumable: schemas_exports9.boolean().optional()
561572
561576
  }).extend(WithDescription).extend(WithSource).extend(WithStatusCode);
561573
561577
 
561574
561578
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/parseIr/types/ResponseWithExample.js
@@ -565894,7 +565898,8 @@ function buildEndpoint({ endpoint: endpoint3, declarationFile, context: context3
565894
565898
  docs: jsonResponse.description ?? void 0,
565895
565899
  type: getTypeFromTypeReference(responseTypeReference),
565896
565900
  format: "sse",
565897
- terminator: jsonResponse.terminator ?? void 0
565901
+ terminator: jsonResponse.terminator ?? void 0,
565902
+ resumable: jsonResponse.resumable ?? void 0
565898
565903
  };
565899
565904
  },
565900
565905
  file: (fileResponse) => {
@@ -568195,7 +568200,8 @@ var XFernStreaming = {
568195
568200
  properties: {
568196
568201
  "stream-condition": { type: "string" },
568197
568202
  response: "Schema",
568198
- "response-stream": "Schema"
568203
+ "response-stream": "Schema",
568204
+ resumable: { type: "boolean" }
568199
568205
  },
568200
568206
  required: ["stream-condition", "response", "response-stream"],
568201
568207
  extensionsPrefix: "x-"
@@ -568341,6 +568347,22 @@ var FernOpenAPIExtension = {
568341
568347
  * $ref: ./path/to/response/type.yaml
568342
568348
  * response-stream:
568343
568349
  * $ref: ./path/to/response-stream/type.yaml
568350
+ *
568351
+ * For SSE endpoints, `resumable: true` opts the endpoint into
568352
+ * client-side reconnection using `Last-Event-ID` / `retry:`. The
568353
+ * default is `false`. The flag is inheritable: setting
568354
+ * `x-fern-streaming.resumable: true` at the document level applies
568355
+ * to all SSE endpoints unless an operation overrides it explicitly.
568356
+ *
568357
+ * Example usage:
568358
+ * x-fern-streaming:
568359
+ * resumable: true
568360
+ *
568361
+ * paths:
568362
+ * /path/to/my/endpoint:
568363
+ * x-fern-streaming:
568364
+ * format: sse
568365
+ * resumable: false # overrides the document default
568344
568366
  */
568345
568367
  STREAMING: "x-fern-streaming",
568346
568368
  /**
@@ -576158,7 +576180,7 @@ function getFernAsyncExtension(operation) {
576158
576180
 
576159
576181
  // ../api-importers/openapi/openapi-ir-parser/lib/openapi/v3/extensions/getFernStreamingExtension.js
576160
576182
  var REQUEST_PREFIX = "$request.";
576161
- function getFernStreamingExtension(operation) {
576183
+ function getFernStreamingExtension(document4, operation) {
576162
576184
  const streaming = getExtension(operation, FernOpenAPIExtension.STREAMING);
576163
576185
  if (streaming == null) {
576164
576186
  return void 0;
@@ -576167,28 +576189,44 @@ function getFernStreamingExtension(operation) {
576167
576189
  return streaming ? {
576168
576190
  type: "stream",
576169
576191
  format: "json",
576170
- terminator: void 0
576192
+ terminator: void 0,
576193
+ resumable: false
576171
576194
  } : void 0;
576172
576195
  }
576196
+ const resumable = resolveResumable(document4, streaming);
576173
576197
  if (streaming["stream-condition"] == null && streaming.format != null) {
576174
576198
  return {
576175
576199
  type: "stream",
576176
576200
  format: streaming.format,
576177
- terminator: streaming.terminator
576201
+ terminator: streaming.terminator,
576202
+ resumable
576178
576203
  };
576179
576204
  }
576180
576205
  return {
576181
576206
  type: "streamCondition",
576182
576207
  format: streaming.format ?? "json",
576183
- // Default to "json"
576184
576208
  terminator: streaming.terminator,
576185
576209
  streamDescription: streaming["stream-description"],
576186
576210
  streamConditionProperty: maybeTrimRequestPrefix(streaming["stream-condition"]),
576187
576211
  streamRequestName: streaming["stream-request-name"],
576188
576212
  responseStream: streaming["response-stream"],
576189
- response: streaming.response
576213
+ response: streaming.response,
576214
+ resumable
576190
576215
  };
576191
576216
  }
576217
+ function resolveResumable(document4, streaming) {
576218
+ if (typeof streaming.resumable === "boolean") {
576219
+ return streaming.resumable;
576220
+ }
576221
+ return getDocumentLevelResumable(document4) ?? false;
576222
+ }
576223
+ function getDocumentLevelResumable(document4) {
576224
+ const docStreaming = getExtension(document4, FernOpenAPIExtension.STREAMING);
576225
+ if (docStreaming == null || typeof docStreaming === "boolean") {
576226
+ return void 0;
576227
+ }
576228
+ return typeof docStreaming.resumable === "boolean" ? docStreaming.resumable : void 0;
576229
+ }
576192
576230
  function maybeTrimRequestPrefix(streamCondition) {
576193
576231
  if (streamCondition.startsWith(REQUEST_PREFIX)) {
576194
576232
  return streamCondition.slice(REQUEST_PREFIX.length);
@@ -577553,7 +577591,7 @@ var ERROR_NAMES = new Set(Object.values(ERROR_NAMES_BY_STATUS_CODE));
577553
577591
 
577554
577592
  // ../api-importers/openapi/openapi-ir-parser/lib/openapi/v3/converters/endpoint/convertResponse.js
577555
577593
  var SUCCESSFUL_STATUS_CODES = ["200", "201", "202", "204"];
577556
- function convertResponse({ operationContext, responses, context: context3, responseBreadcrumbs, responseStatusCode, streamFormat, streamTerminator, source: source2 }) {
577594
+ function convertResponse({ operationContext, responses, context: context3, responseBreadcrumbs, responseStatusCode, streamFormat, streamTerminator, streamResumable, source: source2 }) {
577557
577595
  if (responses == null) {
577558
577596
  return { value: void 0, errors: {} };
577559
577597
  }
@@ -577576,6 +577614,7 @@ function convertResponse({ operationContext, responses, context: context3, respo
577576
577614
  responseBreadcrumbs,
577577
577615
  streamFormat,
577578
577616
  streamTerminator,
577617
+ streamResumable,
577579
577618
  source: source2,
577580
577619
  namespace: context3.namespace,
577581
577620
  statusCode: statusCodeNum
@@ -577623,6 +577662,7 @@ function convertResponse({ operationContext, responses, context: context3, respo
577623
577662
  responseBreadcrumbs,
577624
577663
  streamFormat,
577625
577664
  streamTerminator,
577665
+ streamResumable,
577626
577666
  source: source2,
577627
577667
  namespace: context3.namespace
577628
577668
  });
@@ -577657,7 +577697,7 @@ function convertResponse({ operationContext, responses, context: context3, respo
577657
577697
  errors: errors4
577658
577698
  };
577659
577699
  }
577660
- function convertResolvedResponse({ operationContext, streamFormat, streamTerminator, response, context: context3, responseBreadcrumbs, source: source2, namespace, statusCode }) {
577700
+ function convertResolvedResponse({ operationContext, streamFormat, streamTerminator, streamResumable, response, context: context3, responseBreadcrumbs, source: source2, namespace, statusCode }) {
577661
577701
  const resolvedResponse = isReferenceObject(response) ? context3.resolveResponseReference(response) : response;
577662
577702
  if (resolvedResponse.content != null) {
577663
577703
  const binaryContent = Object.entries(resolvedResponse.content).find(([_7, mediaObject]) => {
@@ -577684,6 +577724,7 @@ function convertResolvedResponse({ operationContext, streamFormat, streamTermina
577684
577724
  description: resolvedResponse.description,
577685
577725
  responseProperty: getExtension(operationContext.operation, FernOpenAPIExtension.RESPONSE_PROPERTY),
577686
577726
  terminator: streamTerminator,
577727
+ resumable: void 0,
577687
577728
  fullExamples: textEventStreamObject.examples,
577688
577729
  schema: convertSchema2(textEventStreamObject.schema, false, false, context3, responseBreadcrumbs, source2, namespace),
577689
577730
  source: source2
@@ -577693,6 +577734,7 @@ function convertResolvedResponse({ operationContext, streamFormat, streamTermina
577693
577734
  description: resolvedResponse.description,
577694
577735
  responseProperty: void 0,
577695
577736
  terminator: streamTerminator,
577737
+ resumable: streamResumable,
577696
577738
  fullExamples: textEventStreamObject.examples,
577697
577739
  schema: convertSchema2(textEventStreamObject.schema, false, false, context3, responseBreadcrumbs, source2, namespace),
577698
577740
  source: source2,
@@ -577712,6 +577754,7 @@ function convertResolvedResponse({ operationContext, streamFormat, streamTermina
577712
577754
  description: resolvedResponse.description,
577713
577755
  responseProperty: void 0,
577714
577756
  terminator: streamTerminator,
577757
+ resumable: void 0,
577715
577758
  fullExamples: jsonMediaObject.examples,
577716
577759
  schema: convertSchema2(jsonMediaObject.schema, false, false, context3, responseBreadcrumbs, source2, namespace),
577717
577760
  source: source2,
@@ -577722,6 +577765,7 @@ function convertResolvedResponse({ operationContext, streamFormat, streamTermina
577722
577765
  description: resolvedResponse.description,
577723
577766
  responseProperty: void 0,
577724
577767
  terminator: streamTerminator,
577768
+ resumable: streamResumable,
577725
577769
  fullExamples: jsonMediaObject.examples,
577726
577770
  schema: convertSchema2(jsonMediaObject.schema, false, false, context3, responseBreadcrumbs, source2, namespace),
577727
577771
  source: source2,
@@ -577734,6 +577778,7 @@ function convertResolvedResponse({ operationContext, streamFormat, streamTermina
577734
577778
  schema: convertSchema2(jsonMediaObject.schema, false, false, context3, responseBreadcrumbs, source2, namespace),
577735
577779
  responseProperty: getExtension(operationContext.operation, FernOpenAPIExtension.RESPONSE_PROPERTY),
577736
577780
  terminator: void 0,
577781
+ resumable: void 0,
577737
577782
  fullExamples: jsonMediaObject.examples,
577738
577783
  source: source2,
577739
577784
  statusCode
@@ -577792,7 +577837,7 @@ function markErrorSchemas({ responses, context: context3, source: source2, names
577792
577837
  }
577793
577838
 
577794
577839
  // ../api-importers/openapi/openapi-ir-parser/lib/openapi/v3/converters/operation/convertHttpOperation.js
577795
- function convertHttpOperation({ operationContext, context: context3, responseStatusCode, suffix, streamFormat, streamTerminator, source: source2, streamRequestNameOverride }) {
577840
+ function convertHttpOperation({ operationContext, context: context3, responseStatusCode, suffix, streamFormat, streamTerminator, streamResumable, source: source2, streamRequestNameOverride }) {
577796
577841
  const { document: document4, operation, path: path107, method: method8, baseBreadcrumbs, pathItem } = operationContext;
577797
577842
  const idempotent = getExtension(operation, FernOpenAPIExtension.IDEMPOTENT);
577798
577843
  const requestNameOverride = getExtension(operation, [
@@ -578004,6 +578049,7 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
578004
578049
  operationContext,
578005
578050
  streamFormat,
578006
578051
  streamTerminator,
578052
+ streamResumable,
578007
578053
  responses: operation.responses,
578008
578054
  context: context3,
578009
578055
  responseBreadcrumbs,
@@ -578189,6 +578235,7 @@ function convertStreamingOperation({ operationContext, context: context3, stream
578189
578235
  context: context3,
578190
578236
  streamFormat: streamingExtension.format,
578191
578237
  streamTerminator: streamingExtension.terminator,
578238
+ streamResumable: streamingExtension.resumable,
578192
578239
  source: context3.source
578193
578240
  });
578194
578241
  return {
@@ -578238,6 +578285,7 @@ function convertStreamingOperation({ operationContext, context: context3, stream
578238
578285
  context: context3,
578239
578286
  streamFormat: streamingExtension.format,
578240
578287
  streamTerminator: streamingExtension.terminator,
578288
+ streamResumable: streamingExtension.resumable,
578241
578289
  suffix: STREAM_SUFFIX,
578242
578290
  source: context3.source,
578243
578291
  streamRequestNameOverride: autoStreamRequestName
@@ -578716,11 +578764,16 @@ function convertOperation({ context: context3, pathItemContext, operation, conve
578716
578764
  });
578717
578765
  return { type: "webhook", value: webhooks2 };
578718
578766
  }
578719
- let streamingExtension = getFernStreamingExtension(operation);
578767
+ let streamingExtension = getFernStreamingExtension(context3.document, operation);
578720
578768
  if (streamingExtension == null) {
578721
578769
  const hasEventStreamResponse = checkOperationForTextEventStream({ operation, context: context3 });
578722
578770
  if (hasEventStreamResponse) {
578723
- streamingExtension = { type: "stream", format: "sse", terminator: void 0 };
578771
+ streamingExtension = {
578772
+ type: "stream",
578773
+ format: "sse",
578774
+ terminator: void 0,
578775
+ resumable: getDocumentLevelResumable(context3.document) ?? false
578776
+ };
578724
578777
  }
578725
578778
  }
578726
578779
  if (streamingExtension != null) {
@@ -600122,6 +600175,7 @@ function convertStreamHttpResponseBody({ endpoint: endpoint3, file: file4, typeR
600122
600175
  docs: docs2,
600123
600176
  payload: file4.parseTypeReference(typeReference2),
600124
600177
  terminator: typeof responseStream !== "string" ? responseStream.terminator : void 0,
600178
+ resumable: typeof responseStream !== "string" ? responseStream.resumable : void 0,
600125
600179
  v2Examples: void 0
600126
600180
  });
600127
600181
  } else {
@@ -602885,6 +602939,7 @@ function convertWebhookStreamResponseBody({ responseStream, file: file4, typeRes
602885
602939
  docs: docs2,
602886
602940
  payload: file4.parseTypeReference(typeReference2),
602887
602941
  terminator: typeof responseStream !== "string" ? responseStream.terminator : void 0,
602942
+ resumable: typeof responseStream !== "string" ? responseStream.resumable : void 0,
602888
602943
  v2Examples: void 0
602889
602944
  });
602890
602945
  } else {
@@ -632265,6 +632320,16 @@ var definitions2 = {
632265
632320
  type: "null"
632266
632321
  }
632267
632322
  ]
632323
+ },
632324
+ resumable: {
632325
+ oneOf: [
632326
+ {
632327
+ type: "boolean"
632328
+ },
632329
+ {
632330
+ type: "null"
632331
+ }
632332
+ ]
632268
632333
  }
632269
632334
  },
632270
632335
  required: [
@@ -636499,6 +636564,16 @@ var definitions3 = {
636499
636564
  type: "null"
636500
636565
  }
636501
636566
  ]
636567
+ },
636568
+ resumable: {
636569
+ oneOf: [
636570
+ {
636571
+ type: "boolean"
636572
+ },
636573
+ {
636574
+ type: "null"
636575
+ }
636576
+ ]
636502
636577
  }
636503
636578
  },
636504
636579
  required: [
@@ -648129,14 +648204,17 @@ var StreamingExtensionObjectSchema = external_exports2.object({
648129
648204
  "stream-request-name": external_exports2.string().optional(),
648130
648205
  "response-stream": external_exports2.any(),
648131
648206
  response: external_exports2.any(),
648132
- terminator: external_exports2.string().optional()
648207
+ terminator: external_exports2.string().optional(),
648208
+ resumable: external_exports2.boolean().optional()
648133
648209
  });
648134
648210
  var StreamingExtensionSchema = external_exports2.union([external_exports2.boolean(), StreamingExtensionObjectSchema]);
648135
648211
  var FernStreamingExtension = class extends AbstractExtension {
648212
+ document;
648136
648213
  operation;
648137
648214
  key = "x-fern-streaming";
648138
- constructor({ breadcrumbs, operation, context: context3 }) {
648215
+ constructor({ breadcrumbs, document: document4, operation, context: context3 }) {
648139
648216
  super({ breadcrumbs, context: context3 });
648217
+ this.document = document4;
648140
648218
  this.operation = operation;
648141
648219
  }
648142
648220
  convert() {
@@ -648153,10 +648231,11 @@ var FernStreamingExtension = class extends AbstractExtension {
648153
648231
  return void 0;
648154
648232
  }
648155
648233
  if (typeof result.data === "boolean") {
648156
- return result.data ? { type: "stream", format: "json", terminator: void 0 } : void 0;
648234
+ return result.data ? { type: "stream", format: "json", terminator: void 0, resumable: false } : void 0;
648157
648235
  }
648236
+ const resumable = result.data.resumable ?? getDocumentLevelResumable2(this.document) ?? false;
648158
648237
  if (result.data["stream-condition"] == null && result.data.format != null) {
648159
- return { type: "stream", format: result.data.format, terminator: result.data.terminator };
648238
+ return { type: "stream", format: result.data.format, terminator: result.data.terminator, resumable };
648160
648239
  }
648161
648240
  if (result.data["stream-condition"] == null) {
648162
648241
  this.context.errorCollector.collect({
@@ -648173,10 +648252,19 @@ var FernStreamingExtension = class extends AbstractExtension {
648173
648252
  streamConditionProperty: AbstractConverterContext.maybeTrimPrefix(result.data["stream-condition"], REQUEST_PREFIX4),
648174
648253
  streamRequestName: result.data["stream-request-name"],
648175
648254
  responseStream: result.data["response-stream"],
648176
- response: result.data.response
648255
+ response: result.data.response,
648256
+ resumable
648177
648257
  };
648178
648258
  }
648179
648259
  };
648260
+ function getDocumentLevelResumable2(document4) {
648261
+ const docStreaming = document4["x-fern-streaming"];
648262
+ if (docStreaming == null || typeof docStreaming === "boolean") {
648263
+ return void 0;
648264
+ }
648265
+ const resumable = docStreaming.resumable;
648266
+ return typeof resumable === "boolean" ? resumable : void 0;
648267
+ }
648180
648268
 
648181
648269
  // ../api-importers/openapi-to-ir/lib/extensions/x-fern-webhook.js
648182
648270
  var FernWebhookExtension = class extends AbstractExtension {
@@ -648603,6 +648691,7 @@ var ResponseBodyConverter = class extends converters_exports.AbstractConverters.
648603
648691
  docs: this.responseBody.description,
648604
648692
  payload: convertedSchema.type,
648605
648693
  terminator: this.streamingExtension?.terminator,
648694
+ resumable: this.streamingExtension?.resumable,
648606
648695
  v2Examples: this.convertMediaTypeObjectExamples({
648607
648696
  mediaTypeObject,
648608
648697
  generateOptionalProperties: true,
@@ -649897,6 +649986,7 @@ var PathConverter = class extends AbstractConverter {
649897
649986
  }
649898
649987
  const streamingExtensionConverter = new FernStreamingExtension({
649899
649988
  breadcrumbs: operationBreadcrumbs,
649989
+ document: this.context.spec,
649900
649990
  operation,
649901
649991
  context: this.context
649902
649992
  });
@@ -649904,7 +649994,12 @@ var PathConverter = class extends AbstractConverter {
649904
649994
  if (streamingExtension == null) {
649905
649995
  const hasTextEventStream2 = this.operationHasTextEventStreamResponse(operation);
649906
649996
  if (hasTextEventStream2) {
649907
- streamingExtension = { type: "stream", format: "sse", terminator: void 0 };
649997
+ streamingExtension = {
649998
+ type: "stream",
649999
+ format: "sse",
650000
+ terminator: void 0,
650001
+ resumable: getDocumentLevelResumable2(this.context.spec) ?? false
650002
+ };
649908
650003
  }
649909
650004
  }
649910
650005
  const convertedEndpoint = this.tryParseAsHttpEndpoint({
@@ -661157,7 +661252,7 @@ var AccessTokenPosthogManager = class {
661157
661252
  properties: {
661158
661253
  ...event,
661159
661254
  ...event.properties,
661160
- version: "5.20.1",
661255
+ version: "5.21.0-3-g6ffb37058a9",
661161
661256
  usingAccessToken: true,
661162
661257
  ...getRunIdProperties()
661163
661258
  }
@@ -661212,7 +661307,7 @@ var UserPosthogManager = class {
661212
661307
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
661213
661308
  event: "CLI",
661214
661309
  properties: {
661215
- version: "5.20.1",
661310
+ version: "5.21.0-3-g6ffb37058a9",
661216
661311
  ...event,
661217
661312
  ...event.properties,
661218
661313
  usingAccessToken: false,
@@ -852485,7 +852580,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
852485
852580
  var LOGS_FOLDER_NAME = "logs";
852486
852581
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
852487
852582
  function getCliSource() {
852488
- const version7 = "5.20.1";
852583
+ const version7 = "5.21.0-3-g6ffb37058a9";
852489
852584
  return `cli@${version7}`;
852490
852585
  }
852491
852586
  var DebugLogger = class {
@@ -865294,7 +865389,7 @@ var LegacyDocsPublisher = class {
865294
865389
  previewId,
865295
865390
  disableTemplates: void 0,
865296
865391
  skipUpload,
865297
- cliVersion: "5.20.1",
865392
+ cliVersion: "5.21.0-3-g6ffb37058a9",
865298
865393
  loginCommand: "fern auth login"
865299
865394
  });
865300
865395
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -884773,6 +884868,8 @@ var Generation = class {
884773
884868
  extraDependencies: () => this.customConfig["extra-dependencies"] ?? {},
884774
884869
  /** When true, omits Fern platform headers (X-Fern-Language, SDK name/version, User-Agent) from generated SDK requests. Default: false. */
884775
884870
  omitFernHeaders: () => this.customConfig["omit-fern-headers"] ?? false,
884871
+ /** When true, falls back to `<NuGetPackageId>/<version>` for the `User-Agent` header when the IR doesn't supply one. Default: false. */
884872
+ userAgentNameFromPackage: () => this.customConfig["user-agent-name-from-package"] ?? false,
884776
884873
  /** When true, moves auth params and IR headers into ClientOptions so the constructor takes only named arguments. Default: false. */
884777
884874
  unifiedClientOptions: () => this.customConfig["unified-client-options"] ?? false,
884778
884875
  /** When true, uses PascalCase for environment names (e.g., "Production" instead of "production"). Default: true. */
@@ -884785,6 +884882,8 @@ var Generation = class {
884785
884882
  maxRetries: () => this.customConfig.maxRetries,
884786
884883
  /** Controls which HTTP status codes trigger automatic retries. Default: "legacy". */
884787
884884
  retryStatusCodes: () => this.customConfig.retryStatusCodes ?? "legacy",
884885
+ /** Override the default request timeout (in seconds) for the generated SDK client. `"infinity"` disables the default timeout. Default: 30. */
884886
+ defaultTimeoutInSeconds: () => this.customConfig["default-timeout-in-seconds"],
884788
884887
  /**
884789
884888
  * Output path configuration for generated files.
884790
884889
  * Returns normalized paths for library, test, solution, and other files.
@@ -939918,7 +940017,7 @@ var CliContext = class _CliContext {
939918
940017
  if (false) {
939919
940018
  this.logger.error("CLI_VERSION is not defined");
939920
940019
  }
939921
- return "5.20.1";
940020
+ return "5.21.0-3-g6ffb37058a9";
939922
940021
  }
939923
940022
  getCliName() {
939924
940023
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.20.1",
2
+ "version": "5.21.0-3-g6ffb37058a9",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",