@fern-api/fern-api-dev 4.94.3 → 4.95.0-2-gee509e0a248

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 +223 -48
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -477487,7 +477487,8 @@ var WithEnvironmentVariable = schemas_exports.object({
477487
477487
 
477488
477488
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/AuthVariable.js
477489
477489
  var AuthVariable = schemas_exports.object({
477490
- omit: schemas_exports.boolean().optional()
477490
+ omit: schemas_exports.boolean().optional(),
477491
+ placeholder: schemas_exports.string().optional()
477491
477492
  }).extend(WithEnvironmentVariable).extend(WithName);
477492
477493
 
477493
477494
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/BasicAuthSchemeSchema.js
@@ -477533,7 +477534,8 @@ var BearerAuthSchemeSchema = schemas_exports.undiscriminatedUnion([TokenBearerAu
477533
477534
  var HeaderAuthSchemeSchema = schemas_exports.object({
477534
477535
  header: schemas_exports.string(),
477535
477536
  type: schemas_exports.string().optional(),
477536
- prefix: schemas_exports.string().optional()
477537
+ prefix: schemas_exports.string().optional(),
477538
+ placeholder: schemas_exports.string().optional()
477537
477539
  }).extend(WithEnvironmentVariable).extend(WithName).extend(WithDocsSchema);
477538
477540
 
477539
477541
  // ../fern-definition/schema/lib/schemas/serialization/resources/auth/types/AuthScope.js
@@ -478304,6 +478306,7 @@ var SingleUndiscriminatedUnionTypeSchema = schemas_exports.undiscriminatedUnion(
478304
478306
  // ../fern-definition/schema/lib/schemas/serialization/resources/types/types/UndiscriminatedUnionSchema.js
478305
478307
  var UndiscriminatedUnionSchema = schemas_exports.object({
478306
478308
  discriminated: schemas_exports.booleanLiteral(false),
478309
+ "base-properties": schemas_exports.record(schemas_exports.string(), TypeReferenceSchema).optional(),
478307
478310
  union: schemas_exports.list(SingleUndiscriminatedUnionTypeSchema)
478308
478311
  }).extend(BaseTypeDeclarationSchema);
478309
478312
 
@@ -485456,15 +485459,18 @@ var BasicAuthScheme = schemas_exports3.objectWithoutOptionalProperties({
485456
485459
  username: NameOrString,
485457
485460
  usernameEnvVar: EnvironmentVariable.optional(),
485458
485461
  usernameOmit: schemas_exports3.boolean().optional(),
485462
+ usernamePlaceholder: schemas_exports3.string().optional(),
485459
485463
  password: NameOrString,
485460
485464
  passwordEnvVar: EnvironmentVariable.optional(),
485461
- passwordOmit: schemas_exports3.boolean().optional()
485465
+ passwordOmit: schemas_exports3.boolean().optional(),
485466
+ passwordPlaceholder: schemas_exports3.string().optional()
485462
485467
  }).extend(BaseAuthScheme);
485463
485468
 
485464
485469
  // ../../ir-sdk/lib/sdk/serialization/resources/auth/types/BearerAuthScheme.js
485465
485470
  var BearerAuthScheme = schemas_exports3.objectWithoutOptionalProperties({
485466
485471
  token: NameOrString,
485467
- tokenEnvVar: EnvironmentVariable.optional()
485472
+ tokenEnvVar: EnvironmentVariable.optional(),
485473
+ tokenPlaceholder: schemas_exports3.string().optional()
485468
485474
  }).extend(BaseAuthScheme);
485469
485475
 
485470
485476
  // ../../ir-sdk/lib/sdk/serialization/resources/commons/types/NameAndWireValue.js
@@ -485481,7 +485487,8 @@ var HeaderAuthScheme = schemas_exports3.objectWithoutOptionalProperties({
485481
485487
  name: NameAndWireValueOrString,
485482
485488
  valueType: schemas_exports3.lazy(() => TypeReference3),
485483
485489
  prefix: schemas_exports3.string().optional(),
485484
- headerEnvVar: EnvironmentVariable.optional()
485490
+ headerEnvVar: EnvironmentVariable.optional(),
485491
+ headerPlaceholder: schemas_exports3.string().optional()
485485
485492
  }).extend(BaseAuthScheme);
485486
485493
 
485487
485494
  // ../../ir-sdk/lib/sdk/serialization/resources/commons/types/EndpointId.js
@@ -489201,7 +489208,8 @@ var UndiscriminatedUnionMember = schemas_exports3.objectWithoutOptionalPropertie
489201
489208
 
489202
489209
  // ../../ir-sdk/lib/sdk/serialization/resources/types/types/UndiscriminatedUnionTypeDeclaration.js
489203
489210
  var UndiscriminatedUnionTypeDeclaration = schemas_exports3.objectWithoutOptionalProperties({
489204
- members: schemas_exports3.list(UndiscriminatedUnionMember)
489211
+ members: schemas_exports3.list(UndiscriminatedUnionMember),
489212
+ baseProperties: schemas_exports3.list(ObjectProperty).optional()
489205
489213
  });
489206
489214
 
489207
489215
  // ../../ir-sdk/lib/sdk/serialization/resources/types/types/SingleUnionTypeProperty.js
@@ -491581,6 +491589,7 @@ function visitTypeDeclaration({ typeName, declaration, visitor, nodePathForType
491581
491589
  visitObject(union22, {
491582
491590
  docs: createDocsVisitor(visitor, nodePathForType),
491583
491591
  discriminated: noop2,
491592
+ "base-properties": noop2,
491584
491593
  union: (unionMembers) => {
491585
491594
  for (const [index3, unionMember] of unionMembers.entries()) {
491586
491595
  const nodePathForUnionType = [...nodePathForType, `union[${index3}]`];
@@ -518325,14 +518334,17 @@ function transformAndValidateUnion5({ value: value2, discriminant: discriminant2
518325
518334
  var BasicSecurityScheme = schemas_exports9.objectWithoutOptionalProperties({
518326
518335
  usernameVariableName: schemas_exports9.string().optional(),
518327
518336
  usernameEnvVar: schemas_exports9.string().optional(),
518337
+ usernamePlaceholder: schemas_exports9.string().optional(),
518328
518338
  passwordVariableName: schemas_exports9.string().optional(),
518329
- passwordEnvVar: schemas_exports9.string().optional()
518339
+ passwordEnvVar: schemas_exports9.string().optional(),
518340
+ passwordPlaceholder: schemas_exports9.string().optional()
518330
518341
  });
518331
518342
 
518332
518343
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/commons/types/BearerSecurityScheme.js
518333
518344
  var BearerSecurityScheme = schemas_exports9.objectWithoutOptionalProperties({
518334
518345
  tokenVariableName: schemas_exports9.string().optional(),
518335
- tokenEnvVar: schemas_exports9.string().optional()
518346
+ tokenEnvVar: schemas_exports9.string().optional(),
518347
+ tokenPlaceholder: schemas_exports9.string().optional()
518336
518348
  });
518337
518349
 
518338
518350
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/commons/types/ProtobufEncoding.js
@@ -518360,7 +518372,8 @@ var HeaderSecurityScheme = schemas_exports9.objectWithoutOptionalProperties({
518360
518372
  headerName: schemas_exports9.string(),
518361
518373
  prefix: schemas_exports9.string().optional(),
518362
518374
  headerVariableName: schemas_exports9.string().optional(),
518363
- headerEnvVar: schemas_exports9.string().optional()
518375
+ headerEnvVar: schemas_exports9.string().optional(),
518376
+ headerPlaceholder: schemas_exports9.string().optional()
518364
518377
  });
518365
518378
 
518366
518379
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/commons/types/Namespace.js
@@ -519789,6 +519802,7 @@ var Schema2 = schemas_exports9.union("type", {
519789
519802
 
519790
519803
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/finalIr/types/UnDiscriminatedOneOfSchema.js
519791
519804
  var UnDiscriminatedOneOfSchema = schemas_exports9.objectWithoutOptionalProperties({
519805
+ commonProperties: schemas_exports9.list(schemas_exports9.lazyObject(() => CommonProperty)).optional(),
519792
519806
  schemas: schemas_exports9.list(schemas_exports9.lazy(() => Schema2))
519793
519807
  }).extend(WithSdkGroupName).extend(WithNamespace).extend(WithName3).extend(WithDescription).extend(WithAvailability3).extend(WithEncoding).extend(WithSource).extend(WithTitle).extend(WithInline);
519794
519808
 
@@ -520276,6 +520290,7 @@ var SchemaWithExample2 = schemas_exports9.union("type", {
520276
520290
 
520277
520291
  // ../api-importers/openapi/openapi-ir/lib/sdk/serialization/resources/parseIr/types/UnDiscriminatedOneOfSchemaWithExample.js
520278
520292
  var UnDiscriminatedOneOfSchemaWithExample = schemas_exports9.objectWithoutOptionalProperties({
520293
+ commonProperties: schemas_exports9.list(schemas_exports9.lazyObject(() => CommonPropertyWithExample)).optional(),
520279
520294
  schemas: schemas_exports9.list(schemas_exports9.lazy(() => SchemaWithExample2))
520280
520295
  }).extend(WithSdkGroupName).extend(WithNamespace).extend(WithName3).extend(WithDescription).extend(WithAvailability3).extend(WithEncoding).extend(WithSource).extend(WithTitle).extend(WithInline);
520281
520296
 
@@ -521853,9 +521868,9 @@ function buildLiteralTypeDeclaration(schema2, nameOverride, generatedName) {
521853
521868
  function buildOneOfTypeDeclaration({ schema: schema2, context: context3, declarationFile, namespace, declarationDepth, variant }) {
521854
521869
  const encoding = schema2.encoding != null ? convertToEncodingSchema(schema2.encoding) : void 0;
521855
521870
  if (schema2.type === "discriminated") {
521856
- const baseProperties = {};
521871
+ const baseProperties2 = {};
521857
521872
  for (const property23 of schema2.commonProperties) {
521858
- baseProperties[property23.key] = buildTypeReference({
521873
+ baseProperties2[property23.key] = buildTypeReference({
521859
521874
  schema: property23.schema,
521860
521875
  fileContainingReference: declarationFile,
521861
521876
  context: context3,
@@ -521887,7 +521902,7 @@ function buildOneOfTypeDeclaration({ schema: schema2, context: context3, declara
521887
521902
  context: schema2.discriminatorContext
521888
521903
  }
521889
521904
  } : schema2.discriminantProperty,
521890
- "base-properties": baseProperties,
521905
+ "base-properties": baseProperties2,
521891
521906
  docs: schema2.description ?? void 0,
521892
521907
  availability: schema2.availability != null ? convertAvailability(schema2.availability) : void 0,
521893
521908
  union: union23,
@@ -521908,10 +521923,22 @@ function buildOneOfTypeDeclaration({ schema: schema2, context: context3, declara
521908
521923
  variant
521909
521924
  }));
521910
521925
  }
521926
+ const baseProperties = schema2.commonProperties != null && schema2.commonProperties.length > 0 ? Object.fromEntries(schema2.commonProperties.map((property23) => [
521927
+ property23.key,
521928
+ buildTypeReference({
521929
+ schema: property23.schema,
521930
+ fileContainingReference: declarationFile,
521931
+ context: context3,
521932
+ namespace,
521933
+ declarationDepth: declarationDepth + 1,
521934
+ variant
521935
+ })
521936
+ ])) : void 0;
521911
521937
  return {
521912
521938
  name: schema2.nameOverride ?? schema2.generatedName,
521913
521939
  schema: {
521914
521940
  discriminated: false,
521941
+ "base-properties": baseProperties,
521915
521942
  docs: schema2.description ?? void 0,
521916
521943
  union: union22,
521917
521944
  encoding,
@@ -522011,6 +522038,15 @@ function buildAuthSchemes(context3) {
522011
522038
  basicAuthScheme.username.env = securityScheme.usernameEnvVar;
522012
522039
  }
522013
522040
  }
522041
+ if (securityScheme.usernamePlaceholder != null) {
522042
+ if (basicAuthScheme.username === void 0) {
522043
+ basicAuthScheme.username = {
522044
+ placeholder: securityScheme.usernamePlaceholder
522045
+ };
522046
+ } else {
522047
+ basicAuthScheme.username.placeholder = securityScheme.usernamePlaceholder;
522048
+ }
522049
+ }
522014
522050
  if (securityScheme.passwordVariableName != null) {
522015
522051
  if (basicAuthScheme.password === void 0) {
522016
522052
  basicAuthScheme.password = {
@@ -522029,6 +522065,15 @@ function buildAuthSchemes(context3) {
522029
522065
  basicAuthScheme.password.env = securityScheme.passwordEnvVar;
522030
522066
  }
522031
522067
  }
522068
+ if (securityScheme.passwordPlaceholder != null) {
522069
+ if (basicAuthScheme.password === void 0) {
522070
+ basicAuthScheme.password = {
522071
+ placeholder: securityScheme.passwordPlaceholder
522072
+ };
522073
+ } else {
522074
+ basicAuthScheme.password.placeholder = securityScheme.passwordPlaceholder;
522075
+ }
522076
+ }
522032
522077
  context3.builder.addAuthScheme({
522033
522078
  name: id,
522034
522079
  schema: basicAuthScheme
@@ -522059,6 +522104,15 @@ function buildAuthSchemes(context3) {
522059
522104
  bearerAuthScheme.token.env = securityScheme.tokenEnvVar;
522060
522105
  }
522061
522106
  }
522107
+ if (securityScheme.tokenPlaceholder != null) {
522108
+ if (bearerAuthScheme.token === void 0) {
522109
+ bearerAuthScheme.token = {
522110
+ placeholder: securityScheme.tokenPlaceholder
522111
+ };
522112
+ } else {
522113
+ bearerAuthScheme.token.placeholder = securityScheme.tokenPlaceholder;
522114
+ }
522115
+ }
522062
522116
  context3.builder.addAuthScheme({
522063
522117
  name: id,
522064
522118
  schema: bearerAuthScheme
@@ -522080,6 +522134,9 @@ function buildAuthSchemes(context3) {
522080
522134
  if (securityScheme.prefix != null) {
522081
522135
  schema2.prefix = securityScheme.prefix;
522082
522136
  }
522137
+ if (securityScheme.headerPlaceholder != null) {
522138
+ schema2.placeholder = securityScheme.headerPlaceholder;
522139
+ }
522083
522140
  context3.builder.addAuthScheme({
522084
522141
  name: id,
522085
522142
  schema: schema2
@@ -528744,6 +528801,12 @@ function convertToOneOf(oneOfSchema) {
528744
528801
  generatedName: oneOfSchema.generatedName,
528745
528802
  title: oneOfSchema.title,
528746
528803
  nameOverride: oneOfSchema.nameOverride,
528804
+ commonProperties: oneOfSchema.commonProperties?.map((commonProperty) => {
528805
+ return {
528806
+ key: commonProperty.key,
528807
+ schema: convertSchemaWithExampleToSchema(commonProperty.schema)
528808
+ };
528809
+ }),
528747
528810
  schemas: oneOfSchema.schemas.map((oneOfSchema2) => convertSchemaWithExampleToSchema(oneOfSchema2)),
528748
528811
  namespace: oneOfSchema.namespace,
528749
528812
  groupName: oneOfSchema.groupName,
@@ -529136,7 +529199,7 @@ function getAllProperties({ schema: schema2, context: context3, breadcrumbs, sou
529136
529199
 
529137
529200
  // ../api-importers/openapi/openapi-ir-parser/lib/schema/convertUndiscriminatedOneOf.js
529138
529201
  init_lodash();
529139
- function convertUndiscriminatedOneOf({ nameOverride, generatedName, title: title2, breadcrumbs, description, availability, wrapAsOptional, wrapAsNullable, context: context3, subtypes, namespace, groupName, encoding, source: source2, subtypeSuffixOverrides }) {
529202
+ function convertUndiscriminatedOneOf({ nameOverride, generatedName, title: title2, breadcrumbs, description, availability, wrapAsOptional, wrapAsNullable, context: context3, subtypes, namespace, groupName, encoding, source: source2, subtypeSuffixOverrides, properties: properties7, required: required6 }) {
529140
529203
  const derivedSubtypeSuffixes = getUniqueSubTypeNames({ schemas: subtypes });
529141
529204
  const convertedSubtypes = subtypes.flatMap((schema2, index3) => {
529142
529205
  if (!isReferenceObject(schema2) && schema2.enum != null && context3.options.coerceEnumsToLiterals && schema2.type === "string") {
@@ -529164,6 +529227,14 @@ function convertUndiscriminatedOneOf({ nameOverride, generatedName, title: title
529164
529227
  convertSchema2(schema2, false, false, context3, [...breadcrumbs, subtypeSuffix ?? `${index3}`], source2, namespace)
529165
529228
  ];
529166
529229
  });
529230
+ const convertedCommonProperties = properties7 != null && Object.keys(properties7).length > 0 ? Object.entries(properties7).map(([propertyName, propertySchema]) => {
529231
+ const isRequired = required6 != null && required6.includes(propertyName);
529232
+ const [isOptional, isNullable] = context3.options.coerceOptionalSchemasToNullable ? [false, !isRequired] : [!isRequired, false];
529233
+ return {
529234
+ key: propertyName,
529235
+ schema: convertSchema2(propertySchema, isOptional, isNullable, context3, [...breadcrumbs, propertyName], source2, namespace)
529236
+ };
529237
+ }) : void 0;
529167
529238
  const uniqueSubtypes = deduplicateSubtypes(convertedSubtypes);
529168
529239
  return processSubtypes({
529169
529240
  uniqueSubtypes,
@@ -529178,7 +529249,8 @@ function convertUndiscriminatedOneOf({ nameOverride, generatedName, title: title
529178
529249
  groupName,
529179
529250
  context: context3,
529180
529251
  encoding,
529181
- source: source2
529252
+ source: source2,
529253
+ commonProperties: convertedCommonProperties
529182
529254
  });
529183
529255
  }
529184
529256
  function deduplicateSubtypes(subtypes) {
@@ -529199,11 +529271,12 @@ function deduplicateSubtypes(subtypes) {
529199
529271
  }
529200
529272
  return uniqueSubtypes;
529201
529273
  }
529202
- function processSubtypes({ uniqueSubtypes, nameOverride, generatedName, title: title2, wrapAsOptional, wrapAsNullable, description, availability, namespace, groupName, context: context3, encoding, source: source2 }) {
529274
+ function processSubtypes({ uniqueSubtypes, nameOverride, generatedName, title: title2, wrapAsOptional, wrapAsNullable, description, availability, namespace, groupName, context: context3, encoding, source: source2, commonProperties }) {
529275
+ const hasCommonProperties = commonProperties != null && commonProperties.length > 0;
529203
529276
  const everySubTypeIsLiteral = Object.entries(uniqueSubtypes).every(([_7, schema2]) => {
529204
529277
  return schema2.type === "literal";
529205
529278
  });
529206
- if (everySubTypeIsLiteral) {
529279
+ if (everySubTypeIsLiteral && !hasCommonProperties) {
529207
529280
  const enumDescriptions = {};
529208
529281
  const enumValues = [];
529209
529282
  Object.entries(uniqueSubtypes).forEach(([_7, schema2]) => {
@@ -529235,7 +529308,7 @@ function processSubtypes({ uniqueSubtypes, nameOverride, generatedName, title: t
529235
529308
  inline: void 0
529236
529309
  });
529237
529310
  }
529238
- if (uniqueSubtypes.length === 1 && uniqueSubtypes[0] != null && !context3.options.preserveSingleSchemaOneOf) {
529311
+ if (uniqueSubtypes.length === 1 && uniqueSubtypes[0] != null && !context3.options.preserveSingleSchemaOneOf && !hasCommonProperties) {
529239
529312
  let result = uniqueSubtypes[0];
529240
529313
  if (wrapAsNullable) {
529241
529314
  result = SchemaWithExample.nullable({
@@ -529277,7 +529350,8 @@ function processSubtypes({ uniqueSubtypes, nameOverride, generatedName, title: t
529277
529350
  namespace,
529278
529351
  groupName,
529279
529352
  encoding,
529280
- source: source2
529353
+ source: source2,
529354
+ commonProperties
529281
529355
  });
529282
529356
  }
529283
529357
  function convertUndiscriminatedOneOfWithDiscriminant({ nameOverride, generatedName, title: title2, description, availability, wrapAsOptional, wrapAsNullable, context: context3, namespace, groupName, discriminator, encoding, source: source2 }) {
@@ -529405,13 +529479,14 @@ function getUniqueSubTypeNames({ schemas }) {
529405
529479
  });
529406
529480
  return prefixes;
529407
529481
  }
529408
- function wrapUndiscriminatedOneOf({ nameOverride, generatedName, title: title2, wrapAsOptional, wrapAsNullable, description, availability, subtypes, namespace, groupName, encoding, source: source2 }) {
529482
+ function wrapUndiscriminatedOneOf({ nameOverride, generatedName, title: title2, wrapAsOptional, wrapAsNullable, description, availability, subtypes, namespace, groupName, encoding, source: source2, commonProperties }) {
529409
529483
  let result = SchemaWithExample.oneOf(OneOfSchemaWithExample.undiscriminated({
529410
529484
  description,
529411
529485
  availability,
529412
529486
  nameOverride,
529413
529487
  generatedName,
529414
529488
  title: title2,
529489
+ commonProperties: commonProperties != null && commonProperties.length > 0 ? commonProperties : void 0,
529415
529490
  schemas: subtypes,
529416
529491
  namespace,
529417
529492
  groupName,
@@ -530338,7 +530413,9 @@ function convertSchemaObject(schema2, wrapAsOptional, wrapAsNullable, context3,
530338
530413
  encoding,
530339
530414
  namespace,
530340
530415
  groupName,
530341
- source: source2
530416
+ source: source2,
530417
+ properties: schema2.properties,
530418
+ required: schema2.required
530342
530419
  });
530343
530420
  }
530344
530421
  }
@@ -530404,7 +530481,9 @@ function convertSchemaObject(schema2, wrapAsOptional, wrapAsNullable, context3,
530404
530481
  encoding,
530405
530482
  namespace,
530406
530483
  groupName,
530407
- source: source2
530484
+ source: source2,
530485
+ properties: schema2.properties,
530486
+ required: schema2.required
530408
530487
  });
530409
530488
  }
530410
530489
  if (schema2.discriminator?.mapping != null && Object.keys(schema2.discriminator.mapping).length > 0 && schema2.oneOf == null && schema2.anyOf == null) {
@@ -532259,6 +532338,12 @@ function convertToOneOf2(oneOfSchema) {
532259
532338
  generatedName: oneOfSchema.generatedName,
532260
532339
  nameOverride: oneOfSchema.nameOverride,
532261
532340
  title: oneOfSchema.title,
532341
+ commonProperties: oneOfSchema.commonProperties?.map((commonProperty) => {
532342
+ return {
532343
+ key: commonProperty.key,
532344
+ schema: convertSchemaToSchemaWithExample(commonProperty.schema)
532345
+ };
532346
+ }),
532262
532347
  schemas: oneOfSchema.schemas.map((oneOfSchema2) => convertSchemaToSchemaWithExample(oneOfSchema2)),
532263
532348
  namespace: oneOfSchema.namespace,
532264
532349
  groupName: oneOfSchema.groupName,
@@ -537177,13 +537262,15 @@ function convertSecuritySchemeHelper(securityScheme, source2, taskContext) {
537177
537262
  headerName: securityScheme.name,
537178
537263
  prefix: bearerFormat != null ? "Bearer" : headerNames?.prefix,
537179
537264
  headerVariableName: headerNames?.name ?? getExtension(securityScheme, FernOpenAPIExtension.HEADER_VARIABLE_NAME),
537180
- headerEnvVar: headerNames?.env
537265
+ headerEnvVar: headerNames?.env,
537266
+ headerPlaceholder: headerNames?.placeholder
537181
537267
  });
537182
537268
  } else if (securityScheme.type === "http" && securityScheme.scheme?.toLowerCase() === "bearer") {
537183
537269
  const bearerNames = getExtension(securityScheme, FernOpenAPIExtension.FERN_BEARER_TOKEN);
537184
537270
  return SecurityScheme.bearer({
537185
537271
  tokenVariableName: bearerNames?.name ?? getExtension(securityScheme, FernOpenAPIExtension.BEARER_TOKEN_VARIABLE_NAME),
537186
- tokenEnvVar: bearerNames?.env
537272
+ tokenEnvVar: bearerNames?.env,
537273
+ tokenPlaceholder: bearerNames?.placeholder
537187
537274
  });
537188
537275
  } else if (securityScheme.type === "http" && securityScheme.scheme?.toLowerCase() === "basic") {
537189
537276
  const basicSecuritySchemeNamingAndEnvvar = getBasicSecuritySchemeNameAndEnvvar(securityScheme);
@@ -537191,13 +537278,16 @@ function convertSecuritySchemeHelper(securityScheme, source2, taskContext) {
537191
537278
  return SecurityScheme.basic({
537192
537279
  usernameVariableName: basicSecuritySchemeNamingAndEnvvar?.username?.name ?? basicSecuritySchemeNaming.usernameVariable,
537193
537280
  usernameEnvVar: basicSecuritySchemeNamingAndEnvvar?.username?.env,
537281
+ usernamePlaceholder: basicSecuritySchemeNamingAndEnvvar?.username?.placeholder,
537194
537282
  passwordVariableName: basicSecuritySchemeNamingAndEnvvar?.password?.name ?? basicSecuritySchemeNaming.passwordVariable,
537195
- passwordEnvVar: basicSecuritySchemeNamingAndEnvvar?.password?.env
537283
+ passwordEnvVar: basicSecuritySchemeNamingAndEnvvar?.password?.env,
537284
+ passwordPlaceholder: basicSecuritySchemeNamingAndEnvvar?.password?.placeholder
537196
537285
  });
537197
537286
  } else if (securityScheme.type === "openIdConnect") {
537198
537287
  return SecurityScheme.bearer({
537199
537288
  tokenVariableName: void 0,
537200
- tokenEnvVar: void 0
537289
+ tokenEnvVar: void 0,
537290
+ tokenPlaceholder: void 0
537201
537291
  });
537202
537292
  } else if (securityScheme.type === "oauth2") {
537203
537293
  return SecurityScheme.oauth({
@@ -548765,7 +548855,8 @@ function convertSchemeReference({ reference: reference4, authSchemeDeclarations,
548765
548855
  v2: PrimitiveTypeV2.string({ default: void 0, validation: void 0 })
548766
548856
  }),
548767
548857
  prefix: rawHeader.prefix,
548768
- headerEnvVar: rawHeader.env
548858
+ headerEnvVar: rawHeader.env,
548859
+ headerPlaceholder: rawHeader.placeholder
548769
548860
  }),
548770
548861
  basic: (rawScheme) => generateBasicAuth({
548771
548862
  key: reference5,
@@ -548821,7 +548912,8 @@ function generateBearerAuth({ key: key2, casingsGenerator, docs: docs2, rawSchem
548821
548912
  key: key2,
548822
548913
  docs: docs2,
548823
548914
  token: casingsGenerator.generateName(rawScheme?.token?.name ?? "token"),
548824
- tokenEnvVar: rawScheme?.token?.env
548915
+ tokenEnvVar: rawScheme?.token?.env,
548916
+ tokenPlaceholder: rawScheme?.token?.placeholder
548825
548917
  });
548826
548918
  }
548827
548919
  function generateBasicAuth({ key: key2, casingsGenerator, docs: docs2, rawScheme }) {
@@ -548831,9 +548923,11 @@ function generateBasicAuth({ key: key2, casingsGenerator, docs: docs2, rawScheme
548831
548923
  username: casingsGenerator.generateName(rawScheme?.username?.name ?? "username"),
548832
548924
  usernameEnvVar: rawScheme?.username?.env,
548833
548925
  usernameOmit: rawScheme?.username?.omit,
548926
+ usernamePlaceholder: rawScheme?.username?.placeholder,
548834
548927
  password: casingsGenerator.generateName(rawScheme?.password?.name ?? "password"),
548835
548928
  passwordEnvVar: rawScheme?.password?.env,
548836
- passwordOmit: rawScheme?.password?.omit
548929
+ passwordOmit: rawScheme?.password?.omit,
548930
+ passwordPlaceholder: rawScheme?.password?.placeholder
548837
548931
  });
548838
548932
  }
548839
548933
 
@@ -559131,16 +559225,16 @@ var DynamicSnippetsConverter = class {
559131
559225
  switch (scheme.type) {
559132
559226
  case "bearer":
559133
559227
  return dynamic_exports.AuthValues.bearer({
559134
- token: "<token>"
559228
+ token: scheme.tokenPlaceholder ?? "<token>"
559135
559229
  });
559136
559230
  case "basic":
559137
559231
  return dynamic_exports.AuthValues.basic({
559138
- username: scheme.usernameOmit ? "" : "<username>",
559139
- password: scheme.passwordOmit ? "" : "<password>"
559232
+ username: scheme.usernameOmit ? "" : scheme.usernamePlaceholder ?? "<username>",
559233
+ password: scheme.passwordOmit ? "" : scheme.passwordPlaceholder ?? "<password>"
559140
559234
  });
559141
559235
  case "header":
559142
559236
  return dynamic_exports.AuthValues.header({
559143
- value: "<value>"
559237
+ value: scheme.headerPlaceholder ?? "<value>"
559144
559238
  });
559145
559239
  case "oauth":
559146
559240
  return dynamic_exports.AuthValues.oauth({
@@ -559777,7 +559871,8 @@ function convertSchemeReference2({ reference: reference4, authSchemeDeclarations
559777
559871
  }),
559778
559872
  valueType: file4.parseTypeReference(rawHeader.type ?? "string"),
559779
559873
  prefix: rawHeader.prefix,
559780
- headerEnvVar: rawHeader.env
559874
+ headerEnvVar: rawHeader.env,
559875
+ headerPlaceholder: rawHeader.placeholder
559781
559876
  }),
559782
559877
  basic: (rawScheme) => generateBasicAuth2({
559783
559878
  key: reference5,
@@ -559845,7 +559940,8 @@ function generateBearerAuth2({ key: key2, file: file4, docs: docs2, rawScheme })
559845
559940
  key: key2,
559846
559941
  docs: docs2,
559847
559942
  token: file4.casingsGenerator.generateName(rawScheme?.token?.name ?? "token"),
559848
- tokenEnvVar: rawScheme?.token?.env
559943
+ tokenEnvVar: rawScheme?.token?.env,
559944
+ tokenPlaceholder: rawScheme?.token?.placeholder
559849
559945
  });
559850
559946
  }
559851
559947
  function generateBasicAuth2({ key: key2, file: file4, docs: docs2, rawScheme }) {
@@ -559855,9 +559951,11 @@ function generateBasicAuth2({ key: key2, file: file4, docs: docs2, rawScheme })
559855
559951
  username: file4.casingsGenerator.generateName(rawScheme?.username?.name ?? "username"),
559856
559952
  usernameEnvVar: rawScheme?.username?.env,
559857
559953
  usernameOmit: rawScheme?.username?.omit,
559954
+ usernamePlaceholder: rawScheme?.username?.placeholder,
559858
559955
  password: file4.casingsGenerator.generateName(rawScheme?.password?.name ?? "password"),
559859
559956
  passwordEnvVar: rawScheme?.password?.env,
559860
- passwordOmit: rawScheme?.password?.omit
559957
+ passwordOmit: rawScheme?.password?.omit,
559958
+ passwordPlaceholder: rawScheme?.password?.placeholder
559861
559959
  });
559862
559960
  }
559863
559961
  function generateOAuth({ key: key2, file: file4, docs: docs2, rawScheme, propertyResolver, endpointResolver, typeResolver }) {
@@ -561109,6 +561207,19 @@ function convertUndiscriminatedUnionTypeDeclaration({ union: union22, file: file
561109
561207
  }) === currentIndex;
561110
561208
  });
561111
561209
  return Type.undiscriminatedUnion({
561210
+ baseProperties: union22["base-properties"] != null ? Object.entries(union22["base-properties"]).map(([propertyKey, propertyDefinition]) => ({
561211
+ ...convertDeclaration(propertyDefinition),
561212
+ name: file4.casingsGenerator.generateNameAndWireValue({
561213
+ wireValue: propertyKey,
561214
+ name: getPropertyName({ propertyKey, property: propertyDefinition }).name
561215
+ }),
561216
+ valueType: file4.parseTypeReference(propertyDefinition),
561217
+ propertyAccess: getPropertyAccess2({ property: propertyDefinition }),
561218
+ v2Examples: {
561219
+ userSpecifiedExamples: {},
561220
+ autogeneratedExamples: {}
561221
+ }
561222
+ })) : void 0,
561112
561223
  members: uniqueMembers.map((member) => {
561113
561224
  const parsedType2 = file4.parseTypeReference(typeof member === "string" ? member : member.type);
561114
561225
  const typeWithDisplayName = parsedType2.type === "named" ? {
@@ -561173,13 +561284,18 @@ function getReferencedTypesFromRawDeclaration({ typeDeclaration: typeDeclaration
561173
561284
  return types4;
561174
561285
  },
561175
561286
  undiscriminatedUnion: (unionDeclaration) => {
561176
- return Object.values(unionDeclaration.union).reduce((types4, unionMember) => {
561287
+ const types4 = [];
561288
+ if (unionDeclaration["base-properties"] != null) {
561289
+ types4.push(...Object.values(unionDeclaration["base-properties"]).map((property23) => typeof property23 === "string" ? property23 : property23.type));
561290
+ }
561291
+ types4.push(...Object.values(unionDeclaration.union).reduce((memberTypes, unionMember) => {
561177
561292
  const rawType = typeof unionMember === "string" ? unionMember : unionMember.type;
561178
561293
  if (typeof rawType === "string") {
561179
- types4.push(rawType);
561294
+ memberTypes.push(rawType);
561180
561295
  }
561181
- return types4;
561182
- }, []);
561296
+ return memberTypes;
561297
+ }, []));
561298
+ return types4;
561183
561299
  },
561184
561300
  enum: () => []
561185
561301
  });
@@ -588538,6 +588654,19 @@ var definitions2 = {
588538
588654
  discriminated: {
588539
588655
  const: false
588540
588656
  },
588657
+ "base-properties": {
588658
+ oneOf: [
588659
+ {
588660
+ type: "object",
588661
+ additionalProperties: {
588662
+ $ref: "#/definitions/types.TypeReferenceSchema"
588663
+ }
588664
+ },
588665
+ {
588666
+ type: "null"
588667
+ }
588668
+ ]
588669
+ },
588541
588670
  union: {
588542
588671
  type: "array",
588543
588672
  items: {
@@ -592749,6 +592878,19 @@ var definitions3 = {
592749
592878
  discriminated: {
592750
592879
  const: false
592751
592880
  },
592881
+ "base-properties": {
592882
+ oneOf: [
592883
+ {
592884
+ type: "object",
592885
+ additionalProperties: {
592886
+ $ref: "#/definitions/types.TypeReferenceSchema"
592887
+ }
592888
+ },
592889
+ {
592890
+ type: "null"
592891
+ }
592892
+ ]
592893
+ },
592752
592894
  union: {
592753
592895
  type: "array",
592754
592896
  items: {
@@ -600433,7 +600575,8 @@ var OneOfSchemaConverter = class extends AbstractConverter {
600433
600575
  }
600434
600576
  continue;
600435
600577
  }
600436
- const extendedSubSchema = this.extendSubSchema(subSchema);
600578
+ const hasSiblingProperties = Object.keys(this.schema.properties ?? {}).length > 0;
600579
+ const extendedSubSchema = hasSiblingProperties ? void 0 : this.extendSubSchema(subSchema);
600437
600580
  const schemaId = this.context.convertBreadcrumbsToName([`${this.id}_${index3}`]);
600438
600581
  const displayName = subSchema.title;
600439
600582
  const schemaConverter = new SchemaConverter({
@@ -600476,12 +600619,29 @@ var OneOfSchemaConverter = class extends AbstractConverter {
600476
600619
  });
600477
600620
  }
600478
600621
  }
600622
+ const { convertedProperties: siblingProperties, referencedTypes: siblingReferencedTypes, inlinedTypesFromProperties: siblingInlinedTypes } = convertProperties({
600623
+ properties: this.schema.properties ?? {},
600624
+ required: this.schema.required ?? [],
600625
+ breadcrumbs: this.breadcrumbs,
600626
+ context: this.context,
600627
+ errorCollector: this.context.errorCollector
600628
+ });
600629
+ for (const typeId of Object.keys(siblingInlinedTypes)) {
600630
+ referencedTypes.add(typeId);
600631
+ }
600632
+ for (const ref2 of siblingReferencedTypes) {
600633
+ referencedTypes.add(ref2);
600634
+ }
600479
600635
  return {
600480
600636
  type: Type.undiscriminatedUnion({
600481
- members: unionTypes
600637
+ members: unionTypes,
600638
+ baseProperties: siblingProperties.length > 0 ? siblingProperties : void 0
600482
600639
  }),
600483
600640
  referencedTypes,
600484
- inlinedTypes
600641
+ inlinedTypes: {
600642
+ ...inlinedTypes,
600643
+ ...siblingInlinedTypes
600644
+ }
600485
600645
  };
600486
600646
  }
600487
600647
  shouldConvertAsNullableSchemaOrReference() {
@@ -603774,6 +603934,7 @@ var AsyncAPIConverter = class extends AbstractSpecConverter {
603774
603934
  key: schemeId,
603775
603935
  token: this.context.casingsGenerator.generateName("token"),
603776
603936
  tokenEnvVar: void 0,
603937
+ tokenPlaceholder: void 0,
603777
603938
  docs: securityScheme.description
603778
603939
  });
603779
603940
  }
@@ -603786,6 +603947,8 @@ var AsyncAPIConverter = class extends AbstractSpecConverter {
603786
603947
  passwordEnvVar: void 0,
603787
603948
  usernameOmit: false,
603788
603949
  passwordOmit: false,
603950
+ usernamePlaceholder: void 0,
603951
+ passwordPlaceholder: void 0,
603789
603952
  docs: securityScheme.description
603790
603953
  });
603791
603954
  }
@@ -603802,6 +603965,7 @@ var AsyncAPIConverter = class extends AbstractSpecConverter {
603802
603965
  valueType: AbstractConverter.OPTIONAL_STRING,
603803
603966
  prefix: void 0,
603804
603967
  headerEnvVar: void 0,
603968
+ headerPlaceholder: void 0,
603805
603969
  docs: securityScheme.description
603806
603970
  });
603807
603971
  }
@@ -603812,6 +603976,7 @@ var AsyncAPIConverter = class extends AbstractSpecConverter {
603812
603976
  key: schemeId,
603813
603977
  token: this.context.casingsGenerator.generateName("token"),
603814
603978
  tokenEnvVar: void 0,
603979
+ tokenPlaceholder: void 0,
603815
603980
  docs: securityScheme.description
603816
603981
  });
603817
603982
  }
@@ -607061,10 +607226,12 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607061
607226
  const bearerExtension = this.getExtension("x-fern-bearer");
607062
607227
  const tokenName = bearerExtension?.name ?? "token";
607063
607228
  const tokenEnvVar = bearerExtension?.env;
607229
+ const tokenPlaceholder = bearerExtension?.placeholder;
607064
607230
  return AuthScheme.bearer({
607065
607231
  key: this.schemeId,
607066
607232
  token: this.context.casingsGenerator.generateName(tokenName),
607067
607233
  tokenEnvVar,
607234
+ tokenPlaceholder,
607068
607235
  docs: this.securityScheme.description
607069
607236
  });
607070
607237
  }
@@ -607074,6 +607241,8 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607074
607241
  const passwordName = basicExtension?.password?.name ?? "password";
607075
607242
  const usernameEnvVar = basicExtension?.username?.env;
607076
607243
  const passwordEnvVar = basicExtension?.password?.env;
607244
+ const usernamePlaceholder = basicExtension?.username?.placeholder;
607245
+ const passwordPlaceholder = basicExtension?.password?.placeholder;
607077
607246
  return AuthScheme.basic({
607078
607247
  key: this.schemeId,
607079
607248
  username: this.context.casingsGenerator.generateName(usernameName),
@@ -607082,6 +607251,8 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607082
607251
  passwordEnvVar,
607083
607252
  usernameOmit: false,
607084
607253
  passwordOmit: false,
607254
+ usernamePlaceholder,
607255
+ passwordPlaceholder,
607085
607256
  docs: this.securityScheme.description
607086
607257
  });
607087
607258
  }
@@ -607093,6 +607264,7 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607093
607264
  const headerName = headerExtension?.name ?? "apiKey";
607094
607265
  const headerEnvVar = headerExtension?.env;
607095
607266
  const prefix2 = headerExtension?.prefix;
607267
+ const headerPlaceholder = headerExtension?.placeholder;
607096
607268
  return AuthScheme.header({
607097
607269
  key: this.schemeId,
607098
607270
  name: {
@@ -607102,6 +607274,7 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607102
607274
  valueType: AbstractConverter.OPTIONAL_STRING,
607103
607275
  prefix: prefix2,
607104
607276
  headerEnvVar,
607277
+ headerPlaceholder,
607105
607278
  docs: this.securityScheme.description
607106
607279
  });
607107
607280
  }
@@ -607112,6 +607285,7 @@ var SecuritySchemeConverter = class extends AbstractConverter {
607112
607285
  key: this.schemeId,
607113
607286
  token: this.context.casingsGenerator.generateName("token"),
607114
607287
  tokenEnvVar: void 0,
607288
+ tokenPlaceholder: void 0,
607115
607289
  docs: this.securityScheme.description
607116
607290
  });
607117
607291
  }
@@ -618017,7 +618191,7 @@ var AccessTokenPosthogManager = class {
618017
618191
  properties: {
618018
618192
  ...event,
618019
618193
  ...event.properties,
618020
- version: "4.94.3",
618194
+ version: "4.95.0-2-gee509e0a248",
618021
618195
  usingAccessToken: true
618022
618196
  }
618023
618197
  });
@@ -618071,7 +618245,7 @@ var UserPosthogManager = class {
618071
618245
  distinctId: this.userId ?? await this.getPersistedDistinctId(),
618072
618246
  event: "CLI",
618073
618247
  properties: {
618074
- version: "4.94.3",
618248
+ version: "4.95.0-2-gee509e0a248",
618075
618249
  ...event,
618076
618250
  ...event.properties,
618077
618251
  usingAccessToken: false,
@@ -829195,7 +829369,7 @@ var LOCAL_STORAGE_FOLDER4 = ".fern-dev";
829195
829369
  var LOGS_FOLDER_NAME = "logs";
829196
829370
  var MAX_LOGS_DIR_SIZE_BYTES = 100 * 1024 * 1024;
829197
829371
  function getCliSource() {
829198
- const version7 = "4.94.3";
829372
+ const version7 = "4.95.0-2-gee509e0a248";
829199
829373
  return `cli@${version7}`;
829200
829374
  }
829201
829375
  var DebugLogger = class {
@@ -841158,7 +841332,7 @@ var LegacyDocsPublisher = class {
841158
841332
  previewId,
841159
841333
  disableTemplates: void 0,
841160
841334
  skipUpload,
841161
- cliVersion: "4.94.3",
841335
+ cliVersion: "4.95.0-2-gee509e0a248",
841162
841336
  loginCommand: "fern auth login"
841163
841337
  });
841164
841338
  if (taskContext.getResult() === TaskResult.Failure) {
@@ -911807,7 +911981,8 @@ var OneOfFieldConverter = class extends AbstractConverter {
911807
911981
  }
911808
911982
  return {
911809
911983
  type: Type.undiscriminatedUnion({
911810
- members: unionTypes
911984
+ members: unionTypes,
911985
+ baseProperties: void 0
911811
911986
  }),
911812
911987
  referencedTypes: /* @__PURE__ */ new Set(),
911813
911988
  inlinedTypes: {},
@@ -915650,7 +915825,7 @@ var CliContext = class _CliContext {
915650
915825
  if (false) {
915651
915826
  this.logger.error("CLI_VERSION is not defined");
915652
915827
  }
915653
- return "4.94.3";
915828
+ return "4.95.0-2-gee509e0a248";
915654
915829
  }
915655
915830
  getCliName() {
915656
915831
  if (false) {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.94.3",
2
+ "version": "4.95.0-2-gee509e0a248",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",