@microsoft/typespec-msgraph 0.0.1-Preview.6 → 0.0.1-Preview.8

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 (148) hide show
  1. package/dist/src/components/annotations.d.ts +5 -5
  2. package/dist/src/components/annotations.d.ts.map +1 -1
  3. package/dist/src/components/annotations.js +21 -20
  4. package/dist/src/components/annotations.js.map +1 -1
  5. package/dist/src/components/count-restrictions-annotation.d.ts +1 -1
  6. package/dist/src/components/count-restrictions-annotation.d.ts.map +1 -1
  7. package/dist/src/components/count-restrictions-annotation.js +2 -2
  8. package/dist/src/components/count-restrictions-annotation.js.map +1 -1
  9. package/dist/src/components/expand-restrictions-annotation.d.ts +1 -1
  10. package/dist/src/components/expand-restrictions-annotation.d.ts.map +1 -1
  11. package/dist/src/components/expand-restrictions-annotation.js +3 -3
  12. package/dist/src/components/expand-restrictions-annotation.js.map +1 -1
  13. package/dist/src/components/filter-restrictions-annotation.d.ts +6 -0
  14. package/dist/src/components/filter-restrictions-annotation.d.ts.map +1 -0
  15. package/dist/src/components/filter-restrictions-annotation.js +10 -0
  16. package/dist/src/components/filter-restrictions-annotation.js.map +1 -0
  17. package/dist/src/components/immutable-annotation.d.ts +5 -0
  18. package/dist/src/components/immutable-annotation.d.ts.map +1 -0
  19. package/dist/src/components/immutable-annotation.js +6 -0
  20. package/dist/src/components/immutable-annotation.js.map +1 -0
  21. package/dist/src/components/insert-restrictions-annotation.d.ts +6 -0
  22. package/dist/src/components/insert-restrictions-annotation.d.ts.map +1 -0
  23. package/dist/src/components/insert-restrictions-annotation.js +10 -0
  24. package/dist/src/components/insert-restrictions-annotation.js.map +1 -0
  25. package/dist/src/components/property-element.d.ts.map +1 -1
  26. package/dist/src/components/property-element.js +4 -2
  27. package/dist/src/components/property-element.js.map +1 -1
  28. package/dist/src/components/schema-element.d.ts.map +1 -1
  29. package/dist/src/components/schema-element.js +6 -6
  30. package/dist/src/components/schema-element.js.map +1 -1
  31. package/dist/src/components/search-restrictions-annotation.d.ts +1 -1
  32. package/dist/src/components/search-restrictions-annotation.d.ts.map +1 -1
  33. package/dist/src/components/search-restrictions-annotation.js +2 -2
  34. package/dist/src/components/search-restrictions-annotation.js.map +1 -1
  35. package/dist/src/components/skip-supported-annotation.d.ts +1 -1
  36. package/dist/src/components/skip-supported-annotation.d.ts.map +1 -1
  37. package/dist/src/components/skip-supported-annotation.js +1 -1
  38. package/dist/src/components/skip-supported-annotation.js.map +1 -1
  39. package/dist/src/components/sort-restrictions-annotation.d.ts +1 -1
  40. package/dist/src/components/sort-restrictions-annotation.d.ts.map +1 -1
  41. package/dist/src/components/sort-restrictions-annotation.js +3 -3
  42. package/dist/src/components/sort-restrictions-annotation.js.map +1 -1
  43. package/dist/src/components/top-supported-annotation.d.ts +1 -1
  44. package/dist/src/components/top-supported-annotation.d.ts.map +1 -1
  45. package/dist/src/components/top-supported-annotation.js +2 -2
  46. package/dist/src/components/top-supported-annotation.js.map +1 -1
  47. package/dist/src/decorators/action.d.ts +10 -0
  48. package/dist/src/decorators/action.d.ts.map +1 -0
  49. package/dist/src/decorators/action.js +16 -0
  50. package/dist/src/decorators/action.js.map +1 -0
  51. package/dist/src/decorators/filter.d.ts +11 -0
  52. package/dist/src/decorators/filter.d.ts.map +1 -0
  53. package/dist/src/decorators/filter.js +27 -0
  54. package/dist/src/decorators/filter.js.map +1 -0
  55. package/dist/src/decorators/graph-route.d.ts +1 -1
  56. package/dist/src/decorators/graph-route.d.ts.map +1 -1
  57. package/dist/src/decorators/graph-route.js +12 -7
  58. package/dist/src/decorators/graph-route.js.map +1 -1
  59. package/dist/src/decorators/immutable.d.ts +8 -0
  60. package/dist/src/decorators/immutable.d.ts.map +1 -0
  61. package/dist/src/decorators/immutable.js +12 -0
  62. package/dist/src/decorators/immutable.js.map +1 -0
  63. package/dist/src/decorators/index.d.ts +4 -0
  64. package/dist/src/decorators/index.d.ts.map +1 -1
  65. package/dist/src/decorators/index.js +4 -0
  66. package/dist/src/decorators/index.js.map +1 -1
  67. package/dist/src/decorators/required-for-create.d.ts +10 -0
  68. package/dist/src/decorators/required-for-create.d.ts.map +1 -0
  69. package/dist/src/decorators/required-for-create.js +14 -0
  70. package/dist/src/decorators/required-for-create.js.map +1 -0
  71. package/dist/src/entities/annotations.d.ts +20 -17
  72. package/dist/src/entities/annotations.d.ts.map +1 -1
  73. package/dist/src/entities/annotations.js +69 -48
  74. package/dist/src/entities/annotations.js.map +1 -1
  75. package/dist/src/entities/entity-container.js +1 -1
  76. package/dist/src/entities/entity-container.js.map +1 -1
  77. package/dist/src/entities/model.d.ts +1 -0
  78. package/dist/src/entities/model.d.ts.map +1 -1
  79. package/dist/src/entities/model.js +2 -1
  80. package/dist/src/entities/model.js.map +1 -1
  81. package/dist/src/entities/namespace.d.ts +3 -3
  82. package/dist/src/entities/namespace.d.ts.map +1 -1
  83. package/dist/src/entities/namespace.js +34 -8
  84. package/dist/src/entities/namespace.js.map +1 -1
  85. package/dist/src/entities/operation.d.ts.map +1 -1
  86. package/dist/src/entities/operation.js +1 -2
  87. package/dist/src/entities/operation.js.map +1 -1
  88. package/dist/src/entities/property.d.ts.map +1 -1
  89. package/dist/src/entities/property.js +3 -0
  90. package/dist/src/entities/property.js.map +1 -1
  91. package/dist/src/entities/revision-definition.d.ts +1 -1
  92. package/dist/src/entities/revision-definition.js +3 -3
  93. package/dist/src/lib.d.ts +16 -0
  94. package/dist/src/lib.d.ts.map +1 -1
  95. package/dist/src/lib.js +4 -0
  96. package/dist/src/lib.js.map +1 -1
  97. package/dist/src/linter.d.ts.map +1 -1
  98. package/dist/src/linter.js +4 -0
  99. package/dist/src/linter.js.map +1 -1
  100. package/dist/src/rules/collection-navigation-properties-not-nullable.d.ts +2 -0
  101. package/dist/src/rules/collection-navigation-properties-not-nullable.d.ts.map +1 -0
  102. package/dist/src/rules/collection-navigation-properties-not-nullable.js +28 -0
  103. package/dist/src/rules/collection-navigation-properties-not-nullable.js.map +1 -0
  104. package/dist/src/rules/count.js +2 -2
  105. package/dist/src/rules/count.js.map +1 -1
  106. package/dist/src/rules/disallowed-typespec-decorators.d.ts +2 -0
  107. package/dist/src/rules/disallowed-typespec-decorators.d.ts.map +1 -0
  108. package/dist/src/rules/disallowed-typespec-decorators.js +33 -0
  109. package/dist/src/rules/disallowed-typespec-decorators.js.map +1 -0
  110. package/dist/src/rules/extends-on-same-type.d.ts +2 -0
  111. package/dist/src/rules/extends-on-same-type.d.ts.map +1 -0
  112. package/dist/src/rules/extends-on-same-type.js +38 -0
  113. package/dist/src/rules/extends-on-same-type.js.map +1 -0
  114. package/dist/src/rules/filter.d.ts +4 -0
  115. package/dist/src/rules/filter.d.ts.map +1 -0
  116. package/dist/src/rules/filter.js +92 -0
  117. package/dist/src/rules/filter.js.map +1 -0
  118. package/dist/src/rules/graph-route.d.ts +5 -0
  119. package/dist/src/rules/graph-route.d.ts.map +1 -0
  120. package/dist/src/rules/graph-route.js +39 -0
  121. package/dist/src/rules/graph-route.js.map +1 -0
  122. package/dist/src/rules/index.d.ts +7 -3
  123. package/dist/src/rules/index.d.ts.map +1 -1
  124. package/dist/src/rules/index.js +7 -89
  125. package/dist/src/rules/index.js.map +1 -1
  126. package/dist/src/rules/operation-inside-interface.d.ts +2 -0
  127. package/dist/src/rules/operation-inside-interface.d.ts.map +1 -0
  128. package/dist/src/rules/operation-inside-interface.js +25 -0
  129. package/dist/src/rules/operation-inside-interface.js.map +1 -0
  130. package/dist/src/rules/order-by.js +2 -2
  131. package/dist/src/rules/order-by.js.map +1 -1
  132. package/dist/src/rules/required-for-create.d.ts +2 -0
  133. package/dist/src/rules/required-for-create.d.ts.map +1 -0
  134. package/dist/src/rules/required-for-create.js +40 -0
  135. package/dist/src/rules/required-for-create.js.map +1 -0
  136. package/dist/src/rules/search.js +2 -2
  137. package/dist/src/rules/search.js.map +1 -1
  138. package/dist/src/rules/skip.js +2 -2
  139. package/dist/src/rules/skip.js.map +1 -1
  140. package/dist/src/rules/top.js +2 -2
  141. package/dist/src/rules/top.js.map +1 -1
  142. package/dist/src/utils.d.ts +16 -4
  143. package/dist/src/utils.d.ts.map +1 -1
  144. package/dist/src/utils.js +81 -31
  145. package/dist/src/utils.js.map +1 -1
  146. package/lib/decorators.tsp +32 -0
  147. package/lib/lib.tsp +4 -15
  148. package/package.json +1 -2
