@azure-tools/typespec-azure-core 0.37.0-dev.5 → 0.37.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 +35 -34
- package/dist/src/helpers/union-enums.d.ts +71 -0
- package/dist/src/helpers/union-enums.d.ts.map +1 -0
- package/dist/src/helpers/union-enums.js +162 -0
- package/dist/src/helpers/union-enums.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +47 -2
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +20 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/rules/no-closed-literal-union.d.ts +4 -0
- package/dist/src/rules/no-closed-literal-union.d.ts.map +1 -0
- package/dist/src/rules/no-closed-literal-union.js +27 -0
- package/dist/src/rules/no-closed-literal-union.js.map +1 -0
- package/dist/src/rules/response-schema-multi-status-code.js +1 -1
- package/dist/src/rules/response-schema-multi-status-code.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,40 +28,41 @@ Available ruleSets:
|
|
|
28
28
|
|
|
29
29
|
### Rules
|
|
30
30
|
|
|
31
|
-
| Name
|
|
32
|
-
|
|
|
33
|
-
| `@azure-tools/typespec-azure-core/operation-missing-api-version`
|
|
34
|
-
| `@azure-tools/typespec-azure-core/auth-required`
|
|
35
|
-
| `@azure-tools/typespec-azure-core/no-operation-id`
|
|
36
|
-
| `@azure-tools/typespec-azure-core/request-body-problem`
|
|
37
|
-
| `@azure-tools/typespec-azure-core/byos`
|
|
38
|
-
| `@azure-tools/typespec-azure-core/casing-style`
|
|
39
|
-
| `@azure-tools/typespec-azure-core/spread-discriminated-model`
|
|
40
|
-
| `@azure-tools/typespec-azure-core/composition-over-inheritance`
|
|
41
|
-
| `@azure-tools/typespec-azure-core/prefer-csv-collection-format`
|
|
42
|
-
| `@azure-tools/typespec-azure-core/use-extensible-enum`
|
|
43
|
-
| `@azure-tools/typespec-azure-core/known-encoding`
|
|
44
|
-
| `@azure-tools/typespec-azure-core/use-standard-operations`
|
|
45
|
-
| [`@azure-tools/typespec-azure-core/no-
|
|
46
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
47
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
48
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
49
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
50
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
51
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
52
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
53
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
54
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
55
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
56
|
-
| `@azure-tools/typespec-azure-core/no-
|
|
57
|
-
| `@azure-tools/typespec-azure-core/
|
|
58
|
-
| `@azure-tools/typespec-azure-core/
|
|
59
|
-
| `@azure-tools/typespec-azure-core/
|
|
60
|
-
| `@azure-tools/typespec-azure-core/
|
|
61
|
-
| `@azure-tools/typespec-azure-core/
|
|
62
|
-
| `@azure-tools/typespec-azure-core/
|
|
63
|
-
| `@azure-tools/typespec-azure-core/
|
|
64
|
-
| `@azure-tools/typespec-azure-core/
|
|
31
|
+
| Name | Description |
|
|
32
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `@azure-tools/typespec-azure-core/operation-missing-api-version` | Operations need an api version parameter. |
|
|
34
|
+
| `@azure-tools/typespec-azure-core/auth-required` | Enforce service authentication. |
|
|
35
|
+
| `@azure-tools/typespec-azure-core/no-operation-id` | Operation ID is automatically generated by the OpenAPI emitters and should not normally be specified. |
|
|
36
|
+
| `@azure-tools/typespec-azure-core/request-body-problem` | Request body should not be of raw array type. |
|
|
37
|
+
| `@azure-tools/typespec-azure-core/byos` | Use the BYOS pattern recommended for Azure Services. |
|
|
38
|
+
| `@azure-tools/typespec-azure-core/casing-style` | Ensure proper casing style. |
|
|
39
|
+
| `@azure-tools/typespec-azure-core/spread-discriminated-model` | Check a model with a discriminator has not been used in composition. |
|
|
40
|
+
| `@azure-tools/typespec-azure-core/composition-over-inheritance` | Check that if a model is used in an operation and has derived models that it has a discriminator or recommend to use composition via spread or `is`. |
|
|
41
|
+
| `@azure-tools/typespec-azure-core/prefer-csv-collection-format` | It is recommended to use "csv" for collection format of parameters. |
|
|
42
|
+
| `@azure-tools/typespec-azure-core/use-extensible-enum` | Enums should be extensible. |
|
|
43
|
+
| `@azure-tools/typespec-azure-core/known-encoding` | Check for supported encodings. |
|
|
44
|
+
| `@azure-tools/typespec-azure-core/use-standard-operations` | Operations should be defined using a signature from the Azure.Core namespace. |
|
|
45
|
+
| [`@azure-tools/typespec-azure-core/no-closed-literal-union`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-closed-literal-union) | Unions of literals should include the base scalar type to mark them as open enum. |
|
|
46
|
+
| [`@azure-tools/typespec-azure-core/no-enum`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-enum) | Azure services should not use enums. |
|
|
47
|
+
| `@azure-tools/typespec-azure-core/no-error-status-codes` | Recommend using the error response defined by Azure REST API guidelines. |
|
|
48
|
+
| `@azure-tools/typespec-azure-core/no-fixed-enum-discriminator` | Discriminator shouldn't be a fixed enum. |
|
|
49
|
+
| `@azure-tools/typespec-azure-core/no-nullable` | Use `?` for optional properties. |
|
|
50
|
+
| `@azure-tools/typespec-azure-core/no-offsetdatetime` | Prefer using `utcDateTime` when representing a datetime unless an offset is necessary. |
|
|
51
|
+
| `@azure-tools/typespec-azure-core/no-rpc-path-params` | Operations defined using RpcOperation should not have path parameters. |
|
|
52
|
+
| `@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops` | The @route decorator should not be used on standard resource operation signatures. |
|
|
53
|
+
| `@azure-tools/typespec-azure-core/no-response-body` | Ensure that the body is set correctly for the response type. |
|
|
54
|
+
| `@azure-tools/typespec-azure-core/no-format` | Azure services should not use the `@format` decorator. |
|
|
55
|
+
| `@azure-tools/typespec-azure-core/no-multiple-discriminator` | Classes should have at most one discriminator. |
|
|
56
|
+
| `@azure-tools/typespec-azure-core/no-rest-library-interfaces` | Resource interfaces from the TypeSpec.Rest.Resource library are incompatible with Azure.Core. |
|
|
57
|
+
| `@azure-tools/typespec-azure-core/no-unknown` | Azure services must not have properties of type `unknown`. |
|
|
58
|
+
| `@azure-tools/typespec-azure-core/bad-record-type` | Identify bad record definitions. |
|
|
59
|
+
| `@azure-tools/typespec-azure-core/response-schema-problem` | Warn about operations having multiple non-error response schemas. |
|
|
60
|
+
| `@azure-tools/typespec-azure-core/property-name-conflict` | Avoid naming conflicts. |
|
|
61
|
+
| `@azure-tools/typespec-azure-core/rpc-operation-request-body` | Warning for RPC body problems. |
|
|
62
|
+
| `@azure-tools/typespec-azure-core/documentation-required` | Require documentation over enums, models, and operations. |
|
|
63
|
+
| `@azure-tools/typespec-azure-core/key-visibility-required` | Key properties need to have an explicit visibility setting. |
|
|
64
|
+
| `@azure-tools/typespec-azure-core/long-running-polling-operation-required` | Long-running operations should have a linked polling operation. |
|
|
65
|
+
| `@azure-tools/typespec-azure-core/use-standard-names` | Use recommended names for operations. |
|
|
65
66
|
|
|
66
67
|
## Decorators
|
|
67
68
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Diagnostic, Union, UnionVariant } from "@typespec/compiler";
|
|
2
|
+
export interface UnionEnumBase<K extends string, T> {
|
|
3
|
+
kind: K;
|
|
4
|
+
/** Reference to the type used to construct this enum */
|
|
5
|
+
union: Union;
|
|
6
|
+
/** Member of this enum. */
|
|
7
|
+
members: Map<string | symbol, UnionEnumVariant<T>>;
|
|
8
|
+
/** Any union used as a union variant. */
|
|
9
|
+
include: UnionEnumBase<K, T>;
|
|
10
|
+
/** Flattened member of this enum, this is the {@see members} with the members of the {@see include} union flattened inside. */
|
|
11
|
+
flattenedMembers: Map<string | symbol, UnionEnumVariant<T>>;
|
|
12
|
+
/** If the enum is open. */
|
|
13
|
+
open: boolean;
|
|
14
|
+
/** If the union included null as a variant */
|
|
15
|
+
nullable: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface UnionEnumVariant<T> {
|
|
18
|
+
value: T;
|
|
19
|
+
/** Reference to the type used to construct this enum */
|
|
20
|
+
variant: UnionVariant;
|
|
21
|
+
}
|
|
22
|
+
export type UnionEnum = UnionEnumBase<"string", string> | UnionEnumBase<"number", number>;
|
|
23
|
+
/**
|
|
24
|
+
* Tries to convert a union into an enum.
|
|
25
|
+
* If the union only contains the same type of literal options with optionally
|
|
26
|
+
* the base scalar to mark extensibility we can represent this union as an enum of that type.
|
|
27
|
+
*
|
|
28
|
+
* @param union Union to try to convert
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
*
|
|
32
|
+
* Simple closed string enum
|
|
33
|
+
*
|
|
34
|
+
* ```tsp
|
|
35
|
+
* union PetKind { "cat", "dog" }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* ```ts
|
|
39
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
40
|
+
* enum.open === false
|
|
41
|
+
* enum.open.members.get("cat") // { value: "cat", variant: ... }
|
|
42
|
+
* enum.open.members.get("dog") // { value: "dog", variant: ... }
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* Simple open string enum
|
|
46
|
+
*
|
|
47
|
+
* ```tsp
|
|
48
|
+
* union PetKind { Cat: "cat", Dog: "dog", string }
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ```ts
|
|
52
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
53
|
+
* enum.open === true
|
|
54
|
+
* enum.open.members.get("Cat") // { value: "cat", variant: ... }
|
|
55
|
+
* enum.open.members.get("Dog") // { value: "dog", variant: ... }
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* Invalid case
|
|
59
|
+
*
|
|
60
|
+
* ```tsp
|
|
61
|
+
* union PetKind { Cat: "cat", Dog: 123, string }
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
66
|
+
* enum === undefined
|
|
67
|
+
* diagnostics.length === 1
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function getUnionAsEnum(union: Union): [UnionEnum | undefined, readonly Diagnostic[]];
|
|
71
|
+
//# sourceMappingURL=union-enums.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-enums.d.ts","sourceRoot":"","sources":["../../../src/helpers/union-enums.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,EACL,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC;IACR,wDAAwD;IACxD,KAAK,EAAE,KAAK,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,yCAAyC;IACzC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,+HAA+H;IAC/H,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,2BAA2B;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC;IACT,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,SAAS,GAAG,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAE3F"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { createDiagnosticCollector, isNullType, } from "@typespec/compiler";
|
|
2
|
+
import { createDiagnostic } from "../lib.js";
|
|
3
|
+
/**
|
|
4
|
+
* Tries to convert a union into an enum.
|
|
5
|
+
* If the union only contains the same type of literal options with optionally
|
|
6
|
+
* the base scalar to mark extensibility we can represent this union as an enum of that type.
|
|
7
|
+
*
|
|
8
|
+
* @param union Union to try to convert
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* Simple closed string enum
|
|
13
|
+
*
|
|
14
|
+
* ```tsp
|
|
15
|
+
* union PetKind { "cat", "dog" }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
20
|
+
* enum.open === false
|
|
21
|
+
* enum.open.members.get("cat") // { value: "cat", variant: ... }
|
|
22
|
+
* enum.open.members.get("dog") // { value: "dog", variant: ... }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Simple open string enum
|
|
26
|
+
*
|
|
27
|
+
* ```tsp
|
|
28
|
+
* union PetKind { Cat: "cat", Dog: "dog", string }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
33
|
+
* enum.open === true
|
|
34
|
+
* enum.open.members.get("Cat") // { value: "cat", variant: ... }
|
|
35
|
+
* enum.open.members.get("Dog") // { value: "dog", variant: ... }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* Invalid case
|
|
39
|
+
*
|
|
40
|
+
* ```tsp
|
|
41
|
+
* union PetKind { Cat: "cat", Dog: 123, string }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* const [enum, diagnostics] = getUnionAsEnum(union);
|
|
46
|
+
* enum === undefined
|
|
47
|
+
* diagnostics.length === 1
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function getUnionAsEnum(union) {
|
|
51
|
+
return getUnionAsEnumInternal(union, new Set());
|
|
52
|
+
}
|
|
53
|
+
function getUnionAsEnumInternal(union, visited) {
|
|
54
|
+
if (visited.has(union)) {
|
|
55
|
+
return [undefined, [createDiagnostic({ code: "union-enums-circular", target: union })]];
|
|
56
|
+
}
|
|
57
|
+
visited.add(union);
|
|
58
|
+
const diagnostics = createDiagnosticCollector();
|
|
59
|
+
function reportInvalidKind(type) {
|
|
60
|
+
diagnostics.add(createDiagnostic({
|
|
61
|
+
code: "union-enums-invalid-kind",
|
|
62
|
+
format: { kind: type.kind },
|
|
63
|
+
target: union,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
const kinds = new Set();
|
|
67
|
+
const members = new Map();
|
|
68
|
+
const flattenedMembers = new Map();
|
|
69
|
+
let open = false;
|
|
70
|
+
let nullable = false;
|
|
71
|
+
for (const variant of union.variants.values()) {
|
|
72
|
+
switch (variant.type.kind) {
|
|
73
|
+
case "Intrinsic":
|
|
74
|
+
if (isNullType(variant.type)) {
|
|
75
|
+
nullable = true;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
reportInvalidKind(variant.type);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "String":
|
|
82
|
+
kinds.add("string");
|
|
83
|
+
members.set(variant.name, { value: variant.type.value, variant });
|
|
84
|
+
break;
|
|
85
|
+
case "Number":
|
|
86
|
+
kinds.add("number");
|
|
87
|
+
members.set(variant.name, { value: variant.type.value, variant });
|
|
88
|
+
break;
|
|
89
|
+
case "Union":
|
|
90
|
+
const parentUnion = diagnostics.pipe(getUnionAsEnumInternal(variant.type, visited));
|
|
91
|
+
if (parentUnion !== undefined) {
|
|
92
|
+
kinds.add(parentUnion.kind);
|
|
93
|
+
if (parentUnion.open) {
|
|
94
|
+
open = true;
|
|
95
|
+
}
|
|
96
|
+
if (parentUnion.nullable) {
|
|
97
|
+
nullable = true;
|
|
98
|
+
}
|
|
99
|
+
for (const [key, value] of parentUnion.flattenedMembers) {
|
|
100
|
+
flattenedMembers.set(key, value);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case "Scalar":
|
|
105
|
+
const scalar = variant.type;
|
|
106
|
+
switch (scalar.name) {
|
|
107
|
+
case "string":
|
|
108
|
+
kinds.add("string");
|
|
109
|
+
open = true;
|
|
110
|
+
break;
|
|
111
|
+
case "float":
|
|
112
|
+
case "float32":
|
|
113
|
+
case "float64":
|
|
114
|
+
case "integer":
|
|
115
|
+
case "int8":
|
|
116
|
+
case "int16":
|
|
117
|
+
case "int32":
|
|
118
|
+
case "int64":
|
|
119
|
+
case "uint8":
|
|
120
|
+
case "uint16":
|
|
121
|
+
case "uint32":
|
|
122
|
+
case "uint64":
|
|
123
|
+
kinds.add("number");
|
|
124
|
+
open = true;
|
|
125
|
+
break;
|
|
126
|
+
default:
|
|
127
|
+
reportInvalidKind(variant.type);
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
default:
|
|
131
|
+
reportInvalidKind(variant.type);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const [key, value] of members) {
|
|
135
|
+
flattenedMembers.set(key, value);
|
|
136
|
+
}
|
|
137
|
+
if (kinds.size > 1) {
|
|
138
|
+
diagnostics.add(createDiagnostic({
|
|
139
|
+
code: "union-enums-multiple-kind",
|
|
140
|
+
format: { kinds: [...kinds].join(", ") },
|
|
141
|
+
target: union,
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
if (diagnostics.diagnostics.length > 0) {
|
|
145
|
+
return diagnostics.wrap(undefined);
|
|
146
|
+
}
|
|
147
|
+
if (flattenedMembers.size === 0) {
|
|
148
|
+
return [undefined, []];
|
|
149
|
+
}
|
|
150
|
+
return [
|
|
151
|
+
{
|
|
152
|
+
kind: [...kinds][0],
|
|
153
|
+
union,
|
|
154
|
+
members,
|
|
155
|
+
flattenedMembers,
|
|
156
|
+
open,
|
|
157
|
+
nullable,
|
|
158
|
+
},
|
|
159
|
+
[],
|
|
160
|
+
];
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=union-enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-enums.js","sourceRoot":"","sources":["../../../src/helpers/union-enums.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from "./decorators.js";
|
|
2
2
|
export { $lib } from "./lib.js";
|
|
3
|
+
export { UnionEnum, getUnionAsEnum } from "./helpers/union-enums.js";
|
|
3
4
|
export * from "./lro-helpers.js";
|
|
4
5
|
export * from "./rules/prevent-rest-library.js";
|
|
5
6
|
export * from "./rules/use-standard-ops.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAa,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -95,8 +95,17 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
95
95
|
"rpc-operation-needs-route": {
|
|
96
96
|
default: string;
|
|
97
97
|
};
|
|
98
|
+
"union-enums-multiple-kind": {
|
|
99
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
100
|
+
};
|
|
101
|
+
"union-enums-invalid-kind": {
|
|
102
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
103
|
+
};
|
|
104
|
+
"union-enums-circular": {
|
|
105
|
+
default: string;
|
|
106
|
+
};
|
|
98
107
|
}, Record<string, any>>;
|
|
99
|
-
export declare const reportDiagnostic: <C extends "
|
|
108
|
+
export declare const reportDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular", M extends keyof {
|
|
100
109
|
"lro-status-union-non-string": {
|
|
101
110
|
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
102
111
|
};
|
|
@@ -192,6 +201,15 @@ export declare const reportDiagnostic: <C extends "bad-record-type" | "lro-statu
|
|
|
192
201
|
"rpc-operation-needs-route": {
|
|
193
202
|
default: string;
|
|
194
203
|
};
|
|
204
|
+
"union-enums-multiple-kind": {
|
|
205
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
206
|
+
};
|
|
207
|
+
"union-enums-invalid-kind": {
|
|
208
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
209
|
+
};
|
|
210
|
+
"union-enums-circular": {
|
|
211
|
+
default: string;
|
|
212
|
+
};
|
|
195
213
|
}[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
|
|
196
214
|
"lro-status-union-non-string": {
|
|
197
215
|
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
@@ -288,7 +306,16 @@ export declare const reportDiagnostic: <C extends "bad-record-type" | "lro-statu
|
|
|
288
306
|
"rpc-operation-needs-route": {
|
|
289
307
|
default: string;
|
|
290
308
|
};
|
|
291
|
-
|
|
309
|
+
"union-enums-multiple-kind": {
|
|
310
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
311
|
+
};
|
|
312
|
+
"union-enums-invalid-kind": {
|
|
313
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
314
|
+
};
|
|
315
|
+
"union-enums-circular": {
|
|
316
|
+
default: string;
|
|
317
|
+
};
|
|
318
|
+
}, C, M>) => void, createDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular", M extends keyof {
|
|
292
319
|
"lro-status-union-non-string": {
|
|
293
320
|
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
294
321
|
};
|
|
@@ -384,6 +411,15 @@ export declare const reportDiagnostic: <C extends "bad-record-type" | "lro-statu
|
|
|
384
411
|
"rpc-operation-needs-route": {
|
|
385
412
|
default: string;
|
|
386
413
|
};
|
|
414
|
+
"union-enums-multiple-kind": {
|
|
415
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
416
|
+
};
|
|
417
|
+
"union-enums-invalid-kind": {
|
|
418
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
419
|
+
};
|
|
420
|
+
"union-enums-circular": {
|
|
421
|
+
default: string;
|
|
422
|
+
};
|
|
387
423
|
}[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
|
|
388
424
|
"lro-status-union-non-string": {
|
|
389
425
|
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
@@ -480,5 +516,14 @@ export declare const reportDiagnostic: <C extends "bad-record-type" | "lro-statu
|
|
|
480
516
|
"rpc-operation-needs-route": {
|
|
481
517
|
default: string;
|
|
482
518
|
};
|
|
519
|
+
"union-enums-multiple-kind": {
|
|
520
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
521
|
+
};
|
|
522
|
+
"union-enums-invalid-kind": {
|
|
523
|
+
default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
524
|
+
};
|
|
525
|
+
"union-enums-circular": {
|
|
526
|
+
default: string;
|
|
527
|
+
};
|
|
483
528
|
}, C, M>) => import("@typespec/compiler").Diagnostic, createStateSymbol: (name: string) => symbol;
|
|
484
529
|
//# sourceMappingURL=lib.d.ts.map
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwSf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAS,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -8,6 +8,7 @@ import { extensibleEnumRule } from "./rules/extensible-enums.js";
|
|
|
8
8
|
import { friendlyNameRule } from "./rules/friendly-name.js";
|
|
9
9
|
import { knownEncodingRule } from "./rules/known-encoding.js";
|
|
10
10
|
import { longRunningOperationsRequirePollingOperation } from "./rules/lro-polling-operation.js";
|
|
11
|
+
import { noClosedLiteralUnionRule } from "./rules/no-closed-literal-union.js";
|
|
11
12
|
import { noEnumRule } from "./rules/no-enum.js";
|
|
12
13
|
import { noErrorStatusCodesRule } from "./rules/no-error-status-codes.js";
|
|
13
14
|
import { noExplicitRoutesResourceOps } from "./rules/no-explicit-routes-resource-ops.js";
|
|
@@ -224,6 +225,24 @@ export const $lib = createTypeSpecLibrary({
|
|
|
224
225
|
default: "The operation needs a @route",
|
|
225
226
|
},
|
|
226
227
|
},
|
|
228
|
+
"union-enums-multiple-kind": {
|
|
229
|
+
severity: "warning",
|
|
230
|
+
messages: {
|
|
231
|
+
default: paramMessage `Couldn't resolve the kind of the union as it has multiple types: ${"kinds"}`,
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
"union-enums-invalid-kind": {
|
|
235
|
+
severity: "warning",
|
|
236
|
+
messages: {
|
|
237
|
+
default: paramMessage `Kind ${"kind"} prevents this union from being resolved as an enum.`,
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
"union-enums-circular": {
|
|
241
|
+
severity: "warning",
|
|
242
|
+
messages: {
|
|
243
|
+
default: `Union is referencing itself and cannot be resolved as an enum.`,
|
|
244
|
+
},
|
|
245
|
+
},
|
|
227
246
|
},
|
|
228
247
|
linter: {
|
|
229
248
|
rules: [
|
|
@@ -239,6 +258,7 @@ export const $lib = createTypeSpecLibrary({
|
|
|
239
258
|
extensibleEnumRule,
|
|
240
259
|
knownEncodingRule,
|
|
241
260
|
useStandardOperations,
|
|
261
|
+
noClosedLiteralUnionRule,
|
|
242
262
|
noEnumRule,
|
|
243
263
|
noErrorStatusCodesRule,
|
|
244
264
|
noFixedEnumDiscriminatorRule,
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const noClosedLiteralUnionRule: import("@typespec/compiler").LinterRuleDefinition<"no-closed-literal-union", {
|
|
2
|
+
readonly default: "Union of literals should include the base scalar as a variant to make it an open enum. (ex: `union Choice { Yes: \"yes\", No: \"no\", string };`).";
|
|
3
|
+
}>;
|
|
4
|
+
//# sourceMappingURL=no-closed-literal-union.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-closed-literal-union.d.ts","sourceRoot":"","sources":["../../../src/rules/no-closed-literal-union.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB;;EAuBnC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createRule, ignoreDiagnostics } from "@typespec/compiler";
|
|
2
|
+
import { getUnionAsEnum } from "../helpers/union-enums.js";
|
|
3
|
+
export const noClosedLiteralUnionRule = createRule({
|
|
4
|
+
name: "no-closed-literal-union",
|
|
5
|
+
description: "Unions of literals should include the base scalar type to mark them as open enum.",
|
|
6
|
+
severity: "warning",
|
|
7
|
+
url: "https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-closed-literal-union",
|
|
8
|
+
messages: {
|
|
9
|
+
default: `Union of literals should include the base scalar as a variant to make it an open enum. (ex: \`union Choice { Yes: "yes", No: "no", string };\`).`,
|
|
10
|
+
},
|
|
11
|
+
create(context) {
|
|
12
|
+
return {
|
|
13
|
+
union: (union) => {
|
|
14
|
+
const e = ignoreDiagnostics(getUnionAsEnum(union));
|
|
15
|
+
if (e === undefined) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (!e.open) {
|
|
19
|
+
context.reportDiagnostic({
|
|
20
|
+
target: union,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=no-closed-literal-union.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-closed-literal-union.js","sourceRoot":"","sources":["../../../src/rules/no-closed-literal-union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;IACjD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mFAAmF;IAChG,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,gGAAgG;IACrG,QAAQ,EAAE;QACR,OAAO,EAAE,kJAAkJ;KAC5J;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;gBACtB,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,KAAK,SAAS,EAAE;oBACnB,OAAO;iBACR;gBACD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;oBACX,OAAO,CAAC,gBAAgB,CAAC;wBACvB,MAAM,EAAE,KAAK;qBACd,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ export const responseSchemaMultiStatusCodeRule = createRule({
|
|
|
5
5
|
description: "Warn about operations having multiple non-error response schemas.",
|
|
6
6
|
severity: "warning",
|
|
7
7
|
messages: {
|
|
8
|
-
multipleSuccessSchemas: paramMessage `Operation '${"name"}' has multiple non-error response schemas
|
|
8
|
+
multipleSuccessSchemas: paramMessage `Operation '${"name"}' has multiple non-error response schemas. Did you forget to add '@error' to one of them?`,
|
|
9
9
|
},
|
|
10
10
|
create(context) {
|
|
11
11
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-schema-multi-status-code.js","sourceRoot":"","sources":["../../../src/rules/response-schema-multi-status-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElF,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;IAC1D,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mEAAmE;IAChF,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE;QACR,sBAAsB,EAAE,YAAY,CAAA,cAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"response-schema-multi-status-code.js","sourceRoot":"","sources":["../../../src/rules/response-schema-multi-status-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElF,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;IAC1D,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,mEAAmE;IAChF,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE;QACR,sBAAsB,EAAE,YAAY,CAAA,cAAc,MAAM,2FAA2F;KACpJ;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE;oBACvD,mBAAmB,EAAE,UAAU,CAAC,IAAI;iBACrC,CAAC,CAAC;gBAEH,IAAI,aAAa,GAAqB,SAAS,CAAC;gBAChD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACvB,IAAI,IAAI,KAAK,SAAS;wBAAE,SAAS;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAE3B,IAAI,YAAY,GAAqB,SAAS,CAAC;oBAC/C,QAAQ,QAAQ,CAAC,IAAI,EAAE;wBACrB,KAAK,OAAO;4BACV,MAAM,QAAQ,GAAG,YAAY,CAAC,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjF,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;gCAAE,SAAS;4BACtD,YAAY,GAAG,QAAQ,CAAC;4BACxB,MAAM;wBACR;4BACE,YAAY,GAAG,QAAQ,CAAC;4BACxB,MAAM;qBACT;oBACD,IAAI,aAAa,KAAK,SAAS,EAAE;wBAC/B,aAAa,GAAG,YAAY,CAAC;qBAC9B;yBAAM,IAAI,aAAa,KAAK,YAAY,EAAE;wBACzC,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,EAAE;4BACV,SAAS,EAAE,wBAAwB;4BACnC,MAAM,EAAE;gCACN,IAAI,EAAE,EAAE,CAAC,IAAI;6BACd;yBACF,CAAC,CAAC;wBACH,OAAO;qBACR;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED