@azure-tools/typespec-azure-core 0.71.0-dev.5 → 0.71.0-dev.8

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/README.md CHANGED
@@ -70,6 +70,7 @@ Available ruleSets:
70
70
  | [`@azure-tools/typespec-azure-core/no-legacy-usage`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-legacy-usage) | Linter warning against using elements from the Legacy namespace |
71
71
  | [`@azure-tools/typespec-azure-core/no-query-explode`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-query-explode) | It is recommended to serialize query parameter without explode: true |
72
72
  | [`@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-route-parameter-name-mismatch) | Ensure that operations with the same path use consistent path parameter names. |
73
+ | [`@azure-tools/typespec-azure-core/no-openapi-client-extensions`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-openapi-client-extensions) | Azure specs should not use @typespec/openapi @extension to emit client-altering x-ms-* extensions |
73
74
 
74
75
  ## Decorators
75
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAuFA,eAAO,MAAM,OAAO,+CASlB,CAAC"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAyFA,eAAO,MAAM,OAAO,+CASlB,CAAC"}
@@ -18,6 +18,7 @@ import { noLegacyUsage } from "./rules/no-legacy-usage.js";
18
18
  import { noMultipleDiscriminatorRule } from "./rules/no-multiple-discriminator.js";
19
19
  import { noNullableRule } from "./rules/no-nullable.js";
20
20
  import { noOffsetDateTimeRule } from "./rules/no-offsetdatetime.js";
21
+ import { noOpenapiClientExtensionsRule } from "./rules/no-openapi-client-extensions.js";
21
22
  import { noOpenAPIRule } from "./rules/no-openapi.js";
22
23
  import { noPrivateUsage } from "./rules/no-private-usage.js";
23
24
  import { noQueryExplodeRule } from "./rules/no-query-explode.js";
@@ -82,6 +83,7 @@ const rules = [
82
83
  noLegacyUsage,
83
84
  noQueryExplodeRule,
84
85
  noRouteParameterNameMismatchRule,
86
+ noOpenapiClientExtensionsRule,
85
87
  ];
86
88
  export const $linter = defineLinter({
87
89
  rules,
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const noOpenapiClientExtensionsRule: import("@typespec/compiler").LinterRuleDefinition<"no-openapi-client-extensions", {
2
+ readonly default: import("@typespec/compiler").CallableMessage<["name"]>;
3
+ }, Record<string, never>>;
4
+ //# sourceMappingURL=no-openapi-client-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-openapi-client-extensions.d.ts","sourceRoot":"","sources":["../../../src/rules/no-openapi-client-extensions.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,6BAA6B;;yBAyCxC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { createRule, fileRef, getTypeName, paramMessage, } from "@typespec/compiler";
2
+ /**
3
+ * OpenAPI (`x-ms-*` / `x-*`) extensions that alter how clients, SDKs, or the ARM
4
+ * platform interpret an API. Emitting them through the raw `@typespec/openapi`
5
+ * `@extension` decorator only affects the OpenAPI output, so non-OpenAPI emitters
6
+ * (client SDKs, service code, etc.) never see them and produce an incorrect
7
+ * representation of the API. Each of these has a first-class TypeSpec construct
8
+ * that should be used instead.
9
+ */
10
+ const clientAlteringExtensions = new Set([
11
+ "x-ms-skip-url-encoding",
12
+ "x-ms-enum",
13
+ "x-ms-parameter-grouping",
14
+ "x-ms-parameter-location",
15
+ "x-ms-client-name",
16
+ "x-ms-discriminator-value",
17
+ "x-ms-client-flatten",
18
+ "x-ms-parameterized-host",
19
+ "x-ms-pageable",
20
+ "x-ms-long-running-operation",
21
+ "x-ms-long-running-operation-options",
22
+ "x-nullable",
23
+ "x-ms-internal",
24
+ "x-ms-azure-resource",
25
+ "x-ms-arm-id-details",
26
+ "x-ms-secret",
27
+ ]);
28
+ export const noOpenapiClientExtensionsRule = createRule({
29
+ name: "no-openapi-client-extensions",
30
+ description: "Azure specs should not use @typespec/openapi @extension to emit client-altering x-ms-* extensions",
31
+ severity: "warning",
32
+ url: "https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-openapi-client-extensions",
33
+ docs: fileRef.fromPackageRoot("src/rules/no-openapi-client-extensions.md"),
34
+ messages: {
35
+ default: paramMessage `Do not use the @typespec/openapi @extension decorator to emit the client-altering "${"name"}" extension. It only affects the OpenAPI output, so client SDKs and other emitters will produce an incorrect representation of the API. Use the corresponding TypeSpec construct instead.`,
36
+ },
37
+ create(context) {
38
+ function checkDecorators(type) {
39
+ for (const dec of type.decorators) {
40
+ if (dec.definition?.name !== "@extension") {
41
+ continue;
42
+ }
43
+ const namespace = getTypeName(dec.definition.namespace);
44
+ if (namespace !== "TypeSpec.OpenAPI") {
45
+ continue;
46
+ }
47
+ const key = dec.args?.[0]?.jsValue;
48
+ if (typeof key === "string" && clientAlteringExtensions.has(key)) {
49
+ context.reportDiagnostic({
50
+ target: dec.node ?? type,
51
+ format: { name: key },
52
+ });
53
+ }
54
+ }
55
+ }
56
+ return {
57
+ model: checkDecorators,
58
+ modelProperty: checkDecorators,
59
+ enum: checkDecorators,
60
+ enumMember: checkDecorators,
61
+ union: checkDecorators,
62
+ unionVariant: checkDecorators,
63
+ operation: checkDecorators,
64
+ interface: checkDecorators,
65
+ namespace: checkDecorators,
66
+ };
67
+ },
68
+ });
69
+ //# sourceMappingURL=no-openapi-client-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-openapi-client-extensions.js","sourceRoot":"","sources":["../../../src/rules/no-openapi-client-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS;IAC/C,wBAAwB;IACxB,WAAW;IACX,yBAAyB;IACzB,yBAAyB;IACzB,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAqB;IACrB,yBAAyB;IACzB,eAAe;IACf,6BAA6B;IAC7B,qCAAqC;IACrC,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,WAAW,EACT,mGAAmG;IACrG,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,qGAAqG;IAC1G,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,2CAA2C,CAAC;IAC1E,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,sFAAsF,MAAM,2LAA2L;KAC7S;IACD,MAAM,CAAC,OAAO;QACZ,SAAS,eAAe,CAAC,IAA0B;YACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACxD,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;oBACrC,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjE,OAAO,CAAC,gBAAgB,CAAC;wBACvB,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;wBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,aAAa,EAAE,eAAe;YAC9B,IAAI,EAAE,eAAe;YACrB,UAAU,EAAE,eAAe;YAC3B,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-openapi.d.ts","sourceRoot":"","sources":["../../../src/rules/no-openapi.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa;;;;;yBA0CxB,CAAC"}
1
+ {"version":3,"file":"no-openapi.d.ts","sourceRoot":"","sources":["../../../src/rules/no-openapi.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa;;;;;yBA+CxB,CAAC"}
@@ -15,6 +15,11 @@ export const noOpenAPIRule = createRule({
15
15
  function checkDecorators(type) {
16
16
  for (const dec of type.decorators) {
17
17
  if (dec.definition) {
18
+ // `@extension` is allowed by this rule. Client-altering extensions are
19
+ // handled by the `no-openapi-client-extensions` rule instead.
20
+ if (dec.definition.name === "@extension") {
21
+ continue;
22
+ }
18
23
  const id = getTypeName(dec.definition.namespace);
19
24
  if (id === "TypeSpec.OpenAPI" || id === "Autorest") {
20
25
  context.reportDiagnostic({
@@ -1 +1 @@
1
- {"version":3,"file":"no-openapi.js","sourceRoot":"","sources":["../../../src/rules/no-openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IACxD,WAAW,EACT,qGAAqG;IACvG,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,mFAAmF;IACxF,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,8CAA8C,MAAM,mGAAmG;QAC5K,WAAW,EACT,uGAAuG;QACzG,MAAM,EAAE,oDAAoD;QAC5D,OAAO,EACL,4IAA4I;KAC/I;IACD,MAAM,CAAC,OAAO;QACZ,SAAS,eAAe,CAAC,IAA0B;YACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACjD,IAAI,EAAE,KAAK,kBAAkB,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;wBACnD,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;4BACxB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;4BACpC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;yBACxC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,aAAa,EAAE,eAAe;YAC9B,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,eAAe;YAC1B,UAAU,EAAE,eAAe;YAC3B,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,GAAc;IAClC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO,aAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"no-openapi.js","sourceRoot":"","sources":["../../../src/rules/no-openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IACxD,WAAW,EACT,qGAAqG;IACvG,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,mFAAmF;IACxF,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,8CAA8C,MAAM,mGAAmG;QAC5K,WAAW,EACT,uGAAuG;QACzG,MAAM,EAAE,oDAAoD;QAC5D,OAAO,EACL,4IAA4I;KAC/I;IACD,MAAM,CAAC,OAAO;QACZ,SAAS,eAAe,CAAC,IAA0B;YACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,uEAAuE;oBACvE,8DAA8D;oBAC9D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACzC,SAAS;oBACX,CAAC;oBACD,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBACjD,IAAI,EAAE,KAAK,kBAAkB,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;wBACnD,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;4BACxB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;4BACpC,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;yBACxC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO;YACL,KAAK,EAAE,eAAe;YACtB,aAAa,EAAE,eAAe;YAC9B,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,eAAe;YAC1B,UAAU,EAAE,eAAe;YAC3B,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,GAAc;IAClC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO,aAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -86,6 +86,7 @@ model LocationOfCreatedResourceResponse<Resource extends TypeSpec.Reflection.Mod
86
86
  is TypeSpec.Http.CreatedResponse {
87
87
  @finalLocation
88
88
  @TypeSpec.Http.header("Location")
89
+ @doc("The location of an instance of {name}", Resource)
89
90
  location: ResourceLocation<Resource>;
90
91
  }
91
92
 
@@ -97,6 +98,7 @@ model LocationOfCreatedResourceWithServiceProvidedNameResponse<Resource extends
97
98
  is TypeSpec.Http.AcceptedResponse {
98
99
  @finalLocation
99
100
  @TypeSpec.Http.header("Location")
101
+ @doc("The location of an instance of {name} created with a service-provided name", Resource)
100
102
  location: ResourceLocation<Resource>;
101
103
  }
102
104
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-core",
3
- "version": "0.71.0-dev.5",
3
+ "version": "0.71.0-dev.8",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec Azure Core library",
6
6
  "homepage": "https://azure.github.io/typespec-azure",
@@ -48,8 +48,8 @@
48
48
  ],
49
49
  "peerDependencies": {
50
50
  "@typespec/compiler": "^1.14.0",
51
- "@typespec/rest": "^0.84.0",
52
- "@typespec/http": "^1.14.0"
51
+ "@typespec/http": "^1.14.0",
52
+ "@typespec/rest": "^0.84.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/node": "^26.0.0",
@@ -59,9 +59,9 @@
59
59
  "typescript": "~6.0.2",
60
60
  "vitest": "^4.1.3",
61
61
  "@typespec/compiler": "^1.14.0",
62
+ "@typespec/http": "^1.14.0",
62
63
  "@typespec/library-linter": "^0.84.0",
63
64
  "@typespec/openapi": "^1.14.0",
64
- "@typespec/http": "^1.14.0",
65
65
  "@typespec/rest": "^0.84.0",
66
66
  "@typespec/tspd": "^0.76.0",
67
67
  "@typespec/versioning": "^0.84.0"