@azure-tools/typespec-java 0.31.11 → 0.32.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.
@@ -1 +1 @@
1
- {"version":3,"file":"code-model-builder.d.ts","sourceRoot":"","sources":["../../src/code-model-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-model-builder.d.ts","sourceRoot":"","sources":["../../src/code-model-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIT,YAAY,EACZ,aAAa,EAcb,OAAO,EAEP,YAAY,EAEZ,YAAY,EAOZ,MAAM,EAMN,YAAY,EAKb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAwBL,OAAO,EASR,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,WAAW,EAKX,OAAO,EAWR,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAwBnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAY,MAAM,cAAc,CAAC;AACpE,OAAO,EAIL,eAAe,EAUhB,MAAM,iBAAiB,CAAC;AAczB,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wDAAwD,CAAC,EAAE,OAAO,CAAC;IAGnE,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,OAAO,CAAC,EAAE,GAAG,CAAC;IAGd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAG5C,aAAa,CAAC,EAAE,UAAU,CAAC;IAG3B,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,gBAAgB,CAAY;IAEpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAEhE,QAAQ,CAAC,WAAW,mCAElB;IAGF,OAAO,CAAC,UAAU,CAAqB;gBAEpB,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC;IAmD7D,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAwDxC,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,WAAW;IAsEnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IA2CrB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;IAiMrB,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,6BAA6B;IAkBrC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,gBAAgB;IAyKxB,OAAO,CAAC,oBAAoB;IAwK5B,OAAO,CAAC,kBAAkB;IAmG1B,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,gBAAgB;IA0KxB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,wBAAwB;IAoHhC,OAAO,CAAC,kBAAkB;IA8C1B,OAAO,CAAC,sCAAsC;IA4C9C,OAAO,CAAC,2BAA2B;IAyKnC,OAAO,CAAC,oBAAoB;IA+I5B,OAAO,CAAC,4CAA4C;IAiEpD,OAAO,CAAC,eAAe;IAgJvB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAgEzB,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;IA+H3B,OAAO,CAAC,oBAAoB;IA2D5B,OAAO,CAAC,kBAAkB;IAkD1B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IA4D3B,OAAO,CAAC,0CAA0C;IAqDlD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,gBAAgB;IAyDxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,IAAI,YAAY,IAAI,YAAY,CAK/B;IAED,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,IAAI,aAAa,IAAI,YAAY,CAOhC;IAED,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,IAAI,YAAY,IAAI,YAAY,CAO/B;IAED,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,IAAI,aAAa,IAAI,aAAa,CAOjC;IAED,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,IAAI,SAAS,IAAI,SAAS,CAIzB;IAED,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,IAAI,YAAY,IAAI,YAAY,CAK/B;IAED,OAAO,CAAC,iBAAiB,CAAC,CAAe;IACzC,IAAI,gBAAgB,IAAI,YAAY,CAQnC;IAED,OAAO,CAAC,yBAAyB;IA8BjC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB,CAAC,CAAY;IACzC,OAAO,CAAC,0BAA0B,CAAC,CAAY;IAC/C,OAAO,CAAC,4BAA4B,CAAC,CAAY;IACjD,OAAO,CAAC,uBAAuB,CAAC,CAAY;IAE5C,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,sBAAsB,CAAC,CAAY;IAE3C,OAAO,CAAC,oBAAoB;IA4F5B,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,KAAK;CAGd"}
@@ -1,6 +1,6 @@
1
1
  import { AnySchema, ApiVersion, ArraySchema, BinaryResponse, BinarySchema, BooleanSchema, ByteArraySchema, ChoiceValue, DateSchema, DateTimeSchema, DictionarySchema, Discriminator, GroupProperty, GroupSchema, HttpHeader, HttpParameter, ImplementationLocation, KeySecurityScheme, Language, License, Metadata, NumberSchema, OAuth2SecurityScheme, ObjectSchema, OperationGroup, Parameter, ParameterLocation, Property, Relations, Response, SchemaResponse, SchemaType, Security, SerializationStyle, StringSchema, TimeSchema, UnixTimeSchema, UriSchema, VirtualParameter, } from "@autorest/codemodel";
2
2
  import { KnownMediaType } from "@azure-tools/codegen";
3
- import { InitializedByFlags, createSdkContext, getAllModels, getClientNameOverride, getHttpOperationParameter, isSdkBuiltInKind, isSdkIntKind, } from "@azure-tools/typespec-client-generator-core";
3
+ import { InitializedByFlags, createSdkContext, getAllModels, getClientNameOverride, getHttpOperationParameter, isHttpMetadata, isSdkBuiltInKind, isSdkIntKind, } from "@azure-tools/typespec-client-generator-core";
4
4
  import { NoTarget, getDoc, getNamespaceFullName, getOverloadedOperation, getSummary, isArrayModelType, isRecordModelType, listServices, } from "@typespec/compiler";
5
5
  import { Visibility, getAuthentication, } from "@typespec/http";
6
6
  import { getSegment } from "@typespec/rest";
@@ -718,12 +718,6 @@ export class CodeModelBuilder {
718
718
  this.trackSchemaUsage(r.schema, { usage: [SchemaContext.Paged] });
719
719
  }
720
720
  });
