@azure-tools/typespec-java 0.26.0 → 0.27.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.
@@ -96,6 +96,7 @@ export declare class CodeModelBuilder {
96
96
  private getConvenienceApiName;
97
97
  private getBaseJavaNamespace;
98
98
  private getJavaNamespace;
99
+ private logError;
99
100
  private logWarning;
100
101
  private trace;
101
102
  private _stringSchema?;
@@ -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":"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"}
@@ -1,8 +1,8 @@
1
1
  import { AnySchema, ApiVersion, ArraySchema, BinaryResponse, BinarySchema, BooleanSchema, ByteArraySchema, ChoiceValue, DateSchema, DateTimeSchema, DictionarySchema, Discriminator, GroupProperty, GroupSchema, HttpHeader, HttpParameter, ImplementationLocation, KeySecurityScheme, Language, 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
3
  import { createSdkContext, getAllModels, getWireName, isApiVersion, isSdkBuiltInKind, isSdkIntKind, } from "@azure-tools/typespec-client-generator-core";
4
- import { getDoc, getEffectiveModelType, getNamespaceFullName, getOverloadedOperation, getSummary, getVisibility, isArrayModelType, isRecordModelType, listServices, } from "@typespec/compiler";
5
- import { Visibility, getAuthentication, getHeaderFieldName, getPathParamName, getQueryParamName, isHeader, isPathParam, isQueryParam, } from "@typespec/http";
4
+ import { getDoc, getEffectiveModelType, getNamespaceFullName, getOverloadedOperation, getSummary, isArrayModelType, isRecordModelType, listServices, } from "@typespec/compiler";
5
+ import { Visibility, getAuthentication, getHeaderFieldName, getPathParamName, getQueryParamName, isCookieParam, isHeader, isPathParam, isQueryParam, } from "@typespec/http";
6
6
  import { getSegment } from "@typespec/rest";
7
7
  import { getAddedOnVersions } from "@typespec/versioning";
8
8
  import { fail } from "assert";
@@ -20,13 +20,11 @@ import { createPollOperationDetailsSchema, getFileDetailsSchema } from "./extern
20
20
  import { ClientContext } from "./models.js";
21
21
  import { CONTENT_TYPE_KEY, ORIGIN_API_VERSION, SPECIAL_HEADER_NAMES, cloneOperationParameter, getServiceVersion, isKnownContentType, isLroNewPollingStrategy, isPayloadProperty, operationIsJsonMergePatch, operationIsMultipart, operationIsMultipleContentTypes, } from "./operation-utils.js";
22
22
  import { ProcessingCache, getAccess, getDurationFormat, getNonNullSdkType, getUnionDescription, getUsage, isStable, modelIs, pushDistinct, } from "./type-utils.js";
23
- import { getNamespace, logWarning, pascalCase, removeClientSuffix, stringArrayContainsIgnoreCase, trace, } from "./utils.js";
23
+ import { getNamespace, logError, logWarning, pascalCase, removeClientSuffix, stringArrayContainsIgnoreCase, trace, } from "./utils.js";
24
24
  const { isEqual } = pkg;
25
25
  export class CodeModelBuilder {
26
26
  constructor(program1, context) {
27
27
  var _a, _b;
28
- this.baseJavaNamespace = ""; // it will be set at the start of "build" function
29
- this.legacyJavaNamespace = false; // backward-compatible mode, that emitter ignores clientNamespace from TCGC
30
28
  this.loggingEnabled = false;
31
29
  this.schemaCache = new ProcessingCache((type, name) => this.processSchemaImpl(type, name));
32
30
  this.typeUnionRefCache = new Map(); // Union means it ref a Union type, null means it does not ref any Union, undefined means type visited but not completed
@@ -41,7 +39,7 @@ export class CodeModelBuilder {
41
39
  }
42
40
  const service = listServices(this.program)[0];
43
41
  if (!service) {
44
- throw Error("TypeSpec for HTTP must define a service.");
42
+ this.logError("TypeSpec for HTTP must define a service.");
45
43
  }
46
44
  this.serviceNamespace = service.type;
47
45
  this.namespace = getNamespaceFullName(this.serviceNamespace) || "Azure.Client";
@@ -161,10 +159,15 @@ export class CodeModelBuilder {
161
159
  break;
162
160
  case "apiKey":
163
161
  {
164
- const keyScheme = new KeySecurityScheme({
165
- name: scheme.name,
166
- });
167
- securitySchemes.push(keyScheme);
162
+ if (scheme.in === "header") {
163
+ const keyScheme = new KeySecurityScheme({
164
+ name: scheme.name,
165
+ });
166
+ securitySchemes.push(keyScheme);
167
+ }
168
+ else {
169
+ this.logWarning(`ApiKey auth is currently only supported for ApiKeyLocation.header.`);
170
+ }
168
171
  }
169
172
  break;
170
173
  case "http":
@@ -175,7 +178,7 @@ export class CodeModelBuilder {
175
178
  schemeOrApiKeyPrefix = pascalCase(schemeOrApiKeyPrefix);
176
179
  if (this.isBranded()) {
177
180
  // Azure would not allow BasicAuth or BearerAuth
178
- this.logWarning(`${scheme.scheme} auth method is currently not supported.`);
181
+ this.logWarning(`HTTP auth with ${scheme.scheme} scheme is not supported for Azure.`);
179
182
  continue;
180
183
  }
181
184
  }
@@ -196,7 +199,8 @@ export class CodeModelBuilder {
196
199
  }
197
200
  }
198
201
  isBranded() {
199
- return !this.options["flavor"] || this.options["flavor"].toLocaleLowerCase() === "azure";
202
+ var _a;
203
+ return ((_a = this.options["flavor"]) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === "azure";
200
204
  }
201
205
  processModels() {
202
206
  const processedSdkModels = new Set();
@@ -345,7 +349,7 @@ export class CodeModelBuilder {
345
349
  else {
346
350
  this.apiVersion = versions.find((it) => it === this.sdkContext.apiVersion);
347
351
  if (!this.apiVersion) {
348
- throw new Error("Unrecognized api-version: " + this.sdkContext.apiVersion);
352
+ this.logError("Unrecognized api-version: " + this.sdkContext.apiVersion);
349
353
  }
350
354
  }
351
355
  codeModelClient.apiVersions = [];
@@ -372,7 +376,7 @@ export class CodeModelBuilder {
372
376
  }
373
377
  }
374
378
  else if (initializationProperty.type.variantTypes.length > 2) {
375
- throw new Error("Multiple server url defined for one client is not supported yet.");
379
+ this.logError("Multiple server url defined for one client is not supported yet.");
376
380
  }
377
381
  }
378
382
  else if (initializationProperty.type.kind === "endpoint") {
@@ -606,6 +610,11 @@ export class CodeModelBuilder {
606
610
  clientContext.hostParameters.forEach((it) => codeModelOperation.addParameter(it));
607
611
  // path/query/header parameters
608
612
  for (const param of httpOperation.parameters) {
613
+ // TODO, switch to TCGC param.kind=="cookie"
614
+ if (param.__raw && isCookieParam(this.program, param.__raw)) {
615
+ // ignore cookie parameter
616
+ continue;
617
+ }
609
618
  // if it's paged operation with request body, skip content-type header added by TCGC, as next link call should not have content type header
610
619
  if ((sdkMethod.kind === "paging" || sdkMethod.kind === "lropaging") &&
611
620
  httpOperation.bodyParam &&
@@ -653,25 +662,27 @@ export class CodeModelBuilder {
653
662
  }
654
663
  processRouteForPaged(op, responses, sdkMethod) {
655
664
  var _a, _b;
665
+ if (!this.isBranded()) {
666
+ // TODO: currently unbranded does not support paged operation
667
+ return;
668
+ }
656
669
  if (sdkMethod.kind === "paging" || sdkMethod.kind === "lropaging") {
657
670
  for (const response of responses) {
658
671
  const bodyType = response.type;
659
672
  if (bodyType && bodyType.kind === "model") {
660
673
  const itemName = sdkMethod.response.resultPath;
661
674
  const nextLinkName = sdkMethod.nextLinkPath;
662
- if (itemName && nextLinkName) {
663
- op.extensions = (_a = op.extensions) !== null && _a !== void 0 ? _a : {};
664
- op.extensions["x-ms-pageable"] = {
665
- itemName: itemName,
666
- nextLinkName: nextLinkName,
667
- };
668
- (_b = op.responses) === null || _b === void 0 ? void 0 : _b.forEach((r) => {
669
- if (r instanceof SchemaResponse) {
670
- this.trackSchemaUsage(r.schema, { usage: [SchemaContext.Paged] });
671
- }
672
- });
673
- break;
674
- }
675
+ op.extensions = (_a = op.extensions) !== null && _a !== void 0 ? _a : {};
676
+ op.extensions["x-ms-pageable"] = {
677
+ itemName: itemName,
678
+ nextLinkName: nextLinkName,
679
+ };
680
+ (_b = op.responses) === null || _b === void 0 ? void 0 : _b.forEach((r) => {
681
+ if (r instanceof SchemaResponse) {
682
+ this.trackSchemaUsage(r.schema, { usage: [SchemaContext.Paged] });
683
+ }
684
+ });
685
+ break;
675
686
  }
676
687
  }
677
688
  }
@@ -1279,6 +1290,11 @@ export class CodeModelBuilder {
1279
1290
  op.addException(response);
1280
1291
  if (response instanceof SchemaResponse) {
1281
1292
  this.trackSchemaUsage(response.schema, { usage: [SchemaContext.Exception] });
1293
+ if (trackConvenienceApi && !this.isBranded()) {
1294
+ this.trackSchemaUsage(response.schema, {
1295
+ usage: [op.internalApi ? SchemaContext.Internal : SchemaContext.Public],
1296
+ });
1297
+ }
1282
1298
  }
1283
1299
  }
1284
1300
  else {
@@ -1344,7 +1360,9 @@ export class CodeModelBuilder {
1344
1360
  }
1345
1361
  }
1346
1362
  }
1347
- throw new Error(`Unrecognized type: '${type.kind}'.`);
1363
+ const errorMsg = `Unrecognized type: '${type.kind}'.`;
1364
+ this.logError(errorMsg);
1365
+ throw new Error(errorMsg);
1348
1366
  }
1349
1367
  processBuiltInType(type, nameHint) {
1350
1368
  nameHint = nameHint || type.kind;
@@ -1690,7 +1708,7 @@ export class CodeModelBuilder {
1690
1708
  processUnionSchema(type, name) {
1691
1709
  var _a, _b;
1692
1710
  if (!(type.__raw && type.__raw.kind === "Union")) {
1693
- throw new Error(`Invalid type for union: '${type.kind}'.`);
1711
+ this.logError(`Invalid type for union: '${type.kind}'.`);
1694
1712
  }
1695
1713
  const rawUnionType = type.__raw;
1696
1714
  const namespace = getNamespace(rawUnionType);
@@ -1736,7 +1754,8 @@ export class CodeModelBuilder {
1736
1754
  getUnionVariantName(type, option) {
1737
1755
  var _a, _b;
1738
1756
  if (type === undefined) {
1739
- throw new Error("type is undefined.");
1757
+ this.logError("type is undefined.");
1758
+ return "UnionVariant";
1740
1759
  }
1741
1760
  switch (type.kind) {
1742
1761
  case "Scalar": {
@@ -1793,7 +1812,8 @@ export class CodeModelBuilder {
1793
1812
  case "UnionVariant":
1794
1813
  return (_b = (typeof type.name === "string" ? type.name : undefined)) !== null && _b !== void 0 ? _b : "UnionVariant";
1795
1814
  default:
1796
- throw new Error(`Unrecognized type for union variable: '${type.kind}'.`);
1815
+ this.logError(`Unrecognized type for union variable: '${type.kind}'.`);
1816
+ return "UnionVariant";
1797
1817
  }
1798
1818
  }
1799
1819
  processMultipartFormDataFilePropertySchema(property) {
@@ -1817,7 +1837,9 @@ export class CodeModelBuilder {
1817
1837
  });
1818
1838
  }
1819
1839
  else {
1820
- throw new Error(`Invalid type for multipart form data: '${property.type.kind}'.`);
1840
+ const errorMsg = `Invalid type for multipart form data: '${property.type.kind}'.`;
1841
+ this.logError(errorMsg);
1842
+ throw new Error(errorMsg);
1821
1843
  }
1822
1844
  }
1823
1845
  getDoc(target) {
@@ -1847,13 +1869,13 @@ export class CodeModelBuilder {
1847
1869
  return true;
1848
1870
  }
1849
1871
  else {
1850
- const visibility = target.__raw ? getVisibility(this.program, target.__raw) : undefined;
1872
+ const visibility = target.kind === "property" ? target.visibility : undefined;
1851
1873
  if (visibility) {
1852
- return (!visibility.includes("write") &&
1853
- !visibility.includes("create") &&
1854
- !visibility.includes("update") &&
1855
- !visibility.includes("delete") &&
1856
- !visibility.includes("query"));
1874
+ return (!visibility.includes(Visibility.All) &&
1875
+ !visibility.includes(Visibility.Create) &&
1876
+ !visibility.includes(Visibility.Update) &&
1877
+ !visibility.includes(Visibility.Delete) &&
1878
+ !visibility.includes(Visibility.Query));
1857
1879
  }
1858
1880
  else {
1859
1881
  return false;
@@ -1950,6 +1972,9 @@ export class CodeModelBuilder {
1950
1972
  return clientNamespace.toLowerCase();
1951
1973
  }
1952
1974
  }
1975
+ logError(msg) {
1976
+ logError(this.program, msg);
1977
+ }
1953
1978
  logWarning(msg) {
1954
1979
  if (this.loggingEnabled) {
1955
1980
  logWarning(this.program, msg);