@azure-tools/typespec-azure-core 0.30.0-dev.12 → 0.30.0-dev.14
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/dist/src/lib.d.ts +44 -2
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +12 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +4 -0
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/api-version-parameter.d.ts +2 -0
- package/dist/src/rules/api-version-parameter.d.ts.map +1 -0
- package/dist/src/rules/api-version-parameter.js +46 -0
- package/dist/src/rules/api-version-parameter.js.map +1 -0
- package/dist/src/rules/prefer-csv-collection-format.d.ts +2 -0
- package/dist/src/rules/prefer-csv-collection-format.d.ts.map +1 -0
- package/dist/src/rules/prefer-csv-collection-format.js +25 -0
- package/dist/src/rules/prefer-csv-collection-format.js.map +1 -0
- package/lib/models.tsp +1 -0
- package/package.json +1 -1
package/dist/src/lib.d.ts
CHANGED
|
@@ -8,12 +8,24 @@ export declare const libDef: {
|
|
|
8
8
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
|
+
readonly "operation-missing-api-version": {
|
|
12
|
+
readonly severity: "warning";
|
|
13
|
+
readonly messages: {
|
|
14
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
15
|
+
};
|
|
16
|
+
};
|
|
11
17
|
readonly "casing-style": {
|
|
12
18
|
readonly severity: "warning";
|
|
13
19
|
readonly messages: {
|
|
14
20
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
15
21
|
};
|
|
16
22
|
};
|
|
23
|
+
readonly "prefer-csv-collection-format": {
|
|
24
|
+
readonly severity: "warning";
|
|
25
|
+
readonly messages: {
|
|
26
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
27
|
+
};
|
|
28
|
+
};
|
|
17
29
|
readonly "lro-status-union-non-string": {
|
|
18
30
|
readonly severity: "error";
|
|
19
31
|
readonly messages: {
|
|
@@ -227,9 +239,15 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
227
239
|
byos: {
|
|
228
240
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
229
241
|
};
|
|
242
|
+
"operation-missing-api-version": {
|
|
243
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
244
|
+
};
|
|
230
245
|
"casing-style": {
|
|
231
246
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
232
247
|
};
|
|
248
|
+
"prefer-csv-collection-format": {
|
|
249
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
250
|
+
};
|
|
233
251
|
"lro-status-union-non-string": {
|
|
234
252
|
readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
|
|
235
253
|
};
|
|
@@ -336,13 +354,19 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
336
354
|
readonly array: "Body schema should not be of raw array type.";
|
|
337
355
|
};
|
|
338
356
|
}, Record<string, any>>;
|
|
339
|
-
export declare const reportDiagnostic: <C extends "byos" | "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "request-body-problem" | "response-property-invalid" | "no-multiple-discriminator" | "no-fixed-enum-discriminator" | "operation-link-parameter-invalid" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-order-by" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-nullable" | "no-object" | "property-name-conflict" | "no-operation-id" | "invalid-body-schema", M extends keyof {
|
|
357
|
+
export declare const reportDiagnostic: <C extends "byos" | "operation-missing-api-version" | "casing-style" | "prefer-csv-collection-format" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "request-body-problem" | "response-property-invalid" | "no-multiple-discriminator" | "no-fixed-enum-discriminator" | "operation-link-parameter-invalid" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-order-by" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-nullable" | "no-object" | "property-name-conflict" | "no-operation-id" | "invalid-body-schema", M extends keyof {
|
|
340
358
|
byos: {
|
|
341
359
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
342
360
|
};
|
|
361
|
+
"operation-missing-api-version": {
|
|
362
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
363
|
+
};
|
|
343
364
|
"casing-style": {
|
|
344
365
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
345
366
|
};
|
|
367
|
+
"prefer-csv-collection-format": {
|
|
368
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
369
|
+
};
|
|
346
370
|
"lro-status-union-non-string": {
|
|
347
371
|
readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
|
|
348
372
|
};
|
|
@@ -452,9 +476,15 @@ export declare const reportDiagnostic: <C extends "byos" | "casing-style" | "lro
|
|
|
452
476
|
byos: {
|
|
453
477
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
454
478
|
};
|
|
479
|
+
"operation-missing-api-version": {
|
|
480
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
481
|
+
};
|
|
455
482
|
"casing-style": {
|
|
456
483
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
457
484
|
};
|
|
485
|
+
"prefer-csv-collection-format": {
|
|
486
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
487
|
+
};
|
|
458
488
|
"lro-status-union-non-string": {
|
|
459
489
|
readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
|
|
460
490
|
};
|
|
@@ -560,13 +590,19 @@ export declare const reportDiagnostic: <C extends "byos" | "casing-style" | "lro
|
|
|
560
590
|
"invalid-body-schema": {
|
|
561
591
|
readonly array: "Body schema should not be of raw array type.";
|
|
562
592
|
};
|
|
563
|
-
}, C, M>) => void, createDiagnostic: <C extends "byos" | "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "request-body-problem" | "response-property-invalid" | "no-multiple-discriminator" | "no-fixed-enum-discriminator" | "operation-link-parameter-invalid" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-order-by" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-nullable" | "no-object" | "property-name-conflict" | "no-operation-id" | "invalid-body-schema", M extends keyof {
|
|
593
|
+
}, C, M>) => void, createDiagnostic: <C extends "byos" | "operation-missing-api-version" | "casing-style" | "prefer-csv-collection-format" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "request-body-problem" | "response-property-invalid" | "no-multiple-discriminator" | "no-fixed-enum-discriminator" | "operation-link-parameter-invalid" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-order-by" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-nullable" | "no-object" | "property-name-conflict" | "no-operation-id" | "invalid-body-schema", M extends keyof {
|
|
564
594
|
byos: {
|
|
565
595
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
566
596
|
};
|
|
597
|
+
"operation-missing-api-version": {
|
|
598
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
599
|
+
};
|
|
567
600
|
"casing-style": {
|
|
568
601
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
569
602
|
};
|
|
603
|
+
"prefer-csv-collection-format": {
|
|
604
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
605
|
+
};
|
|
570
606
|
"lro-status-union-non-string": {
|
|
571
607
|
readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
|
|
572
608
|
};
|
|
@@ -676,9 +712,15 @@ export declare const reportDiagnostic: <C extends "byos" | "casing-style" | "lro
|
|
|
676
712
|
byos: {
|
|
677
713
|
readonly default: import("@typespec/compiler").CallableMessage<["contentType"]>;
|
|
678
714
|
};
|
|
715
|
+
"operation-missing-api-version": {
|
|
716
|
+
readonly default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.";
|
|
717
|
+
};
|
|
679
718
|
"casing-style": {
|
|
680
719
|
readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
|
|
681
720
|
};
|
|
721
|
+
"prefer-csv-collection-format": {
|
|
722
|
+
readonly default: "It is recommended to use \"csv\" for collection format of parameters.";
|
|
723
|
+
};
|
|
682
724
|
"lro-status-union-non-string": {
|
|
683
725
|
readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
|
|
684
726
|
};
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmPT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAS,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -9,12 +9,24 @@ export const libDef = {
|
|
|
9
9
|
default: paramMessage `The content type "${"contentType"}" indicates this operation is storing binary data. It is recommended to use the BYOS pattern for Azure Services. https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#bring-your-own-storage-byos`,
|
|
10
10
|
},
|
|
11
11
|
},
|
|
12
|
+
"operation-missing-api-version": {
|
|
13
|
+
severity: "warning",
|
|
14
|
+
messages: {
|
|
15
|
+
default: "All versioned operations must use an api-version parameter. Please include Azure.Core.Foundations.ApiVersionParameter in the operation parameter list using the spread (...ApiVersionParameter) operator, or using one of the common resource parameter models.",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
12
18
|
"casing-style": {
|
|
13
19
|
severity: "warning",
|
|
14
20
|
messages: {
|
|
15
21
|
default: paramMessage `The names of ${"type"} types must use ${"casing"}`,
|
|
16
22
|
},
|
|
17
23
|
},
|
|
24
|
+
"prefer-csv-collection-format": {
|
|
25
|
+
severity: "warning",
|
|
26
|
+
messages: {
|
|
27
|
+
default: `It is recommended to use "csv" for collection format of parameters.`,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
18
30
|
"lro-status-union-non-string": {
|
|
19
31
|
severity: "error",
|
|
20
32
|
messages: {
|
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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"}
|
package/dist/src/linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAsD7C,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAM3C"}
|
package/dist/src/linter.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getLinter } from "@typespec/lint";
|
|
2
2
|
import { checkRpcRoutes } from "./decorators.js";
|
|
3
3
|
import { $lib } from "./lib.js";
|
|
4
|
+
import { apiVersionRule } from "./rules/api-version-parameter.js";
|
|
4
5
|
import { byosRule } from "./rules/byos.js";
|
|
5
6
|
import { casingRule } from "./rules/casing.js";
|
|
6
7
|
import { extensibleEnumRule } from "./rules/extensible-enums.js";
|
|
@@ -9,6 +10,7 @@ import { noFixedEnumDiscriminatorRule } from "./rules/no-fixed-enum-discriminato
|
|
|
9
10
|
import { noNullableRule } from "./rules/no-nullable.js";
|
|
10
11
|
import { noObjectRule } from "./rules/no-object.js";
|
|
11
12
|
import { operationIdRule } from "./rules/no-operation-id.js";
|
|
13
|
+
import { preferCsvCollectionFormatRule } from "./rules/prefer-csv-collection-format.js";
|
|
12
14
|
import { preventFormatUse } from "./rules/prevent-format.js";
|
|
13
15
|
import { preventMultipleDiscriminator } from "./rules/prevent-multiple-discriminator.js";
|
|
14
16
|
import { preventRestLibraryInterfaces } from "./rules/prevent-rest-library.js";
|
|
@@ -24,7 +26,9 @@ linter.registerRules([
|
|
|
24
26
|
operationIdRule,
|
|
25
27
|
bodyArrayRule,
|
|
26
28
|
byosRule,
|
|
29
|
+
apiVersionRule,
|
|
27
30
|
casingRule,
|
|
31
|
+
preferCsvCollectionFormatRule,
|
|
28
32
|
extensibleEnumRule,
|
|
29
33
|
useStandardOperations,
|
|
30
34
|
noFixedEnumDiscriminatorRule,
|
package/dist/src/linter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,MAAM,CAAC,aAAa,CAClB;IACE,eAAe;IACf,aAAa;IACb,QAAQ;IACR,UAAU;IACV,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,4BAA4B;IAC5B,4BAA4B;IAC5B,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,4CAA4C;CAC7C,EACD;IACE,UAAU,EAAE,IAAI;CACjB,CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/B,wBAAwB;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,MAAM,CAAC,aAAa,CAClB;IACE,eAAe;IACf,aAAa;IACb,QAAQ;IACR,cAAc;IACd,UAAU;IACV,6BAA6B;IAC7B,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,4BAA4B;IAC5B,4BAA4B;IAC5B,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,4CAA4C;CAC7C,EACD;IACE,UAAU,EAAE,IAAI;CACjB,CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/B,wBAAwB;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-version-parameter.d.ts","sourceRoot":"","sources":["../../../src/rules/api-version-parameter.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,cAAc,mCAsBzB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createRule } from "@typespec/lint";
|
|
2
|
+
import { getVersion } from "@typespec/versioning";
|
|
3
|
+
import { reportDiagnostic } from "../lib.js";
|
|
4
|
+
import { isExcludedCoreType } from "./utils.js";
|
|
5
|
+
function isApiVersionParam(prop) {
|
|
6
|
+
return prop.name === "apiVersion" && prop.type.kind === "Scalar" && prop.type.name === "string";
|
|
7
|
+
}
|
|
8
|
+
// TODO: Remove this function once we have a mechanism for overriding or disabling linter rules
|
|
9
|
+
// See: https://github.com/microsoft/typespec/issues/1785
|
|
10
|
+
function isArmProviderNamespace(ns) {
|
|
11
|
+
for (const dec of ns.decorators) {
|
|
12
|
+
if (dec.decorator.name === "$armProviderNamespace") {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
export const apiVersionRule = createRule({
|
|
19
|
+
name: "api-version-parameter",
|
|
20
|
+
create({ program }) {
|
|
21
|
+
return {
|
|
22
|
+
operation: (op) => {
|
|
23
|
+
if (isExcludedCoreType(program, op))
|
|
24
|
+
return;
|
|
25
|
+
if (!op.namespace)
|
|
26
|
+
return;
|
|
27
|
+
// ignore ARM namespaces. They have their own rule
|
|
28
|
+
if (isArmProviderNamespace(op.namespace))
|
|
29
|
+
return;
|
|
30
|
+
const versionMap = getVersion(program, op.namespace);
|
|
31
|
+
// rule only applies to versioned Azure operations
|
|
32
|
+
if (!versionMap)
|
|
33
|
+
return;
|
|
34
|
+
for (const param of op.parameters.properties.values()) {
|
|
35
|
+
if (isApiVersionParam(param))
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
reportDiagnostic(program, {
|
|
39
|
+
code: "operation-missing-api-version",
|
|
40
|
+
target: op,
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=api-version-parameter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-version-parameter.js","sourceRoot":"","sources":["../../../src/rules/api-version-parameter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClG,CAAC;AAED,+FAA+F;AAC/F,yDAAyD;AACzD,SAAS,sBAAsB,CAAC,EAAa;IAC3C,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE;QAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,uBAAuB,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,uBAAuB;IAC7B,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;oBAAE,OAAO;gBAC5C,IAAI,CAAC,EAAE,CAAC,SAAS;oBAAE,OAAO;gBAC1B,kDAAkD;gBAClD,IAAI,sBAAsB,CAAC,EAAE,CAAC,SAAS,CAAC;oBAAE,OAAO;gBACjD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrD,kDAAkD;gBAClD,IAAI,CAAC,UAAU;oBAAE,OAAO;gBACxB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;oBACrD,IAAI,iBAAiB,CAAC,KAAK,CAAC;wBAAE,OAAO;iBACtC;gBACD,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,+BAA+B;oBACrC,MAAM,EAAE,EAAE;iBACX,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-csv-collection-format.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-csv-collection-format.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,6BAA6B,mCAqBxC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getHeaderFieldOptions, getQueryParamOptions } from "@typespec/http";
|
|
2
|
+
import { createRule } from "@typespec/lint";
|
|
3
|
+
import { reportDiagnostic } from "../lib.js";
|
|
4
|
+
import { isExcludedCoreType } from "./utils.js";
|
|
5
|
+
export const preferCsvCollectionFormatRule = createRule({
|
|
6
|
+
name: "prefer-csv-collection-format",
|
|
7
|
+
create({ program }) {
|
|
8
|
+
return {
|
|
9
|
+
modelProperty: (property) => {
|
|
10
|
+
if (isExcludedCoreType(program, property))
|
|
11
|
+
return;
|
|
12
|
+
const headerOptions = getHeaderFieldOptions(program, property);
|
|
13
|
+
const queryOptions = getQueryParamOptions(program, property);
|
|
14
|
+
if (((headerOptions === null || headerOptions === void 0 ? void 0 : headerOptions.format) !== undefined && (headerOptions === null || headerOptions === void 0 ? void 0 : headerOptions.format) !== "csv") ||
|
|
15
|
+
((queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) !== undefined && (queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.format) !== "csv")) {
|
|
16
|
+
reportDiagnostic(program, {
|
|
17
|
+
code: "prefer-csv-collection-format",
|
|
18
|
+
target: property,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=prefer-csv-collection-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-csv-collection-format.js","sourceRoot":"","sources":["../../../src/rules/prefer-csv-collection-format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,aAAa,EAAE,CAAC,QAAuB,EAAE,EAAE;gBACzC,IAAI,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;oBAAE,OAAO;gBAElD,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC7D,IACE,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,SAAS,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,KAAK,CAAC;oBACxE,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,MAAK,SAAS,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,MAAK,KAAK,CAAC,EACtE;oBACA,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,8BAA8B;wBACpC,MAAM,EAAE,QAAQ;qBACjB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/lib/models.tsp
CHANGED
|
@@ -80,6 +80,7 @@ model FilterQueryParameter {
|
|
|
80
80
|
|
|
81
81
|
@doc("Provides the standard 'select' query parameter for list operations.")
|
|
82
82
|
model SelectQueryParameter {
|
|
83
|
+
#suppress "@azure-tools/typespec-azure-core/prefer-csv-collection-format" "By design"
|
|
83
84
|
@query({
|
|
84
85
|
format: "multi",
|
|
85
86
|
})
|
package/package.json
CHANGED