@fern-api/fern-api-dev 5.23.3-1791-g4804e1e5883 → 5.23.3-1793-gf121e7de351

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 +74 -21
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -59664,7 +59664,8 @@ var init_HttpInlineRequestBodySchema2 = __esm({
59664
59664
  HttpInlineRequestBodySchema = schemas_exports.object({
59665
59665
  extends: ObjectExtendsSchema.optional(),
59666
59666
  "extra-properties": schemas_exports.boolean().optional(),
59667
- properties: schemas_exports.record(schemas_exports.string(), HttpInlineRequestBodyPropertySchema).optional()
59667
+ properties: schemas_exports.record(schemas_exports.string(), HttpInlineRequestBodyPropertySchema).optional(),
59668
+ optional: schemas_exports.boolean().optional()
59668
59669
  });
59669
59670
  }
59670
59671
  });
@@ -139722,6 +139723,7 @@ var init_JsonRequest2 = __esm({
139722
139723
  JsonRequest = schemas_exports9.objectWithoutOptionalProperties({
139723
139724
  schema: schemas_exports9.lazy(() => Schema2),
139724
139725
  contentType: schemas_exports9.string().optional(),
139726
+ required: schemas_exports9.boolean().optional(),
139725
139727
  additionalProperties: schemas_exports9.boolean()
139726
139728
  }).extend(WithDescription).extend(WithSource);
139727
139729
  }
@@ -141456,6 +141458,7 @@ var init_JsonRequestWithExample2 = __esm({
141456
141458
  JsonRequestWithExample = schemas_exports9.objectWithoutOptionalProperties({
141457
141459
  schema: schemas_exports9.lazy(() => SchemaWithExample2),
141458
141460
  contentType: schemas_exports9.string().optional(),
141461
+ required: schemas_exports9.boolean().optional(),
141459
141462
  fullExamples: schemas_exports9.list(NamedFullExample).optional(),
141460
141463
  additionalProperties: schemas_exports9.boolean()
141461
141464
  }).extend(WithDescription).extend(WithSource).extend(WithSdkMethodName);
@@ -147296,6 +147299,9 @@ function getRequest({ endpoint: endpoint3, declarationFile, context: context3, r
147296
147299
  if (request7.additionalProperties) {
147297
147300
  requestBodySchema["extra-properties"] = true;
147298
147301
  }
147302
+ if (request7.type === "json" && request7.required !== true) {
147303
+ requestBodySchema.optional = true;
147304
+ }
147299
147305
  const convertedRequestValue = {
147300
147306
  name: requestNameOverride ?? resolvedSchema.nameOverride ?? resolvedSchema.generatedName,
147301
147307
  "path-parameters": pathParameters,
@@ -166027,7 +166033,7 @@ function multipartRequestHasFile(multipartSchema, document4) {
166027
166033
  return !isReferenceObject(definition3) && definition3.type === "string" && (definition3.format === "binary" || definition3.format == null && definition3.contentMediaType === "application/octet-stream");
166028
166034
  }) != null;
166029
166035
  }
166030
- function convertToSingleRequest({ content: content5, description, document: document4, context: context3, requestBreadcrumbs, source: source2, namespace }) {
166036
+ function convertToSingleRequest({ content: content5, description, document: document4, context: context3, requestBreadcrumbs, source: source2, namespace, bodyRequired }) {
166031
166037
  const octetStreamRequest = findOctetStreamRequest({ content: content5 });
166032
166038
  if (octetStreamRequest) {
166033
166039
  const [mediaType, mediaTypeObject] = octetStreamRequest;
@@ -166039,7 +166045,8 @@ function convertToSingleRequest({ content: content5, description, document: docu
166039
166045
  context: context3,
166040
166046
  requestBreadcrumbs,
166041
166047
  source: source2,
166042
- namespace
166048
+ namespace,
166049
+ bodyRequired
166043
166050
  });
166044
166051
  }
166045
166052
  const multipartFormDataRequest = findMultipartFormDataRequest({ content: content5, context: context3 });
@@ -166057,7 +166064,8 @@ function convertToSingleRequest({ content: content5, description, document: docu
166057
166064
  context: context3,
166058
166065
  requestBreadcrumbs,
166059
166066
  source: source2,
166060
- namespace
166067
+ namespace,
166068
+ bodyRequired
166061
166069
  }),
166062
166070
  multipart: ([mediaType, mediaTypeObject]) => convertRequest({
166063
166071
  mediaType,
@@ -166067,7 +166075,8 @@ function convertToSingleRequest({ content: content5, description, document: docu
166067
166075
  context: context3,
166068
166076
  requestBreadcrumbs,
166069
166077
  source: source2,
166070
- namespace
166078
+ namespace,
166079
+ bodyRequired
166071
166080
  }),
166072
166081
  neither: () => void 0
166073
166082
  }
@@ -166086,7 +166095,8 @@ function convertToSingleRequest({ content: content5, description, document: docu
166086
166095
  context: context3,
166087
166096
  requestBreadcrumbs,
166088
166097
  source: source2,
166089
- namespace
166098
+ namespace,
166099
+ bodyRequired
166090
166100
  });
166091
166101
  }
166092
166102
  return void 0;
@@ -166120,7 +166130,7 @@ function multipartOrJsonOrNone({ json: json2, multipart, document: document4, vi
166120
166130
  }
166121
166131
  return visitor.neither();
166122
166132
  }
166123
- function convertRequest({ mediaType, mediaTypeObject, description, document: document4, context: context3, requestBreadcrumbs, source: source2, namespace }) {
166133
+ function convertRequest({ mediaType, mediaTypeObject, description, document: document4, context: context3, requestBreadcrumbs, source: source2, namespace, bodyRequired }) {
166124
166134
  const sdkMethodName = getRequestSdkMethodName({ mediaTypeObject });
166125
166135
  if (isOctetStreamRequest({ mediaType })) {
166126
166136
  return RequestWithExample.octetStream({
@@ -166188,6 +166198,7 @@ function convertRequest({ mediaType, mediaTypeObject, description, document: doc
166188
166198
  description: void 0,
166189
166199
  schema: requestSchema,
166190
166200
  contentType: jsonMediaObject.contentType,
166201
+ required: bodyRequired,
166191
166202
  fullExamples: jsonMediaObject.examples,
166192
166203
  additionalProperties: !isReferenceObject(jsonMediaObject.schema) && isAdditionalPropertiesAny(jsonMediaObject.schema.additionalProperties, context3.options),
166193
166204
  source: source2,
@@ -166802,7 +166813,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166802
166813
  }),
166803
166814
  requestBreadcrumbs,
166804
166815
  source: source2,
166805
- namespace: context3.namespace
166816
+ namespace: context3.namespace,
166817
+ bodyRequired: resolvedRequestBody.required
166806
166818
  });
166807
166819
  if (endpointHasNonRequestBodyParameters({ context: context3, convertedParameters }) && convertedRequest != null && (convertedRequest.type === "json" || convertedRequest.type === "formUrlEncoded") && convertedRequest.schema.type !== "object" && operation.requestBody != null) {
166808
166820
  convertedRequest = convertRequest({
@@ -166813,7 +166825,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166813
166825
  context: context3,
166814
166826
  requestBreadcrumbs: [...requestBreadcrumbs, "Body"],
166815
166827
  source: source2,
166816
- namespace: context3.namespace
166828
+ namespace: context3.namespace,
166829
+ bodyRequired: resolvedRequestBody.required
166817
166830
  });
166818
166831
  } else if (operation.requestBody != null) {
166819
166832
  convertedRequest = convertRequest({
@@ -166824,7 +166837,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166824
166837
  context: context3,
166825
166838
  requestBreadcrumbs: [...requestBreadcrumbs],
166826
166839
  source: source2,
166827
- namespace: context3.namespace
166840
+ namespace: context3.namespace,
166841
+ bodyRequired: resolvedRequestBody.required
166828
166842
  });
166829
166843
  }
166830
166844
  return convertedRequest;
@@ -166847,7 +166861,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166847
166861
  }),
166848
166862
  requestBreadcrumbs,
166849
166863
  source: source2,
166850
- namespace: context3.namespace
166864
+ namespace: context3.namespace,
166865
+ bodyRequired: resolvedRequestBody.required
166851
166866
  });
166852
166867
  if (endpointHasNonRequestBodyParameters({ context: context3, convertedParameters }) && convertedRequest != null && (convertedRequest.type === "json" || convertedRequest.type === "formUrlEncoded") && convertedRequest.schema.type !== "object" && operation.requestBody != null) {
166853
166868
  convertedRequest = convertToSingleRequest({
@@ -166857,7 +166872,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166857
166872
  context: context3,
166858
166873
  requestBreadcrumbs: [...requestBreadcrumbs, "Body"],
166859
166874
  source: source2,
166860
- namespace: context3.namespace
166875
+ namespace: context3.namespace,
166876
+ bodyRequired: resolvedRequestBody.required
166861
166877
  });
166862
166878
  } else if (operation.requestBody != null) {
166863
166879
  convertedRequest = convertToSingleRequest({
@@ -166867,7 +166883,8 @@ function convertHttpOperation({ operationContext, context: context3, responseSta
166867
166883
  context: context3,
166868
166884
  requestBreadcrumbs: [...requestBreadcrumbs],
166869
166885
  source: source2,
166870
- namespace: context3.namespace
166886
+ namespace: context3.namespace,
166887
+ bodyRequired: resolvedRequestBody.required
166871
166888
  });
166872
166889
  }
166873
166890
  return [convertedRequest];
@@ -167600,7 +167617,10 @@ function convertWebhookOperation({ context: context3, operationContext, source:
167600
167617
  context: context3,
167601
167618
  requestBreadcrumbs: [...baseBreadcrumbs, "Payload"],
167602
167619
  source: source2,
167603
- namespace: context3.namespace
167620
+ namespace: context3.namespace,
167621
+ // carried for IR fidelity; a webhook payload is built as a type reference,
167622
+ // so nothing downstream reads its requiredness today
167623
+ bodyRequired: resolvedRequestBody.required
167604
167624
  })).filter((request7) => request7 != null).map((request7) => {
167605
167625
  if (request7 == null || request7.type !== "json" && request7.type !== "formUrlEncoded" && request7.type !== "multipart") {
167606
167626
  context3.logger.error(`Skipping webhook ${path121} because non-json, non-formUrlEncoded, and non-multipart request body`);
@@ -328273,6 +328293,17 @@ var init_fern_schema = __esm({
328273
328293
  type: "null"
328274
328294
  }
328275
328295
  ]
328296
+ },
328297
+ optional: {
328298
+ oneOf: [
328299
+ {
328300
+ type: "boolean"
328301
+ },
328302
+ {
328303
+ type: "null"
328304
+ }
328305
+ ],
328306
+ description: "Whether the endpoint may be called without a request body. When true, an\nexample may omit `request`. Populated from `requestBody.required` when\nimporting from OpenAPI.\n\nThis is read by example validation only: it is not carried into the IR, so it\ndoes not make the request parameter optional in a generated SDK."
328276
328307
  }
328277
328308
  },
328278
328309
  additionalProperties: false
@@ -332719,6 +332750,17 @@ var init_package_yml_schema = __esm({
332719
332750
  type: "null"
332720
332751
  }
332721
332752
  ]
332753
+ },
332754
+ optional: {
332755
+ oneOf: [
332756
+ {
332757
+ type: "boolean"
332758
+ },
332759
+ {
332760
+ type: "null"
332761
+ }
332762
+ ],
332763
+ description: "Whether the endpoint may be called without a request body. When true, an\nexample may omit `request`. Populated from `requestBody.required` when\nimporting from OpenAPI.\n\nThis is read by example validation only: it is not carried into the IR, so it\ndoes not make the request parameter optional in a generated SDK."
332722
332764
  }
332723
332765
  },
332724
332766
  additionalProperties: false
@@ -686962,7 +687004,8 @@ function visitEndpoint({ endpointId, endpoint: endpoint3, service, visitor, node
686962
687004
  }
686963
687005
  }
686964
687006
  },
686965
- ["extra-properties"]: noop2
687007
+ ["extra-properties"]: noop2,
687008
+ optional: noop2
686966
687009
  });
686967
687010
  } else {
686968
687011
  createDocsVisitor(visitor, nodePathForRequestBody)(body.docs);
@@ -690006,6 +690049,16 @@ function validateRequest({ example, endpoint: endpoint3, typeResolver, exampleRe
690006
690049
  });
690007
690050
  }
690008
690051
  } else if (isInlineRequestBody(body)) {
690052
+ if (example == null) {
690053
+ if (body.optional) {
690054
+ return violations;
690055
+ }
690056
+ violations.push({
690057
+ severity: "fatal",
690058
+ message: "This endpoint requires a request body, so its examples must specify request. Mark the body optional to allow calling the endpoint without one."
690059
+ });
690060
+ return violations;
690061
+ }
690009
690062
  violations.push(...examples_exports6.validateObjectExample({
690010
690063
  typeName: void 0,
690011
690064
  typeNameForBreadcrumb: "<Inlined Request>",
@@ -702583,7 +702636,7 @@ var AccessTokenPosthogManager = class {
702583
702636
  properties: {
702584
702637
  ...event,
702585
702638
  ...event.properties,
702586
- version: "5.23.3-1791-g4804e1e5883",
702639
+ version: "5.23.3-1793-gf121e7de351",
702587
702640
  usingAccessToken: true,
702588
702641
  ...getRunIdProperties()
702589
702642
  }
@@ -702649,7 +702702,7 @@ var UserPosthogManager = class {
702649
702702
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
702650
702703
  event: "CLI",
702651
702704
  properties: {
702652
- version: "5.23.3-1791-g4804e1e5883",
702705
+ version: "5.23.3-1793-gf121e7de351",
702653
702706
  ...event,
702654
702707
  ...event.properties,
702655
702708
  usingAccessToken: false,
@@ -883813,7 +883866,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
883813
883866
  var LOGS_FOLDER_NAME = "logs";
883814
883867
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
883815
883868
  function getCliSource() {
883816
- const version7 = "5.23.3-1791-g4804e1e5883";
883869
+ const version7 = "5.23.3-1793-gf121e7de351";
883817
883870
  return `cli@${version7}`;
883818
883871
  }
883819
883872
  var DebugLogger = class {
@@ -909129,7 +909182,7 @@ var LegacyDocsPublisher = class {
909129
909182
  previewId,
909130
909183
  disableTemplates: void 0,
909131
909184
  skipUpload,
909132
- cliVersion: "5.23.3-1791-g4804e1e5883",
909185
+ cliVersion: "5.23.3-1793-gf121e7de351",
909133
909186
  loginCommand: "fern auth login"
909134
909187
  });
909135
909188
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -976038,7 +976091,7 @@ function getAutomationContextFromEnv() {
976038
976091
  config_branch: process.env.FERN_CONFIG_BRANCH,
976039
976092
  config_pr_number: process.env.FERN_CONFIG_PR_NUMBER,
976040
976093
  trigger: process.env.GITHUB_EVENT_NAME,
976041
- cli_version: "5.23.3-1791-g4804e1e5883"
976094
+ cli_version: "5.23.3-1793-gf121e7de351"
976042
976095
  };
976043
976096
  }
976044
976097
  function isAutomationMode() {
@@ -976870,7 +976923,7 @@ var CliContext = class _CliContext {
976870
976923
  if (false) {
976871
976924
  this.logger.error("CLI_VERSION is not defined");
976872
976925
  }
976873
- return "5.23.3-1791-g4804e1e5883";
976926
+ return "5.23.3-1793-gf121e7de351";
976874
976927
  }
976875
976928
  getCliName() {
976876
976929
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "5.23.3-1791-g4804e1e5883",
2
+ "version": "5.23.3-1793-gf121e7de351",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",