package/dist/src/utils.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { getNamespaceFullName, isArrayModelType, } from "@typespec/compiler";
2
- import { getEntity, isEntity } from "./decorators/index.js";
3
- import { getRoutePath } from "@typespec/http";
2
+ import { getEntity, getGraphRoutePath, isEntity } from "./decorators/index.js";
4
3
  export function getNameForType(program, type) {
5
4
  switch (type.kind) {
6
5
  case "Union":
@@ -53,6 +52,8 @@ export function getNameForModelType(program, type) {
53
52
  return "Edm.Boolean";
54
53
  case "stream":
55
54
  return "Edm.Stream";
55
+ case "guid":
56
+ return "Edm.Guid";
56
57
  default:
57
58
  break;
58
59
  }
@@ -76,6 +77,8 @@ export function getIdForType(program, type) {
76
77
  return `${type.value}`;
77
78
  case "Union":
78
79
  return getIdForUnion(program, type);
80
+ case "Scalar":
81
+ return getNameForModelType(program, type);
79
82
  default:
80
83
  return type.kind;
81
84
  }
@@ -90,25 +93,40 @@ export function getNavigationTypeId(program, getOperation) {
90
93
  }
91
94
  export function getInterfacesOfKinds(program, navigationSources, kinds) {
92
95
  const interfaces = new Map();
93
- navigationSources.forEach((theInterface, key) => {
94
- var _a;
95
- if (!theInterface.sourceInterfaces.some(s => kinds.includes(s.name))) {
96
+ navigationSources.forEach((theInterface) => {
97
+ if (!theInterface.sourceInterfaces.some((s) => kinds.includes(s.name))) {
96
98
  // if source interfaces DO NOT have the kinds.
97
99
  return;
98
100
  }
99
- const routePath = (_a = getRoutePath(program, theInterface)) === null || _a === void 0 ? void 0 : _a.path.split("/")[0];
100
- if (!routePath) {
101
+ const graphRoutePath = getGraphRoutePath(program, theInterface);
102
+ let graphRoutes = [];
103
+ if (!graphRoutePath) {
101
104
  return;
102
105
  }
103
- let operations = [...theInterface.operations.values()];
104
- if (interfaces.has(routePath)) {
105
- const existing = interfaces.get(routePath);
106
- operations = [...operations, ...existing.operations];
106
+ else if (Array.isArray(graphRoutePath)) {
107
+ graphRoutes = graphRoutePath;
108
+ }
109
+ else {
110
+ graphRoutes = [graphRoutePath];
111
+ }
112
+ if (!graphRoutes.length) {
113
+ return;
107
114
  }
108
- interfaces.set(routePath, {
109
- key: key,
110
- theInterface: theInterface,
111
- operations: operations,
115
+ graphRoutes.forEach((graphRoute) => {
116
+ const path = removeRoutePathParams(graphRoute);
117
+ if (!path) {
118
+ return;
119
+ }
120
+ let operations = [...theInterface.operations.values()];
121
+ if (interfaces.has(path)) {
122
+ const existing = interfaces.get(path);
123
+ operations = [...operations, ...existing.operations];
124
+ }
125
+ interfaces.set(path, {
126
+ theInterface: theInterface,
127
+ operations: operations,
128
+ path: graphRoute
129
+ });
112
130
  });
113
131
  });
114
132
  return interfaces;
@@ -157,26 +175,24 @@ export function getSingletonTypeId(program, singletonType, getOperation) {
157
175
  return getOperation && getNavigationTypeId(program, getOperation);
158
176
  }
159
177
  /**
160
- * Returns whether a type used as a return type matches Graph's definition of a collection
178
+ * Returns whether a type matches Graph's definition of a collection
161
179
  * @param program
162
- * @param returnType
180
+ * @param type
163
181
  */
164
- export function isReturnTypeCollection(program, returnType) {
165
- let returnTypes = [];
166
- if (returnType.kind === "Model") {
167
- returnTypes.push(returnType);
182
+ export function isTypeCollection(Program, type) {
183
+ let modelTypes = [];
184
+ if (type.kind === "Union") {
185
+ const extracted = (extractTypesFromUnion(type).filter((t) => t.kind === "Model"));
186
+ modelTypes = modelTypes.concat(extracted);
168
187
  }
169
- else if (returnType.kind === "Union") {
170
- const extracted = extractTypesFromUnion(returnType).filter(t => t.kind === "Model");
171
- returnTypes = returnTypes.concat(extracted);
188
+ else if (type.kind === "Model") {
189
+ modelTypes.push(type);
172
190
  }
173
- if (returnTypes.length === 0) {
191
+ if (modelTypes.length === 0) {
174
192
  return false;
175
193
  }
176
- return returnTypes.some(t => isTypeCollection(t));
177
- }
178
- function isTypeCollection(type) {
179
- return type.kind === "Model" && (type.name === "Array" || type.name.includes("Collection"));
194
+ return modelTypes.some((t) => t.kind === "Model" &&
195
+ (t.name === "Array" || t.name.includes("Collection")));
180
196
  }
181
197
  /**
182
198
  * Imported from typespec-azure
@@ -225,6 +241,14 @@ export function isExcludedLibraryType(program, type) {
225
241
  }
226
242
  export function isNavigationProperty(program, property) {
227
243
  let propertyType = property.type;
244
+ if (propertyType.kind === "Union") {
245
+ const unionTypes = extractTypesFromUnion(propertyType);
246
+ const nonNullTypes = unionTypes.filter((t) => !isNullType(program, t));
247
+ if (!nonNullTypes.length) {
248
+ return false;
249
+ }
250
+ propertyType = nonNullTypes[0];
251
+ }
228
252
  if (propertyType.kind !== "Model") {
229
253
  return false;
230
254
  }
@@ -239,8 +263,24 @@ export function isNavigationProperty(program, property) {
239
263
  export function isNavigationSource(theInterface) {
240
264
  return findNavigationSource(theInterface) !== undefined;
241
265
  }
266
+ export function isTopLevelNavigationSource(program, theInterface) {
267
+ return removeRoutePathParams(theInterface.path).split("/").length === 1;
268
+ }
269
+ /**
270
+ * Check if a @graphRoute returns a single resource of a collection.
271
+ *
272
+ * `Example`
273
+ *
274
+ * @graphRoute("users/{id}")
275
+ * interface UsersById extends Resource<user> {
276
+ * get is GraphOps.GetResource;
277
+ * }
278
+ */
279
+ export function isCollectionResource(program, theInterface) {
280
+ return (isTopLevelNavigationSource(program, theInterface) && theInterface.path.split("/").length === 2);
281
+ }
242
282
  // Get the type returned by all operations in an interface representing a navigation source.
243
- // This is the 'T' in EntitySet<T> and friends.
283
+ // This is the 'T' in Collection<T> and friends.
244
284
  export function getInterfaceNavigationSourceType(program, theInterface) {
245
285
  var _a;
246
286
  const navSource = findNavigationSource(theInterface);
@@ -257,7 +297,7 @@ export function getNavigationSourceType(program, operation) {
257
297
  }
258
298
  function findNavigationSource(theInterface) {
259
299
  for (const baseInterface of theInterface.sourceInterfaces) {
260
- if (baseInterface.name === "SingleNavigationSource" || baseInterface.name === "CollectionNavigationSource") {
300
+ if (baseInterface.name === "Resource" || baseInterface.name === "Collection") {
261
301
  return baseInterface;
262
302
  }
263
303
  else {
@@ -269,4 +309,14 @@ function findNavigationSource(theInterface) {
269
309
  }
270
310
  return undefined;
271
311
  }
312
+ /**
313
+ * Removes route path params from a route path
314
+ *
315
+ * Examples:
316
+ * - user/{id}/manager -> user/manager
317
+ * - user/{id}/friends/{friendId}/hobbies -> user/friends/hobbies
318
+ */
319
+ function removeRoutePathParams(routePath) {
320
+ return routePath.replace(/\/\{\w+\}/g, "");
321
+ }
272
322
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,13 @@ using TypeSpec.Reflection;
7
7
  */
8
8
  extern dec abstract(target: Model);
9
9
 
10
+ /**
11
+ * `@action` - mark an operation as an action
12
+ *
13
+ * `@action` can only be applied to operations.
14
+ */
15
+ extern dec action(target: Operation, name?: valueof string);
16
+
10
17
  /**
11
18
  * `@alternateKey` - mark a model property as an alternateKey
12
19
  *
@@ -71,6 +78,16 @@ extern dec entity(target: Model);
71
78
  */
72
79
  extern dec expand(target: Operation, property: valueof string, ...otherProperties: valueof string[]);
73
80
 
81
+ /**
82
+ * `@filter` - Applies to: get operations that return collections of @entity or @complex models.
83
+ * Indicates that the get operation supports OData $filter query parameter.
84
+ *
85
+ * `properties` - string containing comma separated list of property names in the model returned
86
+ * from the get operation that can be used in $filter query parameter.
87
+ */
88
+ extern dec filter(target: Operation, properties: valueof string);
89
+
90
+
74
91
  /**
75
92
  * `@flags` - mark an enumeration type as a flag.
76
93
  *
@@ -164,6 +181,14 @@ extern dec readOnly(target: ModelProperty);
164
181
  */
165
182
  extern dec references(target: ModelProperty);
166
183
 
184
+ /**
185
+ * `@requiredForCreate` - mark a model property as required when a request is made to
186
+ * Graph to create or update a resource.
187
+ *
188
+ * `@requiredForCreate` can only be applied to model properties.
189
+ */
190
+ extern dec requiredForCreate(target: ModelProperty);
191
+
167
192
  /**
168
193
  * `@top` - Applies to: get operations that return collections.
169
194
  * Indicates that the get operation supports the OData $top query parameter.
@@ -252,3 +277,10 @@ extern dec deltaCollection(target: Model);
252
277
  // https://github.com/microsoft/typespec/issues/2106
253
278
  // Disabling all related features while we await the outcome.
254
279
  extern dec graphRoute(target: Interface /* | Operation */, path: valueof string);
280
+
281
+ /**
282
+ * `@immutable` - mark a model property as immutable.
283
+ *
284
+ * `@immutable` can only be applied to model properties.
285
+ */
286
+ extern dec immutable(target: ModelProperty);
package/lib/lib.tsp CHANGED
@@ -8,23 +8,12 @@ scalar date;
8
8
 
9
9
  scalar stream;
10
10
 
11
+ scalar guid extends string;
12
+
11
13
  model EmptyParameters {}
12
14
 
13
15
  // --- Base interfaces for all interfaces that contain operations returning entities.
14
- interface SingleNavigationSource<T> {}
15
- interface CollectionNavigationSource<T> {}
16
-
17
- interface Resource<T> extends SingleNavigationSource<T> {
18
- }
19
-
20
- interface Collection<T> extends CollectionNavigationSource<T> {
21
- }
22
-
23
- interface Singleton<T> extends SingleNavigationSource<T> {
24
- }
25
16
 
26
- interface EntitySet<T> extends CollectionNavigationSource<T> {
27
- }
17
+ interface Resource<T> {}
28
18
 
29
- interface EntitySetResource<T> extends SingleNavigationSource<T> {
30
- }
19
+ interface Collection<T> {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/typespec-msgraph",
3
- "version": "0.0.1-Preview.6",
3
+ "version": "0.0.1-Preview.8",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec for Microsoft Graph provides a description of the Microsoft Graph APIs. It is used for generating API description languages, client and service code, documentation, and other assets.",
6
6
  "homepage": "https://github.com/microsoftgraph/typespec-msgraph",
@@ -56,7 +56,6 @@
56
56
  "@typespec/compiler": "~0.45.0",
57
57
  "@typespec/http": "~0.45.0",
58
58
  "@typespec/lint": "~0.45.0",
59
- "@typespec/rest": "~0.45.0",
60
59
  "prettier": "~2.8.7",
61
60
  "react-dom": "~18.2.0",
62
61
  "react": "~18.2.0",