@microsoft/typespec-msgraph 0.0.1-Preview.15 → 0.0.1-Preview.17

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.
Files changed (127) hide show
  1. package/dist/src/components/operation-element.js +1 -1
  2. package/dist/src/components/operation-element.js.map +1 -1
  3. package/dist/src/components/property-element.js +1 -1
  4. package/dist/src/components/property-element.js.map +1 -1
  5. package/dist/src/components/structured-type-element.d.ts.map +1 -1
  6. package/dist/src/components/structured-type-element.js +4 -4
  7. package/dist/src/components/structured-type-element.js.map +1 -1
  8. package/dist/src/decorators/graph-route.d.ts.map +1 -1
  9. package/dist/src/decorators/graph-route.js +3 -0
  10. package/dist/src/decorators/graph-route.js.map +1 -1
  11. package/dist/src/decorators/index.d.ts +12 -10
  12. package/dist/src/decorators/index.d.ts.map +1 -1
  13. package/dist/src/decorators/index.js +12 -10
  14. package/dist/src/decorators/index.js.map +1 -1
  15. package/dist/src/decorators/limited-charset.d.ts +9 -0
  16. package/dist/src/decorators/limited-charset.d.ts.map +1 -0
  17. package/dist/src/decorators/limited-charset.js +13 -0
  18. package/dist/src/decorators/limited-charset.js.map +1 -0
  19. package/dist/src/decorators/media.d.ts +10 -0
  20. package/dist/src/decorators/media.d.ts.map +1 -0
  21. package/dist/src/decorators/media.js +16 -0
  22. package/dist/src/decorators/media.js.map +1 -0
  23. package/dist/src/decorators/passthrough-address-url-msa.d.ts +2 -3
  24. package/dist/src/decorators/passthrough-address-url-msa.d.ts.map +1 -1
  25. package/dist/src/decorators/passthrough-address-url-msa.js +2 -4
  26. package/dist/src/decorators/passthrough-address-url-msa.js.map +1 -1
  27. package/dist/src/decorators/passthrough-address-url.d.ts +2 -3
  28. package/dist/src/decorators/passthrough-address-url.d.ts.map +1 -1
  29. package/dist/src/decorators/passthrough-address-url.js +2 -4
  30. package/dist/src/decorators/passthrough-address-url.js.map +1 -1
  31. package/dist/src/decorators/workload-namespace.d.ts +10 -0
  32. package/dist/src/decorators/workload-namespace.d.ts.map +1 -0
  33. package/dist/src/decorators/workload-namespace.js +19 -0
  34. package/dist/src/decorators/workload-namespace.js.map +1 -0
  35. package/dist/src/dom/error-interceptor.d.ts +2 -0
  36. package/dist/src/dom/error-interceptor.d.ts.map +1 -0
  37. package/dist/src/dom/error-interceptor.js +13 -0
  38. package/dist/src/dom/error-interceptor.js.map +1 -0
  39. package/dist/src/dom/renderer.d.ts +1 -0
  40. package/dist/src/dom/renderer.d.ts.map +1 -1
  41. package/dist/src/dom/renderer.js +1 -0
  42. package/dist/src/dom/renderer.js.map +1 -1
  43. package/dist/src/entities/address-url.d.ts +3 -2
  44. package/dist/src/entities/address-url.d.ts.map +1 -1
  45. package/dist/src/entities/address-url.js +7 -2
  46. package/dist/src/entities/address-url.js.map +1 -1
  47. package/dist/src/entities/annotations.d.ts.map +1 -1
  48. package/dist/src/entities/annotations.js +26 -20
  49. package/dist/src/entities/annotations.js.map +1 -1
  50. package/dist/src/entities/model.d.ts +6 -5
  51. package/dist/src/entities/model.d.ts.map +1 -1
  52. package/dist/src/entities/model.js +7 -5
  53. package/dist/src/entities/model.js.map +1 -1
  54. package/dist/src/entities/ms-graph-route.d.ts.map +1 -1
  55. package/dist/src/entities/ms-graph-route.js +8 -2
  56. package/dist/src/entities/ms-graph-route.js.map +1 -1
  57. package/dist/src/entities/namespace.js +3 -3
  58. package/dist/src/entities/namespace.js.map +1 -1
  59. package/dist/src/entities/operation.d.ts +1 -0
  60. package/dist/src/entities/operation.d.ts.map +1 -1
  61. package/dist/src/entities/operation.js +3 -2
  62. package/dist/src/entities/operation.js.map +1 -1
  63. package/dist/src/lib.d.ts +2 -0
  64. package/dist/src/lib.d.ts.map +1 -1
  65. package/dist/src/lib.js +1 -0
  66. package/dist/src/lib.js.map +1 -1
  67. package/dist/src/linter.d.ts.map +1 -1
  68. package/dist/src/linter.js +4 -2
  69. package/dist/src/linter.js.map +1 -1
  70. package/dist/src/rules/address-url.d.ts +1 -0
  71. package/dist/src/rules/address-url.d.ts.map +1 -1
  72. package/dist/src/rules/address-url.js +62 -0
  73. package/dist/src/rules/address-url.js.map +1 -1
  74. package/dist/src/rules/computed.d.ts +0 -2
  75. package/dist/src/rules/computed.d.ts.map +1 -1
  76. package/dist/src/rules/computed.js +5 -8
  77. package/dist/src/rules/computed.js.map +1 -1
  78. package/dist/src/rules/expand.d.ts.map +1 -1
  79. package/dist/src/rules/expand.js +3 -1
  80. package/dist/src/rules/expand.js.map +1 -1
  81. package/dist/src/rules/filter.d.ts.map +1 -1
  82. package/dist/src/rules/filter.js +15 -3
  83. package/dist/src/rules/filter.js.map +1 -1
  84. package/dist/src/rules/graph-route.d.ts.map +1 -1
  85. package/dist/src/rules/graph-route.js +19 -11
  86. package/dist/src/rules/graph-route.js.map +1 -1
  87. package/dist/src/rules/index.d.ts +2 -1
  88. package/dist/src/rules/index.d.ts.map +1 -1
  89. package/dist/src/rules/index.js +2 -1
  90. package/dist/src/rules/index.js.map +1 -1
  91. package/dist/src/rules/limited-charset.d.ts +3 -0
  92. package/dist/src/rules/limited-charset.d.ts.map +1 -0
  93. package/dist/src/rules/limited-charset.js +42 -0
  94. package/dist/src/rules/limited-charset.js.map +1 -0
  95. package/dist/src/rules/media.d.ts +10 -0
  96. package/dist/src/rules/media.d.ts.map +1 -0
  97. package/dist/src/rules/media.js +122 -0
  98. package/dist/src/rules/media.js.map +1 -0
  99. package/dist/src/rules/namespace.d.ts +1 -0
  100. package/dist/src/rules/namespace.d.ts.map +1 -1
  101. package/dist/src/rules/namespace.js +21 -0
  102. package/dist/src/rules/namespace.js.map +1 -1
  103. package/dist/src/rules/required-for-create.d.ts.map +1 -1
  104. package/dist/src/rules/required-for-create.js +3 -2
  105. package/dist/src/rules/required-for-create.js.map +1 -1
  106. package/dist/src/utils.d.ts +3 -0
  107. package/dist/src/utils.d.ts.map +1 -1
  108. package/dist/src/utils.js +81 -1
  109. package/dist/src/utils.js.map +1 -1
  110. package/dist/src/validate.d.ts.map +1 -1
  111. package/dist/src/validate.js +4 -1
  112. package/dist/src/validate.js.map +1 -1
  113. package/lib/bodies.tsp +71 -0
  114. package/lib/decorators.tsp +22 -12
  115. package/lib/msgraph.tsp +1 -0
  116. package/lib/porcelain.tsp +43 -18
  117. package/lib/responses.tsp +4 -52
  118. package/lib/shared-models.tsp +2 -2
  119. package/package.json +4 -4
  120. package/dist/src/decorators/has-stream.d.ts +0 -10
  121. package/dist/src/decorators/has-stream.d.ts.map +0 -1
  122. package/dist/src/decorators/has-stream.js +0 -17
  123. package/dist/src/decorators/has-stream.js.map +0 -1
  124. package/dist/src/rules/has-stream.d.ts +0 -3
  125. package/dist/src/rules/has-stream.d.ts.map +0 -1
  126. package/dist/src/rules/has-stream.js +0 -30
  127. package/dist/src/rules/has-stream.js.map +0 -1
