@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 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
  };
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsOT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAS,CAAC"}
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: {
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,kCAAkC;IACxC,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,qBAAqB,aAAa,yNAAyN;aACjR;SACF;QACD,cAAc,EAAE;YACd,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,gBAAgB,MAAM,mBAAmB,QAAQ,EAAE;aACzE;SACF;QACD,6BAA6B,EAAE;YAC7B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,wCAAwC,MAAM,GAAG;aACvE;SACF;QACD,kCAAkC,EAAE;YAClC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,sDAAsD;aAChE;SACF;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,uDAAuD,QAAQ,GAAG;aACxF;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,aAAa,EAAE,YAAY,CAAA,GAAG,MAAM,oBAAoB,SAAS,WAAW,UAAU,YAAY,SAAS,2BAA2B;gBACtI,oBAAoB,EAAE,YAAY,CAAA,GAAG,MAAM,eAAe,SAAS,WAAW,UAAU,gCAAgC;aACzH;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,MAAM,oCAAoC;aACtF;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,KAAK,EACH,4JAA4J;aAC/J;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,MAAM,wCAAwC;aAC1F;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,wBAAwB,MAAM,8DAA8D,QAAQ,GAAG;aAC7H;SACF;QACD,6BAA6B,EAAE;YAC7B,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,wHAAwH,UAAU,SAAS;aACjK;SACF;QACD,kCAAkC,EAAE;YAClC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,iFAAiF;aAC3F;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,UAAU,EAAE,YAAY,CAAA,eAAe,MAAM,oFAAoF;gBACjI,cAAc,EAAE,YAAY,CAAA,eAAe,MAAM,uFAAuF;aACzI;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,yDAAyD;aACnE;SACF;QACD,yBAAyB,EAAE;YACzB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,cAAc,MAAM,sEAAsE;aAChH;SACF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,wDAAwD;aAClE;SACF;QACD,aAAa,EAAE;YACb,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,4JAA4J;aACtK;SACF;QACD,4BAA4B,EAAE;YAC5B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,+FAA+F;aACzG;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,4DAA4D;aACtE;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,OAAO,MAAM,WAAW,MAAM,oFAAoF;aACxI;SACF;QACD,yBAAyB,EAAE;YACzB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,qBAAqB,MAAM,iGAAiG;aAClJ;SACF;QACD,yCAAyC,EAAE;YACzC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EACL,wJAAwJ;aAC3J;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EACL,qJAAqJ;aACxJ;SACF;QACD,8BAA8B,EAAE;YAC9B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,eAAe,WAAW,+FAA+F;aAC/I;SACF;QACD,6BAA6B,EAAE;YAC7B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,eAAe,WAAW,2DAA2D,cAAc,yBAAyB;aAClJ;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,oFAAoF;aACvF;SACF;QACD,iCAAiC,EAAE;YACjC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,eAAe,WAAW,wBAAwB,cAAc,mDAAmD;aACzI;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mBAAmB,OAAO,iBAAiB,SAAS,EAAE;aAC5E;SACF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,cAAc,aAAa,MAAM,aAAa;aAC1F;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4CAA4C;aACtD;SACF;QACD,kDAAkD,EAAE;YAClD,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,+EAA+E;aACzF;SACF;QACD,aAAa,EAAE;YACb,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EACL,kGAAkG;aACrG;SACF;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EACL,oIAAoI;aACvI;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,aAAa,cAAc,yMAAyM;gBACzP,aAAa,EAAE,YAAY,CAAA,sCAAsC,cAAc,iBAAiB,cAAc,kGAAkG;aACjN;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EACL,uGAAuG;aAC1G;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,KAAK,EAAE,8CAA8C;aACtD;SACF;KACF;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkD7C,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAM3C"}
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"}
@@ -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,
@@ -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,2 @@
1
+ export declare const apiVersionRule: import("@typespec/lint").LintRule;
2
+ //# sourceMappingURL=api-version-parameter.d.ts.map
@@ -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,2 @@
1
+ export declare const preferCsvCollectionFormatRule: import("@typespec/lint").LintRule;
2
+ //# sourceMappingURL=prefer-csv-collection-format.d.ts.map
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-core",
3
- "version": "0.30.0-dev.12",
3
+ "version": "0.30.0-dev.14",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec Azure Core library",
6
6
  "homepage": "https://azure.github.io/typespec-azure",