@azure-tools/typespec-azure-core 0.71.0-dev.5 → 0.71.0-dev.7
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 +1 -0
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +2 -0
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/no-openapi-client-extensions.d.ts +4 -0
- package/dist/src/rules/no-openapi-client-extensions.d.ts.map +1 -0
- package/dist/src/rules/no-openapi-client-extensions.js +69 -0
- package/dist/src/rules/no-openapi-client-extensions.js.map +1 -0
- package/dist/src/rules/no-openapi.d.ts.map +1 -1
- package/dist/src/rules/no-openapi.js +5 -0
- package/dist/src/rules/no-openapi.js.map +1 -1
- package/package.json +4 -4
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
|
|
package/dist/src/linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAyFA,eAAO,MAAM,OAAO,+CASlB,CAAC"}
|
package/dist/src/linter.js
CHANGED
|
@@ -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,
|
package/dist/src/linter.js.map
CHANGED
|
@@ -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;;;;;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-tools/typespec-azure-core",
|
|
3
|
-
"version": "0.71.0-dev.
|
|
3
|
+
"version": "0.71.0-dev.7",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec Azure Core library",
|
|
6
6
|
"homepage": "https://azure.github.io/typespec-azure",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"!dist/test/**"
|
|
48
48
|
],
|
|
49
49
|
"peerDependencies": {
|
|
50
|
+
"@typespec/http": "^1.14.0",
|
|
50
51
|
"@typespec/compiler": "^1.14.0",
|
|
51
|
-
"@typespec/rest": "^0.84.0"
|
|
52
|
-
"@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"
|