@@ -3,6 +3,7 @@ import { reportDiagnostic } from "../lib.js";
3
3
  import { navigateTypesInNamespace } from "@typespec/compiler";
4
4
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
5
5
  import { hasPassthroughAddressUrlMsa } from "../decorators/passthrough-address-url-msa.js";
6
+ import { getIdForType } from "../utils.js";
6
7
  /**
7
8
  * @addressUrl only applies to either routed interfaces (entity sets, singletons and navigation properties) or action operations.
8
9
  */
@@ -79,6 +80,67 @@ export function validatePassthroughAddressUrlMsaOnlyAppliesToRoutedInterfacesOrA
79
80
  });
80
81
  }
81
82
  }
83
+ export function validatePassthroughAddressUrlDecoratorIsUsedTogetherWithAddressUrlDecorator(program) {
84
+ for (const namespace of GetDeclaredNamespaces(program)) {
85
+ navigateTypesInNamespace(namespace, {
86
+ interface: (theInterface) => {
87
+ if (hasPassthroughAddressUrl(program, theInterface) &&
88
+ !hasAddressUrl(program, theInterface)) {
89
+ reportDiagnostic(program, {
90
+ code: "decorator-missing-dependencies",
91
+ target: theInterface,
92
+ messageId: "default",
93
+ format: {
94
+ decorator: "@passthroughAddressUrl",
95
+ required: "@addressUrl",
96
+ location: `interface "${getIdForType(program, theInterface)}"`,
97
+ },
98
+ });
99
+ }
100
+ if (hasPassthroughAddressUrlMsa(program, theInterface) &&
101
+ !hasAddressUrlMsa(program, theInterface)) {
102
+ reportDiagnostic(program, {
103
+ code: "decorator-missing-dependencies",
104
+ target: theInterface,
105
+ messageId: "default",
106
+ format: {
107
+ decorator: "@passthroughAddressUrlMsa",
108
+ required: "@addressUrlMsa",
109
+ location: `interface "${getIdForType(program, theInterface)}"`,
110
+ },
111
+ });
112
+ }
113
+ },
114
+ operation: (operation) => {
115
+ if (hasPassthroughAddressUrl(program, operation) && !hasAddressUrl(program, operation)) {
116
+ reportDiagnostic(program, {
117
+ code: "decorator-missing-dependencies",
118
+ target: operation,
119
+ messageId: "default",
120
+ format: {
121
+ decorator: "@passthroughAddressUrl",
122
+ required: "@addressUrl",
123
+ location: `operation "${getIdForType(program, operation)}"`,
124
+ },
125
+ });
126
+ }
127
+ if (hasPassthroughAddressUrlMsa(program, operation) &&
128
+ !hasAddressUrlMsa(program, operation)) {
129
+ reportDiagnostic(program, {
130
+ code: "decorator-missing-dependencies",
131
+ target: operation,
132
+ messageId: "default",
133
+ format: {
134
+ decorator: "@passthroughAddressUrlMsa",
135
+ required: "@addressUrlMsa",
136
+ location: `operation "${getIdForType(program, operation)}"`,
137
+ },
138
+ });
139
+ }
140
+ },
141
+ });
142
+ }
143
+ }
82
144
  function validateAddressUrlApplication(program, target, decorator) {
83
145
  if (target.kind === "Interface" && hasGraphRoute(program, target)) {
84
146
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"address-url.js","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address-url.js","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import { Program } from "@typespec/compiler";
2
2
  /**
3
- * @computed cannot be combined with nullable
4
- * @computed cannot be combined with @required
5
3
  * @computed cannot be combined with @writeOnly
6
4
  */
7
5
  export declare function validateComputedCannotBeCombined(program: Program): void;
@@ -1 +1 @@
1
- {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../../src/rules/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAOvE;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,QAoChE"}
1
+ {"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../../src/rules/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAMvE;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,QAoChE"}
@@ -1,12 +1,9 @@
1
1
  import { navigateTypesInNamespace } from "@typespec/compiler";
2
2
  import { isComputed } from "../decorators/computed.js";
3
- import { isWriteOnly } from "../index.js";
3
+ import { isRequiredForCreate, isWriteOnly } from "../index.js";
4
4
  import { reportDiagnostic } from "../lib.js";
5
- import { isTypeNullable } from "../utils.js";
6
5
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
7
6
  /**
8
- * @computed cannot be combined with nullable
9
- * @computed cannot be combined with @required
10
7
  * @computed cannot be combined with @writeOnly
11
8
  */
12
9
  export function validateComputedCannotBeCombined(program) {
@@ -16,26 +13,26 @@ export function validateComputedCannotBeCombined(program) {
16
13
  if (!isComputed(program, property)) {
17
14
  return;
18
15
  }
19
- if (isTypeNullable(program, property.type)) {
16
+ if (isWriteOnly(program, property)) {
20
17
  reportDiagnostic(program, {
21
18
  code: "decorator-invalid-use",
22
19
  target: property,
23
20
  messageId: "default",
24
21
  format: {
25
22
  decorator: "@computed",
26
- other: "nullable",
23
+ other: "@writeOnly",
27
24
  location: "property",
28
25
  },
29
26
  });
30
27
  }
31
- if (isWriteOnly(program, property)) {
28
+ if (isRequiredForCreate(program, property)) {
32
29
  reportDiagnostic(program, {
33
30
  code: "decorator-invalid-use",
34
31
  target: property,
35
32
  messageId: "default",
36
33
  format: {
37
34
  decorator: "@computed",
38
- other: "@writeOnly",
35
+ other: "@requiredForCreate",
39
36
  location: "property",
40
37
  },
41
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../src/rules/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,OAAgB;IAC/D,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAClC,OAAO;iBACR;gBAED,IAAI,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC1C,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE;4BACN,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,UAAU;4BACjB,QAAQ,EAAE,UAAU;yBACrB;qBACF,CAAC,CAAC;iBACJ;gBAED,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAClC,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE;4BACN,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,YAAY;4BACnB,QAAQ,EAAE,UAAU;yBACrB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../src/rules/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,OAAgB;IAC/D,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAClC,OAAO;iBACR;gBAED,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAClC,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE;4BACN,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,YAAY;4BACnB,QAAQ,EAAE,UAAU;yBACrB;qBACF,CAAC,CAAC;iBACJ;gBAED,IAAI,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAC1C,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE;4BACN,SAAS,EAAE,WAAW;4BACtB,KAAK,EAAE,oBAAoB;4BAC3B,QAAQ,EAAE,UAAU;yBACrB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAAA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAqD,MAAM,oBAAoB,CAAC;AAOvG,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QA0BvE;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAuCtE"}
1
+ {"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAqD,MAAM,oBAAoB,CAAC;AAOvG,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QA0BvE;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAyCtE"}
@@ -46,7 +46,9 @@ export function validateExpandOnlyNavigationProperties(program) {
46
46
  const navigationProperties = [...walkPropertiesInherited(modelType)]
47
47
  .filter((property) => isContains(program, property) || isReferences(program, property))
48
48
  .map((property) => property.name);
49
- const invalidExpansions = expanded.filter((property) => !navigationProperties.includes(property));
49
+ const invalidExpansions = expanded.filter((property) => {
50
+ return !navigationProperties.includes(property) && property !== "$value";
51
+ });
50
52
  if (!invalidExpansions.length) {
51
53
  return;
52
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/rules/filter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,OAAO,EAAqD,MAAM,oBAAoB,CAAC;AAGvG,wBAAgB,yDAAyD,CAAC,OAAO,EAAE,OAAO,QA4BzF;AAED,wBAAgB,0CAA0C,CAAC,OAAO,EAAE,OAAO,QAsC1E;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAyBtE"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/rules/filter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,OAAO,EAAuF,MAAM,oBAAoB,CAAC;AAGxJ,wBAAgB,yDAAyD,CAAC,OAAO,EAAE,OAAO,QA4BzF;AAED,wBAAgB,0CAA0C,CAAC,OAAO,EAAE,OAAO,QAkD1E;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAyBtE"}
@@ -1,6 +1,6 @@
1
1
  import { getFilter, isFilter } from "../index.js";
2
2
  import { getOperationVerb } from "@typespec/http";
3
- import { getNavigationSourceType, isTypeCollection } from "../utils.js";
3
+ import { getNavigationSourceType, getNestedPropertyNames, isTypeCollection } from "../utils.js";
4
4
  import { reportDiagnostic } from "../lib.js";
5
5
  import { navigateTypesInNamespace, walkPropertiesInherited } from "@typespec/compiler";
6
6
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
@@ -45,8 +45,20 @@ export function validateFilterOnlyAppliesToModelProperties(program) {
45
45
  }
46
46
  const modelType = returnType.indexer ? returnType.indexer.value : returnType;
47
47
  const filterProperties = getFilter(program, operation);
48
- const modelProperties = [...walkPropertiesInherited(modelType)].map((property) => property.name);
49
- const invalidFilterProperties = filterProperties.filter((property) => !modelProperties.includes(property));
48
+ let inheritedModelProperties = [...walkPropertiesInherited(modelType)].map((property) => property.name);
49
+ const inheritedProperties = walkPropertiesInherited(modelType);
50
+ const propertiesOfTypeModel = [];
51
+ for (const property of inheritedProperties) {
52
+ if (property.type.kind === "Model") {
53
+ propertiesOfTypeModel.push(property.type);
54
+ }
55
+ }
56
+ if (propertiesOfTypeModel.length > 0) {
57
+ // walk through the properties of the models recursively
58
+ const nestedProperties = getNestedPropertyNames(program, propertiesOfTypeModel);
59
+ inheritedModelProperties = inheritedModelProperties.concat(nestedProperties);
60
+ }
61
+ const invalidFilterProperties = filterProperties.filter((property) => !inheritedModelProperties.includes(property));
50
62
  if (!invalidFilterProperties.length) {
51
63
  return;
52
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/rules/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/rules/filter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAInG;;GAEG;AAEH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,QAW9D;AAyBD,wBAAgB,oDAAoD,CAAC,OAAO,EAAE,OAAO,QAWpF;AAqDD,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA2BxF;AAeD;;GAEG;AACH,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA0BxF;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QA2BtE;AAED,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,OAAO,QA6BxE"}
1
+ {"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAInG;;GAEG;AAEH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,QAW9D;AAyBD,wBAAgB,oDAAoD,CAAC,OAAO,EAAE,OAAO,QAWpF;AAqDD,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA2BxF;AAeD;;GAEG;AACH,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA0BxF;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAwBtE;AAgBD,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,OAAO,QA6BxE"}
@@ -162,29 +162,37 @@ export function validateDuplicateGraphRoutesNotAllowed(program) {
162
162
  for (const namespace of GetDeclaredNamespaces(program)) {
163
163
  navigateTypesInNamespace(namespace, {
164
164
  interface: ($interface) => {
165
- const existingRoutes = getGraphRoutes(program);
166
165
  if (!hasGraphRoute(program, $interface)) {
167
166
  return;
168
167
  }
168
+ const existingRoutes = getGraphRoutes(program);
169
169
  const graphRoutePaths = getGraphRoutePaths(program, $interface);
170
+ const uniqueGraphRoutePaths = new Set(graphRoutePaths);
171
+ if (graphRoutePaths.length !== uniqueGraphRoutePaths.size) {
172
+ const duplicates = graphRoutePaths.filter((path, index) => graphRoutePaths.indexOf(path) !== index);
173
+ reportDuplicateRouteDiagnostics(program, $interface, duplicates[0], existingRoutes);
174
+ }
170
175
  for (const graphRoutePath of graphRoutePaths) {
171
176
  if (existingRoutes.has(graphRoutePath) && existingRoutes.get(graphRoutePath) !== $interface) {
172
- reportDiagnostic(program, {
173
- code: "decorator-invalid-use",
174
- target: $interface,
175
- messageId: "duplicateGraphRouteNotAllowed",
176
- format: {
177
- target: getIdForType(program, $interface),
178
- graphRoute: graphRoutePath,
179
- existing: getIdForType(program, existingRoutes.get(graphRoutePath))
180
- },
181
- });
177
+ reportDuplicateRouteDiagnostics(program, $interface, graphRoutePath, existingRoutes);
182
178
  }
183
179
  }
184
180
  }
185
181
  });
186
182
  }
187
183
  }
184
+ function reportDuplicateRouteDiagnostics(program, $interface, graphRoutePath, existingRoutes) {
185
+ reportDiagnostic(program, {
186
+ code: "decorator-invalid-use",
187
+ target: $interface,
188
+ messageId: "duplicateGraphRouteNotAllowed",
189
+ format: {
190
+ target: getIdForType(program, $interface),
191
+ graphRoute: graphRoutePath,
192
+ existing: getIdForType(program, existingRoutes.get(graphRoutePath))
193
+ },
194
+ });
195
+ }
188
196
  export function validateGraphRouteParametersMustBeUnique(program) {
189
197
  for (const namespace of GetDeclaredNamespaces(program)) {
190
198
  navigateTypesInNamespace(namespace, {
@@ -1 +1 @@
1
- {"version":3,"file":"graph-route.js","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-route.js","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@ export * from "./extends-on-same-type.js";
13
13
  export * from "./filter.js";
14
14
  export * from "./function.js";
15
15
  export * from "./graph-route.js";
16
- export * from "./has-stream.js";
16
+ export * from "./limited-charset.js";
17
+ export * from "./media.js";
17
18
  export * from "./namespace.js";
18
19
  export * from "./open.js";
19
20
  export * from "./operation-inside-interface.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -13,7 +13,8 @@ export * from "./extends-on-same-type.js";
13
13
  export * from "./filter.js";
14
14
  export * from "./function.js";
15
15
  export * from "./graph-route.js";
16
- export * from "./has-stream.js";
16
+ export * from "./limited-charset.js";
17
+ export * from "./media.js";
17
18
  export * from "./namespace.js";
18
19
  export * from "./open.js";
19
20
  export * from "./operation-inside-interface.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Program } from "@typespec/compiler";
2
+ export declare const validatedLimitedCharsetOnlyAppliesToStringPropertiesOrParameters: (program: Program) => void;
3
+ //# sourceMappingURL=limited-charset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limited-charset.d.ts","sourceRoot":"","sources":["../../../src/rules/limited-charset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0C,MAAM,oBAAoB,CAAC;AAMrF,eAAO,MAAM,gEAAgE,YAClE,OAAO,SA0CjB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { isStringType, navigateTypesInNamespace } from "@typespec/compiler";
2
+ import { GetDeclaredNamespaces } from "../entities/namespace.js";
3
+ import { supportsLimitedCharset } from "../index.js";
4
+ import { reportDiagnostic } from "../lib.js";
5
+ import { extractTypesFromUnion } from "../utils.js";
6
+ export const validatedLimitedCharsetOnlyAppliesToStringPropertiesOrParameters = (program) => {
7
+ for (const namespace of GetDeclaredNamespaces(program)) {
8
+ navigateTypesInNamespace(namespace, {
9
+ modelProperty: (property) => {
10
+ if (!supportsLimitedCharset(program, property)) {
11
+ return;
12
+ }
13
+ if (isStringType(program, property.type)) {
14
+ return;
15
+ }
16
+ // Nullable Properties and Parameters
17
+ if (property.type.kind === "Union") {
18
+ const types = extractTypesFromUnion(property.type);
19
+ if (types.some((type) => isStringType(program, type))) {
20
+ return;
21
+ }
22
+ }
23
+ // Arrays of strings
24
+ if (property.type.kind === "Model" &&
25
+ property.type.name === "Array" &&
26
+ isStringType(program, property.type.indexer.value)) {
27
+ return;
28
+ }
29
+ reportDiagnostic(program, {
30
+ code: "decorator-invalid-use",
31
+ target: property,
32
+ messageId: "wrongType",
33
+ format: {
34
+ decorator: "@limitedCharset",
35
+ target: "string model property, parameter or their collections",
36
+ },
37
+ });
38
+ },
39
+ });
40
+ }
41
+ };
42
+ //# sourceMappingURL=limited-charset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limited-charset.js","sourceRoot":"","sources":["../../../src/rules/limited-charset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,CAAC,MAAM,gEAAgE,GAAG,CAC9E,OAAgB,EAChB,EAAE;IACF,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAC9C,OAAO;iBACR;gBAED,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxC,OAAO;iBACR;gBAED,qCAAqC;gBACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBAClC,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACnD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE;wBACrD,OAAO;qBACR;iBACF;gBAED,oBAAoB;gBACpB,IACE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;oBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;oBAC9B,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC,EACnD;oBACA,OAAO;iBACR;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE;wBACN,SAAS,EAAE,iBAAiB;wBAC5B,MAAM,EAAE,uDAAuD;qBAChE;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Program } from "@typespec/compiler";
2
+ export declare function validateIsMediaOnlyOnEntity(program: Program): void;
3
+ export declare const mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes: import("@typespec/compiler").LinterRuleDefinition<"media-type-values-should-be-minimally-formatted", {
4
+ readonly default: import("@typespec/compiler").CallableMessage<[string]>;
5
+ }>;
6
+ export declare const interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified: import("@typespec/compiler").LinterRuleDefinition<"navigation-source-should-have-media-if-value-is-specified", {
7
+ readonly interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute: import("@typespec/compiler").CallableMessage<[string, string]>;
8
+ readonly interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters: import("@typespec/compiler").CallableMessage<[string]>;
9
+ }>;
10
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/rules/media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAsD,MAAM,oBAAoB,CAAC;AAIjG,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAsB3D;AAED,eAAO,MAAM,qDAAqD;;EA6BhE,CAAA;AAEF,eAAO,MAAM,2DAA2D;;;EA4DtE,CAAA"}
@@ -0,0 +1,122 @@
1
+ import { getMediaTypes, isMedia } from "../decorators/media.js";
2
+ import { getExpand, getGraphRoutePaths, hasGraphRoute, isEntity } from "../index.js";
3
+ import { reportDiagnostic } from "../lib.js";
4
+ import { createRule, navigateTypesInNamespace, paramMessage } from "@typespec/compiler";
5
+ import { GetDeclaredNamespaces } from "../entities/namespace.js";
6
+ import { getInterfaceNavigationSourceType, getNavigationSourceType } from "../utils.js";
7
+ export function validateIsMediaOnlyOnEntity(program) {
8
+ for (const namespace of GetDeclaredNamespaces(program)) {
9
+ navigateTypesInNamespace(namespace, {
10
+ model: (model) => {
11
+ if (!isMedia(program, model)) {
12
+ return;
13
+ }
14
+ if (isEntity(program, model)) {
15
+ return;
16
+ }
17
+ reportDiagnostic(program, {
18
+ code: "decorator-invalid-use",
19
+ target: model,
20
+ messageId: "wrongType",
21
+ format: {
22
+ decorator: "@media",
23
+ target: "@entity model",
24
+ },
25
+ });
26
+ },
27
+ });
28
+ }
29
+ }
30
+ ;
31
+ export const mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes = createRule({
32
+ name: "media-type-values-should-be-minimally-formatted",
33
+ severity: "warning",
34
+ description: "Media type values should be two part strings with a / separator",
35
+ messages: {
36
+ default: paramMessage `Media type value '${"value"}' should be a two part string with a \/ separator.`,
37
+ },
38
+ create(context) {
39
+ return {
40
+ model: (model) => {
41
+ if (!isMedia(context.program, model)) {
42
+ return;
43
+ }
44
+ const mediaTypes = getMediaTypes(context.program, model);
45
+ if (mediaTypes.length > 0) {
46
+ for (const mediaType of mediaTypes) {
47
+ if (mediaType.split("/").length !== 2) {
48
+ context.reportDiagnostic({
49
+ target: model,
50
+ format: {
51
+ value: mediaType,
52
+ },
53
+ });
54
+ }
55
+ }
56
+ }
57
+ },
58
+ };
59
+ }
60
+ });
61
+ export const interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified = createRule({
62
+ name: "navigation-source-should-have-media-if-value-is-specified",
63
+ severity: "warning",
64
+ description: "Interface navigation source should have media if $value is specified",
65
+ messages: {
66
+ interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute: paramMessage `Interface navigation source '${"model"}' should have @media if $value is specified in the interface route '${"route"}'.`,
67
+ interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters: paramMessage `Interface navigation source '${"model"}' should have @media if $value is specified in the parameters.`,
68
+ },
69
+ create(context) {
70
+ return {
71
+ operation: (operation) => {
72
+ operation.decorators.forEach((decorator) => {
73
+ if (decorator.decorator.name === "$expand") {
74
+ const expanded = getExpand(context.program, operation);
75
+ if (expanded.includes("$value")) {
76
+ const navigationSource = getNavigationSourceType(context.program, operation);
77
+ if (!navigationSource) {
78
+ return;
79
+ }
80
+ if (!isMedia(context.program, navigationSource)) {
81
+ context.reportDiagnostic({
82
+ target: operation,
83
+ format: {
84
+ model: navigationSource.name,
85
+ },
86
+ messageId: "interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters",
87
+ });
88
+ }
89
+ }
90
+ }
91
+ });
92
+ },
93
+ interface: (_interface) => {
94
+ if (!hasGraphRoute(context.program, _interface)) {
95
+ return;
96
+ }
97
+ const graphRoutes = getGraphRoutePaths(context.program, _interface);
98
+ if (graphRoutes && graphRoutes.length > 0) {
99
+ for (const graphRoute of graphRoutes) {
100
+ if (graphRoute.includes("$value")) {
101
+ const navigationSource = getInterfaceNavigationSourceType(context.program, _interface);
102
+ if (!navigationSource) {
103
+ return;
104
+ }
105
+ if (!isMedia(context.program, navigationSource)) {
106
+ context.reportDiagnostic({
107
+ target: _interface,
108
+ format: {
109
+ model: navigationSource.name,
110
+ route: graphRoute,
111
+ },
112
+ messageId: "interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute"
113
+ });
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ };
120
+ }
121
+ });
122
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/rules/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAW,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC5B,OAAO;iBACR;gBACD,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC5B,OAAO;iBACR;gBACD,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,MAAM,EAAE,eAAe;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,MAAM,qDAAqD,GAAG,UAAU,CAAC;IAC9E,IAAI,EAAE,iDAAiD;IACvD,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,iEAAiE;IAC9E,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,qBAAqB,OAAO,oDAAoD;KACtG;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACpC,OAAO;iBACR;gBACD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzD,IAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAC;oBACvB,KAAI,MAAM,SAAS,IAAI,UAAU,EAAC;wBAChC,IAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAC;4BACnC,OAAO,CAAC,gBAAgB,CAAC;gCACvB,MAAM,EAAE,KAAK;gCACb,MAAM,EAAE;oCACN,KAAK,EAAE,SAAS;iCACjB;6BACF,CAAC,CAAC;yBACJ;qBACF;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2DAA2D,GAAG,UAAU,CAAC;IACpF,IAAI,EAAE,2DAA2D;IACjE,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,sEAAsE;IACnF,QAAQ,EAAE;QACR,kEAAkE,EAAE,YAAY,CAAA,gCAAgC,OAAO,uEAAuE,OAAO,IAAI;QACzM,uEAAuE,EAAE,YAAY,CAAA,gCAAgC,OAAO,gEAAgE;KAC7L;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBACzC,IAAG,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAC;wBACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACvD,IAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;4BAC7B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;4BAC7E,IAAG,CAAC,gBAAgB,EAAC;gCACnB,OAAO;6BACR;4BACD,IAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC;gCAC7C,OAAO,CAAC,gBAAgB,CAAC;oCACvB,MAAM,EAAE,SAAS;oCACjB,MAAM,EAAE;wCACN,KAAK,EAAE,gBAAgB,CAAC,IAAI;qCAC7B;oCACD,SAAS,EAAE,yEAAyE;iCACrF,CAAC,CAAC;6BACJ;yBACF;qBACF;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;gBACxB,IAAG,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAC;oBAC7C,OAAO;iBACR;gBACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACpE,IAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAC;oBACvC,KAAM,MAAM,UAAU,IAAI,WAAW,EAAC;wBACpC,IAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;4BAC/B,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;4BACvF,IAAG,CAAC,gBAAgB,EAAC;gCACnB,OAAO;6BACR;4BACD,IAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAC;gCAC7C,OAAO,CAAC,gBAAgB,CAAC;oCACvB,MAAM,EAAE,UAAU;oCAClB,MAAM,EAAE;wCACN,KAAK,EAAE,gBAAgB,CAAC,IAAI;wCAC5B,KAAK,EAAE,UAAU;qCAClB;oCACD,SAAS,EAAE,oEAAoE;iCAChF,CAAC,CAAC;6BACJ;yBACF;qBACF;iBACF;YACH,CAAC;SACF,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -2,4 +2,5 @@ import { Program } from "@typespec/compiler";
2
2
  export declare function validateNamespaceIsRequired(program: Program): void;
3
3
  export declare function validatePublicNamespaceName(program: Program): void;
4
4
  export declare function validateTopLevelNamespaceMustHavePublicNamespace(program: Program): void;
5
+ export declare function validateWorkloadNamespaceName(program: Program): void;
5
6
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkD,MAAM,oBAAoB,CAAC;AAI7F,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QA0B3D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAqB3D;AAED,wBAAgB,gDAAgD,CAAC,OAAO,EAAE,OAAO,QAkChF"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/rules/namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkD,MAAM,oBAAoB,CAAC;AAK7F,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QA0B3D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAqB3D;AAED,wBAAgB,gDAAgD,CAAC,OAAO,EAAE,OAAO,QAkChF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,QAqB7D"}