@azure-tools/typespec-ts 0.16.0 → 0.17.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.17.0 (2023-09-26)
2
+
3
+ - [Feature] Upgrade TypeSpec compiler version to v0.48.0. Please refer to pr [#2029](https://github.com/Azure/autorest.typescript/pull/2029).
4
+ - [Feature] Take the typespec offsetDateTime as string in Modular and RLC. Please refer to pr [#2019](https://github.com/Azure/autorest.typescript/pull/2019) and [#2031](https://github.com/Azure/autorest.typescript/pull/2031).
5
+ - [Bugfix] Fix the parent properties missing issue. Please refer to pr [#2017](https://github.com/Azure/autorest.typescript/pull/2017).
6
+
1
7
  ## 0.16.0 (2023-09-11)
2
8
 
3
9
  - [Feature] Upgrade TypeSpec compiler version to v0.47.0. Please refer to pr [#1968](https://github.com/Azure/autorest.typescript/pull/1968).
@@ -1 +1 @@
1
- {"version":3,"file":"buildCodeModel.d.ts","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"AAwEA,OAAO,EACL,gBAAgB,EAQjB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,QAAQ,EAIT,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAsBnC,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAu8CD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;CAAwB,GAC3D,gBAAgB,CAqDlB"}
1
+ {"version":3,"file":"buildCodeModel.d.ts","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"AAyEA,OAAO,EACL,gBAAgB,EAQjB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,QAAQ,EAIT,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAsBnC,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAq+CD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;CAAwB,GAC3D,gBAAgB,CAqDlB"}
@@ -2,12 +2,12 @@ import { getPagedResult, isFixed } from "@azure-tools/typespec-azure-core";
2
2
  import { getDoc, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, isKey, isStringType, getPropertyType, isNumericType, getMinItems, getMaxItems, listServices, getProjectedName, isNullType, getEncode, isTemplateDeclarationOrInstance, getFormat } from "@typespec/compiler";
3
3
  import { getAuthentication, getHeaderFieldName, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader, getHttpOperation } from "@typespec/http";
4
4
  import { getAddedOnVersions } from "@typespec/versioning";
5
- import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getSdkUnion, getAllModels, getSdkSimpleType } from "@azure-tools/typespec-client-generator-core";
5
+ import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, getSdkUnion, getAllModels, getSdkBuiltInType, getClientType } from "@azure-tools/typespec-client-generator-core";
6
6
  import { getResourceOperation } from "@typespec/rest";
7
7
  import { getEnrichedDefaultApiVersion, isAzureCoreErrorType } from "../utils/modelUtils.js";
8
8
  import { camelToSnakeCase, toCamelCase } from "../utils/casingUtils.js";
9
9
  import { getClientName, NameType, normalizeName } from "@azure-tools/rlc-common";
10
- import { getOperationGroupName, getOperationName, isIgnoredHeaderParam } from "../utils/operationUtil.js";
10
+ import { getOperationGroupName, getOperationName, isIgnoredHeaderParam, isLongRunningOperation } from "../utils/operationUtil.js";
11
11
  let CASING = "snake";
12
12
  function applyCasing(name, options = { casing: "snake" }) {
13
13
  if (options.casing === "camel") {
@@ -42,42 +42,37 @@ function getDocStr(program, target) {
42
42
  var _a;
43
43
  return (_a = getDoc(program, target)) !== null && _a !== void 0 ? _a : "";
44
44
  }
45
- function isLro(_program, operation) {
46
- for (const decorator of operation.decorators) {
47
- if (decorator.decorator.name === "$pollingOperation") {
48
- return true;
49
- }
45
+ function isDiscriminator(context, type, propertyName) {
46
+ const discriminator = getDiscriminator(context.program, type);
47
+ if (discriminator && discriminator.propertyName === propertyName) {
48
+ return true;
50
49
  }
51
50
  return false;
52
51
  }
53
- function handleDiscriminator(context, type, model) {
52
+ function handleDiscriminator(context, type) {
54
53
  const discriminator = getDiscriminator(context.program, type);
55
54
  if (discriminator) {
56
- let discriminatorProperty;
55
+ const discriminatorValues = [];
57
56
  for (const childModel of type.derivedModels) {
58
57
  const modelType = getType(context, childModel);
59
58
  for (const property of modelType.properties) {
60
59
  if (property.restApiName === discriminator.propertyName) {
61
60
  modelType.discriminatorValue = property.type.value;
62
- property.isDiscriminator = true;
63
- model.discriminatedSubtypes[property.type.value] = modelType;
64
- discriminatorProperty = property;
61
+ discriminatorValues.push(modelType.discriminatorValue);
65
62
  }
66
63
  }
67
64
  }
68
65
  // it is not included in properties of typespec but needed by python codegen
69
- if (discriminatorProperty) {
70
- const discriminatorType = { ...discriminatorProperty.type };
71
- discriminatorType.value = null;
72
- const propertyCopy = {
73
- ...discriminatorProperty,
66
+ if (discriminatorValues.length > 0) {
67
+ const discriminatorInfo = {
68
+ description: `the discriminator possible values ${discriminatorValues.join(", ")}`,
74
69
  isPolymorphic: true,
75
- type: discriminatorType
70
+ isDiscriminator: true
76
71
  };
77
- propertyCopy.description = "";
78
- model.properties.push(propertyCopy);
72
+ return discriminatorInfo;
79
73
  }
80
74
  }
75
+ return undefined;
81
76
  }
82
77
  function getEffectiveSchemaType(program, type) {
83
78
  var _a;
@@ -125,10 +120,14 @@ function processModelProperties(context, newValue, model) {
125
120
  if (newValue.properties === undefined || newValue.properties === null) {
126
121
  newValue.properties = [];
127
122
  }
128
- newValue.properties.push(emitProperty(context, property));
123
+ let newProperty = emitProperty(context, property);
124
+ if (isDiscriminator(context, model, property.name)) {
125
+ newProperty = { ...newProperty, ...handleDiscriminator(context, model) };
126
+ }
127
+ newValue.properties.push(newProperty);
129
128
  }
130
129
  // need to do discriminator outside `emitModel` to avoid infinite recursion
131
- handleDiscriminator(context, model, newValue);
130
+ // handleDiscriminator(context, model, newValue);
132
131
  }
133
132
  function getType(context, type, options = {}) {
134
133
  // don't cache simple type(string, int, etc) since decorators may change the result
@@ -398,7 +397,7 @@ function emitResponse(context, response, innerResponse) {
398
397
  };
399
398
  }
400
399
  function emitOperation(context, operation, operationGroupName, rlcModels) {
401
- const lro = isLro(context.program, operation);
400
+ const lro = isLongRunningOperation(context.program, ignoreDiagnostics(getHttpOperation(context.program, operation)));
402
401
  const paging = getPagedResult(context.program, operation);
403
402
  if (lro && paging) {
404
403
  return emitLroPagingOperation(context, operation, operationGroupName, rlcModels);
@@ -714,7 +713,7 @@ function emitCredentialUnion(cred_types) {
714
713
  return result;
715
714
  }
716
715
  function emitStdScalar(program, scalar) {
717
- var _a, _b, _c;
716
+ var _a, _b;
718
717
  const newScalar = applyEncoding(program, scalar, scalar);
719
718
  switch (scalar.name) {
720
719
  case "bytes":
@@ -746,7 +745,7 @@ function emitStdScalar(program, scalar) {
746
745
  case "plainTime":
747
746
  return { type: "datetime", format: (_b = newScalar.format) !== null && _b !== void 0 ? _b : "time" };
748
747
  case "offsetDateTime":
749
- return { type: "datetime", format: (_c = newScalar.format) !== null && _c !== void 0 ? _c : "rfc7231" };
748
+ return { type: "string" };
750
749
  case "duration":
751
750
  return { type: "duration", format: newScalar.format };
752
751
  case "numeric":
@@ -866,7 +865,9 @@ function capitalize(name) {
866
865
  return name[0].toUpperCase() + name.slice(1);
867
866
  }
868
867
  function emitUnion(context, type) {
868
+ var _a;
869
869
  const sdkType = getSdkUnion(context, type);
870
+ const nonNullOptions = getNonNullOptions(type);
870
871
  if (sdkType === undefined) {
871
872
  throw Error("Should not have an empty union");
872
873
  }
@@ -886,12 +887,27 @@ function emitUnion(context, type) {
886
887
  return {
887
888
  name: sdkType.name,
888
889
  nullable: sdkType.nullable,
889
- description: sdkType.doc || `Type of ${sdkType.name}`,
890
+ description: sdkType.description || `Type of ${sdkType.name}`,
890
891
  internal: true,
891
892
  type: sdkType.kind,
892
893
  valueType: emitSimpleType(context, sdkType.valueType),
893
894
  values: sdkType.values.map((x) => emitEnumMember(x)),
894
- isFixed: sdkType.isFixed === false ? false : true,
895
+ isFixed: sdkType.isFixed,
896
+ xmlMetadata: {}
897
+ };
898
+ }
899
+ else if (isStringOrNumberKind(context.program, sdkType.kind) &&
900
+ isStringOrNumberKind(context.program, (_a = nonNullOptions[0]) === null || _a === void 0 ? void 0 : _a.kind)) {
901
+ return {
902
+ name: undefined,
903
+ nullable: sdkType.nullable,
904
+ internal: true,
905
+ type: "enum",
906
+ valueType: emitSimpleType(context, sdkType),
907
+ values: nonNullOptions
908
+ .map((x) => getClientType(context, x))
909
+ .map((x) => emitEnumMember(x)),
910
+ isFixed: true,
895
911
  xmlMetadata: {}
896
912
  };
897
913
  }
@@ -899,9 +915,29 @@ function emitUnion(context, type) {
899
915
  return { nullable: sdkType.nullable, ...emitType(context, sdkType.__raw) };
900
916
  }
901
917
  }
918
+ function isStringOrNumberKind(program, kind) {
919
+ var _a;
920
+ if (!kind) {
921
+ return false;
922
+ }
923
+ kind = kind.toLowerCase();
924
+ try {
925
+ const type = emitStdScalar(program, { name: kind });
926
+ kind = (_a = type["type"]) !== null && _a !== void 0 ? _a : kind;
927
+ }
928
+ catch (e) {
929
+ // ignore
930
+ }
931
+ return ["string", "number", "integer", "float"].includes(kind);
932
+ }
933
+ function getNonNullOptions(type) {
934
+ return [...type.variants.values()]
935
+ .map((x) => x.type)
936
+ .filter((t) => !isNullType(t));
937
+ }
902
938
  function emitEnumMember(type) {
903
939
  return {
904
- name: enumName(type.name),
940
+ name: type.name ? enumName(type.name) : undefined,
905
941
  value: type.value,
906
942
  description: type.doc
907
943
  };
@@ -909,32 +945,18 @@ function emitEnumMember(type) {
909
945
  function emitSimpleType(context, type) {
910
946
  let sdkType;
911
947
  if (type.kind === "Scalar" || type.kind === "Intrinsic") {
912
- sdkType = getSdkSimpleType(context, type);
948
+ sdkType = getSdkBuiltInType(context, type);
913
949
  }
914
950
  else {
915
951
  sdkType = type;
916
952
  }
917
- const extraInformation = {};
918
- if (sdkType.kind === "string") {
919
- extraInformation["pattern"] = sdkType.pattern;
920
- extraInformation["minLength"] = sdkType.minLength;
921
- extraInformation["maxLength"] = sdkType.maxLength;
922
- }
923
- else if (sdkType.kind === "int32" ||
924
- sdkType.kind === "int64" ||
925
- sdkType.kind === "float32" ||
926
- sdkType.kind === "float64") {
927
- extraInformation["minValue"] = sdkType.minValue;
928
- extraInformation["maxValue"] = sdkType.maxValue;
929
- }
930
953
  return {
931
954
  nullable: sdkType.nullable,
932
955
  type: "number",
933
- doc: sdkType.doc,
934
- apiVersions: sdkType.apiVersions,
935
- sdkDefaultValue: sdkType.sdkDefaultValue,
936
- format: sdkType.format,
937
- ...extraInformation
956
+ doc: "",
957
+ apiVersions: [],
958
+ sdkDefaultValue: undefined,
959
+ format: undefined
938
960
  };
939
961
  }
940
962
  function emitType(context, type) {
@@ -1219,7 +1241,7 @@ export function emitCodeModel(dpgContext, rlcModelsMap, modularSourcesRoot, proj
1219
1241
  simpleTypesMap.clear();
1220
1242
  const allModels = getAllModels(dpgContext);
1221
1243
  for (const model of allModels) {
1222
- getType(dpgContext, model);
1244
+ getType(dpgContext, model.__raw);
1223
1245
  }
1224
1246
  for (const namespace of getNamespaces(dpgContext)) {
1225
1247
  if (namespace === clientNamespaceString) {
@@ -1 +1 @@
1
- {"version":3,"file":"buildCodeModel.js","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildCodeModel.js","sourceRoot":"","sources":["../../../src/modular/buildCodeModel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emitModels.d.ts","sourceRoot":"","sources":["../../../src/modular/emitModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAQ,MAAM,uBAAuB,CAAC;AAKvE;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,SAAS,CA8GxB;AAYD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,QAkCf"}
1
+ {"version":3,"file":"emitModels.d.ts","sourceRoot":"","sources":["../../../src/modular/emitModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAQ,MAAM,uBAAuB,CAAC;AAKvE;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,SAAS,CA+GxB;AAYD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,QAkCf"}
@@ -33,8 +33,9 @@ export function buildModels(codeModel, subClient) {
33
33
  typeName = `${typeName}[]`;
34
34
  }
35
35
  if (model.type === "enum") {
36
- if (modelsFile.getTypeAlias(model.name)) {
36
+ if (!model.name || modelsFile.getTypeAlias(model.name)) {
37
37
  // If the enum is already defined, we don't need to do anything
38
+ // If the enum is anonymous, we don't build any type alias for it
38
39
  continue;
39
40
  }
40
41
  modelsFile.addTypeAlias({
@@ -1 +1 @@
1
- {"version":3,"file":"emitModels.js","sourceRoot":"","sources":["../../../src/modular/emitModels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitModels.js","sourceRoot":"","sources":["../../../src/modular/emitModels.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export function getSendPrivateFunction(operation, clientType, importSet) {
35
35
  };
36
36
  }
37
37
  export function getDeserializePrivateFunction(operation, needSubClient, needUnexpectedHelper, importSet) {
38
- var _a, _b, _c, _d, _e;
38
+ var _a, _b, _c, _d;
39
39
  const { name } = getOperationName(operation);
40
40
  const parameters = [
41
41
  {
@@ -81,8 +81,8 @@ export function getDeserializePrivateFunction(operation, needSubClient, needUnex
81
81
  else if ((_c = response === null || response === void 0 ? void 0 : response.type) === null || _c === void 0 ? void 0 : _c.elementType) {
82
82
  statements.push(`return ${deserializeResponseValue(response.type, "result.body", importSet, response.type.nullable !== undefined ? !response.type.nullable : false, response.type.format)}`);
83
83
  }
84
- else if ((_d = response === null || response === void 0 ? void 0 : response.type) === null || _d === void 0 ? void 0 : _d.properties) {
85
- statements.push(`return {`, getResponseMapping((_e = response.type.properties) !== null && _e !== void 0 ? _e : [], "result.body", importSet).join(","), `}`);
84
+ else if (getAllProperties(response === null || response === void 0 ? void 0 : response.type).length > 0) {
85
+ statements.push(`return {`, getResponseMapping((_d = getAllProperties(response.type)) !== null && _d !== void 0 ? _d : [], "result.body", importSet).join(","), `}`);
86
86
  }
87
87
  else if (returnType.type === "void") {
88
88
  statements.push(`return;`);
@@ -100,7 +100,7 @@ function getOperationSignatureParameters(operation, clientType) {
100
100
  const optionsType = getOperationOptionsName(operation);
101
101
  const parameters = new Map();
102
102
  if (((_a = operation.bodyParameter) === null || _a === void 0 ? void 0 : _a.type.type) === "model") {
103
- ((_c = (_b = operation.bodyParameter) === null || _b === void 0 ? void 0 : _b.type.properties) !== null && _c !== void 0 ? _c : [])
103
+ ((_c = getAllProperties((_b = operation.bodyParameter) === null || _b === void 0 ? void 0 : _b.type)) !== null && _c !== void 0 ? _c : [])
104
104
  .filter((p) => !p.optional)
105
105
  .filter((p) => !p.readonly)
106
106
  .map((p) => buildType(p.clientName, p.type, p.format))
@@ -211,13 +211,13 @@ function getRequestParameters(operation, importSet) {
211
211
  return paramStr;
212
212
  }
213
213
  function buildBodyParameter(bodyParameter, importSet) {
214
- var _a, _b, _c;
214
+ var _a, _b;
215
215
  if (!bodyParameter) {
216
216
  return "";
217
217
  }
218
218
  if (bodyParameter.type.type === "model") {
219
219
  const bodyParts = [];
220
- for (const param of (_b = (_a = bodyParameter === null || bodyParameter === void 0 ? void 0 : bodyParameter.type.properties) === null || _a === void 0 ? void 0 : _a.filter((p) => !p.readonly)) !== null && _b !== void 0 ? _b : []) {
220
+ for (const param of (_a = getAllProperties(bodyParameter === null || bodyParameter === void 0 ? void 0 : bodyParameter.type).filter((p) => !p.readonly)) !== null && _a !== void 0 ? _a : []) {
221
221
  if (param.type.type === "model" && isRequired(param)) {
222
222
  bodyParts.push(`"${param.restApiName}": {${getRequestModelMapping(param.type, param.clientName, importSet).join(",\n")}}`);
223
223
  }
@@ -225,12 +225,12 @@ function buildBodyParameter(bodyParameter, importSet) {
225
225
  bodyParts.push(getParameterMap(param, importSet));
226
226
  }
227
227
  }
228
- if (bodyParameter && bodyParameter.type.properties) {
228
+ if (bodyParameter && getAllProperties(bodyParameter.type).length > 0) {
229
229
  return `\nbody: {${bodyParts.join(",\n")}},`;
230
230
  }
231
231
  }
232
232
  if (bodyParameter.type.type === "list") {
233
- if (((_c = bodyParameter.type.elementType) === null || _c === void 0 ? void 0 : _c.type) === "model") {
233
+ if (((_b = bodyParameter.type.elementType) === null || _b === void 0 ? void 0 : _b.type) === "model") {
234
234
  const bodyParts = getRequestModelMapping(bodyParameter.type.elementType, "p", importSet);
235
235
  return `\nbody: (${bodyParameter.clientName} ?? []).map((p) => { return {
236
236
  ${bodyParts.join(", ")}
@@ -374,12 +374,12 @@ function getNullableCheck(name, type) {
374
374
  * extracting properties from body and headers and building the RLC response object
375
375
  */
376
376
  function getRequestModelMapping(modelPropertyType, propertyPath = "body", importSet) {
377
- var _a, _b;
378
- if (!modelPropertyType.properties || !modelPropertyType.properties) {
377
+ var _a, _b, _c;
378
+ if (getAllProperties(modelPropertyType).length <= 0) {
379
379
  return [];
380
380
  }
381
381
  const props = [];
382
- const properties = modelPropertyType.properties;
382
+ const properties = (_a = getAllProperties(modelPropertyType)) !== null && _a !== void 0 ? _a : [];
383
383
  for (const property of properties) {
384
384
  if (property.readonly) {
385
385
  continue;
@@ -393,7 +393,7 @@ function getRequestModelMapping(modelPropertyType, propertyPath = "body", import
393
393
  else if ((property.restApiName === "message" ||
394
394
  property.restApiName === "messages") &&
395
395
  (property.type.name === "ChatMessage" ||
396
- ((_a = property.type.elementType) === null || _a === void 0 ? void 0 : _a.name) === "ChatMessage")) {
396
+ ((_b = property.type.elementType) === null || _b === void 0 ? void 0 : _b.name) === "ChatMessage")) {
397
397
  definition = `"${property.restApiName}": ${!property.optional
398
398
  ? `${propertyFullName} as any`
399
399
  : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
@@ -406,7 +406,7 @@ function getRequestModelMapping(modelPropertyType, propertyPath = "body", import
406
406
  else if ((property.restApiName === "message" ||
407
407
  property.restApiName === "messages") &&
408
408
  (property.type.name === "ChatMessage" ||
409
- ((_b = property.type.elementType) === null || _b === void 0 ? void 0 : _b.name) === "ChatMessage")) {
409
+ ((_c = property.type.elementType) === null || _c === void 0 ? void 0 : _c.name) === "ChatMessage")) {
410
410
  const definition = `"${property.restApiName}": ${!property.optional
411
411
  ? `${propertyFullName} as any`
412
412
  : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
@@ -444,7 +444,7 @@ export function getResponseMapping(properties, propertyPath = "result.body", imp
444
444
  : `!${propertyFullName} ? undefined : ${propertyFullName} as any`}`;
445
445
  }
446
446
  else {
447
- definition = `"${property.clientName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getResponseMapping((_b = property.type.properties) !== null && _b !== void 0 ? _b : [], `${propertyPath}.${property.restApiName}${property.optional ? "?" : ""}`, importSet)}}`;
447
+ definition = `"${property.clientName}": ${getNullableCheck(propertyFullName, property.type)} ${!property.optional ? "" : `!${propertyFullName} ? undefined :`} {${getResponseMapping((_b = getAllProperties(property.type)) !== null && _b !== void 0 ? _b : [], `${propertyPath}.${property.restApiName}${property.optional ? "?" : ""}`, importSet)}}`;
448
448
  }
449
449
  props.push(definition);
450
450
  }
@@ -472,7 +472,7 @@ export function getResponseMapping(properties, propertyPath = "result.body", imp
472
472
  * deserialized correctly
473
473
  */
474
474
  function deserializeResponseValue(type, restValue, importSet, required, format) {
475
- var _a, _b, _c, _d;
475
+ var _a, _b, _c;
476
476
  const coreUtilSet = importSet.get("@azure/core-util");
477
477
  switch (type.type) {
478
478
  case "datetime":
@@ -483,10 +483,10 @@ function deserializeResponseValue(type, restValue, importSet, required, format)
483
483
  return `${restValue} as any`;
484
484
  case "list":
485
485
  if (((_a = type.elementType) === null || _a === void 0 ? void 0 : _a.type) === "model") {
486
- return `(${restValue} ?? []).map(p => ({${getResponseMapping((_c = (_b = type.elementType) === null || _b === void 0 ? void 0 : _b.properties) !== null && _c !== void 0 ? _c : [], "p", importSet)}}))`;
486
+ return `(${restValue} ?? []).map(p => ({${getResponseMapping((_b = getAllProperties(type.elementType)) !== null && _b !== void 0 ? _b : [], "p", importSet)}}))`;
487
487
  }
488
488
  else if (needsDeserialize(type.elementType)) {
489
- return `(${restValue} ?? []).map(p => ${deserializeResponseValue(type.elementType, "p", importSet, required, (_d = type.elementType) === null || _d === void 0 ? void 0 : _d.format)})`;
489
+ return `(${restValue} ?? []).map(p => ${deserializeResponseValue(type.elementType, "p", importSet, required, (_c = type.elementType) === null || _c === void 0 ? void 0 : _c.format)})`;
490
490
  }
491
491
  else {
492
492
  return restValue;
@@ -579,4 +579,20 @@ export function hasPagingOperation(codeModel) {
579
579
  });
580
580
  });
581
581
  }
582
+ function getAllProperties(type) {
583
+ var _a, _b;
584
+ const propertiesMap = new Map();
585
+ if (!type) {
586
+ return [];
587
+ }
588
+ (_a = type.parents) === null || _a === void 0 ? void 0 : _a.forEach((p) => {
589
+ getAllProperties(p).forEach((prop) => {
590
+ propertiesMap.set(prop.clientName, prop);
591
+ });
592
+ });
593
+ (_b = type.properties) === null || _b === void 0 ? void 0 : _b.forEach((p) => {
594
+ propertiesMap.set(p.clientName, p);
595
+ });
596
+ return [...propertiesMap.values()];
597
+ }
582
598
  //# sourceMappingURL=operationHelpers.js.map