@azure-tools/typespec-java 0.27.9 → 0.28.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,9 +1,35 @@
1
1
  import { AnySchema, BinarySchema, BooleanSchema, NumberSchema, ObjectSchema, Schema, StringSchema } from "@autorest/codemodel";
2
2
  import { SdkType } from "@azure-tools/typespec-client-generator-core";
3
- import { EmitContext, Program, Type, Union } from "@typespec/compiler";
3
+ import { EmitContext, Program } from "@typespec/compiler";
4
4
  import { CodeModel } from "./common/code-model.js";
5
- import { EmitterOptions } from "./lib.js";
5
+ import { DevOptions, EmitterOptions } from "./options.js";
6
6
  import { ProcessingCache } from "./type-utils.js";
7
+ export interface EmitterOptionsDev {
8
+ flavor?: string;
9
+ namespace?: string;
10
+ "service-name"?: string;
11
+ "service-versions"?: string[];
12
+ "generate-samples"?: boolean;
13
+ "generate-tests"?: boolean;
14
+ "partial-update"?: boolean;
15
+ "models-subpackage"?: string;
16
+ "custom-types"?: string;
17
+ "custom-types-subpackage"?: string;
18
+ "customization-class"?: string;
19
+ polling?: any;
20
+ "skip-special-headers"?: string[];
21
+ "enable-subclient"?: boolean;
22
+ "group-etag-headers"?: boolean;
23
+ "enable-sync-stack"?: boolean;
24
+ "stream-style-serialization"?: boolean;
25
+ "use-object-for-unknown"?: boolean;
26
+ "api-version"?: string;
27
+ "advanced-versioning"?: boolean;
28
+ "service-version-exclude-preview"?: boolean;
29
+ "dev-options"?: DevOptions;
30
+ "output-dir": string;
31
+ arm?: boolean;
32
+ }
7
33
  export declare class CodeModelBuilder {
8
34
  private program;
9
35
  private typeNameOptions;
@@ -15,8 +41,8 @@ export declare class CodeModelBuilder {
15
41
  private codeModel;
16
42
  private emitterContext;
17
43
  private serviceNamespace;
44
+ private readonly javaNamespaceCache;
18
45
  readonly schemaCache: ProcessingCache<SdkType, Schema>;
19
- readonly typeUnionRefCache: Map<Type, Union | null | undefined>;
20
46
  private apiVersion;
21
47
  constructor(program1: Program, context: EmitContext<EmitterOptions>);
22
48
  build(): Promise<CodeModel>;
@@ -95,6 +121,7 @@ export declare class CodeModelBuilder {
95
121
  private getConvenienceApiName;
96
122
  private getBaseJavaNamespace;
97
123
  private getJavaNamespace;
124
+ private escapeJavaNamespace;
98
125
  private trace;
99
126
  private _stringSchema?;
100
127
  get stringSchema(): StringSchema;
@@ -111,6 +138,7 @@ export declare class CodeModelBuilder {
111
138
  private _pollResultSchema?;
112
139
  get pollResultSchema(): ObjectSchema;
113
140
  private createApiVersionParameter;
141
+ private isApiVersionParameter;
114
142
  private _apiVersionParameter?;
115
143
  private _apiVersionParameterInPath?;
116
144
  private _apiVersionParameterInHeader?;
@@ -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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"}
@@ -17,18 +17,19 @@ import { OrSchema } from "./common/schemas/relationship.js";
17
17
  import { DurationSchema } from "./common/schemas/time.js";
18
18
  import { SchemaContext } from "./common/schemas/usage.js";
19
19
  import { createPollOperationDetailsSchema, getFileDetailsSchema } from "./external-schemas.js";
20
- import { LIB_NAME, createDiagnostic, reportDiagnostic } from "./lib.js";
20
+ import { createDiagnostic, reportDiagnostic } from "./lib.js";
21
21
  import { ClientContext } from "./models.js";
22
22
  import { CONTENT_TYPE_KEY, ORIGIN_API_VERSION, SPECIAL_HEADER_NAMES, cloneOperationParameter, getServiceVersion, isKnownContentType, isLroNewPollingStrategy, operationIsJsonMergePatch, operationIsMultipart, operationIsMultipleContentTypes, } from "./operation-utils.js";
23
+ import { LIB_NAME } from "./options.js";
23
24
  import { BYTES_KNOWN_ENCODING, DATETIME_KNOWN_ENCODING, DURATION_KNOWN_ENCODING, ProcessingCache, getAccess, getDurationFormat, getNonNullSdkType, getPropertySerializedName, getUnionDescription, getUsage, modelIs, pushDistinct, } from "./type-utils.js";
24
- import { DiagnosticError, getNamespace, isStableApiVersion, pascalCase, removeClientSuffix, stringArrayContainsIgnoreCase, trace, } from "./utils.js";
25
+ import { DiagnosticError, escapeJavaKeywords, getNamespace, isStableApiVersion, pascalCase, removeClientSuffix, stringArrayContainsIgnoreCase, trace, } from "./utils.js";
25
26
  const { isEqual } = pkg;
26
27
  const AZURE_CORE_FOUNDATIONS_ERROR_ID = "Azure.Core.Foundations.Error";
27
28
  export class CodeModelBuilder {
28
29
  constructor(program1, context) {
29
30
  var _a, _b;
31
+ this.javaNamespaceCache = new Map();
30
32
  this.schemaCache = new ProcessingCache((type, name) => this.processSchemaImpl(type, name));
31
- 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
32
33
  this.options = context.options;
33
34
  this.program = program1;
34
35
  this.emitterContext = context;
@@ -78,6 +79,7 @@ export class CodeModelBuilder {
78
79
  additionalDecorators: ["Azure\\.ClientGenerator\\.Core\\.@override"],
79
80
  versioning: { previewStringRegex: /$/ },
80
81
  }); // include all versions and do the filter by ourselves
82
+ this.program.reportDiagnostics(this.sdkContext.diagnostics);
81
83
  // java namespace
82
84
  if (this.options.namespace) {
83
85
  // legacy mode, clientNamespace from TCGC will be ignored
@@ -92,8 +94,6 @@ export class CodeModelBuilder {
92
94
  this.baseJavaNamespace = this.getBaseJavaNamespace();
93
95
  }
94
96
  this.codeModel.language.java.namespace = this.baseJavaNamespace;
95
- // potential problem https://github.com/Azure/typespec-azure/issues/1675
96
- this.program.reportDiagnostics(this.sdkContext.diagnostics);
97
97
  // auth
98
98
  // TODO: it is not very likely, but different client could have different auth
99
99
  const auth = getAuthentication(this.program, this.serviceNamespace);
@@ -116,7 +116,7 @@ export class CodeModelBuilder {
116
116
  let parameter;
117
117
  sdkPathParameters.forEach((arg) => {
118
118
  var _a;
119
- if (arg.isApiVersionParam) {
119
+ if (this.isApiVersionParameter(arg)) {
120
120
  parameter = this.createApiVersionParameter(arg.name, ParameterLocation.Uri);
121
121
  }
122
122
  else {
@@ -589,7 +589,6 @@ export class CodeModelBuilder {
589
589
  const operationName = sdkMethod.name;
590
590
  const httpOperation = sdkMethod.operation;
591
591
  const operationId = groupName ? `${groupName}_${operationName}` : `${operationName}`;
592
- const operationGroup = this.codeModel.getOperationGroup(groupName);
593
592
  const operationExamples = this.getOperationExample(sdkMethod);
594
593
  const codeModelOperation = new CodeModelOperation(operationName, (_a = sdkMethod.doc) !== null && _a !== void 0 ? _a : "", {
595
594
  operationId: operationId,
@@ -711,7 +710,6 @@ export class CodeModelBuilder {
711
710
  this.processRouteForPaged(codeModelOperation, sdkMethod);
712
711
  // check for long-running operation
713
712
  this.processRouteForLongRunning(codeModelOperation, lroMetadata);
714
- operationGroup.addOperation(codeModelOperation);
715
713
  return codeModelOperation;
716
714
  }
717
715
  processRouteForPaged(op, sdkMethod) {
@@ -920,7 +918,7 @@ export class CodeModelBuilder {
920
918
  }
921
919
  processParameter(op, param, clientContext) {
922
920
  var _a, _b, _c;
923
- if (clientContext.apiVersions && param.isApiVersionParam && param.kind !== "cookie") {
921
+ if (clientContext.apiVersions && this.isApiVersionParameter(param) && param.kind !== "cookie") {
924
922
  // pre-condition for "isApiVersion": the client supports ApiVersions
925
923
  if (this.isArm()) {
926
924
  // Currently we assume ARM tsp only have one client and one api-version.
@@ -2294,7 +2292,7 @@ export class CodeModelBuilder {
2294
2292
  if (!baseJavaNamespace) {
2295
2293
  baseJavaNamespace = this.namespace;
2296
2294
  }
2297
- return baseJavaNamespace.toLowerCase();
2295
+ return this.escapeJavaNamespace(baseJavaNamespace.toLowerCase());
2298
2296
  }
2299
2297
  getJavaNamespace(type = undefined) {
2300
2298
  // clientNamespace from TCGC
@@ -2344,7 +2342,27 @@ export class CodeModelBuilder {
2344
2342
  return this.baseJavaNamespace;
2345
2343
  }
2346
2344
  else {
2347
- return clientNamespace.toLowerCase();
2345
+ return this.escapeJavaNamespace(clientNamespace.toLowerCase());
2346
+ }
2347
+ }
2348
+ escapeJavaNamespace(namespace) {
2349
+ if (this.javaNamespaceCache.has(namespace)) {
2350
+ return this.javaNamespaceCache.get(namespace);
2351
+ }
2352
+ else {
2353
+ const processedJavaNamespace = namespace
2354
+ .split(".")
2355
+ .map((segment) => escapeJavaKeywords(segment, "namespace"))
2356
+ .join(".");
2357
+ if (processedJavaNamespace !== namespace) {
2358
+ reportDiagnostic(this.program, {
2359
+ code: "invalid-java-namespace",
2360
+ format: { namespace: namespace, processedNamespace: processedJavaNamespace },
2361
+ target: NoTarget,
2362
+ });
2363
+ }
2364
+ this.javaNamespaceCache.set(namespace, processedJavaNamespace);
2365
+ return processedJavaNamespace;
2348
2366
  }
2349
2367
  }
2350
2368
  trace(msg) {
@@ -2396,6 +2414,9 @@ export class CodeModelBuilder {
2396
2414
  },
2397
2415
  });
2398
2416
  }
2417
+ isApiVersionParameter(param) {
2418
+ return param.isApiVersionParam;
2419
+ }
2399
2420
  getApiVersionParameter(param) {
2400
2421
  // apiVersionParameter is cached by param.kind
2401
2422
  // we didn't expect Azure service have more than 1 type of api-version, and certainly not more than 1 of each kind.