721
- function getLastSegment(segments) {
722
- if (segments) {
723
- return segments[segments.length - 1];
724
- }
725
- return undefined;
726
- }
727
721
  // pageItems
728
722
  const pageItemsResponseProperty = findResponsePropertySegments(op, sdkMethod.response.resultSegments);
729
723
  // "sdkMethod.response.resultSegments" should not be empty for "paging"/"lropaging"
@@ -744,9 +738,9 @@ export class CodeModelBuilder {
744
738
  let continuationTokenResponseHeader;
745
739
  if (!this.isBranded()) {
746
740
  // parameter would either be query or header parameter, so taking the last segment would be enough
747
- const continuationTokenParameterSegment = getLastSegment(sdkMethod.pagingMetadata.continuationTokenParameterSegments);
741
+ const continuationTokenParameterSegment = sdkMethod.pagingMetadata.continuationTokenParameterSegments?.at(-1);
748
742
  // response could be response header, where the last segment would do; or it be json path in the response body, where we use "findResponsePropertySegments" to find them
749
- const continuationTokenResponseSegment = getLastSegment(sdkMethod.pagingMetadata.continuationTokenResponseSegments);
743
+ const continuationTokenResponseSegment = sdkMethod.pagingMetadata.continuationTokenResponseSegments?.at(-1);
750
744
  if (continuationTokenParameterSegment && op.parameters) {
751
745
  // for now, continuationToken is either request query or header parameter
752
746
  const parameter = getHttpOperationParameter(sdkMethod, continuationTokenParameterSegment);
@@ -787,6 +781,7 @@ export class CodeModelBuilder {
787
781
  }
788
782
  }
789
783
  else if (continuationTokenResponseSegment?.kind === "property") {
784
+ // continuationToken is response body property
790
785
  continuationTokenResponseProperty = findResponsePropertySegments(op, sdkMethod.pagingMetadata.continuationTokenResponseSegments);
791
786
  }
792
787
  }
@@ -800,14 +795,17 @@ export class CodeModelBuilder {
800
795
  nextLinkReInjectedParameters = [];
801
796
  for (const parameterSegments of sdkMethod.pagingMetadata
802
797
  .nextLinkReInjectedParametersSegments) {
803
- const nextLinkReInjectedParameterSegment = getLastSegment(parameterSegments);
798
+ const nextLinkReInjectedParameterSegment = parameterSegments?.at(-1);
804
799
  if (nextLinkReInjectedParameterSegment && op.parameters) {
805
800
  const parameter = getHttpOperationParameter(sdkMethod, nextLinkReInjectedParameterSegment);
806
801
  if (parameter) {
807
802
  // find the corresponding parameter in the code model operation
808
803
  for (const opParam of op.parameters) {
809
804
  if (opParam.protocol.http?.in === parameter.kind &&
810
- opParam.language.default.serializedName === parameter.serializedName) {
805
+ opParam.language.default.serializedName ===
806
+ (parameter.kind === "property"
807
+ ? getPropertySerializedName(parameter)
808
+ : parameter.serializedName)) {
811
809
  nextLinkReInjectedParameters.push(opParam);
812
810
  break;
813
811
  }
@@ -878,9 +876,7 @@ export class CodeModelBuilder {
878
876
  lroMetadata.finalResponse.resultSegments) {
879
877
  // TODO: in future the property could be nested, so that the "resultSegments" would contain more than 1 element
880
878
  const lastSegment = lroMetadata.finalResponse.resultSegments[lroMetadata.finalResponse.resultSegments.length - 1];
881
- if (lastSegment.kind === "property") {
882
- finalResultPropertySerializedName = getPropertySerializedName(lastSegment);
883
- }
879
+ finalResultPropertySerializedName = getPropertySerializedName(lastSegment);
884
880
  }
885
881
  }
886
882
  // track usage
@@ -1096,6 +1092,7 @@ export class CodeModelBuilder {
1096
1092
  }
1097
1093
  request.parameters = [];
1098
1094
  request.signatureParameters = [];
1095
+ const thisSdkContext = this.sdkContext;
1099
1096
  function findOperationParameter(parameter) {
1100
1097
  let opParameter;
1101
1098
  // ignore constant parameter, usually the "accept" and "content-type" header
@@ -1104,7 +1101,7 @@ export class CodeModelBuilder {
1104
1101
  // there should be only 1 body parameter
1105
1102
  opParameter = requestParameters.find((it) => it.protocol.http?.in === "body");
1106
1103
  }
1107
- else if (parameter.kind === "property") {
1104
+ else if (parameter.kind === "property" && !isHttpMetadata(thisSdkContext, parameter)) {
1108
1105
  // body property
1109
1106
  // if body property appears on method signature, it should already be flattened, hence the check on VirtualParameter
1110
1107
  opParameter = requestParameters.find((it) => it instanceof VirtualParameter &&
@@ -1113,7 +1110,10 @@ export class CodeModelBuilder {
1113
1110
  else {
1114
1111
  // query, path, header
1115
1112
  opParameter = requestParameters.find((it) => it.protocol.http?.in === parameter.kind &&
1116
- it.language.default.serializedName === parameter.serializedName);
1113
+ it.language.default.serializedName ===
1114
+ (parameter.kind === "property"
1115
+ ? getPropertySerializedName(parameter)
1116
+ : parameter.serializedName));
1117
1117
  }
1118
1118
  }
1119
1119
  return opParameter;
@@ -1454,7 +1454,7 @@ export class CodeModelBuilder {
1454
1454
  if (bodyParameter) {
1455
1455
  if (bodyParameter.type.kind === "model") {
1456
1456
  for (const bodyProperty of bodyParameter.type.properties) {
1457
- if (bodyProperty.kind === "property") {
1457
+ if (!isHttpMetadata(this.sdkContext, bodyProperty)) {
1458
1458
  this.addParameterOrBodyPropertyToCodeModelRequest(bodyProperty, op, request, schema, parameter);
1459
1459
  }
1460
1460
  }
@@ -1993,7 +1993,7 @@ export class CodeModelBuilder {
1993
1993
  }
1994
1994
  // properties
1995
1995
  for (const prop of type.properties) {
1996
- if (prop.kind === "property" && !prop.discriminator) {
1996
+ if (!isHttpMetadata(this.sdkContext, prop) && !prop.discriminator) {
1997
1997
  objectSchema.addProperty(this.processModelProperty(prop));
1998
1998
  }
1999
1999
  }
@@ -2019,7 +2019,7 @@ export class CodeModelBuilder {
2019
2019
  // if the property does not return in response, it had to be nullable
2020
2020
  nullable = true;
2021
2021
  }
2022
- if (modelProperty.kind === "property" && modelProperty.flatten) {
2022
+ if (modelProperty.flatten) {
2023
2023
  extensions = extensions ?? {};
2024
2024
  extensions["x-ms-client-flatten"] = true;
2025
2025
  }
@@ -2028,15 +2028,10 @@ export class CodeModelBuilder {
2028
2028
  extensions = extensions ?? {};
2029
2029
  extensions["x-ms-mutability"] = mutability;
2030
2030
  }
2031
- if (modelProperty.kind === "property" && modelProperty.serializationOptions.multipart) {
2031
+ if (modelProperty.serializationOptions.multipart) {
2032
2032
  if (modelProperty.serializationOptions.multipart?.isFilePart) {
2033
2033
  schema = this.processMultipartFormDataFilePropertySchema(modelProperty);
2034
2034
  }
2035
- else if (modelProperty.type.kind === "model" &&
2036
- modelProperty.type.properties.some((it) => it.kind === "body")) {
2037
- // TODO: this is HttpPart of non-File. TCGC should help handle this.
2038
- schema = this.processSchema(modelProperty.type.properties.find((it) => it.kind === "body").type, "");
2039
- }
2040
2035
  else {
2041
2036
  schema = this.processSchema(nonNullType, "");
2042
2037
  }
@@ -2049,11 +2044,11 @@ export class CodeModelBuilder {
2049
2044
  required: !modelProperty.optional,
2050
2045
  nullable: nullable,
2051
2046
  readOnly: this.isReadOnly(modelProperty),
2052
- serializedName: modelProperty.kind === "property" ? getPropertySerializedName(modelProperty) : undefined,
2047
+ serializedName: getPropertySerializedName(modelProperty),
2053
2048
  extensions: extensions,
2054
2049
  });
2055
2050
  // xml
2056
- if (modelProperty.kind === "property" && modelProperty.serializationOptions.xml) {
2051
+ if (modelProperty.serializationOptions.xml) {
2057
2052
  // property.serializedName is set via getPropertySerializedName
2058
2053
  // "serialization" is set to the property in TypeSpec emitter, not in the schema
2059
2054
  // this avoid duplicate schema, when different property has different serialization options, but refers to the same schema
@@ -2215,7 +2210,7 @@ export class CodeModelBuilder {
2215
2210
  return true;
2216
2211
  }
2217
2212
  else {
2218
- const visibility = target.kind === "property" ? target.visibility : undefined;
2213
+ const visibility = target.visibility;
2219
2214
  if (visibility) {
2220
2215
  return (!visibility.includes(Visibility.All) &&
2221
2216
  !visibility.includes(Visibility.Create) &&
@@ -2229,7 +2224,7 @@ export class CodeModelBuilder {
2229
2224
  }
2230
2225
  }
2231
2226
  isSecret(target) {
2232
- if (target.kind === "property" && target.visibility) {
2227
+ if (target.visibility) {
2233
2228
  return !target.visibility.includes(Visibility.Read);
2234
2229
  }
2235
2230
  else {
@@ -2237,7 +2232,7 @@ export class CodeModelBuilder {
2237
2232
  }
2238
2233
  }
2239
2234
  getMutability(target) {
2240
- if (target.kind === "property" && target.visibility) {
2235
+ if (target.visibility) {
2241
2236
  const mutability = [];
2242
2237
  if (target.visibility.includes(Visibility.Create)) {
2243
2238
  mutability.push("create");